@wise/dynamic-flow-client-internal 5.27.3 → 5.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/i18n/ar.json +1 -0
- package/build/i18n/cs.json +1 -0
- package/build/i18n/de.json +1 -0
- package/build/i18n/en.json +1 -0
- package/build/i18n/es.json +1 -0
- package/build/i18n/fr.json +1 -0
- package/build/i18n/hu.json +1 -0
- package/build/i18n/id.json +1 -0
- package/build/i18n/it.json +1 -0
- package/build/i18n/ja.json +1 -0
- package/build/i18n/ko.json +1 -0
- package/build/i18n/nl.json +1 -0
- package/build/i18n/pl.json +1 -0
- package/build/i18n/pt.json +1 -0
- package/build/i18n/ro.json +1 -0
- package/build/i18n/ru.json +1 -0
- package/build/i18n/sv.json +1 -0
- package/build/i18n/th.json +1 -0
- package/build/i18n/tr.json +1 -0
- package/build/i18n/uk.json +1 -0
- package/build/i18n/zh_CN.json +1 -0
- package/build/i18n/zh_HK.json +1 -0
- package/build/main.css +80 -0
- package/build/main.js +1417 -686
- package/build/main.mjs +1398 -667
- package/build/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +25 -25
package/build/main.mjs
CHANGED
|
@@ -64,7 +64,7 @@ var require_classnames = __commonJS({
|
|
|
64
64
|
(function() {
|
|
65
65
|
"use strict";
|
|
66
66
|
var hasOwn = {}.hasOwnProperty;
|
|
67
|
-
function
|
|
67
|
+
function classNames35() {
|
|
68
68
|
var classes = "";
|
|
69
69
|
for (var i = 0; i < arguments.length; i++) {
|
|
70
70
|
var arg = arguments[i];
|
|
@@ -82,7 +82,7 @@ var require_classnames = __commonJS({
|
|
|
82
82
|
return "";
|
|
83
83
|
}
|
|
84
84
|
if (Array.isArray(arg)) {
|
|
85
|
-
return
|
|
85
|
+
return classNames35.apply(null, arg);
|
|
86
86
|
}
|
|
87
87
|
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
|
|
88
88
|
return arg.toString();
|
|
@@ -105,14 +105,14 @@ var require_classnames = __commonJS({
|
|
|
105
105
|
return value + newClass;
|
|
106
106
|
}
|
|
107
107
|
if (typeof module !== "undefined" && module.exports) {
|
|
108
|
-
|
|
109
|
-
module.exports =
|
|
108
|
+
classNames35.default = classNames35;
|
|
109
|
+
module.exports = classNames35;
|
|
110
110
|
} else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
|
|
111
111
|
define("classnames", [], function() {
|
|
112
|
-
return
|
|
112
|
+
return classNames35;
|
|
113
113
|
});
|
|
114
114
|
} else {
|
|
115
|
-
window.classNames =
|
|
115
|
+
window.classNames = classNames35;
|
|
116
116
|
}
|
|
117
117
|
})();
|
|
118
118
|
}
|
|
@@ -127,7 +127,7 @@ import { useDynamicFlow } from "@wise/dynamic-flow-client";
|
|
|
127
127
|
// src/dynamicFlow/telemetry/app-version.ts
|
|
128
128
|
var appVersion = (
|
|
129
129
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
130
|
-
typeof process !== "undefined" ? "5.
|
|
130
|
+
typeof process !== "undefined" ? "5.28.0" : "0.0.0"
|
|
131
131
|
);
|
|
132
132
|
|
|
133
133
|
// src/dynamicFlow/context-menu/useContextMenu.tsx
|
|
@@ -1025,18 +1025,128 @@ var shouldRenderActionPrompt = (props) => {
|
|
|
1025
1025
|
};
|
|
1026
1026
|
var AlertRenderer_default = AlertRenderer;
|
|
1027
1027
|
|
|
1028
|
-
// ../renderers/src/
|
|
1028
|
+
// ../renderers/src/CanadaPromo/BorderedBackgroundColoredBoxRenderer.tsx
|
|
1029
1029
|
var import_classnames5 = __toESM(require_classnames());
|
|
1030
|
+
|
|
1031
|
+
// ../renderers/src/CanadaPromo/color-utils.ts
|
|
1032
|
+
var URN_COLOR = "urn:wise:colors:";
|
|
1033
|
+
var validCategories = [
|
|
1034
|
+
"brand",
|
|
1035
|
+
"content",
|
|
1036
|
+
"interactive",
|
|
1037
|
+
"border",
|
|
1038
|
+
"background",
|
|
1039
|
+
"sentiment",
|
|
1040
|
+
"base",
|
|
1041
|
+
"contrast",
|
|
1042
|
+
"custom"
|
|
1043
|
+
];
|
|
1044
|
+
var customColorsMapping = {
|
|
1045
|
+
pix: "#4DB6AC"
|
|
1046
|
+
};
|
|
1047
|
+
var getColorFromUrn = (urn) => {
|
|
1048
|
+
if (!(urn == null ? void 0 : urn.startsWith(URN_COLOR))) return void 0;
|
|
1049
|
+
const parts = urn.slice(URN_COLOR.length).split(":");
|
|
1050
|
+
const category = parts[0];
|
|
1051
|
+
const name = parts[1];
|
|
1052
|
+
if (!category || !name) return void 0;
|
|
1053
|
+
if (!validCategories.includes(category)) return void 0;
|
|
1054
|
+
if (category === "brand" || category === "base") return `var(--color-${name})`;
|
|
1055
|
+
if (category === "custom") return customColorsMapping[name];
|
|
1056
|
+
return `var(--color-${category}-${name})`;
|
|
1057
|
+
};
|
|
1058
|
+
var getThemeClass = (themeTag) => {
|
|
1059
|
+
if (!themeTag) {
|
|
1060
|
+
return void 0;
|
|
1061
|
+
}
|
|
1062
|
+
const themeValue = themeTag.slice("theme-".length);
|
|
1063
|
+
switch (themeValue) {
|
|
1064
|
+
case "dark":
|
|
1065
|
+
return "np-theme-personal np-theme-personal--dark";
|
|
1066
|
+
case "light":
|
|
1067
|
+
return "np-theme-personal";
|
|
1068
|
+
default:
|
|
1069
|
+
return void 0;
|
|
1070
|
+
}
|
|
1071
|
+
};
|
|
1072
|
+
|
|
1073
|
+
// ../renderers/src/CanadaPromo/BorderedBackgroundColoredBoxRenderer.tsx
|
|
1030
1074
|
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1075
|
+
var BorderedBackgroundColoredBoxRenderer = {
|
|
1076
|
+
canRenderType: "box",
|
|
1077
|
+
canRender: ({ control }) => control === "borderedBackgroundColored",
|
|
1078
|
+
render: ({ children, margin, tags }) => {
|
|
1079
|
+
const backgroundColor = getColorFromUrn(tags == null ? void 0 : tags.find((t) => t.startsWith("urn:wise:colors:")));
|
|
1080
|
+
const themeClass = getThemeClass(tags == null ? void 0 : tags.find((t) => t.startsWith("theme-")));
|
|
1081
|
+
return /* @__PURE__ */ jsx22(
|
|
1082
|
+
"div",
|
|
1083
|
+
{
|
|
1084
|
+
className: (0, import_classnames5.default)("df-bordered-background-colored-box", themeClass, getMargin(margin)),
|
|
1085
|
+
style: backgroundColor ? { backgroundColor } : void 0,
|
|
1086
|
+
children
|
|
1087
|
+
}
|
|
1088
|
+
);
|
|
1089
|
+
}
|
|
1090
|
+
};
|
|
1091
|
+
|
|
1092
|
+
// ../renderers/src/CanadaPromo/ColoredUpsellRenderer.tsx
|
|
1093
|
+
var import_classnames6 = __toESM(require_classnames());
|
|
1094
|
+
import { Illustration as Illustration2 } from "@wise/art";
|
|
1095
|
+
import { jsx as jsx23, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1096
|
+
var URN_ILLUSTRATION_PREFIX = "urn:wise:illustrations:";
|
|
1097
|
+
var parseTextIntoTitleAndSubtitle = (text) => {
|
|
1098
|
+
const trimmedText = text.trim();
|
|
1099
|
+
if (!trimmedText) {
|
|
1100
|
+
return { title: "", subtitle: "" };
|
|
1101
|
+
}
|
|
1102
|
+
const [first, second] = trimmedText.split("\n", 2);
|
|
1103
|
+
if (first !== void 0 && second !== void 0) {
|
|
1104
|
+
return { title: first.trim(), subtitle: second.trim() };
|
|
1105
|
+
}
|
|
1106
|
+
return { title: "", subtitle: trimmedText };
|
|
1107
|
+
};
|
|
1108
|
+
var ColoredUpsellRenderer = {
|
|
1109
|
+
canRenderType: "upsell",
|
|
1110
|
+
canRender: ({ control }) => control === "promoColoredUpsell",
|
|
1111
|
+
render: ({ text, callToAction, media, margin, tags }) => {
|
|
1112
|
+
var _a;
|
|
1113
|
+
const backgroundColor = getColorFromUrn(tags == null ? void 0 : tags.find((t) => t.startsWith("urn:wise:colors:")));
|
|
1114
|
+
const themeClass = getThemeClass(tags == null ? void 0 : tags.find((t) => t.startsWith("theme-")));
|
|
1115
|
+
const mediaUri = (media == null ? void 0 : media.type) === "image" ? media.uri : void 0;
|
|
1116
|
+
const illustrationName = (mediaUri == null ? void 0 : mediaUri.startsWith(URN_ILLUSTRATION_PREFIX)) ? mediaUri.slice(URN_ILLUSTRATION_PREFIX.length).split("?")[0] : void 0;
|
|
1117
|
+
const { title, subtitle } = parseTextIntoTitleAndSubtitle(text);
|
|
1118
|
+
const actionTitle = (_a = callToAction == null ? void 0 : callToAction.title) != null ? _a : "";
|
|
1119
|
+
const handleActionClick = callToAction == null ? void 0 : callToAction.onClick;
|
|
1120
|
+
return /* @__PURE__ */ jsxs3(
|
|
1121
|
+
"div",
|
|
1122
|
+
{
|
|
1123
|
+
className: (0, import_classnames6.default)("df-colored-upsell", themeClass, getMargin(margin)),
|
|
1124
|
+
style: backgroundColor ? { backgroundColor } : void 0,
|
|
1125
|
+
children: [
|
|
1126
|
+
illustrationName && /* @__PURE__ */ jsx23("div", { className: "df-colored-upsell-illustration", children: /* @__PURE__ */ jsx23(Illustration2, { name: illustrationName, size: "small" }) }),
|
|
1127
|
+
/* @__PURE__ */ jsxs3("div", { className: "df-colored-upsell-content", children: [
|
|
1128
|
+
title && /* @__PURE__ */ jsx23("p", { className: "df-colored-upsell-title", children: title }),
|
|
1129
|
+
subtitle && /* @__PURE__ */ jsx23("p", { className: "df-colored-upsell-subtitle", children: subtitle }),
|
|
1130
|
+
handleActionClick && actionTitle && /* @__PURE__ */ jsx23("button", { type: "button", className: "df-colored-upsell-action", onClick: handleActionClick, children: actionTitle })
|
|
1131
|
+
] })
|
|
1132
|
+
]
|
|
1133
|
+
}
|
|
1134
|
+
);
|
|
1135
|
+
}
|
|
1136
|
+
};
|
|
1137
|
+
|
|
1138
|
+
// ../renderers/src/BoxRenderer.tsx
|
|
1139
|
+
var import_classnames7 = __toESM(require_classnames());
|
|
1140
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1031
1141
|
var BoxRenderer = {
|
|
1032
1142
|
canRenderType: "box",
|
|
1033
1143
|
render: ({ children, control, margin, width, tags }) => {
|
|
1034
1144
|
const hasFixedWidth = width !== "xl";
|
|
1035
1145
|
const hasBorder = control === "bordered" || control === "bordered-web";
|
|
1036
|
-
const contents = /* @__PURE__ */
|
|
1146
|
+
const contents = /* @__PURE__ */ jsx24(
|
|
1037
1147
|
"div",
|
|
1038
1148
|
{
|
|
1039
|
-
className: (0,
|
|
1149
|
+
className: (0, import_classnames7.default)(
|
|
1040
1150
|
"df-box-renderer",
|
|
1041
1151
|
{
|
|
1042
1152
|
"df-box-renderer-border": hasBorder,
|
|
@@ -1048,13 +1158,13 @@ var BoxRenderer = {
|
|
|
1048
1158
|
children
|
|
1049
1159
|
}
|
|
1050
1160
|
);
|
|
1051
|
-
return hasFixedWidth ? /* @__PURE__ */
|
|
1161
|
+
return hasFixedWidth ? /* @__PURE__ */ jsx24("div", { className: (0, import_classnames7.default)("df-box-renderer-fixed-width", getMargin(margin)), children: contents }) : contents;
|
|
1052
1162
|
}
|
|
1053
1163
|
};
|
|
1054
1164
|
var BoxRenderer_default = BoxRenderer;
|
|
1055
1165
|
|
|
1056
1166
|
// ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
|
|
1057
|
-
var
|
|
1167
|
+
var import_classnames8 = __toESM(require_classnames());
|
|
1058
1168
|
import { Button, InlineAlert } from "@transferwise/components";
|
|
1059
1169
|
import { useIntl } from "react-intl";
|
|
1060
1170
|
import { useEffect as useEffect2, useState as useState4 } from "react";
|
|
@@ -1070,7 +1180,7 @@ var loading_button_messages_default = defineMessages({
|
|
|
1070
1180
|
});
|
|
1071
1181
|
|
|
1072
1182
|
// ../renderers/src/ButtonRenderer/AddressValidationButtonRenderer.tsx
|
|
1073
|
-
import { jsx as
|
|
1183
|
+
import { jsx as jsx25, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1074
1184
|
var AddressValidationButtonRenderer = {
|
|
1075
1185
|
canRenderType: "button",
|
|
1076
1186
|
canRender: ({ control }) => control === "address-validation",
|
|
@@ -1090,16 +1200,16 @@ function AddressValidationButtonComponent(props) {
|
|
|
1090
1200
|
setSpinny(false);
|
|
1091
1201
|
}
|
|
1092
1202
|
};
|
|
1093
|
-
return /* @__PURE__ */
|
|
1203
|
+
return /* @__PURE__ */ jsxs4(
|
|
1094
1204
|
"div",
|
|
1095
1205
|
{
|
|
1096
|
-
className: (0,
|
|
1206
|
+
className: (0, import_classnames8.default)(
|
|
1097
1207
|
"d-flex flex-column",
|
|
1098
1208
|
getMargin(margin),
|
|
1099
1209
|
controlAndTagsToCSSClass({ control, tags })
|
|
1100
1210
|
),
|
|
1101
1211
|
children: [
|
|
1102
|
-
/* @__PURE__ */
|
|
1212
|
+
/* @__PURE__ */ jsx25(
|
|
1103
1213
|
Button,
|
|
1104
1214
|
{
|
|
1105
1215
|
v2: true,
|
|
@@ -1116,7 +1226,7 @@ function AddressValidationButtonComponent(props) {
|
|
|
1116
1226
|
children: title
|
|
1117
1227
|
}
|
|
1118
1228
|
),
|
|
1119
|
-
spinny && /* @__PURE__ */
|
|
1229
|
+
spinny && /* @__PURE__ */ jsx25(InlineAlert, { type: "warning", className: "m-x-auto", children: formatMessage(loading_button_messages_default.buttonLoadingMessage) })
|
|
1120
1230
|
]
|
|
1121
1231
|
}
|
|
1122
1232
|
);
|
|
@@ -1124,7 +1234,7 @@ function AddressValidationButtonComponent(props) {
|
|
|
1124
1234
|
var AddressValidationButtonRenderer_default = AddressValidationButtonRenderer;
|
|
1125
1235
|
|
|
1126
1236
|
// ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
|
|
1127
|
-
var
|
|
1237
|
+
var import_classnames9 = __toESM(require_classnames());
|
|
1128
1238
|
import { Button as Button2 } from "@transferwise/components";
|
|
1129
1239
|
import { useEffect as useEffect3, useState as useState5 } from "react";
|
|
1130
1240
|
|
|
@@ -1168,7 +1278,7 @@ var mapLegacyButtonSize = (size) => {
|
|
|
1168
1278
|
};
|
|
1169
1279
|
|
|
1170
1280
|
// ../renderers/src/ButtonRenderer/ButtonRenderer.tsx
|
|
1171
|
-
import { jsx as
|
|
1281
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1172
1282
|
var ButtonRenderer = {
|
|
1173
1283
|
canRenderType: "button",
|
|
1174
1284
|
render: ButtonComponent
|
|
@@ -1201,12 +1311,13 @@ function ButtonComponent(props) {
|
|
|
1201
1311
|
const buttonProps = {
|
|
1202
1312
|
v2: true,
|
|
1203
1313
|
block: control !== "small",
|
|
1204
|
-
className: (0,
|
|
1314
|
+
className: (0, import_classnames9.default)(
|
|
1205
1315
|
getMargin(margin),
|
|
1206
1316
|
"df-button",
|
|
1207
1317
|
{
|
|
1208
1318
|
small: control === "small",
|
|
1209
|
-
"align-center": tags == null ? void 0 : tags.includes("align-center")
|
|
1319
|
+
"align-center": tags == null ? void 0 : tags.includes("align-center"),
|
|
1320
|
+
"align-end": tags == null ? void 0 : tags.includes("align-end")
|
|
1210
1321
|
},
|
|
1211
1322
|
controlAndTagsToCSSClass({ control, tags })
|
|
1212
1323
|
),
|
|
@@ -1222,7 +1333,7 @@ function ButtonComponent(props) {
|
|
|
1222
1333
|
onClick();
|
|
1223
1334
|
}
|
|
1224
1335
|
};
|
|
1225
|
-
return /* @__PURE__ */
|
|
1336
|
+
return /* @__PURE__ */ jsx26(Button2, __spreadProps(__spreadValues({}, buttonProps), { children: title }));
|
|
1226
1337
|
}
|
|
1227
1338
|
var getSentiment = (context) => context === "negative" ? "negative" : "default";
|
|
1228
1339
|
var getPriority = (control, tags) => {
|
|
@@ -1276,13 +1387,13 @@ var help_messages_default = defineMessages2({
|
|
|
1276
1387
|
});
|
|
1277
1388
|
|
|
1278
1389
|
// ../renderers/src/components/Help.tsx
|
|
1279
|
-
import { jsx as
|
|
1390
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1280
1391
|
function Help({ help, onClick }) {
|
|
1281
1392
|
const intl = useIntl2();
|
|
1282
|
-
return /* @__PURE__ */
|
|
1393
|
+
return /* @__PURE__ */ jsx27(
|
|
1283
1394
|
Info,
|
|
1284
1395
|
{
|
|
1285
|
-
content: /* @__PURE__ */
|
|
1396
|
+
content: /* @__PURE__ */ jsx27(Markdown2, { config: { link: { target: "_blank" } }, children: help }),
|
|
1286
1397
|
presentation: "POPOVER",
|
|
1287
1398
|
size: "sm",
|
|
1288
1399
|
"aria-label": intl.formatMessage(help_messages_default.helpAria),
|
|
@@ -1293,16 +1404,16 @@ function Help({ help, onClick }) {
|
|
|
1293
1404
|
var Help_default = Help;
|
|
1294
1405
|
|
|
1295
1406
|
// ../renderers/src/components/LabelContentWithHelp.tsx
|
|
1296
|
-
import { jsx as
|
|
1407
|
+
import { jsx as jsx28, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1297
1408
|
function LabelContentWithHelp({ text, help }) {
|
|
1298
|
-
return /* @__PURE__ */
|
|
1409
|
+
return /* @__PURE__ */ jsxs5("div", { children: [
|
|
1299
1410
|
text,
|
|
1300
|
-
/* @__PURE__ */
|
|
1411
|
+
/* @__PURE__ */ jsx28(Help_default, { help })
|
|
1301
1412
|
] });
|
|
1302
1413
|
}
|
|
1303
1414
|
|
|
1304
1415
|
// ../renderers/src/components/FieldInput.tsx
|
|
1305
|
-
import { jsx as
|
|
1416
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1306
1417
|
function FieldInput({
|
|
1307
1418
|
id,
|
|
1308
1419
|
children,
|
|
@@ -1317,9 +1428,9 @@ function FieldInput({
|
|
|
1317
1428
|
tags
|
|
1318
1429
|
}) {
|
|
1319
1430
|
var _a;
|
|
1320
|
-
const labelContent = label && help ? /* @__PURE__ */
|
|
1431
|
+
const labelContent = label && help ? /* @__PURE__ */ jsx29(LabelContentWithHelp, { text: label, help }) : label;
|
|
1321
1432
|
const { ref } = useScrollToError(validation, features);
|
|
1322
|
-
return /* @__PURE__ */
|
|
1433
|
+
return /* @__PURE__ */ jsx29("div", { ref, children: /* @__PURE__ */ jsx29(
|
|
1323
1434
|
Field,
|
|
1324
1435
|
{
|
|
1325
1436
|
id,
|
|
@@ -1348,26 +1459,26 @@ var FieldInput_default = FieldInput;
|
|
|
1348
1459
|
|
|
1349
1460
|
// ../renderers/src/utils/listItem/getAdditionalText.tsx
|
|
1350
1461
|
import { ListItem } from "@transferwise/components";
|
|
1351
|
-
import { jsx as
|
|
1462
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1352
1463
|
var getAdditionalText = (additionalText) => {
|
|
1353
1464
|
if (!additionalText) {
|
|
1354
1465
|
return void 0;
|
|
1355
1466
|
}
|
|
1356
|
-
return /* @__PURE__ */
|
|
1467
|
+
return /* @__PURE__ */ jsx30(ListItem.AdditionalInfo, { children: additionalText });
|
|
1357
1468
|
};
|
|
1358
1469
|
|
|
1359
1470
|
// ../renderers/src/utils/listItem/getInlineAlert.tsx
|
|
1360
1471
|
import { ListItem as ListItem2 } from "@transferwise/components";
|
|
1361
|
-
import { jsx as
|
|
1472
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
1362
1473
|
var getInlineAlert = (inlineAlert) => {
|
|
1363
1474
|
if (!inlineAlert) return void 0;
|
|
1364
1475
|
const { context, media, content } = inlineAlert;
|
|
1365
|
-
return /* @__PURE__ */
|
|
1476
|
+
return /* @__PURE__ */ jsx31(ListItem2.Prompt, { sentiment: context, media: media && getInlinePromptMedia(media), children: content });
|
|
1366
1477
|
};
|
|
1367
1478
|
|
|
1368
1479
|
// ../renderers/src/utils/listItem/getMedia.tsx
|
|
1369
|
-
import { jsx as
|
|
1370
|
-
var getMedia = (media, preferAvatar) => media ? /* @__PURE__ */
|
|
1480
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
1481
|
+
var getMedia = (media, preferAvatar) => media ? /* @__PURE__ */ jsx32(OptionMedia, { media, preferAvatar }) : void 0;
|
|
1371
1482
|
|
|
1372
1483
|
// ../renderers/src/utils/listItem/getSupportingValues.ts
|
|
1373
1484
|
var getSupportingValues = (supportingValues) => {
|
|
@@ -1375,18 +1486,18 @@ var getSupportingValues = (supportingValues) => {
|
|
|
1375
1486
|
};
|
|
1376
1487
|
|
|
1377
1488
|
// ../renderers/src/CheckboxInputRenderer.tsx
|
|
1378
|
-
import { jsx as
|
|
1489
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
1379
1490
|
var CheckboxInputRenderer = {
|
|
1380
1491
|
canRenderType: "input-checkbox",
|
|
1381
1492
|
render: (props) => {
|
|
1382
1493
|
switch (props.control) {
|
|
1383
1494
|
case "switch-item":
|
|
1384
|
-
return /* @__PURE__ */
|
|
1495
|
+
return /* @__PURE__ */ jsx33(SwitchItemComponent, __spreadValues({}, props));
|
|
1385
1496
|
case "checkbox-item":
|
|
1386
|
-
return /* @__PURE__ */
|
|
1497
|
+
return /* @__PURE__ */ jsx33(CheckboxItemComponent, __spreadValues({}, props));
|
|
1387
1498
|
case "checkbox":
|
|
1388
1499
|
default:
|
|
1389
|
-
return /* @__PURE__ */
|
|
1500
|
+
return /* @__PURE__ */ jsx33(CheckboxComponent, __spreadValues({}, props));
|
|
1390
1501
|
}
|
|
1391
1502
|
}
|
|
1392
1503
|
};
|
|
@@ -1411,7 +1522,7 @@ var CheckboxComponent = (props) => {
|
|
|
1411
1522
|
"value"
|
|
1412
1523
|
]);
|
|
1413
1524
|
const checkboxProps = __spreadProps(__spreadValues({}, rest), { label: title, secondary: description, checked: value });
|
|
1414
|
-
return /* @__PURE__ */
|
|
1525
|
+
return /* @__PURE__ */ jsx33(
|
|
1415
1526
|
FieldInput_default,
|
|
1416
1527
|
{
|
|
1417
1528
|
id,
|
|
@@ -1424,7 +1535,7 @@ var CheckboxComponent = (props) => {
|
|
|
1424
1535
|
features: rest.features,
|
|
1425
1536
|
control,
|
|
1426
1537
|
tags: rest.tags,
|
|
1427
|
-
children: /* @__PURE__ */
|
|
1538
|
+
children: /* @__PURE__ */ jsx33(Checkbox, __spreadValues({ id }, checkboxProps))
|
|
1428
1539
|
}
|
|
1429
1540
|
);
|
|
1430
1541
|
};
|
|
@@ -1443,7 +1554,7 @@ var CheckboxItemComponent = (props) => {
|
|
|
1443
1554
|
onChange
|
|
1444
1555
|
} = props;
|
|
1445
1556
|
const { ref } = useScrollToError(validationState, features);
|
|
1446
|
-
return /* @__PURE__ */
|
|
1557
|
+
return /* @__PURE__ */ jsx33("div", { ref, children: /* @__PURE__ */ jsx33(
|
|
1447
1558
|
ListItem3,
|
|
1448
1559
|
__spreadProps(__spreadValues({
|
|
1449
1560
|
title,
|
|
@@ -1452,7 +1563,7 @@ var CheckboxItemComponent = (props) => {
|
|
|
1452
1563
|
media: getMedia(media, false),
|
|
1453
1564
|
disabled,
|
|
1454
1565
|
prompt: getInlineAlertOrValidation(validationState, inlineAlert),
|
|
1455
|
-
control: /* @__PURE__ */
|
|
1566
|
+
control: /* @__PURE__ */ jsx33(ListItem3.Checkbox, { checked: value, onChange: () => onChange(!value) })
|
|
1456
1567
|
}, getSupportingValues(supportingValues)), {
|
|
1457
1568
|
className: controlAndTagsToCSSClass(props)
|
|
1458
1569
|
})
|
|
@@ -1473,7 +1584,7 @@ var SwitchItemComponent = (props) => {
|
|
|
1473
1584
|
onChange
|
|
1474
1585
|
} = props;
|
|
1475
1586
|
const { ref } = useScrollToError(validationState, features);
|
|
1476
|
-
return /* @__PURE__ */
|
|
1587
|
+
return /* @__PURE__ */ jsx33("div", { ref, children: /* @__PURE__ */ jsx33(
|
|
1477
1588
|
ListItem3,
|
|
1478
1589
|
__spreadProps(__spreadValues({
|
|
1479
1590
|
title,
|
|
@@ -1482,7 +1593,7 @@ var SwitchItemComponent = (props) => {
|
|
|
1482
1593
|
media: getMedia(media, false),
|
|
1483
1594
|
disabled,
|
|
1484
1595
|
prompt: getInlineAlertOrValidation(validationState, inlineAlert),
|
|
1485
|
-
control: /* @__PURE__ */
|
|
1596
|
+
control: /* @__PURE__ */ jsx33(ListItem3.Switch, { checked: value, onClick: () => onChange(!value) })
|
|
1486
1597
|
}, getSupportingValues(supportingValues)), {
|
|
1487
1598
|
className: controlAndTagsToCSSClass(props)
|
|
1488
1599
|
})
|
|
@@ -1490,7 +1601,7 @@ var SwitchItemComponent = (props) => {
|
|
|
1490
1601
|
};
|
|
1491
1602
|
var getInlineAlertOrValidation = (validationState, inlineAlert) => {
|
|
1492
1603
|
if ((validationState == null ? void 0 : validationState.status) === "invalid") {
|
|
1493
|
-
return /* @__PURE__ */
|
|
1604
|
+
return /* @__PURE__ */ jsx33(ListItem3.Prompt, { sentiment: "negative", children: validationState.message });
|
|
1494
1605
|
}
|
|
1495
1606
|
return getInlineAlert(inlineAlert);
|
|
1496
1607
|
};
|
|
@@ -1519,30 +1630,63 @@ var generic_error_messages_default = defineMessages3({
|
|
|
1519
1630
|
}
|
|
1520
1631
|
});
|
|
1521
1632
|
|
|
1522
|
-
// ../../node_modules/.pnpm/@tanstack+react-virtual@3.
|
|
1633
|
+
// ../../node_modules/.pnpm/@tanstack+react-virtual@3.14.10_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@tanstack/react-virtual/dist/esm/index.js
|
|
1523
1634
|
import * as React from "react";
|
|
1524
1635
|
import { flushSync } from "react-dom";
|
|
1525
1636
|
|
|
1526
|
-
// ../../node_modules/.pnpm/@tanstack+virtual-core@3.
|
|
1637
|
+
// ../../node_modules/.pnpm/@tanstack+virtual-core@3.17.8/node_modules/@tanstack/virtual-core/dist/esm/lazy-measurements.js
|
|
1638
|
+
function createLazyMeasurementsView(count, flat, getItemKey) {
|
|
1639
|
+
const cache = new Array(count);
|
|
1640
|
+
return new Proxy(cache, {
|
|
1641
|
+
get(target, prop, receiver) {
|
|
1642
|
+
if (typeof prop === "string") {
|
|
1643
|
+
const c = prop.charCodeAt(0);
|
|
1644
|
+
if (c >= 48 && c <= 57) {
|
|
1645
|
+
const i = +prop;
|
|
1646
|
+
if (Number.isInteger(i) && i >= 0 && i < count) {
|
|
1647
|
+
let v = target[i];
|
|
1648
|
+
if (!v) {
|
|
1649
|
+
const s = flat[i * 2];
|
|
1650
|
+
v = target[i] = {
|
|
1651
|
+
index: i,
|
|
1652
|
+
key: getItemKey(i),
|
|
1653
|
+
start: s,
|
|
1654
|
+
size: flat[i * 2 + 1],
|
|
1655
|
+
end: s + flat[i * 2 + 1],
|
|
1656
|
+
lane: 0
|
|
1657
|
+
};
|
|
1658
|
+
}
|
|
1659
|
+
return v;
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
if (prop === "length") return count;
|
|
1663
|
+
}
|
|
1664
|
+
return Reflect.get(target, prop, receiver);
|
|
1665
|
+
}
|
|
1666
|
+
});
|
|
1667
|
+
}
|
|
1668
|
+
|
|
1669
|
+
// ../../node_modules/.pnpm/@tanstack+virtual-core@3.17.8/node_modules/@tanstack/virtual-core/dist/esm/utils.js
|
|
1527
1670
|
function memo(getDeps, fn, opts) {
|
|
1528
1671
|
var _a;
|
|
1529
1672
|
let deps = (_a = opts.initialDeps) != null ? _a : [];
|
|
1530
1673
|
let result;
|
|
1531
1674
|
let isInitial = true;
|
|
1532
1675
|
function memoizedFunction() {
|
|
1533
|
-
var _a2
|
|
1534
|
-
|
|
1535
|
-
|
|
1676
|
+
var _a2;
|
|
1677
|
+
const debugEnabled = !!opts.key && !!((_a2 = opts.debug) == null ? void 0 : _a2.call(opts));
|
|
1678
|
+
let depTime = 0;
|
|
1679
|
+
if (debugEnabled) depTime = Date.now();
|
|
1536
1680
|
const newDeps = getDeps();
|
|
1537
1681
|
const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);
|
|
1538
1682
|
if (!depsChanged) {
|
|
1539
1683
|
return result;
|
|
1540
1684
|
}
|
|
1541
1685
|
deps = newDeps;
|
|
1542
|
-
let resultTime;
|
|
1543
|
-
if (
|
|
1686
|
+
let resultTime = 0;
|
|
1687
|
+
if (debugEnabled) resultTime = Date.now();
|
|
1544
1688
|
result = fn(...newDeps);
|
|
1545
|
-
if (
|
|
1689
|
+
if (debugEnabled) {
|
|
1546
1690
|
const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;
|
|
1547
1691
|
const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;
|
|
1548
1692
|
const resultFpsPercentage = resultEndTime / 16;
|
|
@@ -1586,20 +1730,39 @@ function notUndefined(value, msg) {
|
|
|
1586
1730
|
var approxEqual = (a, b) => Math.abs(a - b) < 1.01;
|
|
1587
1731
|
var debounce = (targetWindow, fn, ms) => {
|
|
1588
1732
|
let timeoutId;
|
|
1589
|
-
return
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1733
|
+
return Object.assign(
|
|
1734
|
+
function(...args) {
|
|
1735
|
+
targetWindow.clearTimeout(timeoutId);
|
|
1736
|
+
timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);
|
|
1737
|
+
},
|
|
1738
|
+
{
|
|
1739
|
+
// The handle is closure-local, so a caller that has already
|
|
1740
|
+
// unsubscribed has no way to stop a queued call. Teardown paths use
|
|
1741
|
+
// this to drop the pending invocation instead of letting it land.
|
|
1742
|
+
cancel: () => {
|
|
1743
|
+
targetWindow.clearTimeout(timeoutId);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
);
|
|
1593
1747
|
};
|
|
1594
1748
|
|
|
1595
|
-
// ../../node_modules/.pnpm/@tanstack+virtual-core@3.
|
|
1749
|
+
// ../../node_modules/.pnpm/@tanstack+virtual-core@3.17.8/node_modules/@tanstack/virtual-core/dist/esm/index.js
|
|
1750
|
+
var _isIOSResult;
|
|
1751
|
+
var isIOSWebKit = () => {
|
|
1752
|
+
if (_isIOSResult !== void 0) return _isIOSResult;
|
|
1753
|
+
if (typeof navigator === "undefined") return _isIOSResult = false;
|
|
1754
|
+
if (/iP(hone|od|ad)/.test(navigator.userAgent)) return _isIOSResult = true;
|
|
1755
|
+
const mtp = navigator.maxTouchPoints;
|
|
1756
|
+
return _isIOSResult = navigator.platform === "MacIntel" && mtp !== void 0 && mtp > 0;
|
|
1757
|
+
};
|
|
1596
1758
|
var defaultKeyExtractor = (index) => index;
|
|
1597
1759
|
var defaultRangeExtractor = (range) => {
|
|
1598
1760
|
const start = Math.max(range.startIndex - range.overscan, 0);
|
|
1599
1761
|
const end = Math.min(range.endIndex + range.overscan, range.count - 1);
|
|
1600
|
-
const
|
|
1601
|
-
|
|
1602
|
-
|
|
1762
|
+
const len = end - start + 1;
|
|
1763
|
+
const arr = new Array(len);
|
|
1764
|
+
for (let i = 0; i < len; i++) {
|
|
1765
|
+
arr[i] = start + i;
|
|
1603
1766
|
}
|
|
1604
1767
|
return arr;
|
|
1605
1768
|
};
|
|
@@ -1621,7 +1784,7 @@ var observeWindowRect = (instance, cb) => {
|
|
|
1621
1784
|
};
|
|
1622
1785
|
};
|
|
1623
1786
|
var supportsScrollend = typeof window == "undefined" ? true : "onscrollend" in window;
|
|
1624
|
-
var
|
|
1787
|
+
var observeOffset = (instance, cb, readOffset) => {
|
|
1625
1788
|
const element = instance.scrollElement;
|
|
1626
1789
|
if (!element) {
|
|
1627
1790
|
return;
|
|
@@ -1630,23 +1793,21 @@ var observeWindowOffset = (instance, cb) => {
|
|
|
1630
1793
|
if (!targetWindow) {
|
|
1631
1794
|
return;
|
|
1632
1795
|
}
|
|
1796
|
+
const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
|
|
1633
1797
|
let offset = 0;
|
|
1634
|
-
const fallback =
|
|
1798
|
+
const fallback = registerScrollendEvent ? null : debounce(
|
|
1635
1799
|
targetWindow,
|
|
1636
|
-
() =>
|
|
1637
|
-
cb(offset, false);
|
|
1638
|
-
},
|
|
1800
|
+
() => cb(offset, false),
|
|
1639
1801
|
instance.options.isScrollingResetDelay
|
|
1640
1802
|
);
|
|
1641
1803
|
const createHandler = (isScrolling) => () => {
|
|
1642
|
-
offset = element
|
|
1643
|
-
fallback();
|
|
1804
|
+
offset = readOffset(element);
|
|
1805
|
+
fallback == null ? void 0 : fallback();
|
|
1644
1806
|
cb(offset, isScrolling);
|
|
1645
1807
|
};
|
|
1646
1808
|
const handler = createHandler(true);
|
|
1647
1809
|
const endHandler = createHandler(false);
|
|
1648
1810
|
element.addEventListener("scroll", handler, addEventListenerOptions);
|
|
1649
|
-
const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;
|
|
1650
1811
|
if (registerScrollendEvent) {
|
|
1651
1812
|
element.addEventListener("scrollend", endHandler, addEventListenerOptions);
|
|
1652
1813
|
}
|
|
@@ -1655,9 +1816,21 @@ var observeWindowOffset = (instance, cb) => {
|
|
|
1655
1816
|
if (registerScrollendEvent) {
|
|
1656
1817
|
element.removeEventListener("scrollend", endHandler);
|
|
1657
1818
|
}
|
|
1819
|
+
fallback == null ? void 0 : fallback.cancel();
|
|
1658
1820
|
};
|
|
1659
1821
|
};
|
|
1822
|
+
var observeWindowOffset = (instance, cb) => observeOffset(
|
|
1823
|
+
instance,
|
|
1824
|
+
cb,
|
|
1825
|
+
(win) => instance.options.horizontal ? win.scrollX : win.scrollY
|
|
1826
|
+
);
|
|
1660
1827
|
var measureElement = (element, entry, instance) => {
|
|
1828
|
+
var _a;
|
|
1829
|
+
if (instance.options.useCachedMeasurements) {
|
|
1830
|
+
const index = instance.indexFromElement(element);
|
|
1831
|
+
const key = instance.options.getItemKey(index);
|
|
1832
|
+
return (_a = instance.itemSizeCache.get(key)) != null ? _a : instance.options.estimateSize(index);
|
|
1833
|
+
}
|
|
1661
1834
|
if (entry == null ? void 0 : entry.borderBoxSize) {
|
|
1662
1835
|
const box = entry.borderBoxSize[0];
|
|
1663
1836
|
if (box) {
|
|
@@ -1667,19 +1840,27 @@ var measureElement = (element, entry, instance) => {
|
|
|
1667
1840
|
return size;
|
|
1668
1841
|
}
|
|
1669
1842
|
}
|
|
1843
|
+
if (!entry) {
|
|
1844
|
+
const index = instance.indexFromElement(element);
|
|
1845
|
+
const key = instance.options.getItemKey(index);
|
|
1846
|
+
const cachedSize = instance.itemSizeCache.get(key);
|
|
1847
|
+
if (cachedSize !== void 0) {
|
|
1848
|
+
return cachedSize;
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1670
1851
|
return element[instance.options.horizontal ? "offsetWidth" : "offsetHeight"];
|
|
1671
1852
|
};
|
|
1672
|
-
var
|
|
1853
|
+
var scrollWithAdjustments = (offset, {
|
|
1673
1854
|
adjustments = 0,
|
|
1674
1855
|
behavior
|
|
1675
1856
|
}, instance) => {
|
|
1676
1857
|
var _a, _b;
|
|
1677
|
-
const toOffset = offset + adjustments;
|
|
1678
1858
|
(_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {
|
|
1679
|
-
[instance.options.horizontal ? "left" : "top"]:
|
|
1859
|
+
[instance.options.horizontal ? "left" : "top"]: offset + adjustments,
|
|
1680
1860
|
behavior
|
|
1681
1861
|
});
|
|
1682
1862
|
};
|
|
1863
|
+
var windowScroll = scrollWithAdjustments;
|
|
1683
1864
|
var Virtualizer = class {
|
|
1684
1865
|
constructor(opts) {
|
|
1685
1866
|
this.unsubs = [];
|
|
@@ -1688,16 +1869,24 @@ var Virtualizer = class {
|
|
|
1688
1869
|
this.isScrolling = false;
|
|
1689
1870
|
this.scrollState = null;
|
|
1690
1871
|
this.measurementsCache = [];
|
|
1872
|
+
this._flatMeasurements = null;
|
|
1691
1873
|
this.itemSizeCache = /* @__PURE__ */ new Map();
|
|
1874
|
+
this.itemSizeCacheVersion = 0;
|
|
1692
1875
|
this.laneAssignments = /* @__PURE__ */ new Map();
|
|
1693
|
-
this.
|
|
1876
|
+
this.pendingMin = null;
|
|
1694
1877
|
this.prevLanes = void 0;
|
|
1695
1878
|
this.lanesChangedFlag = false;
|
|
1696
1879
|
this.lanesSettling = false;
|
|
1880
|
+
this.pendingScrollAnchor = null;
|
|
1697
1881
|
this.scrollRect = null;
|
|
1698
1882
|
this.scrollOffset = null;
|
|
1699
1883
|
this.scrollDirection = null;
|
|
1700
1884
|
this.scrollAdjustments = 0;
|
|
1885
|
+
this._iosDeferredAdjustment = 0;
|
|
1886
|
+
this._iosTouching = false;
|
|
1887
|
+
this._iosJustTouchEnded = false;
|
|
1888
|
+
this._iosTouchEndTimerId = null;
|
|
1889
|
+
this._intendedScrollOffset = null;
|
|
1701
1890
|
this.elementsCache = /* @__PURE__ */ new Map();
|
|
1702
1891
|
this.now = () => {
|
|
1703
1892
|
var _a2;
|
|
@@ -1720,8 +1909,15 @@ var Virtualizer = class {
|
|
|
1720
1909
|
const index = this.indexFromElement(node);
|
|
1721
1910
|
if (!node.isConnected) {
|
|
1722
1911
|
this.observer.unobserve(node);
|
|
1912
|
+
for (const [cacheKey, cachedNode] of this.elementsCache) {
|
|
1913
|
+
if (cachedNode === node) {
|
|
1914
|
+
this.elementsCache.delete(cacheKey);
|
|
1915
|
+
break;
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1723
1918
|
return;
|
|
1724
1919
|
}
|
|
1920
|
+
if (!this.isIndexInRange(index)) return;
|
|
1725
1921
|
if (this.shouldMeasureDuringScroll(index)) {
|
|
1726
1922
|
this.resizeItem(
|
|
1727
1923
|
index,
|
|
@@ -1751,10 +1947,9 @@ var Virtualizer = class {
|
|
|
1751
1947
|
})();
|
|
1752
1948
|
this.range = null;
|
|
1753
1949
|
this.setOptions = (opts2) => {
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
this.options = __spreadValues({
|
|
1950
|
+
var _a2, _b2, _c;
|
|
1951
|
+
var _a, _b;
|
|
1952
|
+
const merged = {
|
|
1758
1953
|
debug: false,
|
|
1759
1954
|
initialOffset: 0,
|
|
1760
1955
|
overscan: 1,
|
|
@@ -1774,13 +1969,80 @@ var Virtualizer = class {
|
|
|
1774
1969
|
indexAttribute: "data-index",
|
|
1775
1970
|
initialMeasurementsCache: [],
|
|
1776
1971
|
lanes: 1,
|
|
1972
|
+
anchorTo: "start",
|
|
1973
|
+
followOnAppend: false,
|
|
1974
|
+
scrollEndThreshold: 1,
|
|
1777
1975
|
isScrollingResetDelay: 150,
|
|
1778
1976
|
enabled: true,
|
|
1779
1977
|
isRtl: false,
|
|
1780
1978
|
useScrollendEvent: false,
|
|
1781
1979
|
useAnimationFrameWithResizeObserver: false,
|
|
1782
|
-
laneAssignmentMode: "estimate"
|
|
1783
|
-
|
|
1980
|
+
laneAssignmentMode: "estimate",
|
|
1981
|
+
useCachedMeasurements: false
|
|
1982
|
+
};
|
|
1983
|
+
for (const key in opts2) {
|
|
1984
|
+
const v = opts2[key];
|
|
1985
|
+
if (v !== void 0) merged[key] = v;
|
|
1986
|
+
}
|
|
1987
|
+
const prevOptions = this.options;
|
|
1988
|
+
let anchor = null;
|
|
1989
|
+
let followOnAppend = null;
|
|
1990
|
+
let edgeKeysChanged = false;
|
|
1991
|
+
if (prevOptions !== void 0 && prevOptions.enabled && merged.enabled && merged.anchorTo === "end" && this.scrollElement !== null) {
|
|
1992
|
+
const prevCount = prevOptions.count;
|
|
1993
|
+
const nextCount = merged.count;
|
|
1994
|
+
const measurements = this.getMeasurements();
|
|
1995
|
+
const prevFirstKey = prevCount > 0 ? (_a2 = (_a = measurements[0]) == null ? void 0 : _a.key) != null ? _a2 : prevOptions.getItemKey(0) : null;
|
|
1996
|
+
const prevLastKey = prevCount > 0 ? (_b2 = (_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) != null ? _b2 : prevOptions.getItemKey(prevCount - 1) : null;
|
|
1997
|
+
const didCountChange = nextCount !== prevCount;
|
|
1998
|
+
const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);
|
|
1999
|
+
if (didEdgeKeysChange) {
|
|
2000
|
+
edgeKeysChanged = true;
|
|
2001
|
+
const item = prevCount > 0 ? (_c = this.getVirtualItemForOffset(this.getScrollOffset())) != null ? _c : measurements[0] : null;
|
|
2002
|
+
if (item) {
|
|
2003
|
+
anchor = [item.key, this.getScrollOffset() - item.start];
|
|
2004
|
+
}
|
|
2005
|
+
const behavior = merged.followOnAppend === true ? "auto" : merged.followOnAppend || null;
|
|
2006
|
+
if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {
|
|
2007
|
+
followOnAppend = behavior;
|
|
2008
|
+
}
|
|
2009
|
+
}
|
|
2010
|
+
}
|
|
2011
|
+
this.options = merged;
|
|
2012
|
+
if (edgeKeysChanged) {
|
|
2013
|
+
this.pendingMin = 0;
|
|
2014
|
+
this.itemSizeCacheVersion++;
|
|
2015
|
+
}
|
|
2016
|
+
let anchorResolved = false;
|
|
2017
|
+
let anchorDelta = 0;
|
|
2018
|
+
if (anchor && this.scrollOffset !== null) {
|
|
2019
|
+
const [anchorKey, anchorOffset] = anchor;
|
|
2020
|
+
const newMeasurements = this.getMeasurements();
|
|
2021
|
+
const { count, getItemKey } = this.options;
|
|
2022
|
+
let idx = 0;
|
|
2023
|
+
while (idx < count && getItemKey(idx) !== anchorKey) {
|
|
2024
|
+
idx++;
|
|
2025
|
+
}
|
|
2026
|
+
if (idx < count) {
|
|
2027
|
+
const anchorItem = newMeasurements[idx];
|
|
2028
|
+
if (anchorItem) {
|
|
2029
|
+
const newOffset = Math.max(0, anchorItem.start + anchorOffset);
|
|
2030
|
+
if (newOffset !== this.scrollOffset) {
|
|
2031
|
+
anchorDelta = newOffset - this.scrollOffset;
|
|
2032
|
+
this.scrollOffset = newOffset;
|
|
2033
|
+
anchorResolved = true;
|
|
2034
|
+
}
|
|
2035
|
+
}
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
2038
|
+
if (anchorResolved || followOnAppend) {
|
|
2039
|
+
this.pendingScrollAnchor = [
|
|
2040
|
+
anchorResolved ? anchor[0] : null,
|
|
2041
|
+
anchorResolved ? anchor[1] : 0,
|
|
2042
|
+
followOnAppend,
|
|
2043
|
+
anchorDelta
|
|
2044
|
+
];
|
|
2045
|
+
}
|
|
1784
2046
|
};
|
|
1785
2047
|
this.notify = (sync) => {
|
|
1786
2048
|
var _a, _b;
|
|
@@ -1817,6 +2079,11 @@ var Virtualizer = class {
|
|
|
1817
2079
|
this.rafId = null;
|
|
1818
2080
|
}
|
|
1819
2081
|
this.scrollState = null;
|
|
2082
|
+
this.isScrolling = false;
|
|
2083
|
+
this.scrollDirection = null;
|
|
2084
|
+
this._iosDeferredAdjustment = 0;
|
|
2085
|
+
this._iosTouching = false;
|
|
2086
|
+
this._iosJustTouchEnded = false;
|
|
1820
2087
|
this.scrollElement = null;
|
|
1821
2088
|
this.targetWindow = null;
|
|
1822
2089
|
};
|
|
@@ -1852,21 +2119,110 @@ var Virtualizer = class {
|
|
|
1852
2119
|
);
|
|
1853
2120
|
this.unsubs.push(
|
|
1854
2121
|
this.options.observeElementOffset(this, (offset, isScrolling) => {
|
|
2122
|
+
if (isScrolling && this._intendedScrollOffset === null && offset === this.scrollOffset) {
|
|
2123
|
+
return;
|
|
2124
|
+
}
|
|
2125
|
+
if (this._intendedScrollOffset !== null && Math.abs(offset - this._intendedScrollOffset) < 1.5) {
|
|
2126
|
+
offset = this._intendedScrollOffset;
|
|
2127
|
+
}
|
|
2128
|
+
this._intendedScrollOffset = null;
|
|
1855
2129
|
this.scrollAdjustments = 0;
|
|
1856
|
-
|
|
2130
|
+
const prevOffset = this.getScrollOffset();
|
|
2131
|
+
this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? "forward" : "backward" : null;
|
|
1857
2132
|
this.scrollOffset = offset;
|
|
1858
2133
|
this.isScrolling = isScrolling;
|
|
2134
|
+
this._flushIosDeferredIfReady();
|
|
1859
2135
|
if (this.scrollState) {
|
|
1860
2136
|
this.scheduleScrollReconcile();
|
|
1861
2137
|
}
|
|
1862
2138
|
this.maybeNotify();
|
|
1863
2139
|
})
|
|
1864
2140
|
);
|
|
2141
|
+
if ("addEventListener" in this.scrollElement) {
|
|
2142
|
+
const scrollEl = this.scrollElement;
|
|
2143
|
+
const onTouchStart = () => {
|
|
2144
|
+
this._iosTouching = true;
|
|
2145
|
+
this._iosJustTouchEnded = false;
|
|
2146
|
+
if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {
|
|
2147
|
+
this.targetWindow.clearTimeout(this._iosTouchEndTimerId);
|
|
2148
|
+
this._iosTouchEndTimerId = null;
|
|
2149
|
+
}
|
|
2150
|
+
};
|
|
2151
|
+
const onTouchEnd = () => {
|
|
2152
|
+
this._iosTouching = false;
|
|
2153
|
+
if (!isIOSWebKit() || this.targetWindow == null) {
|
|
2154
|
+
return;
|
|
2155
|
+
}
|
|
2156
|
+
this._iosJustTouchEnded = true;
|
|
2157
|
+
this._iosTouchEndTimerId = this.targetWindow.setTimeout(() => {
|
|
2158
|
+
this._iosJustTouchEnded = false;
|
|
2159
|
+
this._iosTouchEndTimerId = null;
|
|
2160
|
+
this._flushIosDeferredIfReady();
|
|
2161
|
+
}, 150);
|
|
2162
|
+
};
|
|
2163
|
+
scrollEl.addEventListener(
|
|
2164
|
+
"touchstart",
|
|
2165
|
+
onTouchStart,
|
|
2166
|
+
addEventListenerOptions
|
|
2167
|
+
);
|
|
2168
|
+
scrollEl.addEventListener(
|
|
2169
|
+
"touchend",
|
|
2170
|
+
onTouchEnd,
|
|
2171
|
+
addEventListenerOptions
|
|
2172
|
+
);
|
|
2173
|
+
this.unsubs.push(() => {
|
|
2174
|
+
scrollEl.removeEventListener("touchstart", onTouchStart);
|
|
2175
|
+
scrollEl.removeEventListener("touchend", onTouchEnd);
|
|
2176
|
+
if (this._iosTouchEndTimerId !== null && this.targetWindow != null) {
|
|
2177
|
+
this.targetWindow.clearTimeout(this._iosTouchEndTimerId);
|
|
2178
|
+
this._iosTouchEndTimerId = null;
|
|
2179
|
+
}
|
|
2180
|
+
});
|
|
2181
|
+
}
|
|
1865
2182
|
this._scrollToOffset(this.getScrollOffset(), {
|
|
1866
2183
|
adjustments: void 0,
|
|
1867
2184
|
behavior: void 0
|
|
1868
2185
|
});
|
|
1869
2186
|
}
|
|
2187
|
+
const anchor = this.pendingScrollAnchor;
|
|
2188
|
+
this.pendingScrollAnchor = null;
|
|
2189
|
+
if (anchor && this.scrollElement && this.options.enabled) {
|
|
2190
|
+
const [key, _offset, followOnAppend, anchorDelta] = anchor;
|
|
2191
|
+
if (key !== null && !followOnAppend) {
|
|
2192
|
+
if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {
|
|
2193
|
+
if (anchorDelta !== 0) {
|
|
2194
|
+
this._iosDeferredAdjustment += anchorDelta;
|
|
2195
|
+
}
|
|
2196
|
+
} else {
|
|
2197
|
+
this._scrollToOffset(this.getScrollOffset(), {
|
|
2198
|
+
adjustments: void 0,
|
|
2199
|
+
behavior: void 0
|
|
2200
|
+
});
|
|
2201
|
+
}
|
|
2202
|
+
}
|
|
2203
|
+
if (followOnAppend) {
|
|
2204
|
+
this.scrollToEnd({ behavior: followOnAppend });
|
|
2205
|
+
}
|
|
2206
|
+
}
|
|
2207
|
+
};
|
|
2208
|
+
this._flushIosDeferredIfReady = () => {
|
|
2209
|
+
if (this._iosDeferredAdjustment === 0) return;
|
|
2210
|
+
if (this.isScrolling) return;
|
|
2211
|
+
if (this._iosTouching) return;
|
|
2212
|
+
if (this._iosJustTouchEnded) return;
|
|
2213
|
+
const cur = this.getScrollOffset();
|
|
2214
|
+
const max = this.getMaxScrollOffset();
|
|
2215
|
+
if (cur < 0 || cur > max) return;
|
|
2216
|
+
if (this._iosDeferredAdjustment < 0 && cur >= max - 1) {
|
|
2217
|
+
this._iosDeferredAdjustment = 0;
|
|
2218
|
+
return;
|
|
2219
|
+
}
|
|
2220
|
+
const delta = this._iosDeferredAdjustment;
|
|
2221
|
+
this._iosDeferredAdjustment = 0;
|
|
2222
|
+
this._scrollToOffset(cur, {
|
|
2223
|
+
adjustments: this.scrollAdjustments += delta,
|
|
2224
|
+
behavior: void 0
|
|
2225
|
+
});
|
|
1870
2226
|
};
|
|
1871
2227
|
this.rafId = null;
|
|
1872
2228
|
this.getSize = () => {
|
|
@@ -1887,33 +2243,6 @@ var Virtualizer = class {
|
|
|
1887
2243
|
this.scrollOffset = (_a = this.scrollOffset) != null ? _a : typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset;
|
|
1888
2244
|
return this.scrollOffset;
|
|
1889
2245
|
};
|
|
1890
|
-
this.getFurthestMeasurement = (measurements, index) => {
|
|
1891
|
-
const furthestMeasurementsFound = /* @__PURE__ */ new Map();
|
|
1892
|
-
const furthestMeasurements = /* @__PURE__ */ new Map();
|
|
1893
|
-
for (let m = index - 1; m >= 0; m--) {
|
|
1894
|
-
const measurement = measurements[m];
|
|
1895
|
-
if (furthestMeasurementsFound.has(measurement.lane)) {
|
|
1896
|
-
continue;
|
|
1897
|
-
}
|
|
1898
|
-
const previousFurthestMeasurement = furthestMeasurements.get(
|
|
1899
|
-
measurement.lane
|
|
1900
|
-
);
|
|
1901
|
-
if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {
|
|
1902
|
-
furthestMeasurements.set(measurement.lane, measurement);
|
|
1903
|
-
} else if (measurement.end < previousFurthestMeasurement.end) {
|
|
1904
|
-
furthestMeasurementsFound.set(measurement.lane, true);
|
|
1905
|
-
}
|
|
1906
|
-
if (furthestMeasurementsFound.size === this.options.lanes) {
|
|
1907
|
-
break;
|
|
1908
|
-
}
|
|
1909
|
-
}
|
|
1910
|
-
return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {
|
|
1911
|
-
if (a.end === b.end) {
|
|
1912
|
-
return a.index - b.index;
|
|
1913
|
-
}
|
|
1914
|
-
return a.end - b.end;
|
|
1915
|
-
})[0] : void 0;
|
|
1916
|
-
};
|
|
1917
2246
|
this.getMeasurementOptions = memo(
|
|
1918
2247
|
() => [
|
|
1919
2248
|
this.options.count,
|
|
@@ -1922,15 +2251,16 @@ var Virtualizer = class {
|
|
|
1922
2251
|
this.options.getItemKey,
|
|
1923
2252
|
this.options.enabled,
|
|
1924
2253
|
this.options.lanes,
|
|
1925
|
-
this.options.laneAssignmentMode
|
|
2254
|
+
this.options.laneAssignmentMode,
|
|
2255
|
+
this.options.gap
|
|
1926
2256
|
],
|
|
1927
|
-
(count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode) => {
|
|
2257
|
+
(count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap) => {
|
|
1928
2258
|
const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;
|
|
1929
2259
|
if (lanesChanged) {
|
|
1930
2260
|
this.lanesChangedFlag = true;
|
|
1931
2261
|
}
|
|
1932
2262
|
this.prevLanes = lanes;
|
|
1933
|
-
this.
|
|
2263
|
+
this.pendingMin = null;
|
|
1934
2264
|
return {
|
|
1935
2265
|
count,
|
|
1936
2266
|
paddingStart,
|
|
@@ -1938,15 +2268,17 @@ var Virtualizer = class {
|
|
|
1938
2268
|
getItemKey,
|
|
1939
2269
|
enabled,
|
|
1940
2270
|
lanes,
|
|
1941
|
-
laneAssignmentMode
|
|
2271
|
+
laneAssignmentMode,
|
|
2272
|
+
gap
|
|
1942
2273
|
};
|
|
1943
2274
|
},
|
|
1944
2275
|
{
|
|
1945
2276
|
key: false
|
|
1946
2277
|
}
|
|
1947
2278
|
);
|
|
2279
|
+
this.isIndexInRange = (index) => index >= 0 && index < this.options.count;
|
|
1948
2280
|
this.getMeasurements = memo(
|
|
1949
|
-
() => [this.getMeasurementOptions(), this.
|
|
2281
|
+
() => [this.getMeasurementOptions(), this.itemSizeCacheVersion],
|
|
1950
2282
|
({
|
|
1951
2283
|
count,
|
|
1952
2284
|
paddingStart,
|
|
@@ -1954,8 +2286,11 @@ var Virtualizer = class {
|
|
|
1954
2286
|
getItemKey,
|
|
1955
2287
|
enabled,
|
|
1956
2288
|
lanes,
|
|
1957
|
-
laneAssignmentMode
|
|
1958
|
-
|
|
2289
|
+
laneAssignmentMode,
|
|
2290
|
+
gap
|
|
2291
|
+
}, _itemSizeCacheVersion) => {
|
|
2292
|
+
var _a;
|
|
2293
|
+
const itemSizeCache = this.itemSizeCache;
|
|
1959
2294
|
if (!enabled) {
|
|
1960
2295
|
this.measurementsCache = [];
|
|
1961
2296
|
this.itemSizeCache.clear();
|
|
@@ -1975,7 +2310,7 @@ var Virtualizer = class {
|
|
|
1975
2310
|
this.measurementsCache = [];
|
|
1976
2311
|
this.itemSizeCache.clear();
|
|
1977
2312
|
this.laneAssignments.clear();
|
|
1978
|
-
this.
|
|
2313
|
+
this.pendingMin = null;
|
|
1979
2314
|
}
|
|
1980
2315
|
if (this.measurementsCache.length === 0 && !this.lanesSettling) {
|
|
1981
2316
|
this.measurementsCache = this.options.initialMeasurementsCache;
|
|
@@ -1983,19 +2318,51 @@ var Virtualizer = class {
|
|
|
1983
2318
|
this.itemSizeCache.set(item.key, item.size);
|
|
1984
2319
|
});
|
|
1985
2320
|
}
|
|
1986
|
-
const min = this.lanesSettling ? 0 : this.
|
|
1987
|
-
this.
|
|
2321
|
+
const min = this.lanesSettling ? 0 : (_a = this.pendingMin) != null ? _a : 0;
|
|
2322
|
+
this.pendingMin = null;
|
|
1988
2323
|
if (this.lanesSettling && this.measurementsCache.length === count) {
|
|
1989
2324
|
this.lanesSettling = false;
|
|
1990
2325
|
}
|
|
2326
|
+
if (lanes === 1) {
|
|
2327
|
+
const need = count * 2;
|
|
2328
|
+
let flat = this._flatMeasurements;
|
|
2329
|
+
if (!flat || flat.length < need) {
|
|
2330
|
+
const next = new Float64Array(need);
|
|
2331
|
+
if (flat && min > 0) next.set(flat.subarray(0, min * 2));
|
|
2332
|
+
flat = next;
|
|
2333
|
+
this._flatMeasurements = flat;
|
|
2334
|
+
}
|
|
2335
|
+
let runningStart;
|
|
2336
|
+
if (min === 0) {
|
|
2337
|
+
runningStart = paddingStart + scrollMargin;
|
|
2338
|
+
} else {
|
|
2339
|
+
const prevIdx = min - 1;
|
|
2340
|
+
runningStart = flat[prevIdx * 2] + flat[prevIdx * 2 + 1] + gap;
|
|
2341
|
+
}
|
|
2342
|
+
for (let i = min; i < count; i++) {
|
|
2343
|
+
const key = getItemKey(i);
|
|
2344
|
+
const measuredSize = itemSizeCache.get(key);
|
|
2345
|
+
const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i);
|
|
2346
|
+
flat[i * 2] = runningStart;
|
|
2347
|
+
flat[i * 2 + 1] = size;
|
|
2348
|
+
runningStart += size + gap;
|
|
2349
|
+
}
|
|
2350
|
+
const view = createLazyMeasurementsView(count, flat, getItemKey);
|
|
2351
|
+
this.measurementsCache = view;
|
|
2352
|
+
return view;
|
|
2353
|
+
}
|
|
1991
2354
|
const measurements = this.measurementsCache.slice(0, min);
|
|
1992
2355
|
const laneLastIndex = new Array(lanes).fill(
|
|
1993
2356
|
void 0
|
|
1994
2357
|
);
|
|
2358
|
+
const laneEnds = new Float64Array(lanes);
|
|
2359
|
+
let filledLanes = 0;
|
|
1995
2360
|
for (let m = 0; m < min; m++) {
|
|
1996
2361
|
const item = measurements[m];
|
|
1997
2362
|
if (item) {
|
|
2363
|
+
if (laneLastIndex[item.lane] === void 0) filledLanes++;
|
|
1998
2364
|
laneLastIndex[item.lane] = m;
|
|
2365
|
+
laneEnds[item.lane] = item.end;
|
|
1999
2366
|
}
|
|
2000
2367
|
}
|
|
2001
2368
|
for (let i = min; i < count; i++) {
|
|
@@ -2008,12 +2375,28 @@ var Virtualizer = class {
|
|
|
2008
2375
|
lane = cachedLane;
|
|
2009
2376
|
const prevIndex = laneLastIndex[lane];
|
|
2010
2377
|
const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;
|
|
2011
|
-
start = prevInLane ? prevInLane.end +
|
|
2378
|
+
start = prevInLane ? prevInLane.end + gap : paddingStart + scrollMargin;
|
|
2379
|
+
} else if (filledLanes === lanes) {
|
|
2380
|
+
let bestLane = 0;
|
|
2381
|
+
let bestEnd = laneEnds[0];
|
|
2382
|
+
let bestIdx = laneLastIndex[0];
|
|
2383
|
+
for (let l = 1; l < lanes; l++) {
|
|
2384
|
+
const e = laneEnds[l];
|
|
2385
|
+
if (e < bestEnd || e === bestEnd && laneLastIndex[l] < bestIdx) {
|
|
2386
|
+
bestLane = l;
|
|
2387
|
+
bestEnd = e;
|
|
2388
|
+
bestIdx = laneLastIndex[l];
|
|
2389
|
+
}
|
|
2390
|
+
}
|
|
2391
|
+
lane = bestLane;
|
|
2392
|
+
start = bestEnd + gap;
|
|
2393
|
+
if (shouldCacheLane) {
|
|
2394
|
+
this.laneAssignments.set(i, lane);
|
|
2395
|
+
}
|
|
2012
2396
|
} else {
|
|
2013
|
-
|
|
2014
|
-
start =
|
|
2015
|
-
|
|
2016
|
-
if (this.options.lanes > 1 && shouldCacheLane) {
|
|
2397
|
+
lane = i % this.options.lanes;
|
|
2398
|
+
start = paddingStart + scrollMargin;
|
|
2399
|
+
if (shouldCacheLane) {
|
|
2017
2400
|
this.laneAssignments.set(i, lane);
|
|
2018
2401
|
}
|
|
2019
2402
|
}
|
|
@@ -2028,7 +2411,9 @@ var Virtualizer = class {
|
|
|
2028
2411
|
key,
|
|
2029
2412
|
lane
|
|
2030
2413
|
};
|
|
2414
|
+
if (laneLastIndex[lane] === void 0) filledLanes++;
|
|
2031
2415
|
laneLastIndex[lane] = i;
|
|
2416
|
+
laneEnds[lane] = end;
|
|
2032
2417
|
}
|
|
2033
2418
|
this.measurementsCache = measurements;
|
|
2034
2419
|
return measurements;
|
|
@@ -2046,12 +2431,20 @@ var Virtualizer = class {
|
|
|
2046
2431
|
this.options.lanes
|
|
2047
2432
|
],
|
|
2048
2433
|
(measurements, outerSize, scrollOffset, lanes) => {
|
|
2049
|
-
|
|
2434
|
+
if (measurements.length === 0 || outerSize === 0) {
|
|
2435
|
+
this.range = null;
|
|
2436
|
+
return null;
|
|
2437
|
+
}
|
|
2438
|
+
this.range = calculateRangeImpl(
|
|
2050
2439
|
measurements,
|
|
2051
2440
|
outerSize,
|
|
2052
2441
|
scrollOffset,
|
|
2053
|
-
lanes
|
|
2054
|
-
|
|
2442
|
+
lanes,
|
|
2443
|
+
// Pass the typed array so binary search + forward-walk can read
|
|
2444
|
+
// start/end directly from Float64Array, skipping the Proxy traps.
|
|
2445
|
+
lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null
|
|
2446
|
+
);
|
|
2447
|
+
return this.range;
|
|
2055
2448
|
},
|
|
2056
2449
|
{
|
|
2057
2450
|
key: "calculateRange",
|
|
@@ -2132,6 +2525,7 @@ var Virtualizer = class {
|
|
|
2132
2525
|
return;
|
|
2133
2526
|
}
|
|
2134
2527
|
const index = this.indexFromElement(node);
|
|
2528
|
+
if (!this.isIndexInRange(index)) return;
|
|
2135
2529
|
const key = this.options.getItemKey(index);
|
|
2136
2530
|
const prevNode = this.elementsCache.get(key);
|
|
2137
2531
|
if (prevNode !== node) {
|
|
@@ -2146,25 +2540,74 @@ var Virtualizer = class {
|
|
|
2146
2540
|
}
|
|
2147
2541
|
};
|
|
2148
2542
|
this.resizeItem = (index, size) => {
|
|
2149
|
-
var _a2;
|
|
2150
|
-
var _a;
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2543
|
+
var _a2, _b2;
|
|
2544
|
+
var _a, _b;
|
|
2545
|
+
if (!this.isIndexInRange(index)) return;
|
|
2546
|
+
let cachedSize;
|
|
2547
|
+
let itemStart;
|
|
2548
|
+
let key;
|
|
2549
|
+
const flat = this._flatMeasurements;
|
|
2550
|
+
if (this.options.lanes === 1 && flat !== null) {
|
|
2551
|
+
key = this.options.getItemKey(index);
|
|
2552
|
+
itemStart = flat[index * 2];
|
|
2553
|
+
cachedSize = flat[index * 2 + 1];
|
|
2554
|
+
} else {
|
|
2555
|
+
const item = this.measurementsCache[index];
|
|
2556
|
+
if (!item) return;
|
|
2557
|
+
key = item.key;
|
|
2558
|
+
itemStart = item.start;
|
|
2559
|
+
cachedSize = item.size;
|
|
2560
|
+
}
|
|
2561
|
+
const itemSize = (_a2 = this.itemSizeCache.get(key)) != null ? _a2 : cachedSize;
|
|
2154
2562
|
const delta = size - itemSize;
|
|
2155
2563
|
if (delta !== 0) {
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2564
|
+
const wasAtEnd = this.options.anchorTo === "end" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== "smooth" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;
|
|
2565
|
+
const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;
|
|
2566
|
+
const scrollOffsetWithAdj = this.getScrollOffset() + this.scrollAdjustments;
|
|
2567
|
+
const isFirstMeasure = !this.itemSizeCache.has(key);
|
|
2568
|
+
const defaultShouldAdjust = isFirstMeasure ? (
|
|
2569
|
+
// First measurement: compensate any item whose top sits above the
|
|
2570
|
+
// fold — the estimate→actual delta must be corrected regardless of
|
|
2571
|
+
// scroll direction, since the whole estimated block was above it.
|
|
2572
|
+
itemStart < scrollOffsetWithAdj
|
|
2573
|
+
) : (
|
|
2574
|
+
// Re-measurement: only compensate an item that is ENTIRELY above the
|
|
2575
|
+
// fold. An item that merely *spans* the fold (top above, bottom
|
|
2576
|
+
// below — e.g. a streaming chat message growing at its bottom)
|
|
2577
|
+
// changes size *below* the anchor point, so shifting scrollTop by the
|
|
2578
|
+
// delta would drag the viewport downward on every growth (#1218).
|
|
2579
|
+
// Also skip during backward scroll to avoid the "items jump while
|
|
2580
|
+
// scrolling up" cascade.
|
|
2581
|
+
itemStart + itemSize <= scrollOffsetWithAdj && this.scrollDirection !== "backward"
|
|
2582
|
+
);
|
|
2583
|
+
const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== "smooth" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(
|
|
2584
|
+
// The callback expects a VirtualItem; build one lazily only
|
|
2585
|
+
// when the consumer actually supplied a custom predicate.
|
|
2586
|
+
(_b2 = this.measurementsCache[index]) != null ? _b2 : {
|
|
2587
|
+
index,
|
|
2588
|
+
key,
|
|
2589
|
+
start: itemStart,
|
|
2590
|
+
size: cachedSize,
|
|
2591
|
+
end: itemStart + cachedSize,
|
|
2592
|
+
lane: 0
|
|
2593
|
+
},
|
|
2594
|
+
delta,
|
|
2595
|
+
this
|
|
2596
|
+
) : defaultShouldAdjust);
|
|
2597
|
+
if (this.pendingMin === null || index < this.pendingMin) {
|
|
2598
|
+
this.pendingMin = index;
|
|
2599
|
+
}
|
|
2600
|
+
this.itemSizeCache.set(key, size);
|
|
2601
|
+
this.itemSizeCacheVersion++;
|
|
2602
|
+
let adjustedSync = false;
|
|
2603
|
+
if (wasAtEnd) {
|
|
2604
|
+
adjustedSync = this.applyScrollAdjustment(
|
|
2605
|
+
this.getTotalSize() - prevTotalSize
|
|
2606
|
+
);
|
|
2607
|
+
} else if (shouldAdjustScroll) {
|
|
2608
|
+
adjustedSync = this.applyScrollAdjustment(delta);
|
|
2164
2609
|
}
|
|
2165
|
-
this.
|
|
2166
|
-
this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));
|
|
2167
|
-
this.notify(false);
|
|
2610
|
+
this.notify(adjustedSync);
|
|
2168
2611
|
}
|
|
2169
2612
|
};
|
|
2170
2613
|
this.getVirtualItems = memo(
|
|
@@ -2188,14 +2631,15 @@ var Virtualizer = class {
|
|
|
2188
2631
|
if (measurements.length === 0) {
|
|
2189
2632
|
return void 0;
|
|
2190
2633
|
}
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2634
|
+
const flat = this._flatMeasurements;
|
|
2635
|
+
const useFlat = this.options.lanes === 1 && flat != null;
|
|
2636
|
+
const idx = findNearestBinarySearch(
|
|
2637
|
+
0,
|
|
2638
|
+
measurements.length - 1,
|
|
2639
|
+
useFlat ? (i) => flat[i * 2] : (i) => notUndefined(measurements[i]).start,
|
|
2640
|
+
offset
|
|
2198
2641
|
);
|
|
2642
|
+
return notUndefined(measurements[idx]);
|
|
2199
2643
|
};
|
|
2200
2644
|
this.getMaxScrollOffset = () => {
|
|
2201
2645
|
if (!this.scrollElement) return 0;
|
|
@@ -2206,6 +2650,18 @@ var Virtualizer = class {
|
|
|
2206
2650
|
return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;
|
|
2207
2651
|
}
|
|
2208
2652
|
};
|
|
2653
|
+
this.getVirtualDistanceFromEnd = () => {
|
|
2654
|
+
return Math.max(
|
|
2655
|
+
this.getTotalSize() - this.getSize() - this.getScrollOffset(),
|
|
2656
|
+
0
|
|
2657
|
+
);
|
|
2658
|
+
};
|
|
2659
|
+
this.getDistanceFromEnd = () => {
|
|
2660
|
+
return Math.max(this.getMaxScrollOffset() - this.getScrollOffset(), 0);
|
|
2661
|
+
};
|
|
2662
|
+
this.isAtEnd = (threshold = this.options.scrollEndThreshold) => {
|
|
2663
|
+
return this.getDistanceFromEnd() <= threshold;
|
|
2664
|
+
};
|
|
2209
2665
|
this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {
|
|
2210
2666
|
if (!this.scrollElement) return 0;
|
|
2211
2667
|
const size = this.getSize();
|
|
@@ -2246,6 +2702,7 @@ var Virtualizer = class {
|
|
|
2246
2702
|
];
|
|
2247
2703
|
};
|
|
2248
2704
|
this.scrollToOffset = (toOffset, { align = "start", behavior = "auto" } = {}) => {
|
|
2705
|
+
this._iosDeferredAdjustment = 0;
|
|
2249
2706
|
const offset = this.getOffsetForAlignment(toOffset, align);
|
|
2250
2707
|
const now = this.now();
|
|
2251
2708
|
this.scrollState = {
|
|
@@ -2263,6 +2720,7 @@ var Virtualizer = class {
|
|
|
2263
2720
|
align: initialAlign = "auto",
|
|
2264
2721
|
behavior = "auto"
|
|
2265
2722
|
} = {}) => {
|
|
2723
|
+
this._iosDeferredAdjustment = 0;
|
|
2266
2724
|
index = Math.max(0, Math.min(index, this.options.count - 1));
|
|
2267
2725
|
const offsetInfo = this.getOffsetForIndex(index, initialAlign);
|
|
2268
2726
|
if (!offsetInfo) {
|
|
@@ -2295,6 +2753,18 @@ var Virtualizer = class {
|
|
|
2295
2753
|
this._scrollToOffset(offset, { adjustments: void 0, behavior });
|
|
2296
2754
|
this.scheduleScrollReconcile();
|
|
2297
2755
|
};
|
|
2756
|
+
this.scrollToEnd = ({ behavior = "auto" } = {}) => {
|
|
2757
|
+
if (this.options.count > 0) {
|
|
2758
|
+
this.scrollToIndex(this.options.count - 1, {
|
|
2759
|
+
align: "end",
|
|
2760
|
+
behavior
|
|
2761
|
+
});
|
|
2762
|
+
return;
|
|
2763
|
+
}
|
|
2764
|
+
this.scrollToOffset(Math.max(this.getTotalSize() - this.getSize(), 0), {
|
|
2765
|
+
behavior
|
|
2766
|
+
});
|
|
2767
|
+
};
|
|
2298
2768
|
this.getTotalSize = () => {
|
|
2299
2769
|
var _a2;
|
|
2300
2770
|
var _a;
|
|
@@ -2303,7 +2773,13 @@ var Virtualizer = class {
|
|
|
2303
2773
|
if (measurements.length === 0) {
|
|
2304
2774
|
end = this.options.paddingStart;
|
|
2305
2775
|
} else if (this.options.lanes === 1) {
|
|
2306
|
-
|
|
2776
|
+
const lastIdx = measurements.length - 1;
|
|
2777
|
+
const flat = this._flatMeasurements;
|
|
2778
|
+
if (flat != null) {
|
|
2779
|
+
end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];
|
|
2780
|
+
} else {
|
|
2781
|
+
end = (_a2 = (_a = measurements[lastIdx]) == null ? void 0 : _a.end) != null ? _a2 : 0;
|
|
2782
|
+
}
|
|
2307
2783
|
} else {
|
|
2308
2784
|
const endByLane = Array(this.options.lanes).fill(null);
|
|
2309
2785
|
let endIndex = measurements.length - 1;
|
|
@@ -2321,19 +2797,65 @@ var Virtualizer = class {
|
|
|
2321
2797
|
0
|
|
2322
2798
|
);
|
|
2323
2799
|
};
|
|
2800
|
+
this.takeSnapshot = () => {
|
|
2801
|
+
const snapshot = [];
|
|
2802
|
+
if (this.itemSizeCache.size === 0) return snapshot;
|
|
2803
|
+
const m = this.getMeasurements();
|
|
2804
|
+
for (const item of m) {
|
|
2805
|
+
if (item && this.itemSizeCache.has(item.key)) {
|
|
2806
|
+
snapshot.push({
|
|
2807
|
+
index: item.index,
|
|
2808
|
+
key: item.key,
|
|
2809
|
+
start: item.start,
|
|
2810
|
+
size: item.size,
|
|
2811
|
+
end: item.end,
|
|
2812
|
+
lane: item.lane
|
|
2813
|
+
});
|
|
2814
|
+
}
|
|
2815
|
+
}
|
|
2816
|
+
return snapshot;
|
|
2817
|
+
};
|
|
2324
2818
|
this._scrollToOffset = (offset, {
|
|
2325
2819
|
adjustments,
|
|
2326
2820
|
behavior
|
|
2327
2821
|
}) => {
|
|
2822
|
+
this._intendedScrollOffset = offset + (adjustments != null ? adjustments : 0);
|
|
2328
2823
|
this.options.scrollToFn(offset, { behavior, adjustments }, this);
|
|
2329
2824
|
};
|
|
2330
2825
|
this.measure = () => {
|
|
2331
|
-
this.
|
|
2332
|
-
this.
|
|
2826
|
+
this.pendingMin = null;
|
|
2827
|
+
this.itemSizeCache.clear();
|
|
2828
|
+
this.laneAssignments.clear();
|
|
2829
|
+
this.itemSizeCacheVersion++;
|
|
2333
2830
|
this.notify(false);
|
|
2334
2831
|
};
|
|
2335
2832
|
this.setOptions(opts);
|
|
2336
2833
|
}
|
|
2834
|
+
// Returns `true` when it performed a synchronous `scrollTop` write this
|
|
2835
|
+
// tick, `false` when the delta was zero or the write was deferred (iOS).
|
|
2836
|
+
// `resizeItem` uses that to decide whether the follow-up `notify` must be
|
|
2837
|
+
// synchronous so the grown transforms commit in the same paint (#1227).
|
|
2838
|
+
applyScrollAdjustment(delta, behavior) {
|
|
2839
|
+
if (delta === 0) return false;
|
|
2840
|
+
if (this.options.debug) {
|
|
2841
|
+
console.info("correction", delta);
|
|
2842
|
+
}
|
|
2843
|
+
if (isIOSWebKit() && (this.isScrolling || this._iosTouching || this._iosJustTouchEnded)) {
|
|
2844
|
+
this._iosDeferredAdjustment += delta;
|
|
2845
|
+
return false;
|
|
2846
|
+
} else {
|
|
2847
|
+
this._scrollToOffset(this.getScrollOffset(), {
|
|
2848
|
+
adjustments: this.scrollAdjustments += delta,
|
|
2849
|
+
behavior
|
|
2850
|
+
});
|
|
2851
|
+
if (this.scrollOffset !== null) {
|
|
2852
|
+
this.scrollOffset += this.scrollAdjustments;
|
|
2853
|
+
if (this.scrollOffset < 0) this.scrollOffset = 0;
|
|
2854
|
+
this.scrollAdjustments = 0;
|
|
2855
|
+
}
|
|
2856
|
+
return true;
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2337
2859
|
scheduleScrollReconcile() {
|
|
2338
2860
|
if (!this.targetWindow) {
|
|
2339
2861
|
this.scrollState = null;
|
|
@@ -2361,17 +2883,28 @@ var Virtualizer = class {
|
|
|
2361
2883
|
if (!targetChanged && approxEqual(targetOffset, this.getScrollOffset())) {
|
|
2362
2884
|
this.scrollState.stableFrames++;
|
|
2363
2885
|
if (this.scrollState.stableFrames >= STABLE_FRAMES) {
|
|
2886
|
+
if (this.getScrollOffset() !== targetOffset) {
|
|
2887
|
+
this._scrollToOffset(targetOffset, {
|
|
2888
|
+
adjustments: void 0,
|
|
2889
|
+
behavior: "auto"
|
|
2890
|
+
});
|
|
2891
|
+
}
|
|
2364
2892
|
this.scrollState = null;
|
|
2365
2893
|
return;
|
|
2366
2894
|
}
|
|
2367
2895
|
} else {
|
|
2368
2896
|
this.scrollState.stableFrames = 0;
|
|
2369
2897
|
if (targetChanged) {
|
|
2898
|
+
const viewport = this.getSize() || 600;
|
|
2899
|
+
const distance = Math.abs(targetOffset - this.getScrollOffset());
|
|
2900
|
+
const keepSmooth = this.scrollState.behavior === "smooth" && distance > viewport;
|
|
2370
2901
|
this.scrollState.lastTargetOffset = targetOffset;
|
|
2371
|
-
|
|
2902
|
+
if (!keepSmooth) {
|
|
2903
|
+
this.scrollState.behavior = "auto";
|
|
2904
|
+
}
|
|
2372
2905
|
this._scrollToOffset(targetOffset, {
|
|
2373
2906
|
adjustments: void 0,
|
|
2374
|
-
behavior: "auto"
|
|
2907
|
+
behavior: keepSmooth ? "smooth" : "auto"
|
|
2375
2908
|
});
|
|
2376
2909
|
}
|
|
2377
2910
|
}
|
|
@@ -2396,26 +2929,41 @@ var findNearestBinarySearch = (low, high, getCurrentValue, value) => {
|
|
|
2396
2929
|
return 0;
|
|
2397
2930
|
}
|
|
2398
2931
|
};
|
|
2399
|
-
function
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2932
|
+
function findNearestBinarySearchFlat(flat, high, value) {
|
|
2933
|
+
let low = 0;
|
|
2934
|
+
while (low <= high) {
|
|
2935
|
+
const middle = (low + high) / 2 | 0;
|
|
2936
|
+
const currentValue = flat[middle * 2];
|
|
2937
|
+
if (currentValue < value) {
|
|
2938
|
+
low = middle + 1;
|
|
2939
|
+
} else if (currentValue > value) {
|
|
2940
|
+
high = middle - 1;
|
|
2941
|
+
} else {
|
|
2942
|
+
return middle;
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
return low > 0 ? low - 1 : 0;
|
|
2946
|
+
}
|
|
2947
|
+
function calculateRangeImpl(measurements, outerSize, scrollOffset, lanes, flat) {
|
|
2405
2948
|
const lastIndex = measurements.length - 1;
|
|
2406
|
-
const getOffset = (index) => measurements[index].start;
|
|
2407
2949
|
if (measurements.length <= lanes) {
|
|
2408
|
-
return {
|
|
2409
|
-
startIndex: 0,
|
|
2410
|
-
endIndex: lastIndex
|
|
2411
|
-
};
|
|
2950
|
+
return { startIndex: 0, endIndex: lastIndex };
|
|
2412
2951
|
}
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2952
|
+
if (lanes === 1 && flat !== null) {
|
|
2953
|
+
const startIndex2 = findNearestBinarySearchFlat(
|
|
2954
|
+
flat,
|
|
2955
|
+
lastIndex,
|
|
2956
|
+
scrollOffset
|
|
2957
|
+
);
|
|
2958
|
+
let endIndex2 = startIndex2;
|
|
2959
|
+
const limit = scrollOffset + outerSize;
|
|
2960
|
+
while (endIndex2 < lastIndex && flat[endIndex2 * 2] + flat[endIndex2 * 2 + 1] < limit) {
|
|
2961
|
+
endIndex2++;
|
|
2962
|
+
}
|
|
2963
|
+
return { startIndex: startIndex2, endIndex: endIndex2 };
|
|
2964
|
+
}
|
|
2965
|
+
const getStart = (index) => measurements[index].start;
|
|
2966
|
+
let startIndex = findNearestBinarySearch(0, lastIndex, getStart, scrollOffset);
|
|
2419
2967
|
let endIndex = startIndex;
|
|
2420
2968
|
if (lanes === 1) {
|
|
2421
2969
|
while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {
|
|
@@ -2440,36 +2988,119 @@ function calculateRange({
|
|
|
2440
2988
|
return { startIndex, endIndex };
|
|
2441
2989
|
}
|
|
2442
2990
|
|
|
2443
|
-
// ../../node_modules/.pnpm/@tanstack+react-virtual@3.
|
|
2991
|
+
// ../../node_modules/.pnpm/@tanstack+react-virtual@3.14.10_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@tanstack/react-virtual/dist/esm/index.js
|
|
2444
2992
|
var useIsomorphicLayoutEffect = typeof document !== "undefined" ? React.useLayoutEffect : React.useEffect;
|
|
2445
2993
|
function useVirtualizerBase(_a) {
|
|
2446
2994
|
var _b = _a, {
|
|
2447
|
-
useFlushSync = true
|
|
2995
|
+
useFlushSync = true,
|
|
2996
|
+
directDomUpdates = false,
|
|
2997
|
+
directDomUpdatesMode = "transform"
|
|
2448
2998
|
} = _b, options = __objRest(_b, [
|
|
2449
|
-
"useFlushSync"
|
|
2999
|
+
"useFlushSync",
|
|
3000
|
+
"directDomUpdates",
|
|
3001
|
+
"directDomUpdatesMode"
|
|
2450
3002
|
]);
|
|
2451
|
-
const rerender = React.useReducer(() =>
|
|
3003
|
+
const rerender = React.useReducer((x) => x + 1, 0)[1];
|
|
3004
|
+
const directRef = React.useRef({
|
|
3005
|
+
enabled: directDomUpdates,
|
|
3006
|
+
mode: directDomUpdatesMode,
|
|
3007
|
+
container: null,
|
|
3008
|
+
lastSize: null,
|
|
3009
|
+
// Keyed by the element itself so a remounted node (same key, new DOM
|
|
3010
|
+
// node — e.g. when `enabled` is toggled off then on) is treated as fresh
|
|
3011
|
+
// and gets its style written.
|
|
3012
|
+
lastPositions: /* @__PURE__ */ new WeakMap(),
|
|
3013
|
+
prevRange: null
|
|
3014
|
+
});
|
|
3015
|
+
directRef.current.enabled = directDomUpdates;
|
|
3016
|
+
directRef.current.mode = directDomUpdatesMode;
|
|
3017
|
+
const applyContainerSize = (instance2) => {
|
|
3018
|
+
const state = directRef.current;
|
|
3019
|
+
if (!state.enabled || !state.container) return;
|
|
3020
|
+
const totalSize = instance2.getTotalSize();
|
|
3021
|
+
if (totalSize !== state.lastSize) {
|
|
3022
|
+
state.lastSize = totalSize;
|
|
3023
|
+
const sizeAxis = instance2.options.horizontal ? "width" : "height";
|
|
3024
|
+
state.container.style[sizeAxis] = `${totalSize}px`;
|
|
3025
|
+
}
|
|
3026
|
+
};
|
|
3027
|
+
const applyDirectStyles = (instance2) => {
|
|
3028
|
+
const state = directRef.current;
|
|
3029
|
+
if (!state.enabled || !state.container) return;
|
|
3030
|
+
applyContainerSize(instance2);
|
|
3031
|
+
const horizontal = !!instance2.options.horizontal;
|
|
3032
|
+
const useTransform = state.mode === "transform";
|
|
3033
|
+
const posAxis = horizontal ? "left" : "top";
|
|
3034
|
+
const scrollMargin = instance2.options.scrollMargin;
|
|
3035
|
+
const items = instance2.getVirtualItems();
|
|
3036
|
+
for (const item of items) {
|
|
3037
|
+
const next = item.start - scrollMargin;
|
|
3038
|
+
const el = instance2.elementsCache.get(item.key);
|
|
3039
|
+
if (!el) continue;
|
|
3040
|
+
if (state.lastPositions.get(el) === next) continue;
|
|
3041
|
+
state.lastPositions.set(el, next);
|
|
3042
|
+
if (useTransform) {
|
|
3043
|
+
el.style.transform = horizontal ? `translate3d(${next}px, 0, 0)` : `translate3d(0, ${next}px, 0)`;
|
|
3044
|
+
} else {
|
|
3045
|
+
el.style[posAxis] = `${next}px`;
|
|
3046
|
+
}
|
|
3047
|
+
}
|
|
3048
|
+
};
|
|
2452
3049
|
const resolvedOptions = __spreadProps(__spreadValues({}, options), {
|
|
2453
3050
|
onChange: (instance2, sync) => {
|
|
2454
3051
|
var _a2;
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
3052
|
+
const state = directRef.current;
|
|
3053
|
+
let shouldRerender = true;
|
|
3054
|
+
if (state.enabled) {
|
|
3055
|
+
applyDirectStyles(instance2);
|
|
3056
|
+
const range = instance2.range;
|
|
3057
|
+
const prev = state.prevRange;
|
|
3058
|
+
shouldRerender = !prev || prev.isScrolling !== instance2.isScrolling || prev.startIndex !== (range == null ? void 0 : range.startIndex) || prev.endIndex !== (range == null ? void 0 : range.endIndex);
|
|
3059
|
+
if (shouldRerender) {
|
|
3060
|
+
state.prevRange = range ? {
|
|
3061
|
+
startIndex: range.startIndex,
|
|
3062
|
+
endIndex: range.endIndex,
|
|
3063
|
+
isScrolling: instance2.isScrolling
|
|
3064
|
+
} : null;
|
|
3065
|
+
}
|
|
3066
|
+
}
|
|
3067
|
+
if (shouldRerender) {
|
|
3068
|
+
if (useFlushSync && sync) {
|
|
3069
|
+
flushSync(rerender);
|
|
3070
|
+
} else {
|
|
3071
|
+
rerender();
|
|
3072
|
+
}
|
|
2459
3073
|
}
|
|
2460
3074
|
(_a2 = options.onChange) == null ? void 0 : _a2.call(options, instance2, sync);
|
|
2461
3075
|
}
|
|
2462
3076
|
});
|
|
2463
|
-
const [instance] = React.useState(
|
|
2464
|
-
|
|
2465
|
-
|
|
3077
|
+
const [instance] = React.useState(() => {
|
|
3078
|
+
const v = new Virtualizer(resolvedOptions);
|
|
3079
|
+
return Object.assign(v, {
|
|
3080
|
+
containerRef: (node) => {
|
|
3081
|
+
const state = directRef.current;
|
|
3082
|
+
state.container = node;
|
|
3083
|
+
state.lastSize = null;
|
|
3084
|
+
if (node && state.enabled) {
|
|
3085
|
+
const total = v.getTotalSize();
|
|
3086
|
+
state.lastSize = total;
|
|
3087
|
+
const axis = v.options.horizontal ? "width" : "height";
|
|
3088
|
+
node.style[axis] = `${total}px`;
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
});
|
|
3092
|
+
});
|
|
2466
3093
|
instance.setOptions(resolvedOptions);
|
|
2467
3094
|
useIsomorphicLayoutEffect(() => {
|
|
2468
3095
|
return instance._didMount();
|
|
2469
3096
|
}, []);
|
|
2470
3097
|
useIsomorphicLayoutEffect(() => {
|
|
3098
|
+
applyContainerSize(instance);
|
|
2471
3099
|
return instance._willUpdate();
|
|
2472
3100
|
});
|
|
3101
|
+
useIsomorphicLayoutEffect(() => {
|
|
3102
|
+
applyDirectStyles(instance);
|
|
3103
|
+
});
|
|
2473
3104
|
return instance;
|
|
2474
3105
|
}
|
|
2475
3106
|
function useWindowVirtualizer(options) {
|
|
@@ -2484,11 +3115,11 @@ function useWindowVirtualizer(options) {
|
|
|
2484
3115
|
|
|
2485
3116
|
// ../renderers/src/CollectionRenderer/components/ContentComponent.tsx
|
|
2486
3117
|
import { ProcessIndicator, Button as Button4 } from "@transferwise/components";
|
|
2487
|
-
import { useRef as
|
|
3118
|
+
import { useRef as useRef4, useEffect as useEffect7, useLayoutEffect as useLayoutEffect2 } from "react";
|
|
2488
3119
|
|
|
2489
3120
|
// ../renderers/src/step/StepFooter.tsx
|
|
2490
3121
|
import { Button as Button3 } from "@transferwise/components";
|
|
2491
|
-
import { useEffect as useEffect6, useRef as
|
|
3122
|
+
import { useEffect as useEffect6, useRef as useRef3, useState as useState7 } from "react";
|
|
2492
3123
|
import { useIntl as useIntl3 } from "react-intl";
|
|
2493
3124
|
|
|
2494
3125
|
// ../renderers/src/messages/step.messages.ts
|
|
@@ -2502,23 +3133,23 @@ var step_messages_default = defineMessages4({
|
|
|
2502
3133
|
});
|
|
2503
3134
|
|
|
2504
3135
|
// ../renderers/src/step/StepFooter.tsx
|
|
2505
|
-
import { Fragment as Fragment2, jsx as
|
|
3136
|
+
import { Fragment as Fragment2, jsx as jsx34, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2506
3137
|
var SCROLL_TO_BOTTOM = "scroll-to-bottom";
|
|
2507
3138
|
var StepFooter = ({ footer, tags }) => {
|
|
2508
3139
|
if (tags == null ? void 0 : tags.includes(SCROLL_TO_BOTTOM)) {
|
|
2509
|
-
return /* @__PURE__ */
|
|
3140
|
+
return /* @__PURE__ */ jsx34(FooterWithScrollButton, { footer });
|
|
2510
3141
|
}
|
|
2511
|
-
return /* @__PURE__ */
|
|
3142
|
+
return /* @__PURE__ */ jsx34(DefaultFooter, { footer });
|
|
2512
3143
|
};
|
|
2513
3144
|
var DefaultFooter = ({ footer }) => {
|
|
2514
3145
|
const hasFooter = footer && Array.isArray(footer) && footer.length > 0;
|
|
2515
|
-
return hasFooter ? /* @__PURE__ */
|
|
3146
|
+
return hasFooter ? /* @__PURE__ */ jsx34("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
|
|
2516
3147
|
};
|
|
2517
3148
|
var FooterWithScrollButton = ({ footer }) => {
|
|
2518
3149
|
const { formatMessage } = useIntl3();
|
|
2519
|
-
const endOfLayoutRef =
|
|
3150
|
+
const endOfLayoutRef = useRef3(null);
|
|
2520
3151
|
const isElementVisible = useIsElementVisible(endOfLayoutRef);
|
|
2521
|
-
const scrollButton = /* @__PURE__ */
|
|
3152
|
+
const scrollButton = /* @__PURE__ */ jsx34(
|
|
2522
3153
|
Button3,
|
|
2523
3154
|
{
|
|
2524
3155
|
className: "m-b-1",
|
|
@@ -2534,11 +3165,11 @@ var FooterWithScrollButton = ({ footer }) => {
|
|
|
2534
3165
|
);
|
|
2535
3166
|
const hasStepFooterContent = footer && Array.isArray(footer) && footer.length > 0;
|
|
2536
3167
|
if (isElementVisible && !hasStepFooterContent) {
|
|
2537
|
-
return /* @__PURE__ */
|
|
3168
|
+
return /* @__PURE__ */ jsx34("div", { ref: endOfLayoutRef, "aria-hidden": "true" });
|
|
2538
3169
|
}
|
|
2539
|
-
return /* @__PURE__ */
|
|
2540
|
-
/* @__PURE__ */
|
|
2541
|
-
/* @__PURE__ */
|
|
3170
|
+
return /* @__PURE__ */ jsxs6(Fragment2, { children: [
|
|
3171
|
+
/* @__PURE__ */ jsx34("div", { ref: endOfLayoutRef, "aria-hidden": "true" }),
|
|
3172
|
+
/* @__PURE__ */ jsxs6("div", { className: "df-step-fixed__footer", children: [
|
|
2542
3173
|
!isElementVisible && scrollButton,
|
|
2543
3174
|
footer
|
|
2544
3175
|
] })
|
|
@@ -2580,10 +3211,10 @@ var collection_messages_default = defineMessages5({
|
|
|
2580
3211
|
});
|
|
2581
3212
|
|
|
2582
3213
|
// ../renderers/src/CollectionRenderer/components/ContentComponent.tsx
|
|
2583
|
-
import { jsx as
|
|
3214
|
+
import { jsx as jsx35, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2584
3215
|
var ContentComponent = (props) => {
|
|
2585
3216
|
const { state, status, SectionHeader, Item } = props;
|
|
2586
|
-
const endOfContentRef =
|
|
3217
|
+
const endOfContentRef = useRef4(null);
|
|
2587
3218
|
const isBottomVisible = useIsElementVisible(endOfContentRef);
|
|
2588
3219
|
useEffect7(() => {
|
|
2589
3220
|
const shouldAutoLoad = isBottomVisible && status.type === "idle" && state.afterSectionsProps.length === 0;
|
|
@@ -2610,8 +3241,8 @@ var ContentComponent = (props) => {
|
|
|
2610
3241
|
type: "item"
|
|
2611
3242
|
}))
|
|
2612
3243
|
]);
|
|
2613
|
-
const listRef =
|
|
2614
|
-
const listOffsetRef =
|
|
3244
|
+
const listRef = useRef4(null);
|
|
3245
|
+
const listOffsetRef = useRef4(0);
|
|
2615
3246
|
useLayoutEffect2(() => {
|
|
2616
3247
|
var _a, _b;
|
|
2617
3248
|
listOffsetRef.current = (_b = (_a = listRef.current) == null ? void 0 : _a.offsetTop) != null ? _b : 0;
|
|
@@ -2623,9 +3254,9 @@ var ContentComponent = (props) => {
|
|
|
2623
3254
|
// eslint-disable-next-line react-hooks/refs
|
|
2624
3255
|
scrollMargin: listOffsetRef.current
|
|
2625
3256
|
});
|
|
2626
|
-
return /* @__PURE__ */
|
|
3257
|
+
return /* @__PURE__ */ jsxs7("div", { ref: listRef, children: [
|
|
2627
3258
|
state.beforeSections,
|
|
2628
|
-
/* @__PURE__ */
|
|
3259
|
+
/* @__PURE__ */ jsx35(
|
|
2629
3260
|
"div",
|
|
2630
3261
|
{
|
|
2631
3262
|
style: {
|
|
@@ -2638,7 +3269,7 @@ var ContentComponent = (props) => {
|
|
|
2638
3269
|
if (!i) {
|
|
2639
3270
|
return null;
|
|
2640
3271
|
}
|
|
2641
|
-
return /* @__PURE__ */
|
|
3272
|
+
return /* @__PURE__ */ jsx35(
|
|
2642
3273
|
"div",
|
|
2643
3274
|
{
|
|
2644
3275
|
ref: virtualizer.measureElement,
|
|
@@ -2650,14 +3281,14 @@ var ContentComponent = (props) => {
|
|
|
2650
3281
|
width: "100%",
|
|
2651
3282
|
transform: `translateY(${item.start - virtualizer.options.scrollMargin}px)`
|
|
2652
3283
|
},
|
|
2653
|
-
children: i.type === "header" ? /* @__PURE__ */
|
|
3284
|
+
children: i.type === "header" ? /* @__PURE__ */ jsx35(SectionHeader, __spreadValues({}, i)) : /* @__PURE__ */ jsx35(Item, __spreadValues({}, i.item))
|
|
2654
3285
|
},
|
|
2655
3286
|
item.key
|
|
2656
3287
|
);
|
|
2657
3288
|
})
|
|
2658
3289
|
}
|
|
2659
3290
|
),
|
|
2660
|
-
/* @__PURE__ */
|
|
3291
|
+
/* @__PURE__ */ jsx35("div", { ref: endOfContentRef, className: "d-flex m-x-auto m-y-2", children: /* @__PURE__ */ jsx35(PaginationComponent, { status, state }) }),
|
|
2661
3292
|
state.afterSections
|
|
2662
3293
|
] });
|
|
2663
3294
|
};
|
|
@@ -2672,26 +3303,26 @@ var PaginationComponent = ({
|
|
|
2672
3303
|
return null;
|
|
2673
3304
|
}
|
|
2674
3305
|
if (isPaginationError) {
|
|
2675
|
-
return /* @__PURE__ */
|
|
3306
|
+
return /* @__PURE__ */ jsx35(LoadMoreButton, { onClick: status.retry });
|
|
2676
3307
|
}
|
|
2677
3308
|
if (state.afterSectionsProps.length > 0 && loadMore) {
|
|
2678
|
-
return /* @__PURE__ */
|
|
3309
|
+
return /* @__PURE__ */ jsx35(LoadMoreButton, { onClick: loadMore });
|
|
2679
3310
|
}
|
|
2680
|
-
return /* @__PURE__ */
|
|
3311
|
+
return /* @__PURE__ */ jsx35(ProcessIndicator, { size: "xs", "data-testid": "collection-pagination-loader" });
|
|
2681
3312
|
};
|
|
2682
3313
|
var LoadMoreButton = ({ onClick }) => {
|
|
2683
3314
|
const { formatMessage } = useIntl4();
|
|
2684
|
-
return /* @__PURE__ */
|
|
3315
|
+
return /* @__PURE__ */ jsx35("div", { className: "d-flex m-x-auto", children: /* @__PURE__ */ jsx35(Button4, { v2: true, size: "sm", priority: "secondary-neutral", onClick, children: formatMessage(collection_messages_default.loadMoreButton) }) });
|
|
2685
3316
|
};
|
|
2686
3317
|
|
|
2687
3318
|
// ../renderers/src/CollectionRenderer/components/FilterComponent.tsx
|
|
2688
3319
|
import { Chips } from "@transferwise/components";
|
|
2689
|
-
import { jsx as
|
|
3320
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2690
3321
|
var FiltersComponent = ({ state }) => {
|
|
2691
3322
|
const { filters } = state;
|
|
2692
|
-
return /* @__PURE__ */
|
|
3323
|
+
return /* @__PURE__ */ jsx36("div", { className: "df-filters-container", children: filters.map((filter) => {
|
|
2693
3324
|
var _a;
|
|
2694
|
-
return /* @__PURE__ */
|
|
3325
|
+
return /* @__PURE__ */ jsx36(FilterComponent, __spreadValues({}, filter), JSON.stringify((_a = filter.options) == null ? void 0 : _a.map((o) => o.value)));
|
|
2695
3326
|
}) });
|
|
2696
3327
|
};
|
|
2697
3328
|
var FilterComponent = (filter) => {
|
|
@@ -2699,7 +3330,7 @@ var FilterComponent = (filter) => {
|
|
|
2699
3330
|
if (!options) {
|
|
2700
3331
|
return null;
|
|
2701
3332
|
}
|
|
2702
|
-
return /* @__PURE__ */
|
|
3333
|
+
return /* @__PURE__ */ jsx36(
|
|
2703
3334
|
Chips,
|
|
2704
3335
|
{
|
|
2705
3336
|
className: "m-b-1",
|
|
@@ -2729,7 +3360,7 @@ import { ListItem as ListItem6 } from "@transferwise/components";
|
|
|
2729
3360
|
|
|
2730
3361
|
// ../renderers/src/utils/listItem/getAdditionalInfo.tsx
|
|
2731
3362
|
import { ListItem as ListItem4 } from "@transferwise/components";
|
|
2732
|
-
import { jsx as
|
|
3363
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
2733
3364
|
var getAdditionalInfo = (additionalInfo) => {
|
|
2734
3365
|
var _a, _b;
|
|
2735
3366
|
if (!additionalInfo) {
|
|
@@ -2737,7 +3368,7 @@ var getAdditionalInfo = (additionalInfo) => {
|
|
|
2737
3368
|
}
|
|
2738
3369
|
const { href, text, onClick } = additionalInfo;
|
|
2739
3370
|
if (href || onClick) {
|
|
2740
|
-
return /* @__PURE__ */
|
|
3371
|
+
return /* @__PURE__ */ jsx37(
|
|
2741
3372
|
ListItem4.AdditionalInfo,
|
|
2742
3373
|
{
|
|
2743
3374
|
action: __spreadValues({
|
|
@@ -2746,19 +3377,19 @@ var getAdditionalInfo = (additionalInfo) => {
|
|
|
2746
3377
|
}
|
|
2747
3378
|
);
|
|
2748
3379
|
}
|
|
2749
|
-
return /* @__PURE__ */
|
|
3380
|
+
return /* @__PURE__ */ jsx37(ListItem4.AdditionalInfo, { children: additionalInfo == null ? void 0 : additionalInfo.text });
|
|
2750
3381
|
};
|
|
2751
3382
|
|
|
2752
3383
|
// ../renderers/src/utils/listItem/getCTAControl.tsx
|
|
2753
3384
|
import { ListItem as ListItem5 } from "@transferwise/components";
|
|
2754
|
-
import { jsx as
|
|
3385
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
2755
3386
|
var getCTAControl = (callToAction, { ctaSecondary, fullyInteractive }) => {
|
|
2756
3387
|
if (!callToAction) {
|
|
2757
3388
|
return void 0;
|
|
2758
3389
|
}
|
|
2759
3390
|
const { accessibilityDescription, title, context } = callToAction;
|
|
2760
3391
|
const { priority, sentiment } = getPriorityAndSentiment(ctaSecondary, context);
|
|
2761
|
-
return /* @__PURE__ */
|
|
3392
|
+
return /* @__PURE__ */ jsx38(
|
|
2762
3393
|
ListItem5.Button,
|
|
2763
3394
|
__spreadProps(__spreadValues({}, callToAction.getAnchorProps()), {
|
|
2764
3395
|
partiallyInteractive: !fullyInteractive,
|
|
@@ -2783,7 +3414,7 @@ var shouldUseAvatar = (control, tags) => {
|
|
|
2783
3414
|
};
|
|
2784
3415
|
|
|
2785
3416
|
// ../renderers/src/CollectionRenderer/components/ItemComponent.tsx
|
|
2786
|
-
import { jsx as
|
|
3417
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
2787
3418
|
var ItemComponent = (props) => {
|
|
2788
3419
|
var _a, _b;
|
|
2789
3420
|
const {
|
|
@@ -2805,7 +3436,7 @@ var ItemComponent = (props) => {
|
|
|
2805
3436
|
ctaSecondary: (_a = tags == null ? void 0 : tags.includes("cta-secondary")) != null ? _a : false,
|
|
2806
3437
|
fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
|
|
2807
3438
|
};
|
|
2808
|
-
return /* @__PURE__ */
|
|
3439
|
+
return /* @__PURE__ */ jsx39(
|
|
2809
3440
|
ListItem6,
|
|
2810
3441
|
{
|
|
2811
3442
|
title,
|
|
@@ -2822,10 +3453,10 @@ var ItemComponent = (props) => {
|
|
|
2822
3453
|
};
|
|
2823
3454
|
var getNavigationControl = (onClick, href) => {
|
|
2824
3455
|
if (href) {
|
|
2825
|
-
return /* @__PURE__ */
|
|
3456
|
+
return /* @__PURE__ */ jsx39(ListItem6.Navigation, { href });
|
|
2826
3457
|
}
|
|
2827
3458
|
if (onClick) {
|
|
2828
|
-
return /* @__PURE__ */
|
|
3459
|
+
return /* @__PURE__ */ jsx39(ListItem6.Navigation, { onClick });
|
|
2829
3460
|
}
|
|
2830
3461
|
return null;
|
|
2831
3462
|
};
|
|
@@ -2839,7 +3470,7 @@ import {
|
|
|
2839
3470
|
} from "@transferwise/components";
|
|
2840
3471
|
import { CrossCircleFill, Search } from "@transferwise/icons";
|
|
2841
3472
|
import { useIntl as useIntl5 } from "react-intl";
|
|
2842
|
-
import { jsx as
|
|
3473
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
2843
3474
|
var SearchComponent = ({
|
|
2844
3475
|
state,
|
|
2845
3476
|
status,
|
|
@@ -2855,12 +3486,12 @@ var SearchComponent = ({
|
|
|
2855
3486
|
const getAddon = () => {
|
|
2856
3487
|
var _a;
|
|
2857
3488
|
if (status.type === "loading") {
|
|
2858
|
-
return { content: /* @__PURE__ */
|
|
3489
|
+
return { content: /* @__PURE__ */ jsx40(ProcessIndicator2, { size: "xs", "data-testid": "collection-search-loader" }) };
|
|
2859
3490
|
}
|
|
2860
3491
|
if ((_a = state.search) == null ? void 0 : _a.query) {
|
|
2861
3492
|
return {
|
|
2862
3493
|
interactive: true,
|
|
2863
|
-
content: /* @__PURE__ */
|
|
3494
|
+
content: /* @__PURE__ */ jsx40(
|
|
2864
3495
|
IconButton,
|
|
2865
3496
|
{
|
|
2866
3497
|
priority: "minimal",
|
|
@@ -2870,14 +3501,14 @@ var SearchComponent = ({
|
|
|
2870
3501
|
var _a2;
|
|
2871
3502
|
return (_a2 = state.search) == null ? void 0 : _a2.onChange("");
|
|
2872
3503
|
},
|
|
2873
|
-
children: /* @__PURE__ */
|
|
3504
|
+
children: /* @__PURE__ */ jsx40(CrossCircleFill, {})
|
|
2874
3505
|
}
|
|
2875
3506
|
)
|
|
2876
3507
|
};
|
|
2877
3508
|
}
|
|
2878
3509
|
return void 0;
|
|
2879
3510
|
};
|
|
2880
|
-
return /* @__PURE__ */
|
|
3511
|
+
return /* @__PURE__ */ jsx40(
|
|
2881
3512
|
FieldInput_default,
|
|
2882
3513
|
{
|
|
2883
3514
|
id: "search",
|
|
@@ -2888,7 +3519,7 @@ var SearchComponent = ({
|
|
|
2888
3519
|
features,
|
|
2889
3520
|
control,
|
|
2890
3521
|
tags,
|
|
2891
|
-
children: /* @__PURE__ */
|
|
3522
|
+
children: /* @__PURE__ */ jsx40(InputGroup, { addonStart: { content: /* @__PURE__ */ jsx40(Search, { size: 24 }) }, addonEnd: getAddon(), children: /* @__PURE__ */ jsx40(
|
|
2892
3523
|
Input,
|
|
2893
3524
|
{
|
|
2894
3525
|
id: "search",
|
|
@@ -2907,14 +3538,14 @@ var SearchComponent = ({
|
|
|
2907
3538
|
};
|
|
2908
3539
|
|
|
2909
3540
|
// ../renderers/src/CollectionRenderer/components/SectionHeaderComponent.tsx
|
|
2910
|
-
import { jsx as
|
|
3541
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
2911
3542
|
var SectionHeaderComponent = ({
|
|
2912
3543
|
title,
|
|
2913
3544
|
callToAction
|
|
2914
|
-
}) => /* @__PURE__ */
|
|
3545
|
+
}) => /* @__PURE__ */ jsx41(Header, { title, callToAction });
|
|
2915
3546
|
|
|
2916
3547
|
// ../renderers/src/CollectionRenderer/createCollectionRenderer.tsx
|
|
2917
|
-
import { jsx as
|
|
3548
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
2918
3549
|
var createCollectionRenderer = (canRender, components) => {
|
|
2919
3550
|
const componentsWithDefaults = __spreadValues({
|
|
2920
3551
|
Search: SearchComponent,
|
|
@@ -2928,35 +3559,35 @@ var createCollectionRenderer = (canRender, components) => {
|
|
|
2928
3559
|
canRenderType: "collection",
|
|
2929
3560
|
canRender,
|
|
2930
3561
|
render: (props) => {
|
|
2931
|
-
return /* @__PURE__ */
|
|
3562
|
+
return /* @__PURE__ */ jsx42(CollectionRendererComponent, __spreadValues(__spreadValues({}, props), componentsWithDefaults));
|
|
2932
3563
|
}
|
|
2933
3564
|
};
|
|
2934
3565
|
};
|
|
2935
3566
|
|
|
2936
3567
|
// ../renderers/src/CollectionRenderer/CollectionRenderer.tsx
|
|
2937
3568
|
import { useIntl as useIntl6 } from "react-intl";
|
|
2938
|
-
import { Fragment as Fragment3, jsx as
|
|
3569
|
+
import { Fragment as Fragment3, jsx as jsx43, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2939
3570
|
var CollectionRendererComponent = (props) => {
|
|
2940
3571
|
const { status, Search: Search4, Filters, Results } = props;
|
|
2941
|
-
return /* @__PURE__ */
|
|
2942
|
-
/* @__PURE__ */
|
|
2943
|
-
/* @__PURE__ */
|
|
2944
|
-
status.type === "error" && status.reason === "search" ? /* @__PURE__ */
|
|
3572
|
+
return /* @__PURE__ */ jsxs8(Fragment3, { children: [
|
|
3573
|
+
/* @__PURE__ */ jsx43(Search4, __spreadValues({}, props)),
|
|
3574
|
+
/* @__PURE__ */ jsx43(Filters, __spreadValues({}, props)),
|
|
3575
|
+
status.type === "error" && status.reason === "search" ? /* @__PURE__ */ jsx43(SearchError, { retry: status.retry }) : /* @__PURE__ */ jsx43(Results, __spreadValues({}, props))
|
|
2945
3576
|
] });
|
|
2946
3577
|
};
|
|
2947
3578
|
var SearchError = ({ retry }) => {
|
|
2948
3579
|
const { formatMessage } = useIntl6();
|
|
2949
|
-
return /* @__PURE__ */
|
|
3580
|
+
return /* @__PURE__ */ jsxs8(InlinePrompt, { width: "full", sentiment: "negative", children: [
|
|
2950
3581
|
formatMessage(generic_error_messages_default.genericError),
|
|
2951
3582
|
"\xA0",
|
|
2952
|
-
/* @__PURE__ */
|
|
3583
|
+
/* @__PURE__ */ jsx43(DSLink, { onClick: retry, children: formatMessage(generic_error_messages_default.retry) })
|
|
2953
3584
|
] });
|
|
2954
3585
|
};
|
|
2955
3586
|
var CollectionRenderer = createCollectionRenderer(() => true);
|
|
2956
3587
|
var CollectionRenderer_default = CollectionRenderer;
|
|
2957
3588
|
|
|
2958
3589
|
// ../renderers/src/ColumnsRenderer.tsx
|
|
2959
|
-
var
|
|
3590
|
+
var import_classnames10 = __toESM(require_classnames());
|
|
2960
3591
|
|
|
2961
3592
|
// ../renderers/src/utils/useIsCollapsed.ts
|
|
2962
3593
|
import { useEffect as useEffect8, useState as useState8 } from "react";
|
|
@@ -2979,7 +3610,7 @@ var useIsCollapsed = () => {
|
|
|
2979
3610
|
};
|
|
2980
3611
|
|
|
2981
3612
|
// ../renderers/src/ColumnsRenderer.tsx
|
|
2982
|
-
import { jsx as
|
|
3613
|
+
import { jsx as jsx44, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2983
3614
|
var RIGHT_FIRST_STACKING = "right-first-stacking";
|
|
2984
3615
|
var ColumnsRenderer = {
|
|
2985
3616
|
canRenderType: "columns",
|
|
@@ -2990,12 +3621,12 @@ function ColumnsRendererComponent(props) {
|
|
|
2990
3621
|
const { bias, margin, startChildren, endChildren, tags } = props;
|
|
2991
3622
|
const isCollapsed = useIsCollapsed();
|
|
2992
3623
|
const reverse = isCollapsed && ((_a = tags == null ? void 0 : tags.includes(RIGHT_FIRST_STACKING)) != null ? _a : false);
|
|
2993
|
-
const startColumn = /* @__PURE__ */
|
|
2994
|
-
const endColumn = /* @__PURE__ */
|
|
2995
|
-
return /* @__PURE__ */
|
|
3624
|
+
const startColumn = /* @__PURE__ */ jsx44("div", { className: "df-columns-renderer-column", children: startChildren });
|
|
3625
|
+
const endColumn = /* @__PURE__ */ jsx44("div", { className: "df-columns-renderer-column", children: endChildren });
|
|
3626
|
+
return /* @__PURE__ */ jsxs9(
|
|
2996
3627
|
"div",
|
|
2997
3628
|
{
|
|
2998
|
-
className: (0,
|
|
3629
|
+
className: (0, import_classnames10.default)(
|
|
2999
3630
|
"df-columns-renderer-container",
|
|
3000
3631
|
getMargin(margin),
|
|
3001
3632
|
{
|
|
@@ -3016,19 +3647,37 @@ var ColumnsRenderer_default = ColumnsRenderer;
|
|
|
3016
3647
|
// ../renderers/src/components/VariableDateInput.tsx
|
|
3017
3648
|
import { DateInput, DateLookup } from "@transferwise/components";
|
|
3018
3649
|
|
|
3650
|
+
// ../renderers/src/hooks/useAvailabilityRules.ts
|
|
3651
|
+
import { useState as useState9 } from "react";
|
|
3652
|
+
import { useIntl as useIntl7 } from "react-intl";
|
|
3653
|
+
|
|
3654
|
+
// ../renderers/src/messages/date-input.messages.ts
|
|
3655
|
+
import { defineMessages as defineMessages6 } from "react-intl";
|
|
3656
|
+
var date_input_messages_default = defineMessages6({
|
|
3657
|
+
unavailableDates: {
|
|
3658
|
+
id: "df.wise.DateInput.unavailableDates",
|
|
3659
|
+
defaultMessage: "Some dates are unavailable.",
|
|
3660
|
+
description: "General explanation shown below a calendar containing unavailable dates"
|
|
3661
|
+
}
|
|
3662
|
+
});
|
|
3663
|
+
|
|
3019
3664
|
// ../renderers/src/validators/type-validators.ts
|
|
3020
3665
|
var isNumber = (value) => typeof value === "number" && !Number.isNaN(value);
|
|
3021
3666
|
|
|
3022
3667
|
// ../renderers/src/utils/value-utils.ts
|
|
3023
3668
|
var dateStringToDateOrNull = (dateString) => {
|
|
3024
|
-
|
|
3669
|
+
const match = dateString ? /^(\d{4})-(\d{2})-(\d{2})$/.exec(dateString) : null;
|
|
3670
|
+
if (!match) {
|
|
3025
3671
|
return null;
|
|
3026
3672
|
}
|
|
3027
|
-
const [year, month,
|
|
3028
|
-
if (!isNumber(year) || !isNumber(month) || !isNumber(
|
|
3673
|
+
const [, year, month, day] = match.map(Number);
|
|
3674
|
+
if (!isNumber(year) || !isNumber(month) || !isNumber(day)) {
|
|
3029
3675
|
return null;
|
|
3030
3676
|
}
|
|
3031
|
-
|
|
3677
|
+
const date = /* @__PURE__ */ new Date(0);
|
|
3678
|
+
date.setHours(0, 0, 0, 0);
|
|
3679
|
+
date.setFullYear(year, month - 1, day);
|
|
3680
|
+
return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day ? date : null;
|
|
3032
3681
|
};
|
|
3033
3682
|
var dateToDateString = (date) => {
|
|
3034
3683
|
const d = new Date(date);
|
|
@@ -3040,14 +3689,70 @@ var dateToDateString = (date) => {
|
|
|
3040
3689
|
return [year, formattedMonth, formattedDay].join("-");
|
|
3041
3690
|
};
|
|
3042
3691
|
|
|
3692
|
+
// ../renderers/src/hooks/useAvailabilityRules.ts
|
|
3693
|
+
var useAvailabilityRules = (availability) => {
|
|
3694
|
+
var _a, _b;
|
|
3695
|
+
const { formatMessage } = useIntl7();
|
|
3696
|
+
const [focusedDate, setFocusedDate] = useState9(null);
|
|
3697
|
+
const unavailableMessage = (_b = (_a = focusedDate ? getUnavailableDateReason(focusedDate, availability) : null) != null ? _a : availability == null ? void 0 : availability.message) != null ? _b : formatMessage(date_input_messages_default.unavailableDates);
|
|
3698
|
+
const onDateSelect = ({ date }) => {
|
|
3699
|
+
setFocusedDate(date);
|
|
3700
|
+
};
|
|
3701
|
+
return {
|
|
3702
|
+
disabledRules: mapAvailabilityToDisabledRules(availability, unavailableMessage),
|
|
3703
|
+
onDateSelect,
|
|
3704
|
+
resetFocusedDate: () => setFocusedDate(null)
|
|
3705
|
+
};
|
|
3706
|
+
};
|
|
3707
|
+
var mapAvailabilityToDisabledRules = (availability, reason) => {
|
|
3708
|
+
if (!(availability == null ? void 0 : availability.unavailable.length)) {
|
|
3709
|
+
return void 0;
|
|
3710
|
+
}
|
|
3711
|
+
const dates = availability.unavailable.flatMap((rule) => rule.type === "dates" ? rule.dates : []).map(dateStringToDateOrNull).filter(isDate);
|
|
3712
|
+
const weekdays = availability.unavailable.flatMap(
|
|
3713
|
+
(rule) => rule.type === "weekdays" ? rule.weekdays : []
|
|
3714
|
+
);
|
|
3715
|
+
const ranges = availability.unavailable.flatMap((rule) => {
|
|
3716
|
+
if (rule.type !== "range") {
|
|
3717
|
+
return [];
|
|
3718
|
+
}
|
|
3719
|
+
const start = dateStringToDateOrNull(rule.start);
|
|
3720
|
+
const end = dateStringToDateOrNull(rule.end);
|
|
3721
|
+
return start && end ? [{ start, end }] : [];
|
|
3722
|
+
});
|
|
3723
|
+
return __spreadValues(__spreadValues(__spreadValues({
|
|
3724
|
+
reason
|
|
3725
|
+
}, dates.length > 0 ? { dates } : {}), weekdays.length > 0 ? { weekdays } : {}), ranges.length > 0 ? { ranges } : {});
|
|
3726
|
+
};
|
|
3727
|
+
var getUnavailableDateReason = (date, availability) => {
|
|
3728
|
+
var _a, _b;
|
|
3729
|
+
const dateString = dateToDateString(date);
|
|
3730
|
+
const weekday = date.getDay();
|
|
3731
|
+
return (_b = (_a = availability == null ? void 0 : availability.unavailable.find((rule) => matchesDateRule(dateString, weekday, rule))) == null ? void 0 : _a.reason) != null ? _b : null;
|
|
3732
|
+
};
|
|
3733
|
+
var matchesDateRule = (date, weekday, rule) => {
|
|
3734
|
+
switch (rule.type) {
|
|
3735
|
+
case "dates":
|
|
3736
|
+
return rule.dates.includes(date);
|
|
3737
|
+
case "weekdays": {
|
|
3738
|
+
const weekdayName = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"][weekday];
|
|
3739
|
+
return rule.weekdays.some((ruleWeekday) => ruleWeekday === weekdayName);
|
|
3740
|
+
}
|
|
3741
|
+
case "range":
|
|
3742
|
+
return date >= rule.start && date <= rule.end;
|
|
3743
|
+
}
|
|
3744
|
+
};
|
|
3745
|
+
var isDate = (date) => date !== null;
|
|
3746
|
+
|
|
3043
3747
|
// ../renderers/src/components/VariableDateInput.tsx
|
|
3044
|
-
import { jsx as
|
|
3748
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3045
3749
|
function VariableDateInput({
|
|
3046
3750
|
control,
|
|
3047
3751
|
inputProps
|
|
3048
3752
|
}) {
|
|
3049
3753
|
const {
|
|
3050
3754
|
autoComplete,
|
|
3755
|
+
availability,
|
|
3051
3756
|
minimumDate,
|
|
3052
3757
|
maximumDate,
|
|
3053
3758
|
placeholder,
|
|
@@ -3056,8 +3761,9 @@ function VariableDateInput({
|
|
|
3056
3761
|
onChange,
|
|
3057
3762
|
onFocus
|
|
3058
3763
|
} = inputProps;
|
|
3764
|
+
const { disabledRules, onDateSelect, resetFocusedDate } = useAvailabilityRules(availability);
|
|
3059
3765
|
if (control === "date-lookup") {
|
|
3060
|
-
return /* @__PURE__ */
|
|
3766
|
+
return /* @__PURE__ */ jsx45(
|
|
3061
3767
|
DateLookup,
|
|
3062
3768
|
{
|
|
3063
3769
|
value: dateStringToDateOrNull(inputProps.value),
|
|
@@ -3065,15 +3771,20 @@ function VariableDateInput({
|
|
|
3065
3771
|
max: dateStringToDateOrNull(maximumDate),
|
|
3066
3772
|
placeholder,
|
|
3067
3773
|
disabled,
|
|
3774
|
+
disabledRules,
|
|
3068
3775
|
onChange: (date) => {
|
|
3069
3776
|
onChange(date !== null ? dateToDateString(date) : null);
|
|
3070
3777
|
},
|
|
3778
|
+
onDateSelect,
|
|
3071
3779
|
onBlur,
|
|
3072
|
-
onFocus
|
|
3780
|
+
onFocus: () => {
|
|
3781
|
+
resetFocusedDate();
|
|
3782
|
+
onFocus();
|
|
3783
|
+
}
|
|
3073
3784
|
}
|
|
3074
3785
|
);
|
|
3075
3786
|
}
|
|
3076
|
-
return /* @__PURE__ */
|
|
3787
|
+
return /* @__PURE__ */ jsx45(
|
|
3077
3788
|
DateInput,
|
|
3078
3789
|
__spreadProps(__spreadValues({}, inputProps), {
|
|
3079
3790
|
dayAutoComplete: getAutocompleteString(autoComplete, "day"),
|
|
@@ -3090,7 +3801,7 @@ var getAutocompleteString = (value, suffix) => {
|
|
|
3090
3801
|
var VariableDateInput_default = VariableDateInput;
|
|
3091
3802
|
|
|
3092
3803
|
// ../renderers/src/DateInputRenderer.tsx
|
|
3093
|
-
import { jsx as
|
|
3804
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
3094
3805
|
var DateInputRenderer = {
|
|
3095
3806
|
canRenderType: "input-date",
|
|
3096
3807
|
render: (props) => {
|
|
@@ -3115,7 +3826,7 @@ var DateInputRenderer = {
|
|
|
3115
3826
|
]);
|
|
3116
3827
|
const value = initialValue != null ? initialValue : "";
|
|
3117
3828
|
const inputProps = __spreadProps(__spreadValues({}, rest), { value, id });
|
|
3118
|
-
return /* @__PURE__ */
|
|
3829
|
+
return /* @__PURE__ */ jsx46(
|
|
3119
3830
|
FieldInput_default,
|
|
3120
3831
|
{
|
|
3121
3832
|
id,
|
|
@@ -3128,7 +3839,7 @@ var DateInputRenderer = {
|
|
|
3128
3839
|
features: props.features,
|
|
3129
3840
|
control,
|
|
3130
3841
|
tags: props.tags,
|
|
3131
|
-
children: /* @__PURE__ */
|
|
3842
|
+
children: /* @__PURE__ */ jsx46(VariableDateInput_default, { control, inputProps })
|
|
3132
3843
|
}
|
|
3133
3844
|
);
|
|
3134
3845
|
}
|
|
@@ -3140,12 +3851,12 @@ import { ListItem as ListItem7 } from "@transferwise/components";
|
|
|
3140
3851
|
|
|
3141
3852
|
// ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
|
|
3142
3853
|
import { Header as Header3, SearchInput } from "@transferwise/components";
|
|
3143
|
-
import { useState as
|
|
3144
|
-
import { useIntl as
|
|
3854
|
+
import { useState as useState10 } from "react";
|
|
3855
|
+
import { useIntl as useIntl9 } from "react-intl";
|
|
3145
3856
|
|
|
3146
3857
|
// ../renderers/src/messages/filter.messages.ts
|
|
3147
|
-
import { defineMessages as
|
|
3148
|
-
var filter_messages_default =
|
|
3858
|
+
import { defineMessages as defineMessages7 } from "react-intl";
|
|
3859
|
+
var filter_messages_default = defineMessages7({
|
|
3149
3860
|
placeholder: {
|
|
3150
3861
|
id: "df.wise.filter.placeholder",
|
|
3151
3862
|
defaultMessage: "Start typing to search",
|
|
@@ -3212,11 +3923,11 @@ var normalizeAndRemoveAccents = (text) => text.trim().toLowerCase().normalize("N
|
|
|
3212
3923
|
|
|
3213
3924
|
// ../renderers/src/DecisionRenderer/GroupedDecisionList.tsx
|
|
3214
3925
|
import { Header as Header2, Section } from "@transferwise/components";
|
|
3215
|
-
import { useIntl as
|
|
3926
|
+
import { useIntl as useIntl8 } from "react-intl";
|
|
3216
3927
|
|
|
3217
3928
|
// ../renderers/src/messages/group.messages.ts
|
|
3218
|
-
import { defineMessages as
|
|
3219
|
-
var group_messages_default =
|
|
3929
|
+
import { defineMessages as defineMessages8 } from "react-intl";
|
|
3930
|
+
var group_messages_default = defineMessages8({
|
|
3220
3931
|
all: {
|
|
3221
3932
|
id: "df.wise.group.all",
|
|
3222
3933
|
defaultMessage: "All",
|
|
@@ -3250,18 +3961,18 @@ var getGroupsFromTags = (knownTags, items) => {
|
|
|
3250
3961
|
};
|
|
3251
3962
|
|
|
3252
3963
|
// ../renderers/src/DecisionRenderer/GroupedDecisionList.tsx
|
|
3253
|
-
import { Fragment as Fragment4, jsx as
|
|
3964
|
+
import { Fragment as Fragment4, jsx as jsx47, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3254
3965
|
var groupingTags = Object.keys(group_messages_default).filter((key) => key !== "all");
|
|
3255
3966
|
var isGroupedDecision = (options) => {
|
|
3256
3967
|
return getGroupsFromTags(groupingTags, options).length > 0;
|
|
3257
3968
|
};
|
|
3258
3969
|
var GroupedDecisionList = (_a) => {
|
|
3259
3970
|
var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
|
|
3260
|
-
const { formatMessage } =
|
|
3971
|
+
const { formatMessage } = useIntl8();
|
|
3261
3972
|
const { options } = rest;
|
|
3262
3973
|
const itemsByTag = [...getGroupsFromTags(groupingTags, options), { tag: "all", items: options }];
|
|
3263
|
-
return /* @__PURE__ */
|
|
3264
|
-
/* @__PURE__ */
|
|
3974
|
+
return /* @__PURE__ */ jsx47(Fragment4, { children: itemsByTag.map(({ tag, items }) => /* @__PURE__ */ jsxs10(Section, { children: [
|
|
3975
|
+
/* @__PURE__ */ jsx47(
|
|
3265
3976
|
Header2,
|
|
3266
3977
|
{
|
|
3267
3978
|
as: "h2",
|
|
@@ -3273,27 +3984,27 @@ var GroupedDecisionList = (_a) => {
|
|
|
3273
3984
|
};
|
|
3274
3985
|
|
|
3275
3986
|
// ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
|
|
3276
|
-
var
|
|
3277
|
-
import { Fragment as Fragment5, jsx as
|
|
3987
|
+
var import_classnames11 = __toESM(require_classnames());
|
|
3988
|
+
import { Fragment as Fragment5, jsx as jsx48, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3278
3989
|
var DecisionWrapper = (props) => {
|
|
3279
3990
|
const { margin, control, title, tags } = props;
|
|
3280
|
-
return /* @__PURE__ */
|
|
3281
|
-
title && /* @__PURE__ */
|
|
3282
|
-
control === "filtered" ? /* @__PURE__ */
|
|
3991
|
+
return /* @__PURE__ */ jsxs11("div", { className: (0, import_classnames11.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
3992
|
+
title && /* @__PURE__ */ jsx48(Header3, { as: "h2", title }),
|
|
3993
|
+
control === "filtered" ? /* @__PURE__ */ jsx48(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsx48(UnfilteredDecisionList, __spreadValues({}, props))
|
|
3283
3994
|
] });
|
|
3284
3995
|
};
|
|
3285
3996
|
var UnfilteredDecisionList = (_a) => {
|
|
3286
3997
|
var _b = _a, { renderDecisionList: renderDecisionList2 } = _b, rest = __objRest(_b, ["renderDecisionList"]);
|
|
3287
|
-
return isGroupedDecision(rest.options) ? /* @__PURE__ */
|
|
3998
|
+
return isGroupedDecision(rest.options) ? /* @__PURE__ */ jsx48(GroupedDecisionList, __spreadProps(__spreadValues({}, rest), { renderDecisionList: renderDecisionList2 })) : renderDecisionList2(rest);
|
|
3288
3999
|
};
|
|
3289
4000
|
var FilteredDecisionList = (props) => {
|
|
3290
|
-
const { formatMessage } =
|
|
3291
|
-
const [query, setQuery] =
|
|
4001
|
+
const { formatMessage } = useIntl9();
|
|
4002
|
+
const [query, setQuery] = useState10("");
|
|
3292
4003
|
const { control, options, renderDecisionList: renderDecisionList2 } = props;
|
|
3293
4004
|
const filteredOptions = (query == null ? void 0 : query.length) > 0 ? filterAndSortItems(options, query) : options;
|
|
3294
4005
|
const isGrouped = isGroupedDecision(options);
|
|
3295
|
-
return /* @__PURE__ */
|
|
3296
|
-
/* @__PURE__ */
|
|
4006
|
+
return /* @__PURE__ */ jsxs11(Fragment5, { children: [
|
|
4007
|
+
/* @__PURE__ */ jsx48(
|
|
3297
4008
|
SearchInput,
|
|
3298
4009
|
{
|
|
3299
4010
|
placeholder: formatMessage(filter_messages_default.placeholder),
|
|
@@ -3305,25 +4016,25 @@ var FilteredDecisionList = (props) => {
|
|
|
3305
4016
|
}
|
|
3306
4017
|
}
|
|
3307
4018
|
),
|
|
3308
|
-
isGrouped && query.length === 0 ? /* @__PURE__ */
|
|
3309
|
-
query.length > 0 && /* @__PURE__ */
|
|
4019
|
+
isGrouped && query.length === 0 ? /* @__PURE__ */ jsx48(GroupedDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ jsxs11(Fragment5, { children: [
|
|
4020
|
+
query.length > 0 && /* @__PURE__ */ jsx48(Header3, { as: "h2", title: formatMessage(filter_messages_default.results), className: "m-t-4" }),
|
|
3310
4021
|
filteredOptions.length > 0 ? renderDecisionList2({
|
|
3311
4022
|
control,
|
|
3312
4023
|
className: query.length === 0 ? "m-t-3" : "",
|
|
3313
4024
|
options: filteredOptions
|
|
3314
|
-
}) : /* @__PURE__ */
|
|
4025
|
+
}) : /* @__PURE__ */ jsx48("p", { children: formatMessage(filter_messages_default.noResults) })
|
|
3315
4026
|
] })
|
|
3316
4027
|
] });
|
|
3317
4028
|
};
|
|
3318
4029
|
|
|
3319
4030
|
// ../renderers/src/DecisionRenderer/DecisionRenderer.tsx
|
|
3320
|
-
import { Fragment as Fragment6, jsx as
|
|
4031
|
+
import { Fragment as Fragment6, jsx as jsx49 } from "react/jsx-runtime";
|
|
3321
4032
|
var DecisionRenderer = {
|
|
3322
4033
|
canRenderType: "decision",
|
|
3323
|
-
render: (props) => /* @__PURE__ */
|
|
4034
|
+
render: (props) => /* @__PURE__ */ jsx49(DecisionWrapper, __spreadProps(__spreadValues({}, props), { renderDecisionList }))
|
|
3324
4035
|
};
|
|
3325
4036
|
var renderDecisionList = ({ options, control }) => {
|
|
3326
|
-
return /* @__PURE__ */
|
|
4037
|
+
return /* @__PURE__ */ jsx49(Fragment6, { children: options.map((_a) => {
|
|
3327
4038
|
var _b = _a, { onClick } = _b, rest = __objRest(_b, ["onClick"]);
|
|
3328
4039
|
const {
|
|
3329
4040
|
description,
|
|
@@ -3336,7 +4047,7 @@ var renderDecisionList = ({ options, control }) => {
|
|
|
3336
4047
|
supportingValues,
|
|
3337
4048
|
tags
|
|
3338
4049
|
} = rest;
|
|
3339
|
-
return /* @__PURE__ */
|
|
4050
|
+
return /* @__PURE__ */ jsx49(
|
|
3340
4051
|
ListItem7,
|
|
3341
4052
|
{
|
|
3342
4053
|
title: itemTitle,
|
|
@@ -3348,7 +4059,7 @@ var renderDecisionList = ({ options, control }) => {
|
|
|
3348
4059
|
media: getMedia(media, shouldUseAvatar(control, tags)),
|
|
3349
4060
|
prompt: getInlineAlert(inlineAlert),
|
|
3350
4061
|
additionalInfo: additionalText ? getAdditionalInfo({ text: additionalText }) : void 0,
|
|
3351
|
-
control: /* @__PURE__ */
|
|
4062
|
+
control: /* @__PURE__ */ jsx49(ListItem7.Navigation, __spreadValues({}, getAnchorProps()))
|
|
3352
4063
|
},
|
|
3353
4064
|
JSON.stringify(rest)
|
|
3354
4065
|
);
|
|
@@ -3357,9 +4068,9 @@ var renderDecisionList = ({ options, control }) => {
|
|
|
3357
4068
|
var DecisionRenderer_default = DecisionRenderer;
|
|
3358
4069
|
|
|
3359
4070
|
// ../renderers/src/DividerRenderer.tsx
|
|
3360
|
-
var
|
|
4071
|
+
var import_classnames12 = __toESM(require_classnames());
|
|
3361
4072
|
import { Divider } from "@transferwise/components";
|
|
3362
|
-
import { jsx as
|
|
4073
|
+
import { jsx as jsx50 } from "react/jsx-runtime";
|
|
3363
4074
|
var mapControlToLevel = (control) => {
|
|
3364
4075
|
switch (control) {
|
|
3365
4076
|
case "section":
|
|
@@ -3372,10 +4083,10 @@ var mapControlToLevel = (control) => {
|
|
|
3372
4083
|
};
|
|
3373
4084
|
var DividerRenderer = {
|
|
3374
4085
|
canRenderType: "divider",
|
|
3375
|
-
render: ({ margin, control, tags }) => /* @__PURE__ */
|
|
4086
|
+
render: ({ margin, control, tags }) => /* @__PURE__ */ jsx50(
|
|
3376
4087
|
Divider,
|
|
3377
4088
|
{
|
|
3378
|
-
className: (0,
|
|
4089
|
+
className: (0, import_classnames12.default)(
|
|
3379
4090
|
"m-t-0",
|
|
3380
4091
|
"d-block",
|
|
3381
4092
|
getMargin(margin),
|
|
@@ -3391,8 +4102,8 @@ var DividerRenderer_default = DividerRenderer;
|
|
|
3391
4102
|
import { Button as Button5, Markdown as Markdown3, Modal } from "@transferwise/components";
|
|
3392
4103
|
|
|
3393
4104
|
// ../renderers/src/messages/external-confirmation.messages.ts
|
|
3394
|
-
import { defineMessages as
|
|
3395
|
-
var external_confirmation_messages_default =
|
|
4105
|
+
import { defineMessages as defineMessages9 } from "react-intl";
|
|
4106
|
+
var external_confirmation_messages_default = defineMessages9({
|
|
3396
4107
|
title: {
|
|
3397
4108
|
id: "df.wise.ExternalConfirmation.title",
|
|
3398
4109
|
defaultMessage: "Please confirm",
|
|
@@ -3416,9 +4127,9 @@ var external_confirmation_messages_default = defineMessages8({
|
|
|
3416
4127
|
});
|
|
3417
4128
|
|
|
3418
4129
|
// ../renderers/src/ExternalConfirmationRenderer.tsx
|
|
3419
|
-
import { useIntl as
|
|
4130
|
+
import { useIntl as useIntl10 } from "react-intl";
|
|
3420
4131
|
import { useEffect as useEffect9 } from "react";
|
|
3421
|
-
import { Fragment as Fragment7, jsx as
|
|
4132
|
+
import { Fragment as Fragment7, jsx as jsx51, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3422
4133
|
var ExternalConfirmationRenderer = {
|
|
3423
4134
|
canRenderType: "external-confirmation",
|
|
3424
4135
|
render: ExternalConfirmationRendererComponent
|
|
@@ -3431,19 +4142,19 @@ function ExternalConfirmationRendererComponent({
|
|
|
3431
4142
|
control,
|
|
3432
4143
|
tags
|
|
3433
4144
|
}) {
|
|
3434
|
-
const { formatMessage } =
|
|
4145
|
+
const { formatMessage } = useIntl10();
|
|
3435
4146
|
useEffect9(() => {
|
|
3436
4147
|
open();
|
|
3437
4148
|
}, []);
|
|
3438
|
-
return /* @__PURE__ */
|
|
4149
|
+
return /* @__PURE__ */ jsx51(
|
|
3439
4150
|
Modal,
|
|
3440
4151
|
{
|
|
3441
4152
|
open: visible,
|
|
3442
4153
|
title: formatMessage(external_confirmation_messages_default.title),
|
|
3443
|
-
body: /* @__PURE__ */
|
|
3444
|
-
/* @__PURE__ */
|
|
3445
|
-
/* @__PURE__ */
|
|
3446
|
-
/* @__PURE__ */
|
|
4154
|
+
body: /* @__PURE__ */ jsxs12(Fragment7, { children: [
|
|
4155
|
+
/* @__PURE__ */ jsx51(Markdown3, { config: { link: { target: "_blank" } }, className: "text-xs-center m-b-5", children: formatMessage(external_confirmation_messages_default.description, { origin: getOrigin(url) }) }),
|
|
4156
|
+
/* @__PURE__ */ jsx51("div", { className: "df-box-renderer-fixed-width", children: /* @__PURE__ */ jsxs12("div", { className: "df-box-renderer-width-lg", children: [
|
|
4157
|
+
/* @__PURE__ */ jsx51(
|
|
3447
4158
|
Button5,
|
|
3448
4159
|
{
|
|
3449
4160
|
v2: true,
|
|
@@ -3457,7 +4168,7 @@ function ExternalConfirmationRendererComponent({
|
|
|
3457
4168
|
children: formatMessage(external_confirmation_messages_default.open)
|
|
3458
4169
|
}
|
|
3459
4170
|
),
|
|
3460
|
-
/* @__PURE__ */
|
|
4171
|
+
/* @__PURE__ */ jsx51(Button5, { v2: true, block: true, className: "m-b-2", priority: "tertiary", size: "md", onClick: onCancel, children: formatMessage(external_confirmation_messages_default.cancel) })
|
|
3461
4172
|
] }) })
|
|
3462
4173
|
] }),
|
|
3463
4174
|
className: controlAndTagsToCSSClass({ control, tags }),
|
|
@@ -3475,51 +4186,51 @@ function getOrigin(url) {
|
|
|
3475
4186
|
var ExternalConfirmationRenderer_default = ExternalConfirmationRenderer;
|
|
3476
4187
|
|
|
3477
4188
|
// ../renderers/src/FormRenderer.tsx
|
|
3478
|
-
var
|
|
3479
|
-
import { jsx as
|
|
4189
|
+
var import_classnames13 = __toESM(require_classnames());
|
|
4190
|
+
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
3480
4191
|
var FormRenderer = {
|
|
3481
4192
|
canRenderType: "form",
|
|
3482
|
-
render: ({ children, margin, control, tags }) => /* @__PURE__ */
|
|
4193
|
+
render: ({ children, margin, control, tags }) => /* @__PURE__ */ jsx52("div", { className: (0, import_classnames13.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children })
|
|
3483
4194
|
};
|
|
3484
4195
|
var FormRenderer_default = FormRenderer;
|
|
3485
4196
|
|
|
3486
4197
|
// ../renderers/src/FormSectionRenderer.tsx
|
|
3487
4198
|
import { Header as Header4 } from "@transferwise/components";
|
|
3488
|
-
import { jsx as
|
|
4199
|
+
import { jsx as jsx53, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3489
4200
|
var FormSectionRenderer = {
|
|
3490
4201
|
canRenderType: "form-section",
|
|
3491
|
-
render: ({ title, description, children, control, tags }) => /* @__PURE__ */
|
|
3492
|
-
title && /* @__PURE__ */
|
|
4202
|
+
render: ({ title, description, children, control, tags }) => /* @__PURE__ */ jsxs13("fieldset", { className: controlAndTagsToCSSClass({ control, tags }), children: [
|
|
4203
|
+
title && /* @__PURE__ */ jsx53(
|
|
3493
4204
|
Header4,
|
|
3494
4205
|
{
|
|
3495
4206
|
as: "h2",
|
|
3496
4207
|
title
|
|
3497
4208
|
}
|
|
3498
4209
|
),
|
|
3499
|
-
description && /* @__PURE__ */
|
|
4210
|
+
description && /* @__PURE__ */ jsx53("p", { children: description }),
|
|
3500
4211
|
children
|
|
3501
4212
|
] })
|
|
3502
4213
|
};
|
|
3503
4214
|
var FormSectionRenderer_default = FormSectionRenderer;
|
|
3504
4215
|
|
|
3505
4216
|
// ../renderers/src/HeadingRenderer.tsx
|
|
3506
|
-
var
|
|
4217
|
+
var import_classnames14 = __toESM(require_classnames());
|
|
3507
4218
|
import { Display, Title } from "@transferwise/components";
|
|
3508
|
-
import { jsx as
|
|
4219
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
3509
4220
|
var HeadingRenderer = {
|
|
3510
4221
|
canRenderType: "heading",
|
|
3511
4222
|
render: Heading
|
|
3512
4223
|
};
|
|
3513
4224
|
function Heading(props) {
|
|
3514
4225
|
const { text, size, align, margin, control } = props;
|
|
3515
|
-
const className = (0,
|
|
4226
|
+
const className = (0, import_classnames14.default)(
|
|
3516
4227
|
getTextAlignmentAndMargin({ align, margin }),
|
|
3517
4228
|
controlAndTagsToCSSClass(props)
|
|
3518
4229
|
);
|
|
3519
|
-
return control === "display" ? /* @__PURE__ */
|
|
4230
|
+
return control === "display" ? /* @__PURE__ */ jsx54(DisplayHeading, { size, text, className }) : /* @__PURE__ */ jsx54(StandardHeading, { size, text, className });
|
|
3520
4231
|
}
|
|
3521
4232
|
function DisplayHeading({ size, text, className }) {
|
|
3522
|
-
return /* @__PURE__ */
|
|
4233
|
+
return /* @__PURE__ */ jsx54(Display, { type: getDisplayType(size), className, children: text });
|
|
3523
4234
|
}
|
|
3524
4235
|
var getDisplayType = (size) => {
|
|
3525
4236
|
switch (size) {
|
|
@@ -3535,7 +4246,7 @@ var getDisplayType = (size) => {
|
|
|
3535
4246
|
}
|
|
3536
4247
|
};
|
|
3537
4248
|
function StandardHeading({ size, text, className }) {
|
|
3538
|
-
return /* @__PURE__ */
|
|
4249
|
+
return /* @__PURE__ */ jsx54(Title, { type: getTitleTypeBySize(size), className, children: text });
|
|
3539
4250
|
}
|
|
3540
4251
|
var getTitleTypeBySize = (size) => {
|
|
3541
4252
|
var _a;
|
|
@@ -3551,9 +4262,9 @@ var getTitleTypeBySize = (size) => {
|
|
|
3551
4262
|
var HeadingRenderer_default = HeadingRenderer;
|
|
3552
4263
|
|
|
3553
4264
|
// ../renderers/src/ImageRenderer/UrlImage.tsx
|
|
3554
|
-
var
|
|
4265
|
+
var import_classnames15 = __toESM(require_classnames());
|
|
3555
4266
|
import { Image } from "@transferwise/components";
|
|
3556
|
-
import { useEffect as useEffect10, useState as
|
|
4267
|
+
import { useEffect as useEffect10, useState as useState11 } from "react";
|
|
3557
4268
|
|
|
3558
4269
|
// ../renderers/src/utils/api-utils.ts
|
|
3559
4270
|
function isRelativePath(url = "") {
|
|
@@ -3563,7 +4274,7 @@ function isRelativePath(url = "") {
|
|
|
3563
4274
|
}
|
|
3564
4275
|
|
|
3565
4276
|
// ../renderers/src/ImageRenderer/UrlImage.tsx
|
|
3566
|
-
import { jsx as
|
|
4277
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
3567
4278
|
function UrlImage({
|
|
3568
4279
|
accessibilityDescription,
|
|
3569
4280
|
align,
|
|
@@ -3574,23 +4285,23 @@ function UrlImage({
|
|
|
3574
4285
|
uri,
|
|
3575
4286
|
httpClient
|
|
3576
4287
|
}) {
|
|
3577
|
-
const [imageSource, setImageSource] =
|
|
4288
|
+
const [imageSource, setImageSource] = useState11("");
|
|
3578
4289
|
useEffect10(() => {
|
|
3579
4290
|
if (!uri.startsWith("urn:")) {
|
|
3580
4291
|
void getImageSource(httpClient, uri).then(setImageSource);
|
|
3581
4292
|
}
|
|
3582
4293
|
}, [uri, httpClient]);
|
|
3583
|
-
return /* @__PURE__ */
|
|
4294
|
+
return /* @__PURE__ */ jsx55(
|
|
3584
4295
|
"div",
|
|
3585
4296
|
{
|
|
3586
|
-
className: (0,
|
|
4297
|
+
className: (0, import_classnames15.default)(
|
|
3587
4298
|
"df-image",
|
|
3588
4299
|
align,
|
|
3589
4300
|
size || "md",
|
|
3590
4301
|
getMargin(margin),
|
|
3591
4302
|
controlAndTagsToCSSClass({ control, tags })
|
|
3592
4303
|
),
|
|
3593
|
-
children: /* @__PURE__ */
|
|
4304
|
+
children: /* @__PURE__ */ jsx55(
|
|
3594
4305
|
Image,
|
|
3595
4306
|
{
|
|
3596
4307
|
className: "df-reserve-space",
|
|
@@ -3636,19 +4347,19 @@ var getImageSource = async (httpClient, imageUrl) => {
|
|
|
3636
4347
|
};
|
|
3637
4348
|
|
|
3638
4349
|
// ../renderers/src/ImageRenderer/ImageRenderer.tsx
|
|
3639
|
-
import { jsx as
|
|
4350
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
3640
4351
|
var ImageRenderer = {
|
|
3641
4352
|
canRenderType: "image",
|
|
3642
|
-
render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */
|
|
4353
|
+
render: (props) => isUrnImage(props.uri) ? /* @__PURE__ */ jsx56(UrnImage, __spreadValues({}, props)) : /* @__PURE__ */ jsx56(UrlImage, __spreadValues({}, props))
|
|
3643
4354
|
};
|
|
3644
4355
|
|
|
3645
4356
|
// ../renderers/src/ImageRenderer/index.tsx
|
|
3646
4357
|
var ImageRenderer_default = ImageRenderer;
|
|
3647
4358
|
|
|
3648
4359
|
// ../renderers/src/InstructionsRenderer.tsx
|
|
3649
|
-
var
|
|
4360
|
+
var import_classnames16 = __toESM(require_classnames());
|
|
3650
4361
|
import { Header as Header5, InstructionsList } from "@transferwise/components";
|
|
3651
|
-
import { jsx as
|
|
4362
|
+
import { jsx as jsx57, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3652
4363
|
var doContext = ["positive", "neutral", "proposition"];
|
|
3653
4364
|
var dontContext = ["warning", "negative"];
|
|
3654
4365
|
var InstructionsRenderer = {
|
|
@@ -3656,9 +4367,9 @@ var InstructionsRenderer = {
|
|
|
3656
4367
|
render: ({ items, margin, title, control, tags }) => {
|
|
3657
4368
|
const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
|
|
3658
4369
|
const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
|
|
3659
|
-
return /* @__PURE__ */
|
|
3660
|
-
title ? /* @__PURE__ */
|
|
3661
|
-
/* @__PURE__ */
|
|
4370
|
+
return /* @__PURE__ */ jsxs14("div", { className: (0, import_classnames16.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
4371
|
+
title ? /* @__PURE__ */ jsx57(Header5, { title }) : null,
|
|
4372
|
+
/* @__PURE__ */ jsx57(InstructionsList, { dos, donts })
|
|
3662
4373
|
] });
|
|
3663
4374
|
}
|
|
3664
4375
|
};
|
|
@@ -3690,7 +4401,7 @@ function pick(obj, ...keys) {
|
|
|
3690
4401
|
}
|
|
3691
4402
|
|
|
3692
4403
|
// ../renderers/src/IntegerInputRenderer.tsx
|
|
3693
|
-
import { jsx as
|
|
4404
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
3694
4405
|
var IntegerInputRenderer = {
|
|
3695
4406
|
canRenderType: "input-integer",
|
|
3696
4407
|
render: (props) => {
|
|
@@ -3705,7 +4416,7 @@ var IntegerInputRenderer = {
|
|
|
3705
4416
|
"maximum",
|
|
3706
4417
|
"minimum"
|
|
3707
4418
|
);
|
|
3708
|
-
return /* @__PURE__ */
|
|
4419
|
+
return /* @__PURE__ */ jsx58(
|
|
3709
4420
|
FieldInput_default,
|
|
3710
4421
|
{
|
|
3711
4422
|
id,
|
|
@@ -3718,7 +4429,7 @@ var IntegerInputRenderer = {
|
|
|
3718
4429
|
features: props.features,
|
|
3719
4430
|
control: props.control,
|
|
3720
4431
|
tags: props.tags,
|
|
3721
|
-
children: /* @__PURE__ */
|
|
4432
|
+
children: /* @__PURE__ */ jsx58(InputGroup2, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx58(
|
|
3722
4433
|
Input2,
|
|
3723
4434
|
__spreadValues({
|
|
3724
4435
|
id,
|
|
@@ -3741,13 +4452,13 @@ var IntegerInputRenderer = {
|
|
|
3741
4452
|
var IntegerInputRenderer_default = IntegerInputRenderer;
|
|
3742
4453
|
|
|
3743
4454
|
// ../renderers/src/ListRenderer.tsx
|
|
3744
|
-
var
|
|
4455
|
+
var import_classnames17 = __toESM(require_classnames());
|
|
3745
4456
|
import { ListItem as ListItem8 } from "@transferwise/components";
|
|
3746
4457
|
|
|
3747
4458
|
// ../renderers/src/components/Header.tsx
|
|
3748
4459
|
import { Header as DSHeader } from "@transferwise/components";
|
|
3749
|
-
import { jsx as
|
|
3750
|
-
var Header = ({ title, callToAction }) => (title || callToAction) && /* @__PURE__ */
|
|
4460
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
4461
|
+
var Header = ({ title, callToAction }) => (title || callToAction) && /* @__PURE__ */ jsx59(DSHeader, { title: title != null ? title : "", action: getHeaderAction(callToAction) });
|
|
3751
4462
|
var getHeaderAction = (callToAction) => {
|
|
3752
4463
|
if (!callToAction) {
|
|
3753
4464
|
return void 0;
|
|
@@ -3759,11 +4470,11 @@ var getHeaderAction = (callToAction) => {
|
|
|
3759
4470
|
};
|
|
3760
4471
|
|
|
3761
4472
|
// ../renderers/src/ListRenderer.tsx
|
|
3762
|
-
import { jsx as
|
|
4473
|
+
import { jsx as jsx60, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3763
4474
|
var ListRenderer = {
|
|
3764
4475
|
canRenderType: "list",
|
|
3765
|
-
render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */
|
|
3766
|
-
/* @__PURE__ */
|
|
4476
|
+
render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ jsxs15("div", { className: (0, import_classnames17.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
4477
|
+
/* @__PURE__ */ jsx60(Header, { title, callToAction }),
|
|
3767
4478
|
items.map((item) => {
|
|
3768
4479
|
var _a, _b;
|
|
3769
4480
|
const {
|
|
@@ -3780,7 +4491,7 @@ var ListRenderer = {
|
|
|
3780
4491
|
ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
|
|
3781
4492
|
fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
|
|
3782
4493
|
};
|
|
3783
|
-
return /* @__PURE__ */
|
|
4494
|
+
return /* @__PURE__ */ jsx60(
|
|
3784
4495
|
ListItem8,
|
|
3785
4496
|
{
|
|
3786
4497
|
title: itemTitle,
|
|
@@ -3800,17 +4511,17 @@ var ListRenderer = {
|
|
|
3800
4511
|
var ListRenderer_default = ListRenderer;
|
|
3801
4512
|
|
|
3802
4513
|
// ../renderers/src/LoadingIndicatorRenderer.tsx
|
|
3803
|
-
var
|
|
4514
|
+
var import_classnames18 = __toESM(require_classnames());
|
|
3804
4515
|
import { Loader } from "@transferwise/components";
|
|
3805
|
-
import { jsx as
|
|
4516
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
3806
4517
|
var LoadingIndicatorRenderer = {
|
|
3807
4518
|
canRenderType: "loading-indicator",
|
|
3808
|
-
render: ({ size, margin, control, tags }) => /* @__PURE__ */
|
|
4519
|
+
render: ({ size, margin, control, tags }) => /* @__PURE__ */ jsx61(
|
|
3809
4520
|
Loader,
|
|
3810
4521
|
{
|
|
3811
4522
|
size,
|
|
3812
4523
|
classNames: {
|
|
3813
|
-
"tw-loader": (0,
|
|
4524
|
+
"tw-loader": (0, import_classnames18.default)(
|
|
3814
4525
|
"tw-loader",
|
|
3815
4526
|
"m-x-auto",
|
|
3816
4527
|
getMargin(margin),
|
|
@@ -3824,24 +4535,24 @@ var LoadingIndicatorRenderer = {
|
|
|
3824
4535
|
var LoadingIndicatorRenderer_default = LoadingIndicatorRenderer;
|
|
3825
4536
|
|
|
3826
4537
|
// ../renderers/src/MarkdownRenderer.tsx
|
|
3827
|
-
var
|
|
4538
|
+
var import_classnames19 = __toESM(require_classnames());
|
|
3828
4539
|
import { Markdown as Markdown4 } from "@transferwise/components";
|
|
3829
|
-
import { jsx as
|
|
4540
|
+
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
3830
4541
|
var MarkdownRenderer = {
|
|
3831
4542
|
canRenderType: "markdown",
|
|
3832
4543
|
render: ({ content, align, margin, size, control, tags }) => {
|
|
3833
4544
|
const isLarge = !["xs", "sm"].includes(size);
|
|
3834
|
-
return /* @__PURE__ */
|
|
4545
|
+
return /* @__PURE__ */ jsx62(
|
|
3835
4546
|
"div",
|
|
3836
4547
|
{
|
|
3837
|
-
className: (0,
|
|
4548
|
+
className: (0, import_classnames19.default)(
|
|
3838
4549
|
getTextAlignmentAndMargin({ align, margin }),
|
|
3839
4550
|
controlAndTagsToCSSClass({ control, tags })
|
|
3840
4551
|
),
|
|
3841
|
-
children: /* @__PURE__ */
|
|
4552
|
+
children: /* @__PURE__ */ jsx62(
|
|
3842
4553
|
Markdown4,
|
|
3843
4554
|
{
|
|
3844
|
-
className: (0,
|
|
4555
|
+
className: (0, import_classnames19.default)("df-markdown", {
|
|
3845
4556
|
"np-text-body-large": isLarge,
|
|
3846
4557
|
"np-text-body-default": !isLarge
|
|
3847
4558
|
}),
|
|
@@ -3856,17 +4567,17 @@ var MarkdownRenderer = {
|
|
|
3856
4567
|
var MarkdownRenderer_default = MarkdownRenderer;
|
|
3857
4568
|
|
|
3858
4569
|
// ../renderers/src/MediaRenderer.tsx
|
|
3859
|
-
var
|
|
3860
|
-
import { jsx as
|
|
4570
|
+
var import_classnames20 = __toESM(require_classnames());
|
|
4571
|
+
import { jsx as jsx63 } from "react/jsx-runtime";
|
|
3861
4572
|
var MediaRenderer = {
|
|
3862
4573
|
canRenderType: "media",
|
|
3863
4574
|
render: (_a) => {
|
|
3864
4575
|
var _b = _a, { media } = _b, rest = __objRest(_b, ["media"]);
|
|
3865
4576
|
switch (media.type) {
|
|
3866
4577
|
case "avatar":
|
|
3867
|
-
return /* @__PURE__ */
|
|
4578
|
+
return /* @__PURE__ */ jsx63(AvatarMediaRendererComponent, __spreadValues({ media }, rest));
|
|
3868
4579
|
case "image":
|
|
3869
|
-
return /* @__PURE__ */
|
|
4580
|
+
return /* @__PURE__ */ jsx63(ImageMediaRendererComponent, __spreadValues({ media }, rest));
|
|
3870
4581
|
case "legacy":
|
|
3871
4582
|
return null;
|
|
3872
4583
|
}
|
|
@@ -3880,16 +4591,16 @@ var AvatarMediaRendererComponent = ({
|
|
|
3880
4591
|
control,
|
|
3881
4592
|
tags
|
|
3882
4593
|
}) => {
|
|
3883
|
-
return /* @__PURE__ */
|
|
4594
|
+
return /* @__PURE__ */ jsx63(
|
|
3884
4595
|
"div",
|
|
3885
4596
|
{
|
|
3886
|
-
className: (0,
|
|
4597
|
+
className: (0, import_classnames20.default)(
|
|
3887
4598
|
"df-media-layout-avatar",
|
|
3888
4599
|
align,
|
|
3889
4600
|
getMargin(margin),
|
|
3890
4601
|
controlAndTagsToCSSClass({ control, tags })
|
|
3891
4602
|
),
|
|
3892
|
-
children: /* @__PURE__ */
|
|
4603
|
+
children: /* @__PURE__ */ jsx63(Media, { media, size: mapAvatarMediaSize(size) })
|
|
3893
4604
|
}
|
|
3894
4605
|
);
|
|
3895
4606
|
};
|
|
@@ -3899,7 +4610,7 @@ var ImageMediaRendererComponent = (_a) => {
|
|
|
3899
4610
|
} = _b, rest = __objRest(_b, [
|
|
3900
4611
|
"media"
|
|
3901
4612
|
]);
|
|
3902
|
-
return isUrnImage(media.uri) ? /* @__PURE__ */
|
|
4613
|
+
return isUrnImage(media.uri) ? /* @__PURE__ */ jsx63(UrnImage, __spreadValues({ uri: media.uri, accessibilityDescription: media.accessibilityDescription }, rest)) : /* @__PURE__ */ jsx63(UrlImage, __spreadValues({ uri: media.uri, accessibilityDescription: media.accessibilityDescription }, rest));
|
|
3903
4614
|
};
|
|
3904
4615
|
var mapAvatarMediaSize = (size) => {
|
|
3905
4616
|
switch (size) {
|
|
@@ -3917,21 +4628,21 @@ var mapAvatarMediaSize = (size) => {
|
|
|
3917
4628
|
};
|
|
3918
4629
|
|
|
3919
4630
|
// ../renderers/src/ModalLayoutRenderer.tsx
|
|
3920
|
-
var
|
|
4631
|
+
var import_classnames21 = __toESM(require_classnames());
|
|
3921
4632
|
import { Button as Button6, Modal as Modal2 } from "@transferwise/components";
|
|
3922
|
-
import { useState as
|
|
3923
|
-
import { jsx as
|
|
4633
|
+
import { useState as useState12 } from "react";
|
|
4634
|
+
import { jsx as jsx64, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3924
4635
|
var ModalLayoutRenderer = {
|
|
3925
4636
|
canRenderType: "modal-layout",
|
|
3926
|
-
render: (props) => /* @__PURE__ */
|
|
4637
|
+
render: (props) => /* @__PURE__ */ jsx64(DFModal, __spreadValues({}, props))
|
|
3927
4638
|
};
|
|
3928
4639
|
var ModalLayoutRenderer_default = ModalLayoutRenderer;
|
|
3929
4640
|
function DFModal({ content, margin, trigger, control, tags }) {
|
|
3930
|
-
const [visible, setVisible] =
|
|
4641
|
+
const [visible, setVisible] = useState12(false);
|
|
3931
4642
|
const { children, title } = content;
|
|
3932
|
-
return /* @__PURE__ */
|
|
3933
|
-
/* @__PURE__ */
|
|
3934
|
-
/* @__PURE__ */
|
|
4643
|
+
return /* @__PURE__ */ jsxs16("div", { className: (0, import_classnames21.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
4644
|
+
/* @__PURE__ */ jsx64(Button6, { v2: true, priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
|
|
4645
|
+
/* @__PURE__ */ jsx64(
|
|
3935
4646
|
Modal2,
|
|
3936
4647
|
{
|
|
3937
4648
|
scroll: "content",
|
|
@@ -3947,11 +4658,11 @@ function DFModal({ content, margin, trigger, control, tags }) {
|
|
|
3947
4658
|
|
|
3948
4659
|
// ../renderers/src/ModalRenderer.tsx
|
|
3949
4660
|
import { Modal as Modal3 } from "@transferwise/components";
|
|
3950
|
-
import { jsx as
|
|
4661
|
+
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
3951
4662
|
var ModalRenderer = {
|
|
3952
4663
|
canRenderType: "modal",
|
|
3953
4664
|
render: ({ title, children, open, onClose, control, tags }) => {
|
|
3954
|
-
return /* @__PURE__ */
|
|
4665
|
+
return /* @__PURE__ */ jsx65(
|
|
3955
4666
|
Modal3,
|
|
3956
4667
|
{
|
|
3957
4668
|
open,
|
|
@@ -3967,8 +4678,8 @@ var ModalRenderer = {
|
|
|
3967
4678
|
// ../renderers/src/MoneyInputRenderer.tsx
|
|
3968
4679
|
import { MoneyInput } from "@transferwise/components";
|
|
3969
4680
|
import { useEffect as useEffect11 } from "react";
|
|
3970
|
-
import { useIntl as
|
|
3971
|
-
import { jsx as
|
|
4681
|
+
import { useIntl as useIntl11 } from "react-intl";
|
|
4682
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
3972
4683
|
var groupingTags2 = Object.keys(group_messages_default).filter((key) => key !== "all");
|
|
3973
4684
|
var MoneyInputRenderer = {
|
|
3974
4685
|
canRenderType: "money-input",
|
|
@@ -3997,8 +4708,8 @@ function MoneyInputRendererComponent(props) {
|
|
|
3997
4708
|
onCurrencyChange(0);
|
|
3998
4709
|
}
|
|
3999
4710
|
}, [selectedCurrencyIndex, onCurrencyChange, currencies.length]);
|
|
4000
|
-
const { formatMessage } =
|
|
4001
|
-
return /* @__PURE__ */
|
|
4711
|
+
const { formatMessage } = useIntl11();
|
|
4712
|
+
return /* @__PURE__ */ jsx66(
|
|
4002
4713
|
FieldInput_default,
|
|
4003
4714
|
{
|
|
4004
4715
|
id: uid,
|
|
@@ -4009,7 +4720,7 @@ function MoneyInputRendererComponent(props) {
|
|
|
4009
4720
|
features,
|
|
4010
4721
|
control,
|
|
4011
4722
|
tags,
|
|
4012
|
-
children: /* @__PURE__ */
|
|
4723
|
+
children: /* @__PURE__ */ jsx66(
|
|
4013
4724
|
MoneyInput,
|
|
4014
4725
|
{
|
|
4015
4726
|
amount: parseFloatOrNull(amountValue),
|
|
@@ -4072,8 +4783,8 @@ function assertCurrencyCodeIsString(currencyCode) {
|
|
|
4072
4783
|
|
|
4073
4784
|
// ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
|
|
4074
4785
|
import { ListItem as ListItem9, SearchInput as SearchInput2 } from "@transferwise/components";
|
|
4075
|
-
import { useState as
|
|
4076
|
-
import { useIntl as
|
|
4786
|
+
import { useState as useState13 } from "react";
|
|
4787
|
+
import { useIntl as useIntl12 } from "react-intl";
|
|
4077
4788
|
|
|
4078
4789
|
// ../renderers/src/utils/items-with-index.ts
|
|
4079
4790
|
var zipWithIndex = (items) => items.map((item, index) => __spreadProps(__spreadValues({}, item), {
|
|
@@ -4081,7 +4792,7 @@ var zipWithIndex = (items) => items.map((item, index) => __spreadProps(__spreadV
|
|
|
4081
4792
|
}));
|
|
4082
4793
|
|
|
4083
4794
|
// ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
|
|
4084
|
-
import { Fragment as Fragment8, jsx as
|
|
4795
|
+
import { Fragment as Fragment8, jsx as jsx67, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4085
4796
|
function InlineComponent(props) {
|
|
4086
4797
|
const {
|
|
4087
4798
|
id,
|
|
@@ -4098,12 +4809,12 @@ function InlineComponent(props) {
|
|
|
4098
4809
|
onSelect
|
|
4099
4810
|
} = props;
|
|
4100
4811
|
const optionsWithIndex = zipWithIndex(options);
|
|
4101
|
-
const [query, setQuery] =
|
|
4102
|
-
const { formatMessage } =
|
|
4812
|
+
const [query, setQuery] = useState13("");
|
|
4813
|
+
const { formatMessage } = useIntl12();
|
|
4103
4814
|
const filtered = tags == null ? void 0 : tags.includes("filtered");
|
|
4104
4815
|
const filteredOptions = query ? filterAndSortItems(optionsWithIndex, filtered ? query : "") : optionsWithIndex;
|
|
4105
|
-
return /* @__PURE__ */
|
|
4106
|
-
filtered && /* @__PURE__ */
|
|
4816
|
+
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
4817
|
+
filtered && /* @__PURE__ */ jsx67(
|
|
4107
4818
|
SearchInput2,
|
|
4108
4819
|
{
|
|
4109
4820
|
placeholder: formatMessage(filter_messages_default.placeholder),
|
|
@@ -4116,7 +4827,7 @@ function InlineComponent(props) {
|
|
|
4116
4827
|
}
|
|
4117
4828
|
}
|
|
4118
4829
|
),
|
|
4119
|
-
/* @__PURE__ */
|
|
4830
|
+
/* @__PURE__ */ jsx67(
|
|
4120
4831
|
FieldInput_default,
|
|
4121
4832
|
{
|
|
4122
4833
|
id,
|
|
@@ -4141,7 +4852,7 @@ function InlineComponent(props) {
|
|
|
4141
4852
|
childrenProps
|
|
4142
4853
|
} = option;
|
|
4143
4854
|
const key = (_a = childrenProps == null ? void 0 : childrenProps.uid) != null ? _a : index;
|
|
4144
|
-
return /* @__PURE__ */
|
|
4855
|
+
return /* @__PURE__ */ jsx67(
|
|
4145
4856
|
ListItem9,
|
|
4146
4857
|
{
|
|
4147
4858
|
title: itemTitle,
|
|
@@ -4150,9 +4861,9 @@ function InlineComponent(props) {
|
|
|
4150
4861
|
valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
|
|
4151
4862
|
media: getMedia(media, false),
|
|
4152
4863
|
prompt: getInlineAlert(inlineAlert),
|
|
4153
|
-
additionalInfo: additionalText ? /* @__PURE__ */
|
|
4864
|
+
additionalInfo: additionalText ? /* @__PURE__ */ jsx67(ListItem9.AdditionalInfo, { children: additionalText }) : void 0,
|
|
4154
4865
|
disabled: disabled || optionDisabled,
|
|
4155
|
-
control: /* @__PURE__ */
|
|
4866
|
+
control: /* @__PURE__ */ jsx67(
|
|
4156
4867
|
ListItem9.Checkbox,
|
|
4157
4868
|
{
|
|
4158
4869
|
checked: selectedIndices.includes(index),
|
|
@@ -4173,12 +4884,12 @@ function InlineComponent(props) {
|
|
|
4173
4884
|
|
|
4174
4885
|
// ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
|
|
4175
4886
|
import { SelectInput, SelectInputOptionContent } from "@transferwise/components";
|
|
4176
|
-
import { useState as
|
|
4177
|
-
import { useIntl as
|
|
4887
|
+
import { useState as useState14 } from "react";
|
|
4888
|
+
import { useIntl as useIntl13 } from "react-intl";
|
|
4178
4889
|
|
|
4179
4890
|
// ../renderers/src/messages/multi-select.messages.ts
|
|
4180
|
-
import { defineMessages as
|
|
4181
|
-
var multi_select_messages_default =
|
|
4891
|
+
import { defineMessages as defineMessages10 } from "react-intl";
|
|
4892
|
+
var multi_select_messages_default = defineMessages10({
|
|
4182
4893
|
summary: {
|
|
4183
4894
|
id: "df.wise.MultiSelect.summary",
|
|
4184
4895
|
defaultMessage: "{first} and {count} more",
|
|
@@ -4187,10 +4898,10 @@ var multi_select_messages_default = defineMessages9({
|
|
|
4187
4898
|
});
|
|
4188
4899
|
|
|
4189
4900
|
// ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
|
|
4190
|
-
import { jsx as
|
|
4901
|
+
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
4191
4902
|
function DefaultComponent(props) {
|
|
4192
|
-
const { formatMessage } =
|
|
4193
|
-
const [stagedIndices, setStagedIndices] =
|
|
4903
|
+
const { formatMessage } = useIntl13();
|
|
4904
|
+
const [stagedIndices, setStagedIndices] = useState14();
|
|
4194
4905
|
const {
|
|
4195
4906
|
id,
|
|
4196
4907
|
autoComplete,
|
|
@@ -4231,12 +4942,12 @@ function DefaultComponent(props) {
|
|
|
4231
4942
|
const contentProps = {
|
|
4232
4943
|
title: option.title,
|
|
4233
4944
|
description: option.description,
|
|
4234
|
-
icon: /* @__PURE__ */
|
|
4945
|
+
icon: /* @__PURE__ */ jsx68(OptionMedia, { media: option.media, preferAvatar: false })
|
|
4235
4946
|
};
|
|
4236
|
-
return /* @__PURE__ */
|
|
4947
|
+
return /* @__PURE__ */ jsx68(SelectInputOptionContent, __spreadValues({}, contentProps));
|
|
4237
4948
|
};
|
|
4238
4949
|
const extraProps = { autoComplete };
|
|
4239
|
-
return /* @__PURE__ */
|
|
4950
|
+
return /* @__PURE__ */ jsx68(
|
|
4240
4951
|
FieldInput_default,
|
|
4241
4952
|
{
|
|
4242
4953
|
id,
|
|
@@ -4247,7 +4958,7 @@ function DefaultComponent(props) {
|
|
|
4247
4958
|
features,
|
|
4248
4959
|
control,
|
|
4249
4960
|
tags,
|
|
4250
|
-
children: /* @__PURE__ */
|
|
4961
|
+
children: /* @__PURE__ */ jsx68(
|
|
4251
4962
|
SelectInput,
|
|
4252
4963
|
__spreadValues({
|
|
4253
4964
|
id,
|
|
@@ -4287,7 +4998,7 @@ function DefaultComponent(props) {
|
|
|
4287
4998
|
|
|
4288
4999
|
// ../renderers/src/MultiSelectInputRenderer/InlineCheckboxComponent.tsx
|
|
4289
5000
|
import { Checkbox as Checkbox2 } from "@transferwise/components";
|
|
4290
|
-
import { jsx as
|
|
5001
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
4291
5002
|
function InlineCheckboxComponent(props) {
|
|
4292
5003
|
const {
|
|
4293
5004
|
id,
|
|
@@ -4303,7 +5014,7 @@ function InlineCheckboxComponent(props) {
|
|
|
4303
5014
|
tags,
|
|
4304
5015
|
onSelect
|
|
4305
5016
|
} = props;
|
|
4306
|
-
return /* @__PURE__ */
|
|
5017
|
+
return /* @__PURE__ */ jsx69(
|
|
4307
5018
|
FieldInput_default,
|
|
4308
5019
|
{
|
|
4309
5020
|
id,
|
|
@@ -4334,24 +5045,24 @@ function InlineCheckboxComponent(props) {
|
|
|
4334
5045
|
onSelect(newSelectedIndices);
|
|
4335
5046
|
}
|
|
4336
5047
|
};
|
|
4337
|
-
return /* @__PURE__ */
|
|
5048
|
+
return /* @__PURE__ */ jsx69(Checkbox2, __spreadProps(__spreadValues({}, checkboxProps), { className: "m-t-1" }), key);
|
|
4338
5049
|
})
|
|
4339
5050
|
}
|
|
4340
5051
|
);
|
|
4341
5052
|
}
|
|
4342
5053
|
|
|
4343
5054
|
// ../renderers/src/MultiSelectInputRenderer/MultiSelectInputRenderer.tsx
|
|
4344
|
-
import { jsx as
|
|
5055
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
4345
5056
|
var MultiSelectInputRenderer = {
|
|
4346
5057
|
canRenderType: "input-multi-select",
|
|
4347
5058
|
render: (props) => {
|
|
4348
5059
|
switch (props.control) {
|
|
4349
5060
|
case "inline":
|
|
4350
|
-
return /* @__PURE__ */
|
|
5061
|
+
return /* @__PURE__ */ jsx70(InlineComponent, __spreadValues({}, props));
|
|
4351
5062
|
case "inline-checkbox-group":
|
|
4352
|
-
return /* @__PURE__ */
|
|
5063
|
+
return /* @__PURE__ */ jsx70(InlineCheckboxComponent, __spreadValues({}, props));
|
|
4353
5064
|
default:
|
|
4354
|
-
return /* @__PURE__ */
|
|
5065
|
+
return /* @__PURE__ */ jsx70(DefaultComponent, __spreadValues({}, props));
|
|
4355
5066
|
}
|
|
4356
5067
|
}
|
|
4357
5068
|
};
|
|
@@ -4361,8 +5072,8 @@ import { Status, UploadInput } from "@transferwise/components";
|
|
|
4361
5072
|
|
|
4362
5073
|
// ../renderers/src/components/UploadFieldInput.tsx
|
|
4363
5074
|
import { InlineAlert as InlineAlert2 } from "@transferwise/components";
|
|
4364
|
-
var
|
|
4365
|
-
import { jsx as
|
|
5075
|
+
var import_classnames22 = __toESM(require_classnames());
|
|
5076
|
+
import { jsx as jsx71, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4366
5077
|
function UploadFieldInput({
|
|
4367
5078
|
id,
|
|
4368
5079
|
children,
|
|
@@ -4374,14 +5085,14 @@ function UploadFieldInput({
|
|
|
4374
5085
|
control,
|
|
4375
5086
|
tags
|
|
4376
5087
|
}) {
|
|
4377
|
-
const labelContent = label && help ? /* @__PURE__ */
|
|
5088
|
+
const labelContent = label && help ? /* @__PURE__ */ jsx71(LabelContentWithHelp, { text: label, help }) : label;
|
|
4378
5089
|
const descriptionId = description ? `${id}-description` : void 0;
|
|
4379
5090
|
const { ref } = useScrollToError(validation, features);
|
|
4380
|
-
return /* @__PURE__ */
|
|
5091
|
+
return /* @__PURE__ */ jsxs18(
|
|
4381
5092
|
"div",
|
|
4382
5093
|
{
|
|
4383
5094
|
ref,
|
|
4384
|
-
className: (0,
|
|
5095
|
+
className: (0, import_classnames22.default)(
|
|
4385
5096
|
"form-group d-block",
|
|
4386
5097
|
{
|
|
4387
5098
|
"has-error": (validation == null ? void 0 : validation.status) === "invalid"
|
|
@@ -4389,9 +5100,9 @@ function UploadFieldInput({
|
|
|
4389
5100
|
controlAndTagsToCSSClass({ control, tags })
|
|
4390
5101
|
),
|
|
4391
5102
|
children: [
|
|
4392
|
-
/* @__PURE__ */
|
|
5103
|
+
/* @__PURE__ */ jsx71("label", { htmlFor: id, className: "control-label", children: labelContent }),
|
|
4393
5104
|
children,
|
|
4394
|
-
(validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */
|
|
5105
|
+
(validation == null ? void 0 : validation.status) === "invalid" && /* @__PURE__ */ jsx71(InlineAlert2, { type: "negative", id: descriptionId, children: validation.message })
|
|
4395
5106
|
]
|
|
4396
5107
|
}
|
|
4397
5108
|
);
|
|
@@ -4426,7 +5137,7 @@ var getSizeLimit = (maxSize) => {
|
|
|
4426
5137
|
};
|
|
4427
5138
|
|
|
4428
5139
|
// ../renderers/src/MultiUploadInputRenderer.tsx
|
|
4429
|
-
import { jsx as
|
|
5140
|
+
import { jsx as jsx72 } from "react/jsx-runtime";
|
|
4430
5141
|
var MultiUploadInputRenderer = {
|
|
4431
5142
|
canRenderType: "input-upload-multi",
|
|
4432
5143
|
render: (props) => {
|
|
@@ -4454,7 +5165,7 @@ var MultiUploadInputRenderer = {
|
|
|
4454
5165
|
};
|
|
4455
5166
|
const onDeleteFile = async (fileId) => onRemoveFile(value.findIndex((file) => file.id === fileId));
|
|
4456
5167
|
const descriptionId = description ? `${id}-description` : void 0;
|
|
4457
|
-
return /* @__PURE__ */
|
|
5168
|
+
return /* @__PURE__ */ jsx72(
|
|
4458
5169
|
UploadFieldInput_default,
|
|
4459
5170
|
{
|
|
4460
5171
|
id,
|
|
@@ -4465,7 +5176,7 @@ var MultiUploadInputRenderer = {
|
|
|
4465
5176
|
features,
|
|
4466
5177
|
control,
|
|
4467
5178
|
tags,
|
|
4468
|
-
children: /* @__PURE__ */
|
|
5179
|
+
children: /* @__PURE__ */ jsx72(
|
|
4469
5180
|
UploadInput,
|
|
4470
5181
|
{
|
|
4471
5182
|
id,
|
|
@@ -4494,7 +5205,7 @@ var MultiUploadInputRenderer_default = MultiUploadInputRenderer;
|
|
|
4494
5205
|
|
|
4495
5206
|
// ../renderers/src/NumberInputRenderer.tsx
|
|
4496
5207
|
import { Input as Input3, InputGroup as InputGroup3 } from "@transferwise/components";
|
|
4497
|
-
import { jsx as
|
|
5208
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
4498
5209
|
var NumberInputRenderer = {
|
|
4499
5210
|
canRenderType: "input-number",
|
|
4500
5211
|
render: (props) => {
|
|
@@ -4508,7 +5219,7 @@ var NumberInputRenderer = {
|
|
|
4508
5219
|
"maximum",
|
|
4509
5220
|
"minimum"
|
|
4510
5221
|
);
|
|
4511
|
-
return /* @__PURE__ */
|
|
5222
|
+
return /* @__PURE__ */ jsx73(
|
|
4512
5223
|
FieldInput_default,
|
|
4513
5224
|
{
|
|
4514
5225
|
id,
|
|
@@ -4521,7 +5232,7 @@ var NumberInputRenderer = {
|
|
|
4521
5232
|
features: props.features,
|
|
4522
5233
|
control: props.control,
|
|
4523
5234
|
tags: props.tags,
|
|
4524
|
-
children: /* @__PURE__ */
|
|
5235
|
+
children: /* @__PURE__ */ jsx73(InputGroup3, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx73(
|
|
4525
5236
|
Input3,
|
|
4526
5237
|
__spreadValues({
|
|
4527
5238
|
id,
|
|
@@ -4542,9 +5253,9 @@ var NumberInputRenderer = {
|
|
|
4542
5253
|
var NumberInputRenderer_default = NumberInputRenderer;
|
|
4543
5254
|
|
|
4544
5255
|
// ../renderers/src/ParagraphRenderer.tsx
|
|
4545
|
-
var
|
|
5256
|
+
var import_classnames23 = __toESM(require_classnames());
|
|
4546
5257
|
import { Button as Button7, Input as Input4 } from "@transferwise/components";
|
|
4547
|
-
import { useIntl as
|
|
5258
|
+
import { useIntl as useIntl14 } from "react-intl";
|
|
4548
5259
|
|
|
4549
5260
|
// ../renderers/src/hooks/useSnackBarIfAvailable.ts
|
|
4550
5261
|
import { SnackbarContext } from "@transferwise/components";
|
|
@@ -4556,8 +5267,8 @@ function useSnackBarIfAvailable() {
|
|
|
4556
5267
|
}
|
|
4557
5268
|
|
|
4558
5269
|
// ../renderers/src/messages/paragraph.messages.ts
|
|
4559
|
-
import { defineMessages as
|
|
4560
|
-
var paragraph_messages_default =
|
|
5270
|
+
import { defineMessages as defineMessages11 } from "react-intl";
|
|
5271
|
+
var paragraph_messages_default = defineMessages11({
|
|
4561
5272
|
copy: {
|
|
4562
5273
|
id: "df.wise.DynamicParagraph.copy",
|
|
4563
5274
|
defaultMessage: "Copy",
|
|
@@ -4571,18 +5282,18 @@ var paragraph_messages_default = defineMessages10({
|
|
|
4571
5282
|
});
|
|
4572
5283
|
|
|
4573
5284
|
// ../renderers/src/ParagraphRenderer.tsx
|
|
4574
|
-
import { jsx as
|
|
5285
|
+
import { jsx as jsx74, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4575
5286
|
var ParagraphRenderer = {
|
|
4576
5287
|
canRenderType: "paragraph",
|
|
4577
|
-
render: (props) => /* @__PURE__ */
|
|
5288
|
+
render: (props) => /* @__PURE__ */ jsx74(Paragraph, __spreadValues({}, props))
|
|
4578
5289
|
};
|
|
4579
5290
|
function Paragraph(props) {
|
|
4580
5291
|
const { align, control, margin, size, text } = props;
|
|
4581
|
-
const className = (0,
|
|
5292
|
+
const className = (0, import_classnames23.default)(
|
|
4582
5293
|
getTextAlignmentAndMargin({ align, margin }),
|
|
4583
5294
|
controlAndTagsToCSSClass(props)
|
|
4584
5295
|
);
|
|
4585
|
-
return control === "copyable" ? /* @__PURE__ */
|
|
5296
|
+
return control === "copyable" ? /* @__PURE__ */ jsx74(CopyableParagraph, { className, align, text }) : /* @__PURE__ */ jsx74(
|
|
4586
5297
|
"p",
|
|
4587
5298
|
{
|
|
4588
5299
|
className: `${["xs", "sm"].includes(size) ? "np-text-body-default" : "np-text-body-large"} ${className}`,
|
|
@@ -4595,41 +5306,41 @@ function CopyableParagraph({
|
|
|
4595
5306
|
align,
|
|
4596
5307
|
className
|
|
4597
5308
|
}) {
|
|
4598
|
-
const { formatMessage } =
|
|
5309
|
+
const { formatMessage } = useIntl14();
|
|
4599
5310
|
const createSnackbar = useSnackBarIfAvailable();
|
|
4600
5311
|
const copy = () => {
|
|
4601
5312
|
navigator.clipboard.writeText(text).then(() => createSnackbar({ text: formatMessage(paragraph_messages_default.copied) })).catch(() => {
|
|
4602
5313
|
});
|
|
4603
5314
|
};
|
|
4604
5315
|
const inputAlignmentClasses = getTextAlignmentAndMargin({ align, margin: "sm" });
|
|
4605
|
-
return /* @__PURE__ */
|
|
4606
|
-
/* @__PURE__ */
|
|
5316
|
+
return /* @__PURE__ */ jsxs19("div", { className, children: [
|
|
5317
|
+
/* @__PURE__ */ jsx74(
|
|
4607
5318
|
Input4,
|
|
4608
5319
|
{
|
|
4609
5320
|
type: "text",
|
|
4610
5321
|
value: text,
|
|
4611
5322
|
readOnly: true,
|
|
4612
|
-
className: (0,
|
|
5323
|
+
className: (0, import_classnames23.default)("text-ellipsis", inputAlignmentClasses)
|
|
4613
5324
|
}
|
|
4614
5325
|
),
|
|
4615
|
-
/* @__PURE__ */
|
|
5326
|
+
/* @__PURE__ */ jsx74(Button7, { v2: true, block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
|
|
4616
5327
|
] });
|
|
4617
5328
|
}
|
|
4618
5329
|
var ParagraphRenderer_default = ParagraphRenderer;
|
|
4619
5330
|
|
|
4620
5331
|
// ../renderers/src/ProgressRenderer.tsx
|
|
4621
|
-
var
|
|
5332
|
+
var import_classnames24 = __toESM(require_classnames());
|
|
4622
5333
|
import { ProgressBar } from "@transferwise/components";
|
|
4623
|
-
import { jsx as
|
|
5334
|
+
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
4624
5335
|
var ProgressRenderer = {
|
|
4625
5336
|
canRenderType: "progress",
|
|
4626
5337
|
render: ({ uid, title, help, progress, progressText, margin, description, control, tags }) => {
|
|
4627
|
-
return /* @__PURE__ */
|
|
5338
|
+
return /* @__PURE__ */ jsx75(
|
|
4628
5339
|
ProgressBar,
|
|
4629
5340
|
{
|
|
4630
5341
|
id: uid,
|
|
4631
|
-
className: (0,
|
|
4632
|
-
title: title && help ? /* @__PURE__ */
|
|
5342
|
+
className: (0, import_classnames24.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
|
|
5343
|
+
title: title && help ? /* @__PURE__ */ jsx75(LabelContentWithHelp, { text: title, help }) : title,
|
|
4633
5344
|
description,
|
|
4634
5345
|
progress: {
|
|
4635
5346
|
max: 1,
|
|
@@ -4642,15 +5353,15 @@ var ProgressRenderer = {
|
|
|
4642
5353
|
};
|
|
4643
5354
|
|
|
4644
5355
|
// ../renderers/src/RepeatableRenderer.tsx
|
|
4645
|
-
var
|
|
5356
|
+
var import_classnames25 = __toESM(require_classnames());
|
|
4646
5357
|
import { Button as Button8, Header as Header6, InlineAlert as InlineAlert3, Modal as Modal4, NavigationOption } from "@transferwise/components";
|
|
4647
5358
|
import { Plus } from "@transferwise/icons";
|
|
4648
|
-
import { useState as
|
|
4649
|
-
import { useIntl as
|
|
5359
|
+
import { useState as useState15 } from "react";
|
|
5360
|
+
import { useIntl as useIntl15 } from "react-intl";
|
|
4650
5361
|
|
|
4651
5362
|
// ../renderers/src/messages/repeatable.messages.ts
|
|
4652
|
-
import { defineMessages as
|
|
4653
|
-
var repeatable_messages_default =
|
|
5363
|
+
import { defineMessages as defineMessages12 } from "react-intl";
|
|
5364
|
+
var repeatable_messages_default = defineMessages12({
|
|
4654
5365
|
addItemTitle: {
|
|
4655
5366
|
id: "df.wise.ArraySchema.addItemTitle",
|
|
4656
5367
|
defaultMessage: "Add Item",
|
|
@@ -4674,10 +5385,10 @@ var repeatable_messages_default = defineMessages11({
|
|
|
4674
5385
|
});
|
|
4675
5386
|
|
|
4676
5387
|
// ../renderers/src/RepeatableRenderer.tsx
|
|
4677
|
-
import { Fragment as Fragment9, jsx as
|
|
5388
|
+
import { Fragment as Fragment9, jsx as jsx76, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4678
5389
|
var RepeatableRenderer = {
|
|
4679
5390
|
canRenderType: "repeatable",
|
|
4680
|
-
render: (props) => /* @__PURE__ */
|
|
5391
|
+
render: (props) => /* @__PURE__ */ jsx76(Repeatable, __spreadValues({}, props))
|
|
4681
5392
|
};
|
|
4682
5393
|
function Repeatable(props) {
|
|
4683
5394
|
const {
|
|
@@ -4694,8 +5405,8 @@ function Repeatable(props) {
|
|
|
4694
5405
|
onSave,
|
|
4695
5406
|
onRemove
|
|
4696
5407
|
} = props;
|
|
4697
|
-
const { formatMessage } =
|
|
4698
|
-
const [openModalType, setOpenModalType] =
|
|
5408
|
+
const { formatMessage } = useIntl15();
|
|
5409
|
+
const [openModalType, setOpenModalType] = useState15(null);
|
|
4699
5410
|
const { ref } = useScrollToError(validationState, features);
|
|
4700
5411
|
const onAddItem = () => {
|
|
4701
5412
|
onAdd();
|
|
@@ -4718,42 +5429,42 @@ function Repeatable(props) {
|
|
|
4718
5429
|
const onCancelEdit = () => {
|
|
4719
5430
|
setOpenModalType(null);
|
|
4720
5431
|
};
|
|
4721
|
-
return /* @__PURE__ */
|
|
4722
|
-
/* @__PURE__ */
|
|
4723
|
-
title && /* @__PURE__ */
|
|
4724
|
-
description && /* @__PURE__ */
|
|
4725
|
-
/* @__PURE__ */
|
|
5432
|
+
return /* @__PURE__ */ jsxs20(Fragment9, { children: [
|
|
5433
|
+
/* @__PURE__ */ jsxs20("div", { ref, className: controlAndTagsToCSSClass(props), children: [
|
|
5434
|
+
title && /* @__PURE__ */ jsx76(Header6, { title }),
|
|
5435
|
+
description && /* @__PURE__ */ jsx76("p", { children: description }),
|
|
5436
|
+
/* @__PURE__ */ jsxs20(
|
|
4726
5437
|
"div",
|
|
4727
5438
|
{
|
|
4728
|
-
className: (0,
|
|
5439
|
+
className: (0, import_classnames25.default)("form-group", {
|
|
4729
5440
|
"has-error": (validationState == null ? void 0 : validationState.status) === "invalid"
|
|
4730
5441
|
}),
|
|
4731
5442
|
children: [
|
|
4732
|
-
items == null ? void 0 : items.map((item, index) => /* @__PURE__ */
|
|
4733
|
-
/* @__PURE__ */
|
|
5443
|
+
items == null ? void 0 : items.map((item, index) => /* @__PURE__ */ jsx76(ItemSummaryOption, { item, onClick: () => onEditItem(index) }, item.id)),
|
|
5444
|
+
/* @__PURE__ */ jsx76(
|
|
4734
5445
|
NavigationOption,
|
|
4735
5446
|
{
|
|
4736
|
-
media: /* @__PURE__ */
|
|
5447
|
+
media: /* @__PURE__ */ jsx76(Plus, {}),
|
|
4737
5448
|
title: addItemTitle || formatMessage(repeatable_messages_default.addItemTitle),
|
|
4738
5449
|
showMediaAtAllSizes: true,
|
|
4739
5450
|
onClick: () => onAddItem()
|
|
4740
5451
|
}
|
|
4741
5452
|
),
|
|
4742
|
-
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */
|
|
5453
|
+
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx76(InlineAlert3, { type: "negative", children: validationState.message })
|
|
4743
5454
|
]
|
|
4744
5455
|
}
|
|
4745
5456
|
)
|
|
4746
5457
|
] }),
|
|
4747
|
-
/* @__PURE__ */
|
|
5458
|
+
/* @__PURE__ */ jsx76(
|
|
4748
5459
|
Modal4,
|
|
4749
5460
|
{
|
|
4750
5461
|
open: openModalType !== null,
|
|
4751
5462
|
title: (openModalType === "add" ? addItemTitle : editItemTitle) || formatMessage(repeatable_messages_default.addItemTitle),
|
|
4752
|
-
body: /* @__PURE__ */
|
|
4753
|
-
/* @__PURE__ */
|
|
4754
|
-
/* @__PURE__ */
|
|
4755
|
-
/* @__PURE__ */
|
|
4756
|
-
/* @__PURE__ */
|
|
5463
|
+
body: /* @__PURE__ */ jsxs20(Fragment9, { children: [
|
|
5464
|
+
/* @__PURE__ */ jsx76("div", { className: "m-b-2", children: editableItem }),
|
|
5465
|
+
/* @__PURE__ */ jsxs20("div", { children: [
|
|
5466
|
+
/* @__PURE__ */ jsx76(Button8, { priority: "primary", block: true, className: "m-b-2", onClick: () => onSaveItem(), children: formatMessage(repeatable_messages_default.addItem) }),
|
|
5467
|
+
/* @__PURE__ */ jsx76(
|
|
4757
5468
|
Button8,
|
|
4758
5469
|
{
|
|
4759
5470
|
v2: true,
|
|
@@ -4775,10 +5486,10 @@ function ItemSummaryOption({
|
|
|
4775
5486
|
item,
|
|
4776
5487
|
onClick
|
|
4777
5488
|
}) {
|
|
4778
|
-
return /* @__PURE__ */
|
|
5489
|
+
return /* @__PURE__ */ jsx76(
|
|
4779
5490
|
NavigationOption,
|
|
4780
5491
|
{
|
|
4781
|
-
media: /* @__PURE__ */
|
|
5492
|
+
media: /* @__PURE__ */ jsx76(OptionMedia, { media: item.media, preferAvatar: false }),
|
|
4782
5493
|
title: item.title,
|
|
4783
5494
|
content: item.description,
|
|
4784
5495
|
showMediaAtAllSizes: true,
|
|
@@ -4790,16 +5501,16 @@ function ItemSummaryOption({
|
|
|
4790
5501
|
var RepeatableRenderer_default = RepeatableRenderer;
|
|
4791
5502
|
|
|
4792
5503
|
// ../renderers/src/ReviewLegacyRenderer.tsx
|
|
4793
|
-
var
|
|
5504
|
+
var import_classnames26 = __toESM(require_classnames());
|
|
4794
5505
|
import { DefinitionList } from "@transferwise/components";
|
|
4795
|
-
import { Fragment as Fragment10, jsx as
|
|
5506
|
+
import { Fragment as Fragment10, jsx as jsx77, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4796
5507
|
var ReviewRenderer = {
|
|
4797
5508
|
canRenderType: "review",
|
|
4798
5509
|
render: ({ callToAction, control, fields, margin, title, trackEvent, tags }) => {
|
|
4799
5510
|
const orientation = mapControlToDefinitionListLayout(control);
|
|
4800
|
-
return /* @__PURE__ */
|
|
4801
|
-
/* @__PURE__ */
|
|
4802
|
-
/* @__PURE__ */
|
|
5511
|
+
return /* @__PURE__ */ jsxs21("div", { className: (0, import_classnames26.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
5512
|
+
/* @__PURE__ */ jsx77(Header, { title, callToAction }),
|
|
5513
|
+
/* @__PURE__ */ jsx77("div", { className: margin, children: /* @__PURE__ */ jsx77(
|
|
4803
5514
|
DefinitionList,
|
|
4804
5515
|
{
|
|
4805
5516
|
layout: orientation,
|
|
@@ -4837,21 +5548,21 @@ var mapControlToDefinitionListLayout = (control) => {
|
|
|
4837
5548
|
};
|
|
4838
5549
|
var getFieldLabel = (label, help, onClick) => {
|
|
4839
5550
|
if (help) {
|
|
4840
|
-
return /* @__PURE__ */
|
|
5551
|
+
return /* @__PURE__ */ jsxs21(Fragment10, { children: [
|
|
4841
5552
|
label,
|
|
4842
5553
|
" ",
|
|
4843
|
-
/* @__PURE__ */
|
|
5554
|
+
/* @__PURE__ */ jsx77(Help_default, { help, onClick })
|
|
4844
5555
|
] });
|
|
4845
5556
|
}
|
|
4846
5557
|
return label;
|
|
4847
5558
|
};
|
|
4848
5559
|
|
|
4849
5560
|
// ../renderers/src/ReviewRenderer.tsx
|
|
4850
|
-
var
|
|
5561
|
+
var import_classnames27 = __toESM(require_classnames());
|
|
4851
5562
|
import { ListItem as ListItem10, Markdown as Markdown5, Popover } from "@transferwise/components";
|
|
4852
5563
|
import { QuestionMarkCircle } from "@transferwise/icons";
|
|
4853
|
-
import { useIntl as
|
|
4854
|
-
import { jsx as
|
|
5564
|
+
import { useIntl as useIntl16 } from "react-intl";
|
|
5565
|
+
import { jsx as jsx78, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4855
5566
|
var IGNORED_CONTROLS = [
|
|
4856
5567
|
"horizontal",
|
|
4857
5568
|
"horizontal-end-aligned",
|
|
@@ -4861,7 +5572,7 @@ var IGNORED_CONTROLS = [
|
|
|
4861
5572
|
var ReviewRenderer2 = {
|
|
4862
5573
|
canRenderType: "review",
|
|
4863
5574
|
canRender: ({ control }) => control ? !IGNORED_CONTROLS.includes(control) : true,
|
|
4864
|
-
render: (props) => /* @__PURE__ */
|
|
5575
|
+
render: (props) => /* @__PURE__ */ jsx78(Review, __spreadValues({}, props))
|
|
4865
5576
|
};
|
|
4866
5577
|
var Review = ({
|
|
4867
5578
|
callToAction,
|
|
@@ -4872,9 +5583,9 @@ var Review = ({
|
|
|
4872
5583
|
title,
|
|
4873
5584
|
trackEvent
|
|
4874
5585
|
}) => {
|
|
4875
|
-
const intl =
|
|
4876
|
-
return /* @__PURE__ */
|
|
4877
|
-
/* @__PURE__ */
|
|
5586
|
+
const intl = useIntl16();
|
|
5587
|
+
return /* @__PURE__ */ jsxs22("div", { className: (0, import_classnames27.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
5588
|
+
/* @__PURE__ */ jsx78(Header, { title, callToAction }),
|
|
4878
5589
|
fields.map((field) => {
|
|
4879
5590
|
var _a, _b, _c;
|
|
4880
5591
|
const {
|
|
@@ -4892,7 +5603,7 @@ var Review = ({
|
|
|
4892
5603
|
ctaSecondary: (_a = itemTags == null ? void 0 : itemTags.includes("cta-secondary")) != null ? _a : false,
|
|
4893
5604
|
fullyInteractive: (_b = (tags == null ? void 0 : tags.includes("fully-interactive")) && (additionalInfo == null ? void 0 : additionalInfo.onClick) == null) != null ? _b : false
|
|
4894
5605
|
};
|
|
4895
|
-
return /* @__PURE__ */
|
|
5606
|
+
return /* @__PURE__ */ jsx78(
|
|
4896
5607
|
ListItem10,
|
|
4897
5608
|
{
|
|
4898
5609
|
title: value,
|
|
@@ -4913,18 +5624,18 @@ var Review = ({
|
|
|
4913
5624
|
] });
|
|
4914
5625
|
};
|
|
4915
5626
|
var getHelpControl = (help, ariaLabel, onClick) => {
|
|
4916
|
-
return /* @__PURE__ */
|
|
5627
|
+
return /* @__PURE__ */ jsx78(Popover, { content: /* @__PURE__ */ jsx78(Markdown5, { config: { link: { target: "_blank" } }, children: help }), children: /* @__PURE__ */ jsx78(ListItem10.IconButton, { partiallyInteractive: true, "aria-label": ariaLabel, onClick, children: /* @__PURE__ */ jsx78(QuestionMarkCircle, {}) }) });
|
|
4917
5628
|
};
|
|
4918
5629
|
var ReviewRenderer_default = ReviewRenderer2;
|
|
4919
5630
|
|
|
4920
5631
|
// ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
|
|
4921
5632
|
import { Input as Input5, InputGroup as InputGroup4, List, ListItem as ListItem11, Markdown as Markdown6 } from "@transferwise/components";
|
|
4922
|
-
import { useState as
|
|
4923
|
-
import { useIntl as
|
|
5633
|
+
import { useState as useState16 } from "react";
|
|
5634
|
+
import { useIntl as useIntl18 } from "react-intl";
|
|
4924
5635
|
|
|
4925
5636
|
// ../renderers/src/messages/search.messages.ts
|
|
4926
|
-
import { defineMessages as
|
|
4927
|
-
var search_messages_default =
|
|
5637
|
+
import { defineMessages as defineMessages13 } from "react-intl";
|
|
5638
|
+
var search_messages_default = defineMessages13({
|
|
4928
5639
|
loading: {
|
|
4929
5640
|
id: "df.wise.SearchLayout.loading",
|
|
4930
5641
|
defaultMessage: "Loading...",
|
|
@@ -4933,21 +5644,21 @@ var search_messages_default = defineMessages12({
|
|
|
4933
5644
|
});
|
|
4934
5645
|
|
|
4935
5646
|
// ../renderers/src/SearchRenderer/ErrorResult.tsx
|
|
4936
|
-
import { useIntl as
|
|
5647
|
+
import { useIntl as useIntl17 } from "react-intl";
|
|
4937
5648
|
import { Link as DSLink2 } from "@transferwise/components";
|
|
4938
|
-
import { jsx as
|
|
5649
|
+
import { jsx as jsx79, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
4939
5650
|
function ErrorResult({ state }) {
|
|
4940
|
-
const intl =
|
|
4941
|
-
return /* @__PURE__ */
|
|
5651
|
+
const intl = useIntl17();
|
|
5652
|
+
return /* @__PURE__ */ jsxs23("p", { className: "m-t-2", children: [
|
|
4942
5653
|
intl.formatMessage(generic_error_messages_default.genericError),
|
|
4943
5654
|
"\xA0",
|
|
4944
|
-
/* @__PURE__ */
|
|
5655
|
+
/* @__PURE__ */ jsx79(DSLink2, { onClick: () => state.onRetry(), children: intl.formatMessage(generic_error_messages_default.retry) })
|
|
4945
5656
|
] });
|
|
4946
5657
|
}
|
|
4947
5658
|
|
|
4948
5659
|
// ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
|
|
4949
5660
|
import { Search as Search2 } from "@transferwise/icons";
|
|
4950
|
-
import { Fragment as Fragment11, jsx as
|
|
5661
|
+
import { Fragment as Fragment11, jsx as jsx80, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
4951
5662
|
function BlockSearchRendererComponent({
|
|
4952
5663
|
id,
|
|
4953
5664
|
hint,
|
|
@@ -4962,10 +5673,10 @@ function BlockSearchRendererComponent({
|
|
|
4962
5673
|
trackEvent,
|
|
4963
5674
|
onChange
|
|
4964
5675
|
}) {
|
|
4965
|
-
const [hasSearched, setHasSearched] =
|
|
4966
|
-
const { formatMessage } =
|
|
4967
|
-
return /* @__PURE__ */
|
|
4968
|
-
/* @__PURE__ */
|
|
5676
|
+
const [hasSearched, setHasSearched] = useState16(false);
|
|
5677
|
+
const { formatMessage } = useIntl18();
|
|
5678
|
+
return /* @__PURE__ */ jsxs24("div", { className: getMargin(margin), children: [
|
|
5679
|
+
/* @__PURE__ */ jsx80(
|
|
4969
5680
|
FieldInput_default,
|
|
4970
5681
|
{
|
|
4971
5682
|
id,
|
|
@@ -4976,7 +5687,7 @@ function BlockSearchRendererComponent({
|
|
|
4976
5687
|
features,
|
|
4977
5688
|
control,
|
|
4978
5689
|
tags,
|
|
4979
|
-
children: /* @__PURE__ */
|
|
5690
|
+
children: /* @__PURE__ */ jsx80(InputGroup4, { addonStart: { content: /* @__PURE__ */ jsx80(Search2, { size: 24 }) }, children: /* @__PURE__ */ jsx80(
|
|
4980
5691
|
Input5,
|
|
4981
5692
|
{
|
|
4982
5693
|
id,
|
|
@@ -4996,7 +5707,7 @@ function BlockSearchRendererComponent({
|
|
|
4996
5707
|
) })
|
|
4997
5708
|
}
|
|
4998
5709
|
),
|
|
4999
|
-
isLoading ? /* @__PURE__ */
|
|
5710
|
+
isLoading ? /* @__PURE__ */ jsx80("span", { children: formatMessage(search_messages_default.loading) }) : /* @__PURE__ */ jsx80(SearchResultContent, { state, trackEvent })
|
|
5000
5711
|
] });
|
|
5001
5712
|
}
|
|
5002
5713
|
function SearchResultContent({
|
|
@@ -5005,38 +5716,38 @@ function SearchResultContent({
|
|
|
5005
5716
|
}) {
|
|
5006
5717
|
switch (state.type) {
|
|
5007
5718
|
case "error":
|
|
5008
|
-
return /* @__PURE__ */
|
|
5719
|
+
return /* @__PURE__ */ jsx80(ErrorResult, { state });
|
|
5009
5720
|
case "results":
|
|
5010
|
-
return /* @__PURE__ */
|
|
5721
|
+
return /* @__PURE__ */ jsx80(SearchResults, { state, trackEvent });
|
|
5011
5722
|
case "layout":
|
|
5012
|
-
return /* @__PURE__ */
|
|
5723
|
+
return /* @__PURE__ */ jsxs24(Fragment11, { children: [
|
|
5013
5724
|
" ",
|
|
5014
5725
|
state.layout,
|
|
5015
5726
|
" "
|
|
5016
5727
|
] });
|
|
5017
5728
|
case "noResults":
|
|
5018
|
-
return /* @__PURE__ */
|
|
5729
|
+
return /* @__PURE__ */ jsx80(EmptySearchResult, { state });
|
|
5019
5730
|
case "pending":
|
|
5020
5731
|
default:
|
|
5021
5732
|
return null;
|
|
5022
5733
|
}
|
|
5023
5734
|
}
|
|
5024
5735
|
function EmptySearchResult({ state }) {
|
|
5025
|
-
return /* @__PURE__ */
|
|
5736
|
+
return /* @__PURE__ */ jsx80(Markdown6, { className: "m-t-2", config: { link: { target: "_blank" } }, children: state.message });
|
|
5026
5737
|
}
|
|
5027
5738
|
function SearchResults({
|
|
5028
5739
|
state,
|
|
5029
5740
|
trackEvent
|
|
5030
5741
|
}) {
|
|
5031
|
-
return /* @__PURE__ */
|
|
5742
|
+
return /* @__PURE__ */ jsx80(List, { children: state.results.map((result) => {
|
|
5032
5743
|
const { media } = result;
|
|
5033
|
-
return /* @__PURE__ */
|
|
5744
|
+
return /* @__PURE__ */ jsx80(
|
|
5034
5745
|
ListItem11,
|
|
5035
5746
|
{
|
|
5036
5747
|
title: result.title,
|
|
5037
5748
|
subtitle: result.description,
|
|
5038
|
-
media: media ? /* @__PURE__ */
|
|
5039
|
-
control: /* @__PURE__ */
|
|
5749
|
+
media: media ? /* @__PURE__ */ jsx80(OptionMedia, { media, preferAvatar: false }) : void 0,
|
|
5750
|
+
control: /* @__PURE__ */ jsx80(
|
|
5040
5751
|
ListItem11.Navigation,
|
|
5041
5752
|
{
|
|
5042
5753
|
onClick: () => {
|
|
@@ -5057,9 +5768,9 @@ var BlockSearchRendererComponent_default = BlockSearchRendererComponent;
|
|
|
5057
5768
|
// ../renderers/src/SearchRenderer/InlineSearchRendererComponent.tsx
|
|
5058
5769
|
import { Markdown as Markdown7, Typeahead } from "@transferwise/components";
|
|
5059
5770
|
import { Search as Search3 } from "@transferwise/icons";
|
|
5060
|
-
import { useState as
|
|
5061
|
-
import { useIntl as
|
|
5062
|
-
import { jsx as
|
|
5771
|
+
import { useState as useState17 } from "react";
|
|
5772
|
+
import { useIntl as useIntl19 } from "react-intl";
|
|
5773
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
5063
5774
|
function InlineSearchRenderer({
|
|
5064
5775
|
id,
|
|
5065
5776
|
hint,
|
|
@@ -5073,9 +5784,9 @@ function InlineSearchRenderer({
|
|
|
5073
5784
|
onChange,
|
|
5074
5785
|
trackEvent
|
|
5075
5786
|
}) {
|
|
5076
|
-
const [hasSearched, setHasSearched] =
|
|
5077
|
-
const intl =
|
|
5078
|
-
return /* @__PURE__ */
|
|
5787
|
+
const [hasSearched, setHasSearched] = useState17(false);
|
|
5788
|
+
const intl = useIntl19();
|
|
5789
|
+
return /* @__PURE__ */ jsx81("div", { className: getMargin(margin), children: /* @__PURE__ */ jsx81(
|
|
5079
5790
|
FieldInput_default,
|
|
5080
5791
|
{
|
|
5081
5792
|
id,
|
|
@@ -5086,7 +5797,7 @@ function InlineSearchRenderer({
|
|
|
5086
5797
|
features,
|
|
5087
5798
|
control,
|
|
5088
5799
|
tags,
|
|
5089
|
-
children: /* @__PURE__ */
|
|
5800
|
+
children: /* @__PURE__ */ jsx81(
|
|
5090
5801
|
Typeahead,
|
|
5091
5802
|
{
|
|
5092
5803
|
id: "typeahead-input-id",
|
|
@@ -5095,10 +5806,10 @@ function InlineSearchRenderer({
|
|
|
5095
5806
|
size: "md",
|
|
5096
5807
|
placeholder: hint,
|
|
5097
5808
|
maxHeight: 100,
|
|
5098
|
-
footer: /* @__PURE__ */
|
|
5809
|
+
footer: /* @__PURE__ */ jsx81(TypeaheadFooter, { state, isLoading }),
|
|
5099
5810
|
multiple: false,
|
|
5100
5811
|
clearable: false,
|
|
5101
|
-
addon: /* @__PURE__ */
|
|
5812
|
+
addon: /* @__PURE__ */ jsx81(Search3, { size: 24 }),
|
|
5102
5813
|
options: state.type === "results" ? state.results.map(mapResultToTypeaheadOption) : [],
|
|
5103
5814
|
minQueryLength: 1,
|
|
5104
5815
|
onChange: (values) => {
|
|
@@ -5135,33 +5846,33 @@ function mapResultToTypeaheadOption(result) {
|
|
|
5135
5846
|
};
|
|
5136
5847
|
}
|
|
5137
5848
|
function TypeaheadFooter({ state, isLoading }) {
|
|
5138
|
-
const { formatMessage } =
|
|
5849
|
+
const { formatMessage } = useIntl19();
|
|
5139
5850
|
if (state.type === "layout") {
|
|
5140
|
-
return /* @__PURE__ */
|
|
5851
|
+
return /* @__PURE__ */ jsx81("div", { className: "m-x-1 m-y-1", children: state.layout });
|
|
5141
5852
|
}
|
|
5142
5853
|
if (state.type === "noResults") {
|
|
5143
|
-
return /* @__PURE__ */
|
|
5854
|
+
return /* @__PURE__ */ jsx81(Markdown7, { className: "m-t-2 m-x-2", config: { link: { target: "_blank" } }, children: state.message });
|
|
5144
5855
|
}
|
|
5145
5856
|
if (state.type === "error") {
|
|
5146
|
-
return /* @__PURE__ */
|
|
5857
|
+
return /* @__PURE__ */ jsx81("div", { className: "m-t-2 m-x-2", children: /* @__PURE__ */ jsx81(ErrorResult, { state }) });
|
|
5147
5858
|
}
|
|
5148
5859
|
if (state.type === "pending" || isLoading) {
|
|
5149
|
-
return /* @__PURE__ */
|
|
5860
|
+
return /* @__PURE__ */ jsx81("p", { className: "m-t-2 m-x-2", children: formatMessage(search_messages_default.loading) });
|
|
5150
5861
|
}
|
|
5151
5862
|
return null;
|
|
5152
5863
|
}
|
|
5153
5864
|
var InlineSearchRendererComponent_default = InlineSearchRenderer;
|
|
5154
5865
|
|
|
5155
5866
|
// ../renderers/src/SearchRenderer/SearchRenderer.tsx
|
|
5156
|
-
import { jsx as
|
|
5867
|
+
import { jsx as jsx82 } from "react/jsx-runtime";
|
|
5157
5868
|
var SearchRenderer = {
|
|
5158
5869
|
canRenderType: "search",
|
|
5159
|
-
render: (props) => props.control === "inline" ? /* @__PURE__ */
|
|
5870
|
+
render: (props) => props.control === "inline" ? /* @__PURE__ */ jsx82(InlineSearchRendererComponent_default, __spreadValues({}, props)) : /* @__PURE__ */ jsx82(BlockSearchRendererComponent_default, __spreadValues({}, props))
|
|
5160
5871
|
};
|
|
5161
5872
|
var SearchRenderer_default = SearchRenderer;
|
|
5162
5873
|
|
|
5163
5874
|
// ../renderers/src/SectionRenderer.tsx
|
|
5164
|
-
var
|
|
5875
|
+
var import_classnames28 = __toESM(require_classnames());
|
|
5165
5876
|
import { Header as Header7 } from "@transferwise/components";
|
|
5166
5877
|
|
|
5167
5878
|
// ../renderers/src/utils/getHeaderAction.tsx
|
|
@@ -5186,16 +5897,16 @@ var getHeaderAction2 = (callToAction) => {
|
|
|
5186
5897
|
};
|
|
5187
5898
|
|
|
5188
5899
|
// ../renderers/src/SectionRenderer.tsx
|
|
5189
|
-
import { jsx as
|
|
5900
|
+
import { jsx as jsx83, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5190
5901
|
var SectionRenderer = {
|
|
5191
5902
|
canRenderType: "section",
|
|
5192
5903
|
render: ({ children, callToAction, margin, title, control, tags }) => {
|
|
5193
|
-
return /* @__PURE__ */
|
|
5904
|
+
return /* @__PURE__ */ jsxs25(
|
|
5194
5905
|
"section",
|
|
5195
5906
|
{
|
|
5196
|
-
className: (0,
|
|
5907
|
+
className: (0, import_classnames28.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
|
|
5197
5908
|
children: [
|
|
5198
|
-
(title || callToAction) && /* @__PURE__ */
|
|
5909
|
+
(title || callToAction) && /* @__PURE__ */ jsx83(Header7, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
|
|
5199
5910
|
children
|
|
5200
5911
|
]
|
|
5201
5912
|
}
|
|
@@ -5206,7 +5917,7 @@ var SectionRenderer_default = SectionRenderer;
|
|
|
5206
5917
|
|
|
5207
5918
|
// ../renderers/src/SelectInputRenderer/RadioInputRendererComponent.tsx
|
|
5208
5919
|
import { RadioGroup } from "@transferwise/components";
|
|
5209
|
-
import { Fragment as Fragment12, jsx as
|
|
5920
|
+
import { Fragment as Fragment12, jsx as jsx84, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5210
5921
|
function RadioInputRendererComponent(props) {
|
|
5211
5922
|
const {
|
|
5212
5923
|
id,
|
|
@@ -5223,8 +5934,8 @@ function RadioInputRendererComponent(props) {
|
|
|
5223
5934
|
tags,
|
|
5224
5935
|
onSelect
|
|
5225
5936
|
} = props;
|
|
5226
|
-
return /* @__PURE__ */
|
|
5227
|
-
/* @__PURE__ */
|
|
5937
|
+
return /* @__PURE__ */ jsxs26(Fragment12, { children: [
|
|
5938
|
+
/* @__PURE__ */ jsx84(
|
|
5228
5939
|
FieldInput_default,
|
|
5229
5940
|
{
|
|
5230
5941
|
id,
|
|
@@ -5235,7 +5946,7 @@ function RadioInputRendererComponent(props) {
|
|
|
5235
5946
|
features,
|
|
5236
5947
|
control,
|
|
5237
5948
|
tags,
|
|
5238
|
-
children: /* @__PURE__ */
|
|
5949
|
+
children: /* @__PURE__ */ jsx84("span", { children: /* @__PURE__ */ jsx84(
|
|
5239
5950
|
RadioGroup,
|
|
5240
5951
|
{
|
|
5241
5952
|
name: id,
|
|
@@ -5244,7 +5955,7 @@ function RadioInputRendererComponent(props) {
|
|
|
5244
5955
|
value: index,
|
|
5245
5956
|
secondary: option.description,
|
|
5246
5957
|
disabled: option.disabled || disabled,
|
|
5247
|
-
avatar: /* @__PURE__ */
|
|
5958
|
+
avatar: /* @__PURE__ */ jsx84(OptionMedia, { media: option.media, preferAvatar: false })
|
|
5248
5959
|
})),
|
|
5249
5960
|
selectedValue: selectedIndex != null ? selectedIndex : void 0,
|
|
5250
5961
|
onChange: onSelect
|
|
@@ -5260,7 +5971,7 @@ function RadioInputRendererComponent(props) {
|
|
|
5260
5971
|
// ../renderers/src/SelectInputRenderer/TabInputRendererComponent.tsx
|
|
5261
5972
|
import { Tabs } from "@transferwise/components";
|
|
5262
5973
|
import { useEffect as useEffect12 } from "react";
|
|
5263
|
-
import { Fragment as Fragment13, jsx as
|
|
5974
|
+
import { Fragment as Fragment13, jsx as jsx85, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
5264
5975
|
function TabInputRendererComponent(props) {
|
|
5265
5976
|
const {
|
|
5266
5977
|
id,
|
|
@@ -5282,8 +5993,8 @@ function TabInputRendererComponent(props) {
|
|
|
5282
5993
|
onSelect(0);
|
|
5283
5994
|
}
|
|
5284
5995
|
}, [selectedIndex, onSelect, options.length]);
|
|
5285
|
-
return /* @__PURE__ */
|
|
5286
|
-
/* @__PURE__ */
|
|
5996
|
+
return /* @__PURE__ */ jsxs27(Fragment13, { children: [
|
|
5997
|
+
/* @__PURE__ */ jsx85(
|
|
5287
5998
|
FieldInput_default,
|
|
5288
5999
|
{
|
|
5289
6000
|
id,
|
|
@@ -5294,7 +6005,7 @@ function TabInputRendererComponent(props) {
|
|
|
5294
6005
|
features,
|
|
5295
6006
|
control,
|
|
5296
6007
|
tags,
|
|
5297
|
-
children: /* @__PURE__ */
|
|
6008
|
+
children: /* @__PURE__ */ jsx85(
|
|
5298
6009
|
Tabs,
|
|
5299
6010
|
{
|
|
5300
6011
|
name: id,
|
|
@@ -5303,7 +6014,7 @@ function TabInputRendererComponent(props) {
|
|
|
5303
6014
|
title: option.title,
|
|
5304
6015
|
// if we pass null, we get some props-types console errors
|
|
5305
6016
|
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
5306
|
-
content: /* @__PURE__ */
|
|
6017
|
+
content: /* @__PURE__ */ jsx85(Fragment13, {}),
|
|
5307
6018
|
disabled: option.disabled || disabled
|
|
5308
6019
|
})),
|
|
5309
6020
|
onTabSelect: onSelect
|
|
@@ -5318,7 +6029,7 @@ var isValidIndex2 = (index, options) => index !== null && index >= 0 && index <
|
|
|
5318
6029
|
|
|
5319
6030
|
// ../renderers/src/SelectInputRenderer/SelectInputRendererComponent.tsx
|
|
5320
6031
|
import { SelectInput as SelectInput2, SelectInputOptionContent as SelectInputOptionContent2 } from "@transferwise/components";
|
|
5321
|
-
import { Fragment as Fragment14, jsx as
|
|
6032
|
+
import { Fragment as Fragment14, jsx as jsx86, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5322
6033
|
function SelectInputRendererComponent(props) {
|
|
5323
6034
|
const {
|
|
5324
6035
|
id,
|
|
@@ -5361,13 +6072,13 @@ function SelectInputRendererComponent(props) {
|
|
|
5361
6072
|
} : {
|
|
5362
6073
|
title: option.title,
|
|
5363
6074
|
description: option.description,
|
|
5364
|
-
icon: /* @__PURE__ */
|
|
6075
|
+
icon: /* @__PURE__ */ jsx86(OptionMedia, { media: option.media, preferAvatar: false })
|
|
5365
6076
|
};
|
|
5366
|
-
return /* @__PURE__ */
|
|
6077
|
+
return /* @__PURE__ */ jsx86(SelectInputOptionContent2, __spreadValues({}, contentProps));
|
|
5367
6078
|
};
|
|
5368
6079
|
const extraProps = { autoComplete };
|
|
5369
|
-
return /* @__PURE__ */
|
|
5370
|
-
/* @__PURE__ */
|
|
6080
|
+
return /* @__PURE__ */ jsxs28(Fragment14, { children: [
|
|
6081
|
+
/* @__PURE__ */ jsx86(
|
|
5371
6082
|
FieldInput_default,
|
|
5372
6083
|
{
|
|
5373
6084
|
id,
|
|
@@ -5378,7 +6089,7 @@ function SelectInputRendererComponent(props) {
|
|
|
5378
6089
|
features,
|
|
5379
6090
|
control,
|
|
5380
6091
|
tags,
|
|
5381
|
-
children: /* @__PURE__ */
|
|
6092
|
+
children: /* @__PURE__ */ jsx86(
|
|
5382
6093
|
SelectInput2,
|
|
5383
6094
|
__spreadValues({
|
|
5384
6095
|
name: id,
|
|
@@ -5401,7 +6112,7 @@ function SelectInputRendererComponent(props) {
|
|
|
5401
6112
|
// ../renderers/src/SelectInputRenderer/SegmentedInputRendererComponent.tsx
|
|
5402
6113
|
import { useEffect as useEffect13 } from "react";
|
|
5403
6114
|
import { SegmentedControl } from "@transferwise/components";
|
|
5404
|
-
import { Fragment as Fragment15, jsx as
|
|
6115
|
+
import { Fragment as Fragment15, jsx as jsx87, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5405
6116
|
function SegmentedInputRendererComponent(props) {
|
|
5406
6117
|
const {
|
|
5407
6118
|
id,
|
|
@@ -5422,8 +6133,8 @@ function SegmentedInputRendererComponent(props) {
|
|
|
5422
6133
|
onSelect(0);
|
|
5423
6134
|
}
|
|
5424
6135
|
}, [selectedIndex, onSelect, options.length]);
|
|
5425
|
-
return /* @__PURE__ */
|
|
5426
|
-
/* @__PURE__ */
|
|
6136
|
+
return /* @__PURE__ */ jsxs29(Fragment15, { children: [
|
|
6137
|
+
/* @__PURE__ */ jsx87(
|
|
5427
6138
|
FieldInput_default,
|
|
5428
6139
|
{
|
|
5429
6140
|
id,
|
|
@@ -5434,7 +6145,7 @@ function SegmentedInputRendererComponent(props) {
|
|
|
5434
6145
|
features,
|
|
5435
6146
|
control,
|
|
5436
6147
|
tags,
|
|
5437
|
-
children: /* @__PURE__ */
|
|
6148
|
+
children: /* @__PURE__ */ jsx87(
|
|
5438
6149
|
SegmentedControl,
|
|
5439
6150
|
{
|
|
5440
6151
|
name: `${id}-segmented-control`,
|
|
@@ -5451,14 +6162,14 @@ function SegmentedInputRendererComponent(props) {
|
|
|
5451
6162
|
)
|
|
5452
6163
|
}
|
|
5453
6164
|
),
|
|
5454
|
-
/* @__PURE__ */
|
|
6165
|
+
/* @__PURE__ */ jsx87("div", { id: `${id}-children`, children })
|
|
5455
6166
|
] });
|
|
5456
6167
|
}
|
|
5457
6168
|
var isValidIndex3 = (index, options) => index !== null && index >= 0 && index < options;
|
|
5458
6169
|
|
|
5459
6170
|
// ../renderers/src/SelectInputRenderer/RadioItemRendererComponent.tsx
|
|
5460
6171
|
import { Header as Header8, InlineAlert as InlineAlert4, List as List2, ListItem as ListItem12 } from "@transferwise/components";
|
|
5461
|
-
import { jsx as
|
|
6172
|
+
import { jsx as jsx88, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5462
6173
|
function RadioItemRendererComponent(props) {
|
|
5463
6174
|
const {
|
|
5464
6175
|
id,
|
|
@@ -5474,22 +6185,22 @@ function RadioItemRendererComponent(props) {
|
|
|
5474
6185
|
onSelect
|
|
5475
6186
|
} = props;
|
|
5476
6187
|
const { ref } = useScrollToError(validationState, features);
|
|
5477
|
-
return /* @__PURE__ */
|
|
5478
|
-
rootTitle && /* @__PURE__ */
|
|
6188
|
+
return /* @__PURE__ */ jsxs30("div", { ref, className: controlAndTagsToCSSClass(props), children: [
|
|
6189
|
+
rootTitle && /* @__PURE__ */ jsx88(
|
|
5479
6190
|
Header8,
|
|
5480
6191
|
{
|
|
5481
6192
|
as: "h2",
|
|
5482
|
-
title: help ? /* @__PURE__ */
|
|
6193
|
+
title: help ? /* @__PURE__ */ jsx88(LabelContentWithHelp, { text: rootTitle, help }) : rootTitle
|
|
5483
6194
|
}
|
|
5484
6195
|
),
|
|
5485
|
-
rootDescription && /* @__PURE__ */
|
|
5486
|
-
/* @__PURE__ */
|
|
5487
|
-
({ title, description, additionalText, inlineAlert, disabled, media, supportingValues }, index) => /* @__PURE__ */
|
|
6196
|
+
rootDescription && /* @__PURE__ */ jsx88("p", { children: rootDescription }),
|
|
6197
|
+
/* @__PURE__ */ jsx88(List2, { children: options.map(
|
|
6198
|
+
({ title, description, additionalText, inlineAlert, disabled, media, supportingValues }, index) => /* @__PURE__ */ jsx88(
|
|
5488
6199
|
ListItem12,
|
|
5489
6200
|
__spreadValues({
|
|
5490
6201
|
title,
|
|
5491
6202
|
subtitle: description,
|
|
5492
|
-
control: /* @__PURE__ */
|
|
6203
|
+
control: /* @__PURE__ */ jsx88(
|
|
5493
6204
|
ListItem12.Radio,
|
|
5494
6205
|
{
|
|
5495
6206
|
name: title,
|
|
@@ -5505,50 +6216,50 @@ function RadioItemRendererComponent(props) {
|
|
|
5505
6216
|
title
|
|
5506
6217
|
)
|
|
5507
6218
|
) }, `${id}-${selectedIndex}`),
|
|
5508
|
-
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */
|
|
6219
|
+
(validationState == null ? void 0 : validationState.status) === "invalid" && /* @__PURE__ */ jsx88(InlineAlert4, { type: "negative", children: validationState.message }),
|
|
5509
6220
|
children
|
|
5510
6221
|
] });
|
|
5511
6222
|
}
|
|
5512
6223
|
|
|
5513
6224
|
// ../renderers/src/SelectInputRenderer/SelectInputRenderer.tsx
|
|
5514
|
-
import { jsx as
|
|
6225
|
+
import { jsx as jsx89 } from "react/jsx-runtime";
|
|
5515
6226
|
var SelectInputRenderer = {
|
|
5516
6227
|
canRenderType: "input-select",
|
|
5517
6228
|
render: (props) => {
|
|
5518
6229
|
switch (props.control) {
|
|
5519
6230
|
case "radio":
|
|
5520
|
-
return /* @__PURE__ */
|
|
6231
|
+
return /* @__PURE__ */ jsx89(RadioInputRendererComponent, __spreadValues({}, props));
|
|
5521
6232
|
case "radio-item":
|
|
5522
|
-
return /* @__PURE__ */
|
|
6233
|
+
return /* @__PURE__ */ jsx89(RadioItemRendererComponent, __spreadValues({}, props));
|
|
5523
6234
|
case "tab":
|
|
5524
|
-
return props.options.length > 3 ? /* @__PURE__ */
|
|
6235
|
+
return props.options.length > 3 ? /* @__PURE__ */ jsx89(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx89(TabInputRendererComponent, __spreadValues({}, props));
|
|
5525
6236
|
case "segmented":
|
|
5526
|
-
return props.options.length > 3 ? /* @__PURE__ */
|
|
6237
|
+
return props.options.length > 3 ? /* @__PURE__ */ jsx89(SelectInputRendererComponent, __spreadValues({}, props)) : /* @__PURE__ */ jsx89(SegmentedInputRendererComponent, __spreadValues({}, props));
|
|
5527
6238
|
case "select":
|
|
5528
6239
|
default:
|
|
5529
|
-
return /* @__PURE__ */
|
|
6240
|
+
return /* @__PURE__ */ jsx89(SelectInputRendererComponent, __spreadValues({}, props));
|
|
5530
6241
|
}
|
|
5531
6242
|
}
|
|
5532
6243
|
};
|
|
5533
6244
|
var SelectInputRenderer_default = SelectInputRenderer;
|
|
5534
6245
|
|
|
5535
6246
|
// ../renderers/src/StatusListRenderer.tsx
|
|
5536
|
-
var
|
|
6247
|
+
var import_classnames29 = __toESM(require_classnames());
|
|
5537
6248
|
import { AvatarView as AvatarView4, Header as Header9, ListItem as ListItem13 } from "@transferwise/components";
|
|
5538
|
-
import { jsx as
|
|
6249
|
+
import { jsx as jsx90, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5539
6250
|
var StatusListRenderer = {
|
|
5540
6251
|
canRenderType: "status-list",
|
|
5541
|
-
render: ({ margin, items, title, control, tags }) => /* @__PURE__ */
|
|
5542
|
-
title ? /* @__PURE__ */
|
|
6252
|
+
render: ({ margin, items, title, control, tags }) => /* @__PURE__ */ jsxs31("div", { className: (0, import_classnames29.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
6253
|
+
title ? /* @__PURE__ */ jsx90(Header9, { title }) : null,
|
|
5543
6254
|
items.map((item) => {
|
|
5544
6255
|
const { callToAction, description, title: itemTitle } = item;
|
|
5545
|
-
return /* @__PURE__ */
|
|
6256
|
+
return /* @__PURE__ */ jsx90(
|
|
5546
6257
|
ListItem13,
|
|
5547
6258
|
{
|
|
5548
6259
|
title: itemTitle,
|
|
5549
6260
|
subtitle: description,
|
|
5550
|
-
media: /* @__PURE__ */
|
|
5551
|
-
additionalInfo: callToAction ? /* @__PURE__ */
|
|
6261
|
+
media: /* @__PURE__ */ jsx90(StatusListItemMedia, __spreadValues({}, item)),
|
|
6262
|
+
additionalInfo: callToAction ? /* @__PURE__ */ jsx90(
|
|
5552
6263
|
ListItem13.AdditionalInfo,
|
|
5553
6264
|
{
|
|
5554
6265
|
action: __spreadValues({
|
|
@@ -5567,10 +6278,10 @@ var StatusListItemMedia = ({ icon, status }) => {
|
|
|
5567
6278
|
return void 0;
|
|
5568
6279
|
}
|
|
5569
6280
|
if ("name" in icon) {
|
|
5570
|
-
return /* @__PURE__ */
|
|
6281
|
+
return /* @__PURE__ */ jsx90(AvatarView4, { badge: { status: mapStatus(status) }, children: /* @__PURE__ */ jsx90(DynamicIcon_default, { name: icon.name }) });
|
|
5571
6282
|
}
|
|
5572
6283
|
if ("text" in icon) {
|
|
5573
|
-
return /* @__PURE__ */
|
|
6284
|
+
return /* @__PURE__ */ jsx90(AvatarView4, { badge: { status: mapStatus(status) }, children: icon.text });
|
|
5574
6285
|
}
|
|
5575
6286
|
return void 0;
|
|
5576
6287
|
};
|
|
@@ -5587,7 +6298,7 @@ var mapStatus = (status) => {
|
|
|
5587
6298
|
var StatusListRenderer_default = StatusListRenderer;
|
|
5588
6299
|
|
|
5589
6300
|
// ../renderers/src/step/SplashCelebrationStepRenderer.tsx
|
|
5590
|
-
var
|
|
6301
|
+
var import_classnames30 = __toESM(require_classnames());
|
|
5591
6302
|
|
|
5592
6303
|
// ../renderers/src/utils/useCustomTheme.ts
|
|
5593
6304
|
import { useTheme } from "@wise/components-theming";
|
|
@@ -5609,12 +6320,12 @@ var useCustomTheme = (theme, trackEvent) => {
|
|
|
5609
6320
|
|
|
5610
6321
|
// ../renderers/src/step/StepHeader.tsx
|
|
5611
6322
|
import { Title as Title2 } from "@transferwise/components";
|
|
5612
|
-
import { Fragment as Fragment16, jsx as
|
|
6323
|
+
import { Fragment as Fragment16, jsx as jsx91, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
5613
6324
|
var StepHeader = ({ title, description, tags }) => {
|
|
5614
6325
|
const { titleType, alignmentClassName } = getHeaderStyle(tags);
|
|
5615
|
-
return /* @__PURE__ */
|
|
5616
|
-
title ? /* @__PURE__ */
|
|
5617
|
-
description ? /* @__PURE__ */
|
|
6326
|
+
return /* @__PURE__ */ jsxs32(Fragment16, { children: [
|
|
6327
|
+
title ? /* @__PURE__ */ jsx91(Title2, { as: "h1", type: titleType, className: `${alignmentClassName} m-b-2`, children: title }) : void 0,
|
|
6328
|
+
description ? /* @__PURE__ */ jsx91("p", { className: `${alignmentClassName} np-text-body-large`, children: description }) : void 0
|
|
5618
6329
|
] });
|
|
5619
6330
|
};
|
|
5620
6331
|
var getHeaderStyle = (tags) => {
|
|
@@ -5627,11 +6338,11 @@ var getHeaderStyle = (tags) => {
|
|
|
5627
6338
|
// ../renderers/src/step/topbar/BackButton.tsx
|
|
5628
6339
|
import { IconButton as IconButton2 } from "@transferwise/components";
|
|
5629
6340
|
import { ArrowLeft } from "@transferwise/icons";
|
|
5630
|
-
import { useIntl as
|
|
6341
|
+
import { useIntl as useIntl20 } from "react-intl";
|
|
5631
6342
|
|
|
5632
6343
|
// ../renderers/src/messages/back.messages.ts
|
|
5633
|
-
import { defineMessages as
|
|
5634
|
-
var back_messages_default =
|
|
6344
|
+
import { defineMessages as defineMessages14 } from "react-intl";
|
|
6345
|
+
var back_messages_default = defineMessages14({
|
|
5635
6346
|
back: {
|
|
5636
6347
|
id: "df.wise.back.label",
|
|
5637
6348
|
defaultMessage: "Back",
|
|
@@ -5640,30 +6351,30 @@ var back_messages_default = defineMessages13({
|
|
|
5640
6351
|
});
|
|
5641
6352
|
|
|
5642
6353
|
// ../renderers/src/step/topbar/BackButton.tsx
|
|
5643
|
-
import { jsx as
|
|
6354
|
+
import { jsx as jsx92, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
5644
6355
|
function BackButton({ title, onClick }) {
|
|
5645
|
-
const { formatMessage } =
|
|
5646
|
-
return /* @__PURE__ */
|
|
5647
|
-
/* @__PURE__ */
|
|
5648
|
-
/* @__PURE__ */
|
|
6356
|
+
const { formatMessage } = useIntl20();
|
|
6357
|
+
return /* @__PURE__ */ jsxs33(IconButton2, { className: "df-back-button", priority: "tertiary", onClick, children: [
|
|
6358
|
+
/* @__PURE__ */ jsx92("span", { className: "sr-only", children: title != null ? title : formatMessage(back_messages_default.back) }),
|
|
6359
|
+
/* @__PURE__ */ jsx92(ArrowLeft, {})
|
|
5649
6360
|
] });
|
|
5650
6361
|
}
|
|
5651
6362
|
|
|
5652
6363
|
// ../renderers/src/step/topbar/Toolbar.tsx
|
|
5653
6364
|
import { Button as Button9, IconButton as IconButton3 } from "@transferwise/components";
|
|
5654
|
-
import { jsx as
|
|
6365
|
+
import { jsx as jsx93, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
5655
6366
|
var Toolbar = ({ items }) => {
|
|
5656
|
-
return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */
|
|
6367
|
+
return (items == null ? void 0 : items.length) > 0 ? /* @__PURE__ */ jsx93("div", { className: "df-toolbar", children: items.map((item, index) => /* @__PURE__ */ jsx93(ToolbarButton, __spreadValues({}, item), `${item.type}-${index}-${item.title}`)) }) : null;
|
|
5657
6368
|
};
|
|
5658
6369
|
function ToolbarButton(props) {
|
|
5659
|
-
return prefersMedia(props.control) ? /* @__PURE__ */
|
|
6370
|
+
return prefersMedia(props.control) ? /* @__PURE__ */ jsx93(MediaToolbarButton, __spreadValues({}, props)) : /* @__PURE__ */ jsx93(TextToolbarButton, __spreadValues({}, props));
|
|
5660
6371
|
}
|
|
5661
6372
|
function MediaToolbarButton(props) {
|
|
5662
6373
|
var _a;
|
|
5663
6374
|
const { context, control, media, accessibilityDescription, disabled, onClick } = props;
|
|
5664
6375
|
const priority = getIconButtonPriority(control);
|
|
5665
6376
|
const type = getSentiment2(context);
|
|
5666
|
-
return /* @__PURE__ */
|
|
6377
|
+
return /* @__PURE__ */ jsxs34(
|
|
5667
6378
|
IconButton3,
|
|
5668
6379
|
{
|
|
5669
6380
|
className: "df-toolbar-button",
|
|
@@ -5673,7 +6384,7 @@ function MediaToolbarButton(props) {
|
|
|
5673
6384
|
type,
|
|
5674
6385
|
onClick,
|
|
5675
6386
|
children: [
|
|
5676
|
-
accessibilityDescription ? /* @__PURE__ */
|
|
6387
|
+
accessibilityDescription ? /* @__PURE__ */ jsx93("span", { className: "sr-only", children: accessibilityDescription }) : null,
|
|
5677
6388
|
media ? (_a = getAddonStartMedia(media)) == null ? void 0 : _a.value : null
|
|
5678
6389
|
]
|
|
5679
6390
|
}
|
|
@@ -5684,7 +6395,7 @@ function TextToolbarButton(props) {
|
|
|
5684
6395
|
const addonStart = media ? getAddonStartMedia(media) : void 0;
|
|
5685
6396
|
const priority = getPriority2(control);
|
|
5686
6397
|
const sentiment = getSentiment2(context);
|
|
5687
|
-
return /* @__PURE__ */
|
|
6398
|
+
return /* @__PURE__ */ jsx93(
|
|
5688
6399
|
Button9,
|
|
5689
6400
|
{
|
|
5690
6401
|
v2: true,
|
|
@@ -5714,18 +6425,18 @@ var getIconButtonPriority = (control) => {
|
|
|
5714
6425
|
};
|
|
5715
6426
|
|
|
5716
6427
|
// ../renderers/src/step/topbar/TopBar.tsx
|
|
5717
|
-
import { jsx as
|
|
6428
|
+
import { jsx as jsx94, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
5718
6429
|
function TopBar({ back, toolbar, tags }) {
|
|
5719
6430
|
const isBackAllowed = !(tags == null ? void 0 : tags.includes("non-dismissible"));
|
|
5720
6431
|
const backCTA = isBackAllowed ? back : void 0;
|
|
5721
|
-
return backCTA || toolbar ? /* @__PURE__ */
|
|
5722
|
-
backCTA ? /* @__PURE__ */
|
|
5723
|
-
toolbar ? /* @__PURE__ */
|
|
6432
|
+
return backCTA || toolbar ? /* @__PURE__ */ jsxs35("div", { className: "d-flex m-b-2", children: [
|
|
6433
|
+
backCTA ? /* @__PURE__ */ jsx94(BackButton, __spreadValues({}, backCTA)) : null,
|
|
6434
|
+
toolbar ? /* @__PURE__ */ jsx94(Toolbar, __spreadValues({}, toolbar)) : null
|
|
5724
6435
|
] }) : null;
|
|
5725
6436
|
}
|
|
5726
6437
|
|
|
5727
6438
|
// ../renderers/src/step/SplashCelebrationStepRenderer.tsx
|
|
5728
|
-
import { jsx as
|
|
6439
|
+
import { jsx as jsx95, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5729
6440
|
var SplashCelebrationStepRenderer = {
|
|
5730
6441
|
canRenderType: "step",
|
|
5731
6442
|
canRender: ({ control }) => control === "splash-celebration",
|
|
@@ -5734,23 +6445,23 @@ var SplashCelebrationStepRenderer = {
|
|
|
5734
6445
|
function SplashCelebrationStepRendererComponent(props) {
|
|
5735
6446
|
const { back, title, description, toolbar, children, footer, control, tags, trackEvent } = props;
|
|
5736
6447
|
useCustomTheme("forest-green", trackEvent);
|
|
5737
|
-
return /* @__PURE__ */
|
|
6448
|
+
return /* @__PURE__ */ jsxs36(
|
|
5738
6449
|
"div",
|
|
5739
6450
|
{
|
|
5740
|
-
className: (0,
|
|
6451
|
+
className: (0, import_classnames30.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
|
|
5741
6452
|
children: [
|
|
5742
|
-
/* @__PURE__ */
|
|
5743
|
-
title || description ? /* @__PURE__ */
|
|
6453
|
+
/* @__PURE__ */ jsx95(TopBar, { back, toolbar, tags }),
|
|
6454
|
+
title || description ? /* @__PURE__ */ jsx95("div", { className: "m-b-4", children: /* @__PURE__ */ jsx95(StepHeader, { title, description, tags }) }) : void 0,
|
|
5744
6455
|
children,
|
|
5745
|
-
/* @__PURE__ */
|
|
6456
|
+
/* @__PURE__ */ jsx95(StepFooter, { footer, tags })
|
|
5746
6457
|
]
|
|
5747
6458
|
}
|
|
5748
6459
|
);
|
|
5749
6460
|
}
|
|
5750
6461
|
|
|
5751
6462
|
// ../renderers/src/step/SplashStepRenderer.tsx
|
|
5752
|
-
var
|
|
5753
|
-
import { jsx as
|
|
6463
|
+
var import_classnames31 = __toESM(require_classnames());
|
|
6464
|
+
import { jsx as jsx96, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5754
6465
|
var SplashStepRenderer = {
|
|
5755
6466
|
canRenderType: "step",
|
|
5756
6467
|
canRender: ({ control }) => control === "splash",
|
|
@@ -5758,15 +6469,15 @@ var SplashStepRenderer = {
|
|
|
5758
6469
|
};
|
|
5759
6470
|
function SplashStepRendererComponent(props) {
|
|
5760
6471
|
const { back, title, description, toolbar, children, footer, control, tags } = props;
|
|
5761
|
-
return /* @__PURE__ */
|
|
6472
|
+
return /* @__PURE__ */ jsxs37(
|
|
5762
6473
|
"div",
|
|
5763
6474
|
{
|
|
5764
|
-
className: (0,
|
|
6475
|
+
className: (0, import_classnames31.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
|
|
5765
6476
|
children: [
|
|
5766
|
-
/* @__PURE__ */
|
|
5767
|
-
title || description ? /* @__PURE__ */
|
|
6477
|
+
/* @__PURE__ */ jsx96(TopBar, { back, toolbar, tags }),
|
|
6478
|
+
title || description ? /* @__PURE__ */ jsx96("div", { className: "m-b-4", children: /* @__PURE__ */ jsx96(StepHeader, { title, description, tags }) }) : void 0,
|
|
5768
6479
|
children,
|
|
5769
|
-
/* @__PURE__ */
|
|
6480
|
+
/* @__PURE__ */ jsx96(StepFooter, { footer, tags })
|
|
5770
6481
|
]
|
|
5771
6482
|
}
|
|
5772
6483
|
);
|
|
@@ -5774,46 +6485,46 @@ function SplashStepRendererComponent(props) {
|
|
|
5774
6485
|
|
|
5775
6486
|
// ../renderers/src/step/StepRenderer.tsx
|
|
5776
6487
|
import { Alert } from "@transferwise/components";
|
|
5777
|
-
import { jsx as
|
|
6488
|
+
import { jsx as jsx97, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5778
6489
|
var StepRenderer = {
|
|
5779
6490
|
canRenderType: "step",
|
|
5780
6491
|
render: StepRendererComponent
|
|
5781
6492
|
};
|
|
5782
6493
|
function StepRendererComponent(props) {
|
|
5783
6494
|
const { back, description, error, title, children, toolbar, footer, control, tags } = props;
|
|
5784
|
-
return /* @__PURE__ */
|
|
5785
|
-
/* @__PURE__ */
|
|
5786
|
-
title || description ? /* @__PURE__ */
|
|
5787
|
-
error ? /* @__PURE__ */
|
|
6495
|
+
return /* @__PURE__ */ jsxs38("div", { className: controlAndTagsToCSSClass({ control, tags }), children: [
|
|
6496
|
+
/* @__PURE__ */ jsx97(TopBar, { back, toolbar, tags }),
|
|
6497
|
+
title || description ? /* @__PURE__ */ jsx97("div", { className: "m-b-4", children: /* @__PURE__ */ jsx97(StepHeader, { title, description, tags }) }) : void 0,
|
|
6498
|
+
error ? /* @__PURE__ */ jsx97(Alert, { type: "negative", className: "m-b-2", message: error }) : null,
|
|
5788
6499
|
children,
|
|
5789
|
-
/* @__PURE__ */
|
|
6500
|
+
/* @__PURE__ */ jsx97(StepFooter, { footer, tags })
|
|
5790
6501
|
] });
|
|
5791
6502
|
}
|
|
5792
6503
|
|
|
5793
6504
|
// ../renderers/src/TabsRenderer.tsx
|
|
5794
|
-
var
|
|
6505
|
+
var import_classnames32 = __toESM(require_classnames());
|
|
5795
6506
|
import { Chips as Chips2, SegmentedControl as SegmentedControl2, Tabs as Tabs2 } from "@transferwise/components";
|
|
5796
|
-
import { useState as
|
|
5797
|
-
import { jsx as
|
|
6507
|
+
import { useState as useState18 } from "react";
|
|
6508
|
+
import { jsx as jsx98, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5798
6509
|
var TabsRenderer = {
|
|
5799
6510
|
canRenderType: "tabs",
|
|
5800
6511
|
render: (props) => {
|
|
5801
6512
|
switch (props.control) {
|
|
5802
6513
|
case "segmented":
|
|
5803
6514
|
if (props.tabs.length > 3) {
|
|
5804
|
-
return /* @__PURE__ */
|
|
6515
|
+
return /* @__PURE__ */ jsx98(TabsRendererComponent, __spreadValues({}, props));
|
|
5805
6516
|
}
|
|
5806
|
-
return /* @__PURE__ */
|
|
6517
|
+
return /* @__PURE__ */ jsx98(SegmentedTabsRendererComponent, __spreadValues({}, props));
|
|
5807
6518
|
case "chips":
|
|
5808
|
-
return /* @__PURE__ */
|
|
6519
|
+
return /* @__PURE__ */ jsx98(ChipsTabsRendererComponent, __spreadValues({}, props));
|
|
5809
6520
|
default:
|
|
5810
|
-
return /* @__PURE__ */
|
|
6521
|
+
return /* @__PURE__ */ jsx98(TabsRendererComponent, __spreadValues({}, props));
|
|
5811
6522
|
}
|
|
5812
6523
|
}
|
|
5813
6524
|
};
|
|
5814
6525
|
function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
|
|
5815
|
-
const [selectedIndex, setSelectedIndex] =
|
|
5816
|
-
return /* @__PURE__ */
|
|
6526
|
+
const [selectedIndex, setSelectedIndex] = useState18(0);
|
|
6527
|
+
return /* @__PURE__ */ jsx98("div", { className: (0, import_classnames32.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: /* @__PURE__ */ jsx98(
|
|
5817
6528
|
Tabs2,
|
|
5818
6529
|
{
|
|
5819
6530
|
name: uid,
|
|
@@ -5821,7 +6532,7 @@ function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
|
|
|
5821
6532
|
tabs: tabs.map((option) => ({
|
|
5822
6533
|
title: option.title,
|
|
5823
6534
|
disabled: false,
|
|
5824
|
-
content: /* @__PURE__ */
|
|
6535
|
+
content: /* @__PURE__ */ jsxs39("div", { className: "m-t-2", children: [
|
|
5825
6536
|
" ",
|
|
5826
6537
|
option.children,
|
|
5827
6538
|
" "
|
|
@@ -5833,9 +6544,9 @@ function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
|
|
|
5833
6544
|
}
|
|
5834
6545
|
function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
|
|
5835
6546
|
var _a;
|
|
5836
|
-
const [selectedIndex, setSelectedIndex] =
|
|
5837
|
-
return /* @__PURE__ */
|
|
5838
|
-
/* @__PURE__ */
|
|
6547
|
+
const [selectedIndex, setSelectedIndex] = useState18(0);
|
|
6548
|
+
return /* @__PURE__ */ jsxs39("div", { className: (0, import_classnames32.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
6549
|
+
/* @__PURE__ */ jsx98(
|
|
5839
6550
|
SegmentedControl2,
|
|
5840
6551
|
{
|
|
5841
6552
|
name: uid,
|
|
@@ -5850,14 +6561,14 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
|
|
|
5850
6561
|
onChange: (value) => setSelectedIndex(Number(value))
|
|
5851
6562
|
}
|
|
5852
6563
|
),
|
|
5853
|
-
/* @__PURE__ */
|
|
6564
|
+
/* @__PURE__ */ jsx98("div", { id: `${uid}-children`, className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
|
|
5854
6565
|
] });
|
|
5855
6566
|
}
|
|
5856
6567
|
function ChipsTabsRendererComponent({ margin, tabs, control, tags }) {
|
|
5857
6568
|
var _a;
|
|
5858
|
-
const [selectedIndex, setSelectedIndex] =
|
|
5859
|
-
return /* @__PURE__ */
|
|
5860
|
-
/* @__PURE__ */
|
|
6569
|
+
const [selectedIndex, setSelectedIndex] = useState18(0);
|
|
6570
|
+
return /* @__PURE__ */ jsxs39("div", { className: (0, import_classnames32.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
|
|
6571
|
+
/* @__PURE__ */ jsx98("div", { className: "chips-container", children: /* @__PURE__ */ jsx98(
|
|
5861
6572
|
Chips2,
|
|
5862
6573
|
{
|
|
5863
6574
|
chips: tabs.map((tab, index) => ({ label: tab.title, value: index })),
|
|
@@ -5865,7 +6576,7 @@ function ChipsTabsRendererComponent({ margin, tabs, control, tags }) {
|
|
|
5865
6576
|
onChange: ({ selectedValue }) => setSelectedIndex(Number(selectedValue))
|
|
5866
6577
|
}
|
|
5867
6578
|
) }),
|
|
5868
|
-
/* @__PURE__ */
|
|
6579
|
+
/* @__PURE__ */ jsx98("div", { className: "m-t-2", children: (_a = tabs[selectedIndex]) == null ? void 0 : _a.children })
|
|
5869
6580
|
] });
|
|
5870
6581
|
}
|
|
5871
6582
|
|
|
@@ -5880,7 +6591,7 @@ import {
|
|
|
5880
6591
|
TextArea,
|
|
5881
6592
|
TextareaWithDisplayFormat
|
|
5882
6593
|
} from "@transferwise/components";
|
|
5883
|
-
import { jsx as
|
|
6594
|
+
import { jsx as jsx99 } from "react/jsx-runtime";
|
|
5884
6595
|
var commonKeys = [
|
|
5885
6596
|
"autoComplete",
|
|
5886
6597
|
"autoCapitalize",
|
|
@@ -5899,12 +6610,12 @@ function VariableTextInput(inputProps) {
|
|
|
5899
6610
|
const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
|
|
5900
6611
|
switch (control) {
|
|
5901
6612
|
case "email":
|
|
5902
|
-
return /* @__PURE__ */
|
|
6613
|
+
return /* @__PURE__ */ jsx99(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
|
|
5903
6614
|
case "password":
|
|
5904
|
-
return /* @__PURE__ */
|
|
6615
|
+
return /* @__PURE__ */ jsx99(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
|
|
5905
6616
|
case "numeric": {
|
|
5906
6617
|
const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
|
|
5907
|
-
return /* @__PURE__ */
|
|
6618
|
+
return /* @__PURE__ */ jsx99(
|
|
5908
6619
|
TextInput,
|
|
5909
6620
|
__spreadProps(__spreadValues({}, numericProps), {
|
|
5910
6621
|
onChange: (newValue) => {
|
|
@@ -5915,9 +6626,9 @@ function VariableTextInput(inputProps) {
|
|
|
5915
6626
|
);
|
|
5916
6627
|
}
|
|
5917
6628
|
case "phone-number":
|
|
5918
|
-
return /* @__PURE__ */
|
|
6629
|
+
return /* @__PURE__ */ jsx99(PhoneNumberInput, __spreadProps(__spreadValues({ initialValue: value }, commonProps), { onChange }));
|
|
5919
6630
|
default: {
|
|
5920
|
-
return /* @__PURE__ */
|
|
6631
|
+
return /* @__PURE__ */ jsx99(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "text", onChange }));
|
|
5921
6632
|
}
|
|
5922
6633
|
}
|
|
5923
6634
|
}
|
|
@@ -5925,11 +6636,11 @@ function TextInput(props) {
|
|
|
5925
6636
|
const _a = props, { control, displayFormat, onChange } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange"]);
|
|
5926
6637
|
const InputWithPattern = control === "textarea" ? TextareaWithDisplayFormat : InputWithDisplayFormat;
|
|
5927
6638
|
const InputWithoutPattern = control === "textarea" ? TextArea : Input6;
|
|
5928
|
-
return displayFormat ? /* @__PURE__ */
|
|
6639
|
+
return displayFormat ? /* @__PURE__ */ jsx99(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ jsx99(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
|
|
5929
6640
|
}
|
|
5930
6641
|
|
|
5931
6642
|
// ../renderers/src/TextInputRenderer.tsx
|
|
5932
|
-
import { jsx as
|
|
6643
|
+
import { jsx as jsx100 } from "react/jsx-runtime";
|
|
5933
6644
|
var TextInputRenderer = {
|
|
5934
6645
|
canRenderType: "input-text",
|
|
5935
6646
|
render: (props) => {
|
|
@@ -5962,7 +6673,7 @@ var TextInputRenderer = {
|
|
|
5962
6673
|
}
|
|
5963
6674
|
}
|
|
5964
6675
|
});
|
|
5965
|
-
return /* @__PURE__ */
|
|
6676
|
+
return /* @__PURE__ */ jsx100(
|
|
5966
6677
|
FieldInput_default,
|
|
5967
6678
|
{
|
|
5968
6679
|
id,
|
|
@@ -5975,7 +6686,7 @@ var TextInputRenderer = {
|
|
|
5975
6686
|
features: props.features,
|
|
5976
6687
|
control: props.control,
|
|
5977
6688
|
tags: props.tags,
|
|
5978
|
-
children: /* @__PURE__ */
|
|
6689
|
+
children: /* @__PURE__ */ jsx100(InputGroup5, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ jsx100(VariableTextInput, __spreadValues({}, inputProps)) })
|
|
5979
6690
|
}
|
|
5980
6691
|
);
|
|
5981
6692
|
}
|
|
@@ -5989,7 +6700,7 @@ import { Status as Status2, Upload, UploadInput as UploadInput2 } from "@transfe
|
|
|
5989
6700
|
var getRandomId = () => Math.random().toString(36).substring(2);
|
|
5990
6701
|
|
|
5991
6702
|
// ../renderers/src/UploadInputRenderer.tsx
|
|
5992
|
-
import { jsx as
|
|
6703
|
+
import { jsx as jsx101 } from "react/jsx-runtime";
|
|
5993
6704
|
var UploadInputRenderer = {
|
|
5994
6705
|
canRenderType: "input-upload",
|
|
5995
6706
|
render: (props) => {
|
|
@@ -6018,7 +6729,7 @@ var UploadInputRenderer = {
|
|
|
6018
6729
|
};
|
|
6019
6730
|
return (
|
|
6020
6731
|
// We don't pass help here as there is no sensible place to display it
|
|
6021
|
-
/* @__PURE__ */
|
|
6732
|
+
/* @__PURE__ */ jsx101(
|
|
6022
6733
|
UploadFieldInput_default,
|
|
6023
6734
|
{
|
|
6024
6735
|
id,
|
|
@@ -6028,7 +6739,7 @@ var UploadInputRenderer = {
|
|
|
6028
6739
|
features,
|
|
6029
6740
|
control,
|
|
6030
6741
|
tags,
|
|
6031
|
-
children: /* @__PURE__ */
|
|
6742
|
+
children: /* @__PURE__ */ jsx101(
|
|
6032
6743
|
UploadInput2,
|
|
6033
6744
|
{
|
|
6034
6745
|
id,
|
|
@@ -6098,7 +6809,7 @@ var LargeUploadRenderer = {
|
|
|
6098
6809
|
};
|
|
6099
6810
|
const filetypes = acceptsToFileTypes(accepts);
|
|
6100
6811
|
const usAccept = filetypes === "*" ? "*" : filetypes.join(",");
|
|
6101
|
-
return /* @__PURE__ */
|
|
6812
|
+
return /* @__PURE__ */ jsx101(
|
|
6102
6813
|
FieldInput_default,
|
|
6103
6814
|
{
|
|
6104
6815
|
id,
|
|
@@ -6109,7 +6820,7 @@ var LargeUploadRenderer = {
|
|
|
6109
6820
|
features,
|
|
6110
6821
|
control,
|
|
6111
6822
|
tags,
|
|
6112
|
-
children: /* @__PURE__ */
|
|
6823
|
+
children: /* @__PURE__ */ jsx101(
|
|
6113
6824
|
Upload,
|
|
6114
6825
|
__spreadProps(__spreadValues({}, uploadProps), {
|
|
6115
6826
|
usAccept,
|
|
@@ -6125,21 +6836,21 @@ var LargeUploadRenderer = {
|
|
|
6125
6836
|
};
|
|
6126
6837
|
|
|
6127
6838
|
// ../renderers/src/UpsellRenderer.tsx
|
|
6128
|
-
var
|
|
6839
|
+
var import_classnames33 = __toESM(require_classnames());
|
|
6129
6840
|
import { Nudge } from "@transferwise/components";
|
|
6130
|
-
import { useState as
|
|
6131
|
-
import { jsx as
|
|
6841
|
+
import { useState as useState19 } from "react";
|
|
6842
|
+
import { jsx as jsx102 } from "react/jsx-runtime";
|
|
6132
6843
|
var UpsellRenderer = {
|
|
6133
6844
|
canRenderType: "upsell",
|
|
6134
6845
|
render: UpsellRendererComponent
|
|
6135
6846
|
};
|
|
6136
6847
|
function UpsellRendererComponent(props) {
|
|
6137
6848
|
const { text, callToAction, media, margin, onDismiss, control, tags } = props;
|
|
6138
|
-
const [isVisible, setIsVisible] =
|
|
6139
|
-
return isVisible ? /* @__PURE__ */
|
|
6849
|
+
const [isVisible, setIsVisible] = useState19(true);
|
|
6850
|
+
return isVisible ? /* @__PURE__ */ jsx102(
|
|
6140
6851
|
Nudge,
|
|
6141
6852
|
{
|
|
6142
|
-
className: (0,
|
|
6853
|
+
className: (0, import_classnames33.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
|
|
6143
6854
|
mediaName: getMediaName(media),
|
|
6144
6855
|
title: text,
|
|
6145
6856
|
action: __spreadValues({
|
|
@@ -6183,9 +6894,9 @@ var supportedMediaNames = [
|
|
|
6183
6894
|
];
|
|
6184
6895
|
|
|
6185
6896
|
// ../renderers/src/ButtonRenderer/CircularButtonRenderer.tsx
|
|
6186
|
-
var
|
|
6897
|
+
var import_classnames34 = __toESM(require_classnames());
|
|
6187
6898
|
import { CircularButton } from "@transferwise/components";
|
|
6188
|
-
import { jsx as
|
|
6899
|
+
import { jsx as jsx103 } from "react/jsx-runtime";
|
|
6189
6900
|
var CircularButtonRenderer = {
|
|
6190
6901
|
canRenderType: "button",
|
|
6191
6902
|
canRender: ({ control }) => control === "circular",
|
|
@@ -6195,16 +6906,16 @@ function CircularButtonComponent(props) {
|
|
|
6195
6906
|
var _a;
|
|
6196
6907
|
const { context, control, disabled, margin, media, tags, title, onClick } = props;
|
|
6197
6908
|
const priority = tags == null ? void 0 : tags.find((tag) => tag === "primary" || tag === "secondary");
|
|
6198
|
-
return /* @__PURE__ */
|
|
6909
|
+
return /* @__PURE__ */ jsx103(
|
|
6199
6910
|
"div",
|
|
6200
6911
|
{
|
|
6201
|
-
className: (0,
|
|
6912
|
+
className: (0, import_classnames34.default)(
|
|
6202
6913
|
getMargin(margin),
|
|
6203
6914
|
"df-button",
|
|
6204
6915
|
"circular",
|
|
6205
6916
|
controlAndTagsToCSSClass({ control, tags })
|
|
6206
6917
|
),
|
|
6207
|
-
children: /* @__PURE__ */
|
|
6918
|
+
children: /* @__PURE__ */ jsx103(
|
|
6208
6919
|
CircularButton,
|
|
6209
6920
|
{
|
|
6210
6921
|
disabled,
|
|
@@ -6225,6 +6936,7 @@ var getWiseRenderers = () => [
|
|
|
6225
6936
|
AlertRenderer_default,
|
|
6226
6937
|
CheckboxInputRenderer_default,
|
|
6227
6938
|
CircularButtonRenderer,
|
|
6939
|
+
BorderedBackgroundColoredBoxRenderer,
|
|
6228
6940
|
BoxRenderer_default,
|
|
6229
6941
|
CollectionRenderer_default,
|
|
6230
6942
|
ButtonRenderer,
|
|
@@ -6261,6 +6973,7 @@ var getWiseRenderers = () => [
|
|
|
6261
6973
|
TabsRenderer,
|
|
6262
6974
|
TextInputRenderer_default,
|
|
6263
6975
|
UploadInputRenderer,
|
|
6976
|
+
ColoredUpsellRenderer,
|
|
6264
6977
|
UpsellRenderer,
|
|
6265
6978
|
SplashStepRenderer,
|
|
6266
6979
|
SplashCelebrationStepRenderer,
|
|
@@ -6271,11 +6984,11 @@ var getWiseRenderers = () => [
|
|
|
6271
6984
|
|
|
6272
6985
|
// ../renderers/src/InitialLoadingStateRenderer.tsx
|
|
6273
6986
|
import { Loader as Loader2 } from "@transferwise/components";
|
|
6274
|
-
import { jsx as
|
|
6987
|
+
import { jsx as jsx104 } from "react/jsx-runtime";
|
|
6275
6988
|
var InitialLoadingStateRenderer = {
|
|
6276
6989
|
canRenderType: "loading-state",
|
|
6277
6990
|
canRender: ({ stepLoadingState }) => stepLoadingState === "initial",
|
|
6278
|
-
render: () => /* @__PURE__ */
|
|
6991
|
+
render: () => /* @__PURE__ */ jsx104(
|
|
6279
6992
|
Loader2,
|
|
6280
6993
|
{
|
|
6281
6994
|
size: "md",
|
|
@@ -6288,24 +7001,24 @@ var InitialLoadingStateRenderer = {
|
|
|
6288
7001
|
// src/dynamicFlow/DynamicFlowModal.tsx
|
|
6289
7002
|
import { useDynamicFlowModal } from "@wise/dynamic-flow-client";
|
|
6290
7003
|
import { Modal as Modal5 } from "@transferwise/components";
|
|
6291
|
-
import { jsx as
|
|
7004
|
+
import { jsx as jsx105 } from "react/jsx-runtime";
|
|
6292
7005
|
function DynamicFlowModal(props) {
|
|
6293
7006
|
const _a = props, { className = "" } = _a, rest = __objRest(_a, ["className"]);
|
|
6294
7007
|
const dfProps = useWiseToCoreProps(rest);
|
|
6295
7008
|
const df = useDynamicFlowModal(dfProps);
|
|
6296
|
-
return /* @__PURE__ */
|
|
7009
|
+
return /* @__PURE__ */ jsx105(
|
|
6297
7010
|
Modal5,
|
|
6298
7011
|
__spreadProps(__spreadValues({
|
|
6299
7012
|
className: `dynamic-flow-modal ${className}`,
|
|
6300
7013
|
disableDimmerClickToClose: true
|
|
6301
7014
|
}, df.modal), {
|
|
6302
|
-
body: /* @__PURE__ */
|
|
7015
|
+
body: /* @__PURE__ */ jsx105("div", { className: "dynamic-flow-modal", children: df.modal.body })
|
|
6303
7016
|
})
|
|
6304
7017
|
);
|
|
6305
7018
|
}
|
|
6306
7019
|
|
|
6307
7020
|
// src/dynamicFlow/getMergedRenderers.tsx
|
|
6308
|
-
import { jsx as
|
|
7021
|
+
import { jsx as jsx106 } from "react/jsx-runtime";
|
|
6309
7022
|
var wiseRenderers = getWiseRenderers();
|
|
6310
7023
|
var getMergedRenderers = (props) => {
|
|
6311
7024
|
var _d, _e;
|
|
@@ -6319,7 +7032,7 @@ var getMergedRenderers = (props) => {
|
|
|
6319
7032
|
method: initialRequest.method,
|
|
6320
7033
|
data: initialRequest.body
|
|
6321
7034
|
};
|
|
6322
|
-
return presentation.type === "push" ? /* @__PURE__ */
|
|
7035
|
+
return presentation.type === "push" ? /* @__PURE__ */ jsx106(DynamicFlow, __spreadProps(__spreadValues(__spreadValues({}, restProps), rest), { features: subflowFeatures, initialAction: action })) : /* @__PURE__ */ jsx106(
|
|
6323
7036
|
DynamicFlowModal,
|
|
6324
7037
|
__spreadProps(__spreadValues(__spreadValues({}, restProps), rest), {
|
|
6325
7038
|
features: subflowFeatures,
|
|
@@ -6399,11 +7112,11 @@ var customEventsToAnalytics = {
|
|
|
6399
7112
|
|
|
6400
7113
|
// src/dynamicFlow/useOnCopy.tsx
|
|
6401
7114
|
import { useCallback as useCallback2 } from "react";
|
|
6402
|
-
import { useIntl as
|
|
7115
|
+
import { useIntl as useIntl21 } from "react-intl";
|
|
6403
7116
|
|
|
6404
7117
|
// src/dynamicFlow/messages.ts
|
|
6405
|
-
import { defineMessages as
|
|
6406
|
-
var messages_default =
|
|
7118
|
+
import { defineMessages as defineMessages15 } from "react-intl";
|
|
7119
|
+
var messages_default = defineMessages15({
|
|
6407
7120
|
copied: {
|
|
6408
7121
|
id: "df.wise.CopyFeedback.copy",
|
|
6409
7122
|
defaultMessage: "Copied to clipboard",
|
|
@@ -6418,7 +7131,7 @@ var messages_default = defineMessages14({
|
|
|
6418
7131
|
|
|
6419
7132
|
// src/dynamicFlow/useOnCopy.tsx
|
|
6420
7133
|
var useOnCopy = () => {
|
|
6421
|
-
const { formatMessage } =
|
|
7134
|
+
const { formatMessage } = useIntl21();
|
|
6422
7135
|
const createSnackBar = useSnackBarIfAvailable();
|
|
6423
7136
|
return useCallback2(
|
|
6424
7137
|
(copiedContent) => {
|
|
@@ -6434,9 +7147,9 @@ var useOnCopy = () => {
|
|
|
6434
7147
|
|
|
6435
7148
|
// src/dynamicFlow/useWiseHttpClient.tsx
|
|
6436
7149
|
import { useCallback as useCallback3 } from "react";
|
|
6437
|
-
import { useIntl as
|
|
7150
|
+
import { useIntl as useIntl22 } from "react-intl";
|
|
6438
7151
|
var useWiseHttpClient = (httpClient) => {
|
|
6439
|
-
const { locale } =
|
|
7152
|
+
const { locale } = useIntl22();
|
|
6440
7153
|
return useCallback3(
|
|
6441
7154
|
async (input, init = {}) => {
|
|
6442
7155
|
const headers = new Headers(init.headers);
|
|
@@ -6516,13 +7229,13 @@ var openLinkInNewTab = (url) => {
|
|
|
6516
7229
|
};
|
|
6517
7230
|
|
|
6518
7231
|
// src/dynamicFlow/DynamicFlow.tsx
|
|
6519
|
-
import { jsxs as
|
|
7232
|
+
import { jsxs as jsxs40 } from "react/jsx-runtime";
|
|
6520
7233
|
function DynamicFlow(props) {
|
|
6521
7234
|
const { className = "" } = props;
|
|
6522
7235
|
const dfProps = useWiseToCoreProps(props);
|
|
6523
7236
|
const df = useDynamicFlow(dfProps);
|
|
6524
7237
|
const { onContextMenu, contextMenu } = useDFContextMenu(df.controller);
|
|
6525
|
-
return /* @__PURE__ */
|
|
7238
|
+
return /* @__PURE__ */ jsxs40("div", { className, onContextMenu, children: [
|
|
6526
7239
|
df.view,
|
|
6527
7240
|
contextMenu
|
|
6528
7241
|
] });
|
|
@@ -6534,7 +7247,7 @@ import {
|
|
|
6534
7247
|
useImperativeHandle
|
|
6535
7248
|
} from "react";
|
|
6536
7249
|
import { useDynamicFlow as useDynamicFlow2 } from "@wise/dynamic-flow-client";
|
|
6537
|
-
import { jsx as
|
|
7250
|
+
import { jsx as jsx107 } from "react/jsx-runtime";
|
|
6538
7251
|
var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
|
|
6539
7252
|
const { className = "" } = props;
|
|
6540
7253
|
const dfProps = useWiseToCoreProps(props);
|
|
@@ -6550,7 +7263,7 @@ var DynamicFlowWithRef = forwardRef(function DynamicFlowWithRef2(props, ref) {
|
|
|
6550
7263
|
}),
|
|
6551
7264
|
[df]
|
|
6552
7265
|
);
|
|
6553
|
-
return /* @__PURE__ */
|
|
7266
|
+
return /* @__PURE__ */ jsx107("div", { className, children: df.view });
|
|
6554
7267
|
});
|
|
6555
7268
|
|
|
6556
7269
|
// src/index.ts
|
|
@@ -6588,6 +7301,7 @@ var cs_default = {
|
|
|
6588
7301
|
"df.wise.ControlFeedback.type": "Nespr\xE1vn\xFD typ",
|
|
6589
7302
|
"df.wise.CopyFeedback.copy": "Zkop\xEDrov\xE1no do schr\xE1nky",
|
|
6590
7303
|
"df.wise.CopyFeedback.copyFailed": "Kop\xEDrov\xE1n\xED do schr\xE1nky se nezda\u0159ilo",
|
|
7304
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6591
7305
|
"df.wise.DynamicParagraph.copied": "Zkop\xEDrov\xE1no do schr\xE1nky",
|
|
6592
7306
|
"df.wise.DynamicParagraph.copy": "Kop\xEDrovat",
|
|
6593
7307
|
"df.wise.ErrorBoundary.errorAlert": "N\u011Bco se pokazilo.",
|
|
@@ -6637,6 +7351,7 @@ var de_default = {
|
|
|
6637
7351
|
"df.wise.ControlFeedback.type": "Falscher Typ",
|
|
6638
7352
|
"df.wise.CopyFeedback.copy": "In Zwischenablage kopiert",
|
|
6639
7353
|
"df.wise.CopyFeedback.copyFailed": "Kopieren in Zwischenablage fehlgeschlagen",
|
|
7354
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6640
7355
|
"df.wise.DynamicParagraph.copied": "In Zwischenablage kopiert",
|
|
6641
7356
|
"df.wise.DynamicParagraph.copy": "Kopieren",
|
|
6642
7357
|
"df.wise.ErrorBoundary.errorAlert": "Da ist etwas schiefgegangen.",
|
|
@@ -6686,6 +7401,7 @@ var en_default = {
|
|
|
6686
7401
|
"df.wise.ControlFeedback.type": "Incorrect type",
|
|
6687
7402
|
"df.wise.CopyFeedback.copy": "Copied to clipboard",
|
|
6688
7403
|
"df.wise.CopyFeedback.copyFailed": "Failed to copy to clipboard",
|
|
7404
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6689
7405
|
"df.wise.DynamicParagraph.copied": "Copied to clipboard",
|
|
6690
7406
|
"df.wise.DynamicParagraph.copy": "Copy",
|
|
6691
7407
|
"df.wise.ErrorBoundary.errorAlert": "Something went wrong.",
|
|
@@ -6735,6 +7451,7 @@ var es_default = {
|
|
|
6735
7451
|
"df.wise.ControlFeedback.type": "Tipo incorrecto",
|
|
6736
7452
|
"df.wise.CopyFeedback.copy": "Copiado al portapapeles",
|
|
6737
7453
|
"df.wise.CopyFeedback.copyFailed": "Error al copiar al portapapeles",
|
|
7454
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6738
7455
|
"df.wise.DynamicParagraph.copied": "Copiado al portapapeles",
|
|
6739
7456
|
"df.wise.DynamicParagraph.copy": "Copiar",
|
|
6740
7457
|
"df.wise.ErrorBoundary.errorAlert": "Ha habido un error.",
|
|
@@ -6784,6 +7501,7 @@ var fr_default = {
|
|
|
6784
7501
|
"df.wise.ControlFeedback.type": "Type incorrect",
|
|
6785
7502
|
"df.wise.CopyFeedback.copy": "Copi\xE9 dans le presse-papier",
|
|
6786
7503
|
"df.wise.CopyFeedback.copyFailed": "Impossible de copier dans le presse-papier",
|
|
7504
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6787
7505
|
"df.wise.DynamicParagraph.copied": "Copi\xE9 dans le presse-papier",
|
|
6788
7506
|
"df.wise.DynamicParagraph.copy": "Copier",
|
|
6789
7507
|
"df.wise.ErrorBoundary.errorAlert": "Une erreur s'est produite.",
|
|
@@ -6833,6 +7551,7 @@ var hu_default = {
|
|
|
6833
7551
|
"df.wise.ControlFeedback.type": "Helytelen t\xEDpus",
|
|
6834
7552
|
"df.wise.CopyFeedback.copy": "V\xE1g\xF3lapra m\xE1solva",
|
|
6835
7553
|
"df.wise.CopyFeedback.copyFailed": "Nem siker\xFClt a v\xE1g\xF3lapra m\xE1solni",
|
|
7554
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6836
7555
|
"df.wise.DynamicParagraph.copied": "V\xE1g\xF3lapra m\xE1solva",
|
|
6837
7556
|
"df.wise.DynamicParagraph.copy": "M\xE1sol\xE1s",
|
|
6838
7557
|
"df.wise.ErrorBoundary.errorAlert": "Valami hiba t\xF6rt\xE9nt.",
|
|
@@ -6882,6 +7601,7 @@ var id_default = {
|
|
|
6882
7601
|
"df.wise.ControlFeedback.type": "Tipe salah",
|
|
6883
7602
|
"df.wise.CopyFeedback.copy": "Disalin ke clipboard",
|
|
6884
7603
|
"df.wise.CopyFeedback.copyFailed": "Gagal menyalin ke clipboard",
|
|
7604
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6885
7605
|
"df.wise.DynamicParagraph.copied": "Disalin ke clipboard",
|
|
6886
7606
|
"df.wise.DynamicParagraph.copy": "Salin",
|
|
6887
7607
|
"df.wise.ErrorBoundary.errorAlert": "Terjadi kesalahan.",
|
|
@@ -6931,6 +7651,7 @@ var it_default = {
|
|
|
6931
7651
|
"df.wise.ControlFeedback.type": "Tipo errato",
|
|
6932
7652
|
"df.wise.CopyFeedback.copy": "Copiato negli appunti",
|
|
6933
7653
|
"df.wise.CopyFeedback.copyFailed": "Impossibile copiare negli appunti",
|
|
7654
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6934
7655
|
"df.wise.DynamicParagraph.copied": "Copiato negli appunti",
|
|
6935
7656
|
"df.wise.DynamicParagraph.copy": "Copia",
|
|
6936
7657
|
"df.wise.ErrorBoundary.errorAlert": "Qualcosa non ha funzionato.",
|
|
@@ -6980,6 +7701,7 @@ var ja_default = {
|
|
|
6980
7701
|
"df.wise.ControlFeedback.type": "\u4E0D\u6B63\u306A\u30BF\u30A4\u30D7",
|
|
6981
7702
|
"df.wise.CopyFeedback.copy": "\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u3078\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
|
|
6982
7703
|
"df.wise.CopyFeedback.copyFailed": "\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F",
|
|
7704
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
6983
7705
|
"df.wise.DynamicParagraph.copied": "\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u3078\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
|
|
6984
7706
|
"df.wise.DynamicParagraph.copy": "\u30B3\u30D4\u30FC\u3059\u308B",
|
|
6985
7707
|
"df.wise.ErrorBoundary.errorAlert": "\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002",
|
|
@@ -7029,6 +7751,7 @@ var nl_default = {
|
|
|
7029
7751
|
"df.wise.ControlFeedback.type": "Onjuist type",
|
|
7030
7752
|
"df.wise.CopyFeedback.copy": "Naar klembord gekopieerd",
|
|
7031
7753
|
"df.wise.CopyFeedback.copyFailed": "Naar klembord kopi\xEBren mislukt",
|
|
7754
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7032
7755
|
"df.wise.DynamicParagraph.copied": "Naar klembord gekopieerd",
|
|
7033
7756
|
"df.wise.DynamicParagraph.copy": "Kopi\xEBren",
|
|
7034
7757
|
"df.wise.ErrorBoundary.errorAlert": "Er is iets misgegaan.",
|
|
@@ -7078,6 +7801,7 @@ var pl_default = {
|
|
|
7078
7801
|
"df.wise.ControlFeedback.type": "Nieprawid\u0142owy typ",
|
|
7079
7802
|
"df.wise.CopyFeedback.copy": "Skopiowano do schowka",
|
|
7080
7803
|
"df.wise.CopyFeedback.copyFailed": "Nie uda\u0142o si\u0119 skopiowa\u0107 do schowka",
|
|
7804
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7081
7805
|
"df.wise.DynamicParagraph.copied": "Skopiowano do schowka",
|
|
7082
7806
|
"df.wise.DynamicParagraph.copy": "Kopiuj",
|
|
7083
7807
|
"df.wise.ErrorBoundary.errorAlert": "Co\u015B posz\u0142o nie tak.",
|
|
@@ -7127,6 +7851,7 @@ var pt_default = {
|
|
|
7127
7851
|
"df.wise.ControlFeedback.type": "Tipo incorreto",
|
|
7128
7852
|
"df.wise.CopyFeedback.copy": "Copiado",
|
|
7129
7853
|
"df.wise.CopyFeedback.copyFailed": "Falha ao copiar para \xE1rea de transfer\xEAncia",
|
|
7854
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7130
7855
|
"df.wise.DynamicParagraph.copied": "Copiado",
|
|
7131
7856
|
"df.wise.DynamicParagraph.copy": "Copiar",
|
|
7132
7857
|
"df.wise.ErrorBoundary.errorAlert": "Algo deu errado.",
|
|
@@ -7176,6 +7901,7 @@ var ro_default = {
|
|
|
7176
7901
|
"df.wise.ControlFeedback.type": "Tip incorect",
|
|
7177
7902
|
"df.wise.CopyFeedback.copy": "Copiat \xEEn clipboard",
|
|
7178
7903
|
"df.wise.CopyFeedback.copyFailed": "Copierea \xEEn clipboard a e\u0219uat",
|
|
7904
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7179
7905
|
"df.wise.DynamicParagraph.copied": "Copiat \xEEn clipboard",
|
|
7180
7906
|
"df.wise.DynamicParagraph.copy": "Copiaz\u0103",
|
|
7181
7907
|
"df.wise.ErrorBoundary.errorAlert": "Ceva nu a mers bine.",
|
|
@@ -7225,6 +7951,7 @@ var ru_default = {
|
|
|
7225
7951
|
"df.wise.ControlFeedback.type": "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0442\u0438\u043F",
|
|
7226
7952
|
"df.wise.CopyFeedback.copy": "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",
|
|
7227
7953
|
"df.wise.CopyFeedback.copyFailed": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",
|
|
7954
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7228
7955
|
"df.wise.DynamicParagraph.copied": "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",
|
|
7229
7956
|
"df.wise.DynamicParagraph.copy": "\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C",
|
|
7230
7957
|
"df.wise.ErrorBoundary.errorAlert": "\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A.",
|
|
@@ -7274,6 +8001,7 @@ var th_default = {
|
|
|
7274
8001
|
"df.wise.ControlFeedback.type": "\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07",
|
|
7275
8002
|
"df.wise.CopyFeedback.copy": "\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E04\u0E25\u0E34\u0E1B\u0E1A\u0E2D\u0E23\u0E4C\u0E14",
|
|
7276
8003
|
"df.wise.CopyFeedback.copyFailed": "\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E04\u0E25\u0E34\u0E1B\u0E1A\u0E2D\u0E23\u0E4C\u0E14\u0E44\u0E21\u0E48\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08",
|
|
8004
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7277
8005
|
"df.wise.DynamicParagraph.copied": "\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E04\u0E25\u0E34\u0E1B\u0E1A\u0E2D\u0E23\u0E4C\u0E14",
|
|
7278
8006
|
"df.wise.DynamicParagraph.copy": "\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01",
|
|
7279
8007
|
"df.wise.ErrorBoundary.errorAlert": "\u0E40\u0E01\u0E34\u0E14\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14\u0E1A\u0E32\u0E07\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E02\u0E36\u0E49\u0E19",
|
|
@@ -7323,6 +8051,7 @@ var tr_default = {
|
|
|
7323
8051
|
"df.wise.ControlFeedback.type": "Ge\xE7ersiz se\xE7im",
|
|
7324
8052
|
"df.wise.CopyFeedback.copy": "Panoya kopyaland\u0131",
|
|
7325
8053
|
"df.wise.CopyFeedback.copyFailed": "Panoya kopyalama ba\u015Far\u0131s\u0131z oldu",
|
|
8054
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7326
8055
|
"df.wise.DynamicParagraph.copied": "Panoya kopyaland\u0131",
|
|
7327
8056
|
"df.wise.DynamicParagraph.copy": "Kopyala",
|
|
7328
8057
|
"df.wise.ErrorBoundary.errorAlert": "Bir sorun olu\u015Ftu.",
|
|
@@ -7372,6 +8101,7 @@ var zh_CN_default = {
|
|
|
7372
8101
|
"df.wise.ControlFeedback.type": "\u7C7B\u578B\u9519\u8BEF",
|
|
7373
8102
|
"df.wise.CopyFeedback.copy": "\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",
|
|
7374
8103
|
"df.wise.CopyFeedback.copyFailed": "\u65E0\u6CD5\u590D\u5236\u5230\u526A\u8D34\u677F",
|
|
8104
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7375
8105
|
"df.wise.DynamicParagraph.copied": "\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F",
|
|
7376
8106
|
"df.wise.DynamicParagraph.copy": "\u590D\u5236",
|
|
7377
8107
|
"df.wise.ErrorBoundary.errorAlert": "\u51FA\u9519\u4E86\u3002",
|
|
@@ -7421,6 +8151,7 @@ var zh_HK_default = {
|
|
|
7421
8151
|
"df.wise.ControlFeedback.type": "\u932F\u8AA4\u7684\u985E\u578B",
|
|
7422
8152
|
"df.wise.CopyFeedback.copy": "\u8907\u88FD\u5230\u526A\u8CBC\u677F",
|
|
7423
8153
|
"df.wise.CopyFeedback.copyFailed": "\u7121\u6CD5\u8907\u88FD\u5230\u526A\u8CBC\u677F",
|
|
8154
|
+
"df.wise.DateInput.unavailableDates": "Some dates are unavailable.",
|
|
7424
8155
|
"df.wise.DynamicParagraph.copied": "\u8907\u88FD\u5230\u526A\u8CBC\u677F",
|
|
7425
8156
|
"df.wise.DynamicParagraph.copy": "\u8907\u88FD",
|
|
7426
8157
|
"df.wise.ErrorBoundary.errorAlert": "\u51FA\u4E86\u4E9B\u554F\u984C\u3002",
|