@wise/dynamic-flow-client-internal 5.23.2 → 5.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/main.js CHANGED
@@ -145,7 +145,7 @@ var import_dynamic_flow_client4 = require("@wise/dynamic-flow-client");
145
145
  // src/dynamicFlow/telemetry/app-version.ts
146
146
  var appVersion = (
147
147
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
148
- typeof process !== "undefined" ? "5.23.2" : "0.0.0"
148
+ typeof process !== "undefined" ? "5.24.0" : "0.0.0"
149
149
  );
150
150
 
151
151
  // src/dynamicFlow/context-menu/useContextMenu.tsx
@@ -209,7 +209,7 @@ var useDFContextMenu = (controller) => {
209
209
  if (!step) {
210
210
  return null;
211
211
  }
212
- const model = await controller.getSubmittableValue();
212
+ const model = controller.getValue();
213
213
  return recursivelyRemoveNullish(__spreadProps(__spreadValues({}, step), { model }));
214
214
  };
215
215
  const getEncodedCurrentStep = () => {
@@ -329,7 +329,7 @@ var recursivelyRemoveNullish = (element) => {
329
329
  };
330
330
 
331
331
  // src/dynamicFlow/useWiseToCoreProps.tsx
332
- var import_react26 = require("react");
332
+ var import_react27 = require("react");
333
333
 
334
334
  // src/dynamicFlow/getMergedRenderers.tsx
335
335
  var import_dynamic_flow_client2 = require("@wise/dynamic-flow-client");
@@ -1357,10 +1357,10 @@ var filter_messages_default = (0, import_react_intl5.defineMessages)({
1357
1357
  }
1358
1358
  });
1359
1359
 
1360
- // ../renderers/src/DecisionRenderer/filter-and-sort-decision-options.ts
1361
- function filterAndSortDecisionOptions(selectOptions, query) {
1360
+ // ../renderers/src/utils/filter-and-sort-items.ts
1361
+ function filterAndSortItems(options, query) {
1362
1362
  const upperQuery = normalizeAndRemoveAccents(query);
1363
- const filteredItems = selectOptions.filter((option) => {
1363
+ const filteredItems = options.filter((option) => {
1364
1364
  var _a, _b, _c, _d;
1365
1365
  const searchableWords = [
1366
1366
  option.title,
@@ -1469,9 +1469,10 @@ var GroupedDecisionList = (_a) => {
1469
1469
  // ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
1470
1470
  var import_jsx_runtime29 = require("react/jsx-runtime");
1471
1471
  var DecisionWrapper = (props) => {
1472
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getMargin(props.margin), children: [
1473
- props.title && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_components15.Header, { as: "h2", title: props.title }),
1474
- props.control === "filtered" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(UnfilteredDecisionList, __spreadValues({}, props))
1472
+ const { title, control, margin } = props;
1473
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: getMargin(margin), children: [
1474
+ title && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_components15.Header, { as: "h2", title }),
1475
+ control === "filtered" ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(UnfilteredDecisionList, __spreadValues({}, props))
1475
1476
  ] });
1476
1477
  };
1477
1478
  var UnfilteredDecisionList = (_a) => {
@@ -1482,7 +1483,7 @@ var FilteredDecisionList = (props) => {
1482
1483
  const { formatMessage } = (0, import_react_intl8.useIntl)();
1483
1484
  const [query, setQuery] = (0, import_react6.useState)("");
1484
1485
  const { control, options, renderDecisionList: renderDecisionList2 } = props;
1485
- const filteredOptions = (query == null ? void 0 : query.length) > 0 ? filterAndSortDecisionOptions(options, query) : options;
1486
+ const filteredOptions = (query == null ? void 0 : query.length) > 0 ? filterAndSortItems(options, query) : options;
1486
1487
  const isGrouped = isGroupedDecision(options);
1487
1488
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
1488
1489
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
@@ -2315,6 +2316,15 @@ function assertCurrencyCodeIsString(currencyCode) {
2315
2316
 
2316
2317
  // ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
2317
2318
  var import_components32 = require("@transferwise/components");
2319
+ var import_react13 = require("react");
2320
+ var import_react_intl12 = require("react-intl");
2321
+
2322
+ // ../renderers/src/utils/items-with-index.ts
2323
+ var zipWithIndex = (items) => items.map((item, index) => __spreadProps(__spreadValues({}, item), {
2324
+ index
2325
+ }));
2326
+
2327
+ // ../renderers/src/MultiSelectInputRenderer/InlineComponent.tsx
2318
2328
  var import_jsx_runtime53 = require("react/jsx-runtime");
2319
2329
  function InlineComponent(props) {
2320
2330
  const {
@@ -2325,69 +2335,91 @@ function InlineComponent(props) {
2325
2335
  help,
2326
2336
  options,
2327
2337
  selectedIndices,
2338
+ tags,
2328
2339
  title,
2329
2340
  validationState,
2330
2341
  onSelect
2331
2342
  } = props;
2332
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2333
- FieldInput_default,
2334
- {
2335
- id,
2336
- label: title,
2337
- help,
2338
- description,
2339
- validation: validationState,
2340
- features,
2341
- children: options.map((option, index) => {
2342
- var _a;
2343
- const {
2344
- title: itemTitle,
2345
- description: subtitle,
2346
- disabled: optionDisabled,
2347
- media,
2348
- additionalText,
2349
- inlineAlert,
2350
- supportingValues,
2351
- childrenProps
2352
- } = option;
2353
- const key = (_a = childrenProps == null ? void 0 : childrenProps.uid) != null ? _a : index;
2354
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2355
- import_components32.ListItem,
2356
- {
2343
+ const optionsWithIndex = zipWithIndex(options);
2344
+ const [query, setQuery] = (0, import_react13.useState)("");
2345
+ const { formatMessage } = (0, import_react_intl12.useIntl)();
2346
+ const filtered = tags == null ? void 0 : tags.includes("filtered");
2347
+ const filteredOptions = query ? filterAndSortItems(optionsWithIndex, filtered ? query : "") : optionsWithIndex;
2348
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
2349
+ filtered && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2350
+ import_components32.SearchInput,
2351
+ {
2352
+ placeholder: formatMessage(filter_messages_default.placeholder),
2353
+ disabled,
2354
+ value: query,
2355
+ className: "m-b-2",
2356
+ onChange: (e) => {
2357
+ var _a;
2358
+ return setQuery((_a = e.target.value) != null ? _a : "");
2359
+ }
2360
+ }
2361
+ ),
2362
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2363
+ FieldInput_default,
2364
+ {
2365
+ id,
2366
+ label: title,
2367
+ help,
2368
+ description,
2369
+ validation: validationState,
2370
+ features,
2371
+ children: filteredOptions.map((option) => {
2372
+ var _a;
2373
+ const {
2357
2374
  title: itemTitle,
2358
- subtitle,
2359
- valueTitle: supportingValues == null ? void 0 : supportingValues.value,
2360
- valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
2361
- media: getMedia(media, false),
2362
- prompt: getInlineAlert(inlineAlert),
2363
- additionalInfo: additionalText ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_components32.ListItem.AdditionalInfo, { children: additionalText }) : void 0,
2364
- disabled: disabled || optionDisabled,
2365
- control: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2366
- import_components32.ListItem.Checkbox,
2367
- {
2368
- checked: selectedIndices.includes(index),
2369
- onChange: (e) => {
2370
- const newSelectedIndices = e.target.checked ? [...selectedIndices, index] : selectedIndices.filter((i) => i !== index);
2371
- onSelect(newSelectedIndices);
2375
+ description: subtitle,
2376
+ disabled: optionDisabled,
2377
+ media,
2378
+ index,
2379
+ additionalText,
2380
+ inlineAlert,
2381
+ supportingValues,
2382
+ childrenProps
2383
+ } = option;
2384
+ const key = (_a = childrenProps == null ? void 0 : childrenProps.uid) != null ? _a : index;
2385
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2386
+ import_components32.ListItem,
2387
+ {
2388
+ title: itemTitle,
2389
+ subtitle,
2390
+ valueTitle: supportingValues == null ? void 0 : supportingValues.value,
2391
+ valueSubtitle: supportingValues == null ? void 0 : supportingValues.subvalue,
2392
+ media: getMedia(media, false),
2393
+ prompt: getInlineAlert(inlineAlert),
2394
+ additionalInfo: additionalText ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_components32.ListItem.AdditionalInfo, { children: additionalText }) : void 0,
2395
+ disabled: disabled || optionDisabled,
2396
+ control: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
2397
+ import_components32.ListItem.Checkbox,
2398
+ {
2399
+ checked: selectedIndices.includes(index),
2400
+ onChange: (e) => {
2401
+ const newSelectedIndices = e.target.checked ? [...selectedIndices, index] : selectedIndices.filter((i) => i !== index);
2402
+ onSelect(newSelectedIndices);
2403
+ }
2372
2404
  }
2373
- }
2374
- )
2375
- },
2376
- key
2377
- );
2378
- })
2379
- }
2380
- );
2405
+ )
2406
+ },
2407
+ key
2408
+ );
2409
+ })
2410
+ }
2411
+ )
2412
+ ] });
2381
2413
  }
2382
2414
 
2383
2415
  // ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
2384
2416
  var import_components33 = require("@transferwise/components");
2385
- var import_react13 = require("react");
2386
- var import_react_intl13 = require("react-intl");
2417
+ var import_react14 = require("react");
2418
+ var import_react_intl14 = require("react-intl");
2387
2419
 
2388
2420
  // ../renderers/src/messages/multi-select.messages.ts
2389
- var import_react_intl12 = require("react-intl");
2390
- var multi_select_messages_default = (0, import_react_intl12.defineMessages)({
2421
+ var import_react_intl13 = require("react-intl");
2422
+ var multi_select_messages_default = (0, import_react_intl13.defineMessages)({
2391
2423
  summary: {
2392
2424
  id: "df.wise.MultiSelect.summary",
2393
2425
  defaultMessage: "{first} and {count} more",
@@ -2398,8 +2430,8 @@ var multi_select_messages_default = (0, import_react_intl12.defineMessages)({
2398
2430
  // ../renderers/src/MultiSelectInputRenderer/DefaultComponent.tsx
2399
2431
  var import_jsx_runtime54 = require("react/jsx-runtime");
2400
2432
  function DefaultComponent(props) {
2401
- const { formatMessage } = (0, import_react_intl13.useIntl)();
2402
- const [stagedIndices, setStagedIndices] = (0, import_react13.useState)();
2433
+ const { formatMessage } = (0, import_react_intl14.useIntl)();
2434
+ const [stagedIndices, setStagedIndices] = (0, import_react14.useState)();
2403
2435
  const {
2404
2436
  id,
2405
2437
  autoComplete,
@@ -2731,13 +2763,13 @@ var NumberInputRenderer = {
2731
2763
  var NumberInputRenderer_default = NumberInputRenderer;
2732
2764
 
2733
2765
  // ../renderers/src/ParagraphRenderer.tsx
2734
- var import_react_intl15 = require("react-intl");
2766
+ var import_react_intl16 = require("react-intl");
2735
2767
 
2736
2768
  // ../renderers/src/hooks/useSnackBarIfAvailable.ts
2737
2769
  var import_components38 = require("@transferwise/components");
2738
- var import_react14 = require("react");
2770
+ var import_react15 = require("react");
2739
2771
  function useSnackBarIfAvailable() {
2740
- const context = (0, import_react14.useContext)(import_components38.SnackbarContext);
2772
+ const context = (0, import_react15.useContext)(import_components38.SnackbarContext);
2741
2773
  return context ? context.createSnackbar : () => {
2742
2774
  };
2743
2775
  }
@@ -2747,8 +2779,8 @@ var import_components39 = require("@transferwise/components");
2747
2779
  var import_classnames6 = __toESM(require_classnames());
2748
2780
 
2749
2781
  // ../renderers/src/messages/paragraph.messages.ts
2750
- var import_react_intl14 = require("react-intl");
2751
- var paragraph_messages_default = (0, import_react_intl14.defineMessages)({
2782
+ var import_react_intl15 = require("react-intl");
2783
+ var paragraph_messages_default = (0, import_react_intl15.defineMessages)({
2752
2784
  copy: {
2753
2785
  id: "df.wise.DynamicParagraph.copy",
2754
2786
  defaultMessage: "Copy",
@@ -2782,7 +2814,7 @@ function CopyableParagraph({
2782
2814
  align,
2783
2815
  className
2784
2816
  }) {
2785
- const { formatMessage } = (0, import_react_intl15.useIntl)();
2817
+ const { formatMessage } = (0, import_react_intl16.useIntl)();
2786
2818
  const createSnackbar = useSnackBarIfAvailable();
2787
2819
  const copy = () => {
2788
2820
  navigator.clipboard.writeText(text).then(() => createSnackbar({ text: formatMessage(paragraph_messages_default.copied) })).catch(() => {
@@ -2831,12 +2863,12 @@ var ProgressRenderer = {
2831
2863
  var import_components41 = require("@transferwise/components");
2832
2864
  var import_icons = require("@transferwise/icons");
2833
2865
  var import_classnames7 = __toESM(require_classnames());
2834
- var import_react15 = require("react");
2835
- var import_react_intl17 = require("react-intl");
2866
+ var import_react16 = require("react");
2867
+ var import_react_intl18 = require("react-intl");
2836
2868
 
2837
2869
  // ../renderers/src/messages/repeatable.messages.ts
2838
- var import_react_intl16 = require("react-intl");
2839
- var repeatable_messages_default = (0, import_react_intl16.defineMessages)({
2870
+ var import_react_intl17 = require("react-intl");
2871
+ var repeatable_messages_default = (0, import_react_intl17.defineMessages)({
2840
2872
  addItemTitle: {
2841
2873
  id: "df.wise.ArraySchema.addItemTitle",
2842
2874
  defaultMessage: "Add Item",
@@ -2880,8 +2912,8 @@ function Repeatable(props) {
2880
2912
  onSave,
2881
2913
  onRemove
2882
2914
  } = props;
2883
- const { formatMessage } = (0, import_react_intl17.useIntl)();
2884
- const [openModalType, setOpenModalType] = (0, import_react15.useState)(null);
2915
+ const { formatMessage } = (0, import_react_intl18.useIntl)();
2916
+ const [openModalType, setOpenModalType] = (0, import_react16.useState)(null);
2885
2917
  const { ref } = useScrollToError(validationState, features);
2886
2918
  const onAddItem = () => {
2887
2919
  onAdd();
@@ -3034,7 +3066,7 @@ var getFieldLabel = (label, help, onClick) => {
3034
3066
  // ../renderers/src/ReviewRenderer.tsx
3035
3067
  var import_components43 = require("@transferwise/components");
3036
3068
  var import_icons2 = require("@transferwise/icons");
3037
- var import_react_intl18 = require("react-intl");
3069
+ var import_react_intl19 = require("react-intl");
3038
3070
  var import_jsx_runtime64 = require("react/jsx-runtime");
3039
3071
  var IGNORED_CONTROLS = [
3040
3072
  "horizontal",
@@ -3056,7 +3088,7 @@ var Review = ({
3056
3088
  title,
3057
3089
  trackEvent
3058
3090
  }) => {
3059
- const intl = (0, import_react_intl18.useIntl)();
3091
+ const intl = (0, import_react_intl19.useIntl)();
3060
3092
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: getMargin(margin), children: [
3061
3093
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Header5, { title, callToAction }),
3062
3094
  fields.map((field) => {
@@ -3103,12 +3135,12 @@ var ReviewRenderer_default = ReviewRenderer2;
3103
3135
 
3104
3136
  // ../renderers/src/SearchRenderer/BlockSearchRendererComponent.tsx
3105
3137
  var import_components45 = require("@transferwise/components");
3106
- var import_react16 = require("react");
3107
- var import_react_intl22 = require("react-intl");
3138
+ var import_react17 = require("react");
3139
+ var import_react_intl23 = require("react-intl");
3108
3140
 
3109
3141
  // ../renderers/src/messages/search.messages.ts
3110
- var import_react_intl19 = require("react-intl");
3111
- var search_messages_default = (0, import_react_intl19.defineMessages)({
3142
+ var import_react_intl20 = require("react-intl");
3143
+ var search_messages_default = (0, import_react_intl20.defineMessages)({
3112
3144
  loading: {
3113
3145
  id: "df.wise.SearchLayout.loading",
3114
3146
  defaultMessage: "Loading...",
@@ -3117,11 +3149,11 @@ var search_messages_default = (0, import_react_intl19.defineMessages)({
3117
3149
  });
3118
3150
 
3119
3151
  // ../renderers/src/SearchRenderer/ErrorResult.tsx
3120
- var import_react_intl21 = require("react-intl");
3152
+ var import_react_intl22 = require("react-intl");
3121
3153
 
3122
3154
  // ../renderers/src/messages/generic-error.messages.ts
3123
- var import_react_intl20 = require("react-intl");
3124
- var generic_error_messages_default = (0, import_react_intl20.defineMessages)({
3155
+ var import_react_intl21 = require("react-intl");
3156
+ var generic_error_messages_default = (0, import_react_intl21.defineMessages)({
3125
3157
  genericErrorRetryHint: {
3126
3158
  id: "df.wise.PersistAsyncSchema.genericError",
3127
3159
  defaultMessage: "Something went wrong, please try again.",
@@ -3143,7 +3175,7 @@ var generic_error_messages_default = (0, import_react_intl20.defineMessages)({
3143
3175
  var import_components44 = require("@transferwise/components");
3144
3176
  var import_jsx_runtime65 = require("react/jsx-runtime");
3145
3177
  function ErrorResult({ state }) {
3146
- const intl = (0, import_react_intl21.useIntl)();
3178
+ const intl = (0, import_react_intl22.useIntl)();
3147
3179
  return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "m-t-2", children: [
3148
3180
  intl.formatMessage(generic_error_messages_default.genericError),
3149
3181
  "\xA0",
@@ -3166,8 +3198,8 @@ function BlockSearchRendererComponent({
3166
3198
  trackEvent,
3167
3199
  onChange
3168
3200
  }) {
3169
- const [hasSearched, setHasSearched] = (0, import_react16.useState)(false);
3170
- const { formatMessage } = (0, import_react_intl22.useIntl)();
3201
+ const [hasSearched, setHasSearched] = (0, import_react17.useState)(false);
3202
+ const { formatMessage } = (0, import_react_intl23.useIntl)();
3171
3203
  return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: getMargin(margin), children: [
3172
3204
  /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3173
3205
  FieldInput_default,
@@ -3259,8 +3291,8 @@ var BlockSearchRendererComponent_default = BlockSearchRendererComponent;
3259
3291
  // ../renderers/src/SearchRenderer/InlineSearchRendererComponent.tsx
3260
3292
  var import_components46 = require("@transferwise/components");
3261
3293
  var import_icons4 = require("@transferwise/icons");
3262
- var import_react17 = require("react");
3263
- var import_react_intl23 = require("react-intl");
3294
+ var import_react18 = require("react");
3295
+ var import_react_intl24 = require("react-intl");
3264
3296
  var import_jsx_runtime67 = require("react/jsx-runtime");
3265
3297
  function InlineSearchRenderer({
3266
3298
  id,
@@ -3273,8 +3305,8 @@ function InlineSearchRenderer({
3273
3305
  onChange,
3274
3306
  trackEvent
3275
3307
  }) {
3276
- const [hasSearched, setHasSearched] = (0, import_react17.useState)(false);
3277
- const intl = (0, import_react_intl23.useIntl)();
3308
+ const [hasSearched, setHasSearched] = (0, import_react18.useState)(false);
3309
+ const intl = (0, import_react_intl24.useIntl)();
3278
3310
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3279
3311
  FieldInput_default,
3280
3312
  {
@@ -3333,7 +3365,7 @@ function mapResultToTypeaheadOption(result) {
3333
3365
  };
3334
3366
  }
3335
3367
  function TypeaheadFooter({ state, isLoading }) {
3336
- const { formatMessage } = (0, import_react_intl23.useIntl)();
3368
+ const { formatMessage } = (0, import_react_intl24.useIntl)();
3337
3369
  if (state.type === "layout") {
3338
3370
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "m-x-1 m-y-1", children: state.layout });
3339
3371
  }
@@ -3446,7 +3478,7 @@ function RadioInputRendererComponent(props) {
3446
3478
 
3447
3479
  // ../renderers/src/SelectInputRenderer/TabInputRendererComponent.tsx
3448
3480
  var import_components49 = require("@transferwise/components");
3449
- var import_react18 = require("react");
3481
+ var import_react19 = require("react");
3450
3482
  var import_jsx_runtime71 = require("react/jsx-runtime");
3451
3483
  function TabInputRendererComponent(props) {
3452
3484
  const {
@@ -3462,7 +3494,7 @@ function TabInputRendererComponent(props) {
3462
3494
  validationState,
3463
3495
  onSelect
3464
3496
  } = props;
3465
- (0, import_react18.useEffect)(() => {
3497
+ (0, import_react19.useEffect)(() => {
3466
3498
  if (!isValidIndex2(selectedIndex, options.length)) {
3467
3499
  onSelect(0);
3468
3500
  }
@@ -3578,7 +3610,7 @@ function SelectInputRendererComponent(props) {
3578
3610
  }
3579
3611
 
3580
3612
  // ../renderers/src/SelectInputRenderer/SegmentedInputRendererComponent.tsx
3581
- var import_react19 = require("react");
3613
+ var import_react20 = require("react");
3582
3614
  var import_components51 = require("@transferwise/components");
3583
3615
  var import_jsx_runtime73 = require("react/jsx-runtime");
3584
3616
  function SegmentedInputRendererComponent(props) {
@@ -3594,7 +3626,7 @@ function SegmentedInputRendererComponent(props) {
3594
3626
  validationState,
3595
3627
  onSelect
3596
3628
  } = props;
3597
- (0, import_react19.useEffect)(() => {
3629
+ (0, import_react20.useEffect)(() => {
3598
3630
  if (!isValidIndex3(selectedIndex, options.length)) {
3599
3631
  onSelect(0);
3600
3632
  }
@@ -3762,12 +3794,12 @@ var StatusListRenderer_default = StatusListRenderer;
3762
3794
 
3763
3795
  // ../renderers/src/utils/useCustomTheme.ts
3764
3796
  var import_components_theming = require("@wise/components-theming");
3765
- var import_react20 = require("react");
3797
+ var import_react21 = require("react");
3766
3798
  var ThemeRequiredEventName = "Theme Required";
3767
3799
  var useCustomTheme = (theme, trackEvent) => {
3768
3800
  const theming = (0, import_components_theming.useTheme)();
3769
- const previousTheme = (0, import_react20.useMemo)(() => theming.theme, []);
3770
- (0, import_react20.useEffect)(() => {
3801
+ const previousTheme = (0, import_react21.useMemo)(() => theming.theme, []);
3802
+ (0, import_react21.useEffect)(() => {
3771
3803
  theming.setTheme(theme);
3772
3804
  trackEvent(ThemeRequiredEventName, { theme });
3773
3805
  return theme !== previousTheme ? () => {
@@ -3780,12 +3812,12 @@ var useCustomTheme = (theme, trackEvent) => {
3780
3812
 
3781
3813
  // ../renderers/src/step/StepFooter.tsx
3782
3814
  var import_components54 = require("@transferwise/components");
3783
- var import_react21 = require("react");
3784
- var import_react_intl25 = require("react-intl");
3815
+ var import_react22 = require("react");
3816
+ var import_react_intl26 = require("react-intl");
3785
3817
 
3786
3818
  // ../renderers/src/messages/step.messages.ts
3787
- var import_react_intl24 = require("react-intl");
3788
- var step_messages_default = (0, import_react_intl24.defineMessages)({
3819
+ var import_react_intl25 = require("react-intl");
3820
+ var step_messages_default = (0, import_react_intl25.defineMessages)({
3789
3821
  scrollToBottom: {
3790
3822
  id: "df.wise.step.scrollToBottom",
3791
3823
  defaultMessage: "Scroll to bottom",
@@ -3807,8 +3839,8 @@ var DefaultFooter = ({ footer }) => {
3807
3839
  return hasFooter ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "df-step-fixed__footer", children: footer }) : void 0;
3808
3840
  };
3809
3841
  var FooterWithScrollButton = ({ footer }) => {
3810
- const { formatMessage } = (0, import_react_intl25.useIntl)();
3811
- const endOfLayoutRef = (0, import_react21.useRef)(null);
3842
+ const { formatMessage } = (0, import_react_intl26.useIntl)();
3843
+ const endOfLayoutRef = (0, import_react22.useRef)(null);
3812
3844
  const isElementVisible = useIsElementVisible(endOfLayoutRef);
3813
3845
  const scrollButton = /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
3814
3846
  import_components54.Button,
@@ -3837,8 +3869,8 @@ var FooterWithScrollButton = ({ footer }) => {
3837
3869
  ] });
3838
3870
  };
3839
3871
  var useIsElementVisible = (elementRef) => {
3840
- const [isVisible, setIsVisible] = (0, import_react21.useState)(false);
3841
- (0, import_react21.useEffect)(() => {
3872
+ const [isVisible, setIsVisible] = (0, import_react22.useState)(false);
3873
+ (0, import_react22.useEffect)(() => {
3842
3874
  const element = elementRef.current;
3843
3875
  if (!element) return;
3844
3876
  const observer = new IntersectionObserver(([entry]) => {
@@ -3870,11 +3902,11 @@ var getHeaderStyle = (tags) => {
3870
3902
  // ../renderers/src/step/topbar/BackButton.tsx
3871
3903
  var import_components56 = require("@transferwise/components");
3872
3904
  var import_icons5 = require("@transferwise/icons");
3873
- var import_react_intl27 = require("react-intl");
3905
+ var import_react_intl28 = require("react-intl");
3874
3906
 
3875
3907
  // ../renderers/src/messages/back.messages.ts
3876
- var import_react_intl26 = require("react-intl");
3877
- var back_messages_default = (0, import_react_intl26.defineMessages)({
3908
+ var import_react_intl27 = require("react-intl");
3909
+ var back_messages_default = (0, import_react_intl27.defineMessages)({
3878
3910
  back: {
3879
3911
  id: "df.wise.back.label",
3880
3912
  defaultMessage: "Back",
@@ -3885,7 +3917,7 @@ var back_messages_default = (0, import_react_intl26.defineMessages)({
3885
3917
  // ../renderers/src/step/topbar/BackButton.tsx
3886
3918
  var import_jsx_runtime79 = require("react/jsx-runtime");
3887
3919
  function BackButton({ title, onClick }) {
3888
- const { formatMessage } = (0, import_react_intl27.useIntl)();
3920
+ const { formatMessage } = (0, import_react_intl28.useIntl)();
3889
3921
  return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_components56.IconButton, { className: "df-back-button", priority: "tertiary", onClick, children: [
3890
3922
  /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "sr-only", children: title != null ? title : formatMessage(back_messages_default.back) }),
3891
3923
  /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons5.ArrowLeft, {})
@@ -4022,7 +4054,7 @@ function StepRendererComponent(props) {
4022
4054
 
4023
4055
  // ../renderers/src/TabsRenderer.tsx
4024
4056
  var import_components59 = require("@transferwise/components");
4025
- var import_react22 = require("react");
4057
+ var import_react23 = require("react");
4026
4058
  var import_jsx_runtime85 = require("react/jsx-runtime");
4027
4059
  var TabsRenderer = {
4028
4060
  canRenderType: "tabs",
@@ -4041,7 +4073,7 @@ var TabsRenderer = {
4041
4073
  }
4042
4074
  };
4043
4075
  function TabsRendererComponent({ uid, margin, tabs }) {
4044
- const [selectedIndex, setSelectedIndex] = (0, import_react22.useState)(0);
4076
+ const [selectedIndex, setSelectedIndex] = (0, import_react23.useState)(0);
4045
4077
  return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: getMargin(margin), children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4046
4078
  import_components59.Tabs,
4047
4079
  {
@@ -4062,7 +4094,7 @@ function TabsRendererComponent({ uid, margin, tabs }) {
4062
4094
  }
4063
4095
  function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
4064
4096
  var _a;
4065
- const [selectedIndex, setSelectedIndex] = (0, import_react22.useState)(0);
4097
+ const [selectedIndex, setSelectedIndex] = (0, import_react23.useState)(0);
4066
4098
  return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: getMargin(margin), children: [
4067
4099
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4068
4100
  import_components59.SegmentedControl,
@@ -4084,7 +4116,7 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs }) {
4084
4116
  }
4085
4117
  function ChipsTabsRendererComponent({ margin, tabs }) {
4086
4118
  var _a;
4087
- const [selectedIndex, setSelectedIndex] = (0, import_react22.useState)(0);
4119
+ const [selectedIndex, setSelectedIndex] = (0, import_react23.useState)(0);
4088
4120
  return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: getMargin(margin), children: [
4089
4121
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "chips-container", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
4090
4122
  import_components59.Chips,
@@ -4339,7 +4371,7 @@ var LargeUploadRenderer = {
4339
4371
 
4340
4372
  // ../renderers/src/UpsellRenderer.tsx
4341
4373
  var import_components63 = require("@transferwise/components");
4342
- var import_react23 = require("react");
4374
+ var import_react24 = require("react");
4343
4375
  var import_jsx_runtime89 = require("react/jsx-runtime");
4344
4376
  var UpsellRenderer = {
4345
4377
  canRenderType: "upsell",
@@ -4347,7 +4379,7 @@ var UpsellRenderer = {
4347
4379
  };
4348
4380
  function UpsellRendererComponent(props) {
4349
4381
  const { text, callToAction, media, margin, onDismiss } = props;
4350
- const [isVisible, setIsVisible] = (0, import_react23.useState)(true);
4382
+ const [isVisible, setIsVisible] = (0, import_react24.useState)(true);
4351
4383
  return isVisible ? /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
4352
4384
  import_components63.Nudge,
4353
4385
  {
@@ -4598,12 +4630,12 @@ var customEventsToAnalytics = {
4598
4630
  };
4599
4631
 
4600
4632
  // src/dynamicFlow/useOnCopy.tsx
4601
- var import_react24 = require("react");
4602
- var import_react_intl29 = require("react-intl");
4633
+ var import_react25 = require("react");
4634
+ var import_react_intl30 = require("react-intl");
4603
4635
 
4604
4636
  // src/dynamicFlow/messages.ts
4605
- var import_react_intl28 = require("react-intl");
4606
- var messages_default = (0, import_react_intl28.defineMessages)({
4637
+ var import_react_intl29 = require("react-intl");
4638
+ var messages_default = (0, import_react_intl29.defineMessages)({
4607
4639
  copied: {
4608
4640
  id: "df.wise.CopyFeedback.copy",
4609
4641
  defaultMessage: "Copied to clipboard",
@@ -4618,9 +4650,9 @@ var messages_default = (0, import_react_intl28.defineMessages)({
4618
4650
 
4619
4651
  // src/dynamicFlow/useOnCopy.tsx
4620
4652
  var useOnCopy = () => {
4621
- const { formatMessage } = (0, import_react_intl29.useIntl)();
4653
+ const { formatMessage } = (0, import_react_intl30.useIntl)();
4622
4654
  const createSnackBar = useSnackBarIfAvailable();
4623
- return (0, import_react24.useCallback)(
4655
+ return (0, import_react25.useCallback)(
4624
4656
  (copiedContent) => {
4625
4657
  if (copiedContent) {
4626
4658
  createSnackBar({ text: formatMessage(messages_default.copied) });
@@ -4633,11 +4665,11 @@ var useOnCopy = () => {
4633
4665
  };
4634
4666
 
4635
4667
  // src/dynamicFlow/useWiseHttpClient.tsx
4636
- var import_react25 = require("react");
4637
- var import_react_intl30 = require("react-intl");
4668
+ var import_react26 = require("react");
4669
+ var import_react_intl31 = require("react-intl");
4638
4670
  var useWiseHttpClient = (httpClient) => {
4639
- const { locale } = (0, import_react_intl30.useIntl)();
4640
- return (0, import_react25.useCallback)(
4671
+ const { locale } = (0, import_react_intl31.useIntl)();
4672
+ return (0, import_react26.useCallback)(
4641
4673
  async (input, init = {}) => {
4642
4674
  const headers = new Headers(init.headers);
4643
4675
  headers.set("accept-language", locale);
@@ -4678,10 +4710,10 @@ var useWiseToCoreProps = (props) => {
4678
4710
  onLog
4679
4711
  } = props;
4680
4712
  const httpClient = useWiseHttpClient(customFetch);
4681
- const mergedRenderers = (0, import_react26.useMemo)(() => getMergedRenderers(props), [renderers]);
4713
+ const mergedRenderers = (0, import_react27.useMemo)(() => getMergedRenderers(props), [renderers]);
4682
4714
  const createSnackBar = useCreateSnackBar();
4683
- const logEvent = (0, import_react26.useMemo)(() => getLogEvent(onLog), [onLog]);
4684
- const trackEvent = (0, import_react26.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
4715
+ const logEvent = (0, import_react27.useMemo)(() => getLogEvent(onLog), [onLog]);
4716
+ const trackEvent = (0, import_react27.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
4685
4717
  const onCopy = useOnCopy();
4686
4718
  return __spreadProps(__spreadValues({}, props), {
4687
4719
  httpClient,
@@ -4726,19 +4758,19 @@ function DynamicFlow(props) {
4726
4758
  }
4727
4759
 
4728
4760
  // src/dynamicFlow/DynamicFlowWithRef.tsx
4729
- var import_react27 = require("react");
4761
+ var import_react28 = require("react");
4730
4762
  var import_dynamic_flow_client5 = require("@wise/dynamic-flow-client");
4731
4763
  var import_jsx_runtime95 = require("react/jsx-runtime");
4732
- var DynamicFlowWithRef = (0, import_react27.forwardRef)(function DynamicFlowWithRef2(props, ref) {
4764
+ var DynamicFlowWithRef = (0, import_react28.forwardRef)(function DynamicFlowWithRef2(props, ref) {
4733
4765
  const { className = "" } = props;
4734
4766
  const dfProps = useWiseToCoreProps(props);
4735
4767
  const df = (0, import_dynamic_flow_client5.useDynamicFlow)(dfProps);
4736
- (0, import_react27.useImperativeHandle)(
4768
+ (0, import_react28.useImperativeHandle)(
4737
4769
  ref,
4738
4770
  () => ({
4739
- getValue: async () => {
4771
+ getValue: () => {
4740
4772
  var _a;
4741
- return (_a = await df.controller.getSubmittableValue()) != null ? _a : null;
4773
+ return (_a = df.controller.getValue()) != null ? _a : null;
4742
4774
  },
4743
4775
  validate: () => df.controller.validate()
4744
4776
  }),