@wise/dynamic-flow-client-internal 5.31.0 → 5.32.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.
Files changed (77) hide show
  1. package/build/i18n/ar.json +2 -0
  2. package/build/i18n/cs.json +2 -0
  3. package/build/i18n/de.json +2 -0
  4. package/build/i18n/en.json +2 -0
  5. package/build/i18n/es.json +2 -0
  6. package/build/i18n/fr.json +2 -0
  7. package/build/i18n/hu.json +2 -0
  8. package/build/i18n/id.json +2 -0
  9. package/build/i18n/it.json +2 -0
  10. package/build/i18n/ja.json +2 -0
  11. package/build/i18n/ko.json +2 -0
  12. package/build/i18n/nl.json +2 -0
  13. package/build/i18n/pl.json +2 -0
  14. package/build/i18n/pt.json +2 -0
  15. package/build/i18n/ro.json +2 -0
  16. package/build/i18n/ru.json +2 -0
  17. package/build/i18n/sv.json +2 -0
  18. package/build/i18n/th.json +2 -0
  19. package/build/i18n/tr.json +2 -0
  20. package/build/i18n/uk.json +2 -0
  21. package/build/i18n/zh_CN.json +2 -0
  22. package/build/i18n/zh_HK.json +2 -0
  23. package/build/main.js +418 -168
  24. package/build/main.mjs +408 -157
  25. package/build/tsconfig.types.tsbuildinfo +1 -1
  26. package/package.json +2 -2
  27. package/build/dynamicFlow/DynamicFlow.js +0 -11
  28. package/build/dynamicFlow/DynamicFlowModal.js +0 -21
  29. package/build/dynamicFlow/DynamicFlowWiseProps.js +0 -1
  30. package/build/dynamicFlow/DynamicFlowWithRef.js +0 -19
  31. package/build/dynamicFlow/context-menu/useContextMenu.js +0 -33
  32. package/build/dynamicFlow/context-menu/useDFContextMenu.js +0 -135
  33. package/build/dynamicFlow/context-menu/useDFContextMenu.test.js +0 -101
  34. package/build/dynamicFlow/getMergedRenderers.js +0 -36
  35. package/build/dynamicFlow/messages.js +0 -13
  36. package/build/dynamicFlow/renderers.js +0 -10
  37. package/build/dynamicFlow/telemetry/app-version.js +0 -4
  38. package/build/dynamicFlow/telemetry/dispatchAnalyticsEvent.js +0 -8
  39. package/build/dynamicFlow/telemetry/getLogEvent.js +0 -22
  40. package/build/dynamicFlow/telemetry/getTrackEvent.js +0 -39
  41. package/build/dynamicFlow/telemetry/index.js +0 -2
  42. package/build/dynamicFlow/useCreateSnackBar.js +0 -9
  43. package/build/dynamicFlow/useOnCopy.js +0 -16
  44. package/build/dynamicFlow/useWiseHttpClient.js +0 -24
  45. package/build/dynamicFlow/useWiseToCoreProps.js +0 -42
  46. package/build/i18n/index.js +0 -43
  47. package/build/index.js +0 -6
  48. package/build/stories/ButtonLoader.story.js +0 -109
  49. package/build/stories/ContainerQueries.story.js +0 -74
  50. package/build/stories/DynamicFlow.story.js +0 -37
  51. package/build/stories/DynamicFlowWithRef.story.js +0 -72
  52. package/build/stories/Editable.story.js +0 -58
  53. package/build/stories/Initialisation.story.js +0 -33
  54. package/build/stories/PinnedButtons.story.js +0 -94
  55. package/build/stories/SCAIntegration.story.js +0 -67
  56. package/build/stories/utils/fixtureHttpClient.js +0 -59
  57. package/build/test-utils/NeptuneProviders.js +0 -11
  58. package/build/test-utils/index.js +0 -4
  59. package/build/test-utils/respond-with.js +0 -6
  60. package/build/test-utils/rtl-utils.js +0 -7
  61. package/build/test-utils/wait.js +0 -3
  62. package/build/tests/DynamicFlow.test.js +0 -177
  63. package/build/tests/HideStepTitle.test.js +0 -58
  64. package/build/tests/RequestCache.test.js +0 -34
  65. package/build/tests/SCARejectionHandling.test.js +0 -71
  66. package/build/tests/Subflow.Wise.test.js +0 -650
  67. package/build/tests/events.test.js +0 -124
  68. package/build/tests/logging.test.js +0 -12
  69. package/build/tests/onNotification.test.js +0 -96
  70. package/build/tests/renderers/ControlAndTags.test.js +0 -225
  71. package/build/tests/renderers/ImageRenderer.test.js +0 -129
  72. package/build/tests/renderers/RadioInputRendererComponent.test.js +0 -89
  73. package/build/tests/renderers/ReviewRenderer.test.js +0 -41
  74. package/build/tests/renderers/TextInputRenderer.test.js +0 -44
  75. package/build/tests/renderers/TimeZoneHeader.test.js +0 -19
  76. package/build/tests/renderers/UploadInputRenderer.maxSize.test.js +0 -22
  77. package/build/tests/renderers/value-utils.test.js +0 -24
package/build/main.js CHANGED
@@ -70,7 +70,7 @@ var require_classnames = __commonJS({
70
70
  (function() {
71
71
  "use strict";
72
72
  var hasOwn = {}.hasOwnProperty;
73
- function classNames36() {
73
+ function classNames37() {
74
74
  var classes = "";
75
75
  for (var i = 0; i < arguments.length; i++) {
76
76
  var arg = arguments[i];
@@ -88,7 +88,7 @@ var require_classnames = __commonJS({
88
88
  return "";
89
89
  }
90
90
  if (Array.isArray(arg)) {
91
- return classNames36.apply(null, arg);
91
+ return classNames37.apply(null, arg);
92
92
  }
93
93
  if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
94
94
  return arg.toString();
@@ -111,14 +111,14 @@ var require_classnames = __commonJS({
111
111
  return value + newClass;
112
112
  }
113
113
  if (typeof module2 !== "undefined" && module2.exports) {
114
- classNames36.default = classNames36;
115
- module2.exports = classNames36;
114
+ classNames37.default = classNames37;
115
+ module2.exports = classNames37;
116
116
  } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
117
117
  define("classnames", [], function() {
118
- return classNames36;
118
+ return classNames37;
119
119
  });
120
120
  } else {
121
- window.classNames = classNames36;
121
+ window.classNames = classNames37;
122
122
  }
123
123
  })();
124
124
  }
@@ -146,7 +146,7 @@ var import_dynamic_flow_client4 = require("@wise/dynamic-flow-client");
146
146
  // src/dynamicFlow/telemetry/app-version.ts
147
147
  var appVersion = (
148
148
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
149
- typeof process !== "undefined" ? "5.31.0" : "0.0.0"
149
+ typeof process !== "undefined" ? "5.32.0" : "0.0.0"
150
150
  );
151
151
 
152
152
  // src/dynamicFlow/context-menu/useContextMenu.tsx
@@ -336,7 +336,7 @@ var recursivelyRemoveNullish = (element) => {
336
336
  };
337
337
 
338
338
  // src/dynamicFlow/useWiseToCoreProps.tsx
339
- var import_react30 = require("react");
339
+ var import_react32 = require("react");
340
340
 
341
341
  // src/dynamicFlow/getMergedRenderers.tsx
342
342
  var import_dynamic_flow_client2 = require("@wise/dynamic-flow-client");
@@ -1551,6 +1551,7 @@ var getSupportingValues = (supportingValues) => {
1551
1551
  };
1552
1552
 
1553
1553
  // ../renderers/src/CheckboxInputRenderer.tsx
1554
+ var import_classnames11 = __toESM(require_classnames());
1554
1555
  var import_jsx_runtime34 = require("react/jsx-runtime");
1555
1556
  var CheckboxInputRenderer = {
1556
1557
  canRenderType: "input-checkbox",
@@ -1605,36 +1606,26 @@ var CheckboxComponent = (props) => {
1605
1606
  );
1606
1607
  };
1607
1608
  var CheckboxItemComponent = (props) => {
1608
- const {
1609
- additionalText,
1610
- description,
1611
- disabled,
1612
- inlineAlert,
1613
- media,
1614
- supportingValues,
1615
- title,
1616
- validationState,
1617
- value,
1618
- features,
1619
- onChange
1620
- } = props;
1609
+ const { validationState, value, features, onChange } = props;
1621
1610
  const { ref } = useScrollToError(validationState, features);
1622
1611
  return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ref, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1623
1612
  import_components14.ListItem,
1624
- __spreadProps(__spreadValues({
1625
- title,
1626
- subtitle: description,
1627
- additionalInfo: getAdditionalText(additionalText),
1628
- media: getMedia(media, false),
1629
- disabled,
1630
- prompt: getInlineAlertOrValidation(validationState, inlineAlert),
1613
+ __spreadProps(__spreadValues({}, getListItemProps(props)), {
1631
1614
  control: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_components14.ListItem.Checkbox, { checked: value, onChange: () => onChange(!value) })
1632
- }, getSupportingValues(supportingValues)), {
1633
- className: controlAndTagsToCSSClass(props)
1634
1615
  })
1635
1616
  ) });
1636
1617
  };
1637
1618
  var SwitchItemComponent = (props) => {
1619
+ const { validationState, value, features, onChange } = props;
1620
+ const { ref } = useScrollToError(validationState, features);
1621
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ref, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1622
+ import_components14.ListItem,
1623
+ __spreadProps(__spreadValues({}, getListItemProps(props)), {
1624
+ control: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_components14.ListItem.Switch, { checked: value, onClick: () => onChange(!value) })
1625
+ })
1626
+ ) });
1627
+ };
1628
+ var getListItemProps = (props) => {
1638
1629
  const {
1639
1630
  additionalText,
1640
1631
  description,
@@ -1642,27 +1633,23 @@ var SwitchItemComponent = (props) => {
1642
1633
  inlineAlert,
1643
1634
  media,
1644
1635
  supportingValues,
1636
+ tags,
1645
1637
  title,
1646
- validationState,
1647
- value,
1648
- features,
1649
- onChange
1638
+ validationState
1650
1639
  } = props;
1651
- const { ref } = useScrollToError(validationState, features);
1652
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ref, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1653
- import_components14.ListItem,
1654
- __spreadProps(__spreadValues({
1655
- title,
1656
- subtitle: description,
1657
- additionalInfo: getAdditionalText(additionalText),
1658
- media: getMedia(media, false),
1659
- disabled,
1660
- prompt: getInlineAlertOrValidation(validationState, inlineAlert),
1661
- control: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_components14.ListItem.Switch, { checked: value, onClick: () => onChange(!value) })
1662
- }, getSupportingValues(supportingValues)), {
1663
- className: controlAndTagsToCSSClass(props)
1664
- })
1665
- ) });
1640
+ const spotlight = (tags == null ? void 0 : tags.includes("spotlight-active")) ? "active" : (tags == null ? void 0 : tags.includes("spotlight-inactive")) ? "inactive" : void 0;
1641
+ return __spreadValues({
1642
+ additionalInfo: getAdditionalText(additionalText),
1643
+ className: (0, import_classnames11.default)(controlAndTagsToCSSClass(props), {
1644
+ "m-b-1": spotlight
1645
+ }),
1646
+ disabled,
1647
+ media: getMedia(media, false),
1648
+ prompt: getInlineAlertOrValidation(validationState, inlineAlert),
1649
+ spotlight,
1650
+ subtitle: description,
1651
+ title
1652
+ }, getSupportingValues(supportingValues));
1666
1653
  };
1667
1654
  var getInlineAlertOrValidation = (validationState, inlineAlert) => {
1668
1655
  if ((validationState == null ? void 0 : validationState.status) === "invalid") {
@@ -3767,7 +3754,7 @@ var CollectionRenderer = createCollectionRenderer(() => true);
3767
3754
  var CollectionRenderer_default = CollectionRenderer;
3768
3755
 
3769
3756
  // ../renderers/src/ColumnsRenderer.tsx
3770
- var import_classnames11 = __toESM(require_classnames());
3757
+ var import_classnames12 = __toESM(require_classnames());
3771
3758
 
3772
3759
  // ../renderers/src/utils/useIsCollapsed.ts
3773
3760
  var import_react10 = require("react");
@@ -3806,7 +3793,7 @@ function ColumnsRendererComponent(props) {
3806
3793
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
3807
3794
  "div",
3808
3795
  {
3809
- className: (0, import_classnames11.default)(
3796
+ className: (0, import_classnames12.default)(
3810
3797
  "df-columns-renderer-container",
3811
3798
  getMargin(margin),
3812
3799
  {
@@ -4164,11 +4151,11 @@ var GroupedDecisionList = (_a) => {
4164
4151
  };
4165
4152
 
4166
4153
  // ../renderers/src/DecisionRenderer/DecisionWrapper.tsx
4167
- var import_classnames12 = __toESM(require_classnames());
4154
+ var import_classnames13 = __toESM(require_classnames());
4168
4155
  var import_jsx_runtime49 = require("react/jsx-runtime");
4169
4156
  var DecisionWrapper = (props) => {
4170
4157
  const { margin, control, title, tags } = props;
4171
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: (0, import_classnames12.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4158
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: (0, import_classnames13.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4172
4159
  title && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_components25.Header, { as: "h2", title }),
4173
4160
  control === "filtered" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(FilteredDecisionList, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(UnfilteredDecisionList, __spreadValues({}, props))
4174
4161
  ] });
@@ -4249,7 +4236,7 @@ var DecisionRenderer_default = DecisionRenderer;
4249
4236
 
4250
4237
  // ../renderers/src/DividerRenderer.tsx
4251
4238
  var import_components27 = require("@transferwise/components");
4252
- var import_classnames13 = __toESM(require_classnames());
4239
+ var import_classnames14 = __toESM(require_classnames());
4253
4240
  var import_jsx_runtime51 = require("react/jsx-runtime");
4254
4241
  var mapControlToLevel = (control) => {
4255
4242
  switch (control) {
@@ -4266,7 +4253,7 @@ var DividerRenderer = {
4266
4253
  render: ({ margin, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
4267
4254
  import_components27.Divider,
4268
4255
  {
4269
- className: (0, import_classnames13.default)(
4256
+ className: (0, import_classnames14.default)(
4270
4257
  "m-t-0",
4271
4258
  "d-block",
4272
4259
  getMargin(margin),
@@ -4366,11 +4353,11 @@ function getOrigin(url) {
4366
4353
  var ExternalConfirmationRenderer_default = ExternalConfirmationRenderer;
4367
4354
 
4368
4355
  // ../renderers/src/FormRenderer.tsx
4369
- var import_classnames14 = __toESM(require_classnames());
4356
+ var import_classnames15 = __toESM(require_classnames());
4370
4357
  var import_jsx_runtime53 = require("react/jsx-runtime");
4371
4358
  var FormRenderer = {
4372
4359
  canRenderType: "form",
4373
- render: ({ children, margin, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: (0, import_classnames14.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children })
4360
+ render: ({ children, margin, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: (0, import_classnames15.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children })
4374
4361
  };
4375
4362
  var FormRenderer_default = FormRenderer;
4376
4363
 
@@ -4395,7 +4382,7 @@ var FormSectionRenderer_default = FormSectionRenderer;
4395
4382
 
4396
4383
  // ../renderers/src/HeadingRenderer.tsx
4397
4384
  var import_components30 = require("@transferwise/components");
4398
- var import_classnames15 = __toESM(require_classnames());
4385
+ var import_classnames16 = __toESM(require_classnames());
4399
4386
  var import_jsx_runtime55 = require("react/jsx-runtime");
4400
4387
  var HeadingRenderer = {
4401
4388
  canRenderType: "heading",
@@ -4403,7 +4390,7 @@ var HeadingRenderer = {
4403
4390
  };
4404
4391
  function Heading(props) {
4405
4392
  const { text, size, align, margin, control } = props;
4406
- const className = (0, import_classnames15.default)(
4393
+ const className = (0, import_classnames16.default)(
4407
4394
  getTextAlignmentAndMargin({ align, margin }),
4408
4395
  controlAndTagsToCSSClass(props)
4409
4396
  );
@@ -4443,7 +4430,7 @@ var HeadingRenderer_default = HeadingRenderer;
4443
4430
 
4444
4431
  // ../renderers/src/ImageRenderer/UrlImage.tsx
4445
4432
  var import_components31 = require("@transferwise/components");
4446
- var import_classnames16 = __toESM(require_classnames());
4433
+ var import_classnames17 = __toESM(require_classnames());
4447
4434
  var import_react14 = require("react");
4448
4435
 
4449
4436
  // ../renderers/src/utils/api-utils.ts
@@ -4474,7 +4461,7 @@ function UrlImage({
4474
4461
  return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
4475
4462
  "div",
4476
4463
  {
4477
- className: (0, import_classnames16.default)(
4464
+ className: (0, import_classnames17.default)(
4478
4465
  "df-image",
4479
4466
  align,
4480
4467
  size || "md",
@@ -4538,7 +4525,7 @@ var ImageRenderer_default = ImageRenderer;
4538
4525
 
4539
4526
  // ../renderers/src/InstructionsRenderer.tsx
4540
4527
  var import_components32 = require("@transferwise/components");
4541
- var import_classnames17 = __toESM(require_classnames());
4528
+ var import_classnames18 = __toESM(require_classnames());
4542
4529
  var import_jsx_runtime58 = require("react/jsx-runtime");
4543
4530
  var doContext = ["positive", "neutral", "proposition"];
4544
4531
  var dontContext = ["warning", "negative"];
@@ -4547,7 +4534,7 @@ var InstructionsRenderer = {
4547
4534
  render: ({ items, margin, title, control, tags }) => {
4548
4535
  const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
4549
4536
  const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
4550
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: (0, import_classnames17.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4537
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: (0, import_classnames18.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4551
4538
  title ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_components32.Header, { title }) : null,
4552
4539
  /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_components32.InstructionsList, { dos, donts })
4553
4540
  ] });
@@ -4633,7 +4620,7 @@ var IntegerInputRenderer_default = IntegerInputRenderer;
4633
4620
 
4634
4621
  // ../renderers/src/ListRenderer.tsx
4635
4622
  var import_components35 = require("@transferwise/components");
4636
- var import_classnames18 = __toESM(require_classnames());
4623
+ var import_classnames19 = __toESM(require_classnames());
4637
4624
 
4638
4625
  // ../renderers/src/components/Header.tsx
4639
4626
  var import_components34 = require("@transferwise/components");
@@ -4653,7 +4640,7 @@ var getHeaderAction = (callToAction) => {
4653
4640
  var import_jsx_runtime61 = require("react/jsx-runtime");
4654
4641
  var ListRenderer = {
4655
4642
  canRenderType: "list",
4656
- render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: (0, import_classnames18.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4643
+ render: ({ callToAction, control, margin, items, tags, title }) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: (0, import_classnames19.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4657
4644
  /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Header, { title, callToAction }),
4658
4645
  items.map((item) => {
4659
4646
  var _a, _b;
@@ -4692,7 +4679,7 @@ var ListRenderer_default = ListRenderer;
4692
4679
 
4693
4680
  // ../renderers/src/LoadingIndicatorRenderer.tsx
4694
4681
  var import_components36 = require("@transferwise/components");
4695
- var import_classnames19 = __toESM(require_classnames());
4682
+ var import_classnames20 = __toESM(require_classnames());
4696
4683
  var import_jsx_runtime62 = require("react/jsx-runtime");
4697
4684
  var LoadingIndicatorRenderer = {
4698
4685
  canRenderType: "loading-indicator",
@@ -4701,7 +4688,7 @@ var LoadingIndicatorRenderer = {
4701
4688
  {
4702
4689
  size,
4703
4690
  classNames: {
4704
- "tw-loader": (0, import_classnames19.default)(
4691
+ "tw-loader": (0, import_classnames20.default)(
4705
4692
  "tw-loader",
4706
4693
  "m-x-auto",
4707
4694
  getMargin(margin),
@@ -4716,7 +4703,7 @@ var LoadingIndicatorRenderer_default = LoadingIndicatorRenderer;
4716
4703
 
4717
4704
  // ../renderers/src/MarkdownRenderer.tsx
4718
4705
  var import_components37 = require("@transferwise/components");
4719
- var import_classnames20 = __toESM(require_classnames());
4706
+ var import_classnames21 = __toESM(require_classnames());
4720
4707
  var import_jsx_runtime63 = require("react/jsx-runtime");
4721
4708
  var MarkdownRenderer = {
4722
4709
  canRenderType: "markdown",
@@ -4725,14 +4712,14 @@ var MarkdownRenderer = {
4725
4712
  return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4726
4713
  "div",
4727
4714
  {
4728
- className: (0, import_classnames20.default)(
4715
+ className: (0, import_classnames21.default)(
4729
4716
  getTextAlignmentAndMargin({ align, margin }),
4730
4717
  controlAndTagsToCSSClass({ control, tags })
4731
4718
  ),
4732
4719
  children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4733
4720
  import_components37.Markdown,
4734
4721
  {
4735
- className: (0, import_classnames20.default)("df-markdown", {
4722
+ className: (0, import_classnames21.default)("df-markdown", {
4736
4723
  "np-text-body-large": isLarge,
4737
4724
  "np-text-body-default": !isLarge
4738
4725
  }),
@@ -4747,7 +4734,7 @@ var MarkdownRenderer = {
4747
4734
  var MarkdownRenderer_default = MarkdownRenderer;
4748
4735
 
4749
4736
  // ../renderers/src/MediaRenderer.tsx
4750
- var import_classnames21 = __toESM(require_classnames());
4737
+ var import_classnames22 = __toESM(require_classnames());
4751
4738
  var import_jsx_runtime64 = require("react/jsx-runtime");
4752
4739
  var MediaRenderer = {
4753
4740
  canRenderType: "media",
@@ -4774,7 +4761,7 @@ var AvatarMediaRendererComponent = ({
4774
4761
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
4775
4762
  "div",
4776
4763
  {
4777
- className: (0, import_classnames21.default)(
4764
+ className: (0, import_classnames22.default)(
4778
4765
  "df-media-layout-avatar",
4779
4766
  align,
4780
4767
  getMargin(margin),
@@ -4826,7 +4813,7 @@ var mapAvatarMediaSize = (size) => {
4826
4813
 
4827
4814
  // ../renderers/src/ModalLayoutRenderer.tsx
4828
4815
  var import_components38 = require("@transferwise/components");
4829
- var import_classnames22 = __toESM(require_classnames());
4816
+ var import_classnames23 = __toESM(require_classnames());
4830
4817
  var import_react15 = require("react");
4831
4818
  var import_jsx_runtime65 = require("react/jsx-runtime");
4832
4819
  var ModalLayoutRenderer = {
@@ -4837,7 +4824,7 @@ var ModalLayoutRenderer_default = ModalLayoutRenderer;
4837
4824
  function DFModal({ content, margin, trigger, control, tags }) {
4838
4825
  const [visible, setVisible] = (0, import_react15.useState)(false);
4839
4826
  const { children, title } = content;
4840
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: (0, import_classnames22.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4827
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: (0, import_classnames23.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
4841
4828
  /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_components38.Button, { v2: true, priority: "tertiary", block: true, onClick: () => setVisible(true), children: trigger.title }),
4842
4829
  /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
4843
4830
  import_components38.Modal,
@@ -5269,7 +5256,7 @@ var import_components45 = require("@transferwise/components");
5269
5256
 
5270
5257
  // ../renderers/src/components/UploadFieldInput.tsx
5271
5258
  var import_components44 = require("@transferwise/components");
5272
- var import_classnames23 = __toESM(require_classnames());
5259
+ var import_classnames24 = __toESM(require_classnames());
5273
5260
  var import_jsx_runtime72 = require("react/jsx-runtime");
5274
5261
  function UploadFieldInput({
5275
5262
  id,
@@ -5289,7 +5276,7 @@ function UploadFieldInput({
5289
5276
  "div",
5290
5277
  {
5291
5278
  ref,
5292
- className: (0, import_classnames23.default)(
5279
+ className: (0, import_classnames24.default)(
5293
5280
  "form-group d-block",
5294
5281
  {
5295
5282
  "has-error": (validation == null ? void 0 : validation.status) === "invalid"
@@ -5451,7 +5438,7 @@ var NumberInputRenderer_default = NumberInputRenderer;
5451
5438
 
5452
5439
  // ../renderers/src/ParagraphRenderer.tsx
5453
5440
  var import_components48 = require("@transferwise/components");
5454
- var import_classnames24 = __toESM(require_classnames());
5441
+ var import_classnames25 = __toESM(require_classnames());
5455
5442
  var import_react_intl25 = require("react-intl");
5456
5443
 
5457
5444
  // ../renderers/src/hooks/useSnackBarIfAvailable.ts
@@ -5486,7 +5473,7 @@ var ParagraphRenderer = {
5486
5473
  };
5487
5474
  function Paragraph(props) {
5488
5475
  const { align, control, margin, size, text } = props;
5489
- const className = (0, import_classnames24.default)(
5476
+ const className = (0, import_classnames25.default)(
5490
5477
  getTextAlignmentAndMargin({ align, margin }),
5491
5478
  controlAndTagsToCSSClass(props)
5492
5479
  );
@@ -5517,7 +5504,7 @@ function CopyableParagraph({
5517
5504
  type: "text",
5518
5505
  value: text,
5519
5506
  readOnly: true,
5520
- className: (0, import_classnames24.default)("text-ellipsis", inputAlignmentClasses)
5507
+ className: (0, import_classnames25.default)("text-ellipsis", inputAlignmentClasses)
5521
5508
  }
5522
5509
  ),
5523
5510
  /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_components48.Button, { v2: true, block: true, onClick: copy, children: formatMessage(paragraph_messages_default.copy) })
@@ -5527,7 +5514,7 @@ var ParagraphRenderer_default = ParagraphRenderer;
5527
5514
 
5528
5515
  // ../renderers/src/ProgressRenderer.tsx
5529
5516
  var import_components49 = require("@transferwise/components");
5530
- var import_classnames25 = __toESM(require_classnames());
5517
+ var import_classnames26 = __toESM(require_classnames());
5531
5518
  var import_jsx_runtime76 = require("react/jsx-runtime");
5532
5519
  var ProgressRenderer = {
5533
5520
  canRenderType: "progress",
@@ -5536,7 +5523,7 @@ var ProgressRenderer = {
5536
5523
  import_components49.ProgressBar,
5537
5524
  {
5538
5525
  id: uid,
5539
- className: (0, import_classnames25.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
5526
+ className: (0, import_classnames26.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
5540
5527
  title: title && help ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LabelContentWithHelp, { text: title, help }) : title,
5541
5528
  description,
5542
5529
  progress: {
@@ -5552,7 +5539,7 @@ var ProgressRenderer = {
5552
5539
  // ../renderers/src/RepeatableRenderer.tsx
5553
5540
  var import_components50 = require("@transferwise/components");
5554
5541
  var import_icons2 = require("@transferwise/icons");
5555
- var import_classnames26 = __toESM(require_classnames());
5542
+ var import_classnames27 = __toESM(require_classnames());
5556
5543
  var import_react20 = require("react");
5557
5544
  var import_react_intl27 = require("react-intl");
5558
5545
 
@@ -5633,7 +5620,7 @@ function Repeatable(props) {
5633
5620
  /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(
5634
5621
  "div",
5635
5622
  {
5636
- className: (0, import_classnames26.default)("form-group", {
5623
+ className: (0, import_classnames27.default)("form-group", {
5637
5624
  "has-error": (validationState == null ? void 0 : validationState.status) === "invalid"
5638
5625
  }),
5639
5626
  children: [
@@ -5699,13 +5686,13 @@ var RepeatableRenderer_default = RepeatableRenderer;
5699
5686
 
5700
5687
  // ../renderers/src/ReviewLegacyRenderer.tsx
5701
5688
  var import_components51 = require("@transferwise/components");
5702
- var import_classnames27 = __toESM(require_classnames());
5689
+ var import_classnames28 = __toESM(require_classnames());
5703
5690
  var import_jsx_runtime78 = require("react/jsx-runtime");
5704
5691
  var ReviewRenderer = {
5705
5692
  canRenderType: "review",
5706
5693
  render: ({ callToAction, control, fields, margin, title, trackEvent, tags }) => {
5707
5694
  const orientation = mapControlToDefinitionListLayout(control);
5708
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: (0, import_classnames27.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5695
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("div", { className: (0, import_classnames28.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5709
5696
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Header, { title, callToAction }),
5710
5697
  /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: margin, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
5711
5698
  import_components51.DefinitionList,
@@ -5757,7 +5744,7 @@ var getFieldLabel = (label, help, onClick) => {
5757
5744
  // ../renderers/src/ReviewRenderer.tsx
5758
5745
  var import_components52 = require("@transferwise/components");
5759
5746
  var import_icons3 = require("@transferwise/icons");
5760
- var import_classnames28 = __toESM(require_classnames());
5747
+ var import_classnames29 = __toESM(require_classnames());
5761
5748
  var import_react_intl28 = require("react-intl");
5762
5749
  var import_jsx_runtime79 = require("react/jsx-runtime");
5763
5750
  var IGNORED_CONTROLS = [
@@ -5781,7 +5768,7 @@ var Review = ({
5781
5768
  trackEvent
5782
5769
  }) => {
5783
5770
  const intl = (0, import_react_intl28.useIntl)();
5784
- return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: (0, import_classnames28.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5771
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: (0, import_classnames29.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
5785
5772
  /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Header, { title, callToAction }),
5786
5773
  fields.map((field) => {
5787
5774
  var _a, _b, _c;
@@ -6070,7 +6057,7 @@ var SearchRenderer_default = SearchRenderer;
6070
6057
 
6071
6058
  // ../renderers/src/SectionRenderer.tsx
6072
6059
  var import_components56 = require("@transferwise/components");
6073
- var import_classnames29 = __toESM(require_classnames());
6060
+ var import_classnames30 = __toESM(require_classnames());
6074
6061
 
6075
6062
  // ../renderers/src/utils/getHeaderAction.tsx
6076
6063
  var getHeaderAction2 = (callToAction) => {
@@ -6101,7 +6088,7 @@ var SectionRenderer = {
6101
6088
  return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
6102
6089
  "section",
6103
6090
  {
6104
- className: (0, import_classnames29.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
6091
+ className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
6105
6092
  children: [
6106
6093
  (title || callToAction) && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_components56.Header, { title: title != null ? title : "", action: getHeaderAction2(callToAction) }),
6107
6094
  children
@@ -6442,11 +6429,11 @@ var SelectInputRenderer_default = SelectInputRenderer;
6442
6429
 
6443
6430
  // ../renderers/src/StatusListRenderer.tsx
6444
6431
  var import_components62 = require("@transferwise/components");
6445
- var import_classnames30 = __toESM(require_classnames());
6432
+ var import_classnames31 = __toESM(require_classnames());
6446
6433
  var import_jsx_runtime91 = require("react/jsx-runtime");
6447
6434
  var StatusListRenderer = {
6448
6435
  canRenderType: "status-list",
6449
- render: ({ margin, items, title, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: (0, import_classnames30.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6436
+ render: ({ margin, items, title, control, tags }) => /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: (0, import_classnames31.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6450
6437
  title ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_components62.Header, { title }) : null,
6451
6438
  items.map((item) => {
6452
6439
  const { callToAction, description, title: itemTitle } = item;
@@ -6495,7 +6482,7 @@ var mapStatus = (status) => {
6495
6482
  var StatusListRenderer_default = StatusListRenderer;
6496
6483
 
6497
6484
  // ../renderers/src/step/SplashCelebrationStepRenderer.tsx
6498
- var import_classnames31 = __toESM(require_classnames());
6485
+ var import_classnames32 = __toESM(require_classnames());
6499
6486
 
6500
6487
  // ../renderers/src/utils/useCustomTheme.ts
6501
6488
  var import_components_theming = require("@wise/components-theming");
@@ -6645,7 +6632,7 @@ function SplashCelebrationStepRendererComponent(props) {
6645
6632
  return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
6646
6633
  "div",
6647
6634
  {
6648
- className: (0, import_classnames31.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
6635
+ className: (0, import_classnames32.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
6649
6636
  children: [
6650
6637
  /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(TopBar, { back, toolbar, tags }),
6651
6638
  title || description ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(StepHeader, { title, description, tags }) }) : void 0,
@@ -6657,7 +6644,7 @@ function SplashCelebrationStepRendererComponent(props) {
6657
6644
  }
6658
6645
 
6659
6646
  // ../renderers/src/step/SplashStepRenderer.tsx
6660
- var import_classnames32 = __toESM(require_classnames());
6647
+ var import_classnames33 = __toESM(require_classnames());
6661
6648
  var import_jsx_runtime97 = require("react/jsx-runtime");
6662
6649
  var SplashStepRenderer = {
6663
6650
  canRenderType: "step",
@@ -6669,7 +6656,7 @@ function SplashStepRendererComponent(props) {
6669
6656
  return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
6670
6657
  "div",
6671
6658
  {
6672
- className: (0, import_classnames32.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
6659
+ className: (0, import_classnames33.default)("splash-screen", "m-t-5", controlAndTagsToCSSClass({ control, tags })),
6673
6660
  children: [
6674
6661
  /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(TopBar, { back, toolbar, tags }),
6675
6662
  title || description ? /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "m-b-4", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(StepHeader, { title, description, tags }) }) : void 0,
@@ -6700,7 +6687,7 @@ function StepRendererComponent(props) {
6700
6687
 
6701
6688
  // ../renderers/src/TabsRenderer.tsx
6702
6689
  var import_components67 = require("@transferwise/components");
6703
- var import_classnames33 = __toESM(require_classnames());
6690
+ var import_classnames34 = __toESM(require_classnames());
6704
6691
  var import_react26 = require("react");
6705
6692
  var import_jsx_runtime99 = require("react/jsx-runtime");
6706
6693
  var TabsRenderer = {
@@ -6721,7 +6708,7 @@ var TabsRenderer = {
6721
6708
  };
6722
6709
  function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
6723
6710
  const [selectedIndex, setSelectedIndex] = (0, import_react26.useState)(0);
6724
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: (0, import_classnames33.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6711
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6725
6712
  import_components67.Tabs,
6726
6713
  {
6727
6714
  name: uid,
@@ -6742,7 +6729,7 @@ function TabsRendererComponent({ uid, margin, tabs, control, tags }) {
6742
6729
  function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
6743
6730
  var _a;
6744
6731
  const [selectedIndex, setSelectedIndex] = (0, import_react26.useState)(0);
6745
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: (0, import_classnames33.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6732
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6746
6733
  /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6747
6734
  import_components67.SegmentedControl,
6748
6735
  {
@@ -6764,7 +6751,7 @@ function SegmentedTabsRendererComponent({ uid, margin, tabs, control, tags }) {
6764
6751
  function ChipsTabsRendererComponent({ margin, tabs, control, tags }) {
6765
6752
  var _a;
6766
6753
  const [selectedIndex, setSelectedIndex] = (0, import_react26.useState)(0);
6767
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: (0, import_classnames33.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6754
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children: [
6768
6755
  /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("div", { className: "chips-container", children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
6769
6756
  import_components67.Chips,
6770
6757
  {
@@ -6779,9 +6766,101 @@ function ChipsTabsRendererComponent({ margin, tabs, control, tags }) {
6779
6766
 
6780
6767
  // ../renderers/src/TextInputRenderer.tsx
6781
6768
  var import_components69 = require("@transferwise/components");
6769
+ var import_react28 = require("react");
6782
6770
 
6783
6771
  // ../renderers/src/components/VariableTextInput.tsx
6784
6772
  var import_components68 = require("@transferwise/components");
6773
+ var import_icons7 = require("@transferwise/icons");
6774
+ var import_react_intl36 = require("react-intl");
6775
+ var import_react27 = require("react");
6776
+
6777
+ // ../renderers/src/messages/ssn-input.messages.ts
6778
+ var import_react_intl35 = require("react-intl");
6779
+ var ssn_input_messages_default = (0, import_react_intl35.defineMessages)({
6780
+ showValue: {
6781
+ id: "df.wise.ssnInput.showValue",
6782
+ defaultMessage: "Show value",
6783
+ description: "Accessible label for showing a masked SSN or SIN value"
6784
+ },
6785
+ hideValue: {
6786
+ id: "df.wise.ssnInput.hideValue",
6787
+ defaultMessage: "Hide value",
6788
+ description: "Accessible label for hiding an SSN or SIN value"
6789
+ }
6790
+ });
6791
+
6792
+ // ../renderers/src/components/ssnInputUtils.ts
6793
+ function formatSsnValue(rawValue, displayFormat, isVisible) {
6794
+ if (!displayFormat) {
6795
+ return isVisible ? rawValue : "\u2022".repeat(rawValue.length);
6796
+ }
6797
+ const formattedValue = displayFormat.split("").reduce(
6798
+ ({ display, digitsUsed }, character) => {
6799
+ if (character === "*") {
6800
+ return digitsUsed < rawValue.length ? {
6801
+ display: `${display}${isVisible ? rawValue[digitsUsed] : "\u2022"}`,
6802
+ digitsUsed: digitsUsed + 1
6803
+ } : { display, digitsUsed };
6804
+ }
6805
+ return digitsUsed > 0 && digitsUsed < rawValue.length ? { display: `${display}${character}`, digitsUsed } : { display, digitsUsed };
6806
+ },
6807
+ { display: "", digitsUsed: 0 }
6808
+ ).display;
6809
+ const displayFormatDigitCount = displayFormat.split("").filter((character) => character === "*").length;
6810
+ const extraValue = rawValue.slice(displayFormatDigitCount);
6811
+ return `${formattedValue}${isVisible ? extraValue : "\u2022".repeat(extraValue.length)}`;
6812
+ }
6813
+ function getRawOffset(displayValue, displayOffset, rawValueLength) {
6814
+ return Math.min(
6815
+ displayValue.slice(0, displayOffset).split("").filter((character) => character === "\u2022" || /\d/.test(character)).length,
6816
+ rawValueLength
6817
+ );
6818
+ }
6819
+ function replaceSsnSelection(rawValue, displayValue, insertedValue, start, end) {
6820
+ const startOffset = getRawOffset(displayValue, start, rawValue.length);
6821
+ const endOffset = getRawOffset(displayValue, end, rawValue.length);
6822
+ if (!insertedValue) {
6823
+ return void 0;
6824
+ }
6825
+ return {
6826
+ value: `${rawValue.slice(0, startOffset)}${insertedValue}${rawValue.slice(endOffset)}`,
6827
+ caret: startOffset + insertedValue.length
6828
+ };
6829
+ }
6830
+ function deleteSsnSelection(rawValue, displayValue, start, end, backward) {
6831
+ let startOffset = getRawOffset(displayValue, start, rawValue.length);
6832
+ let endOffset = getRawOffset(displayValue, end, rawValue.length);
6833
+ if (startOffset === endOffset) {
6834
+ if (backward) {
6835
+ startOffset = Math.max(0, startOffset - 1);
6836
+ } else {
6837
+ endOffset = Math.min(rawValue.length, endOffset + 1);
6838
+ }
6839
+ }
6840
+ return {
6841
+ value: `${rawValue.slice(0, startOffset)}${rawValue.slice(endOffset)}`,
6842
+ caret: startOffset
6843
+ };
6844
+ }
6845
+ function getDisplayOffset(displayValue, rawOffset) {
6846
+ if (rawOffset === 0) {
6847
+ return 0;
6848
+ }
6849
+ let displayOffset = 0;
6850
+ let digitsSeen = 0;
6851
+ for (const character of displayValue) {
6852
+ if (character === "\u2022" || /\d/.test(character)) {
6853
+ digitsSeen += 1;
6854
+ if (digitsSeen === rawOffset) {
6855
+ return displayOffset + 1;
6856
+ }
6857
+ }
6858
+ displayOffset += 1;
6859
+ }
6860
+ return displayOffset;
6861
+ }
6862
+
6863
+ // ../renderers/src/components/VariableTextInput.tsx
6785
6864
  var import_jsx_runtime100 = require("react/jsx-runtime");
6786
6865
  var commonKeys = [
6787
6866
  "autoComplete",
@@ -6797,13 +6876,15 @@ var commonKeys = [
6797
6876
  "value"
6798
6877
  ];
6799
6878
  function VariableTextInput(inputProps) {
6800
- const { id, value, control, onChange } = inputProps;
6879
+ const { id, value, control, onChange, isSsnVisible } = inputProps;
6801
6880
  const commonProps = __spreadProps(__spreadValues({}, pick(inputProps, ...commonKeys)), { name: id });
6802
6881
  switch (control) {
6803
6882
  case "email":
6804
6883
  return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "email", onChange }));
6805
6884
  case "password":
6806
6885
  return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(TextInput, __spreadProps(__spreadValues({}, commonProps), { type: "password", onChange }));
6886
+ case "ssn-input":
6887
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(SsnInput, __spreadProps(__spreadValues({}, commonProps), { isVisible: isSsnVisible, onChange }));
6807
6888
  case "numeric": {
6808
6889
  const numericProps = __spreadProps(__spreadValues({}, commonProps), { type: "number", onWheel });
6809
6890
  return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
@@ -6823,74 +6904,207 @@ function VariableTextInput(inputProps) {
6823
6904
  }
6824
6905
  }
6825
6906
  }
6907
+ function SsnInputToggle({
6908
+ isVisible,
6909
+ onClick
6910
+ }) {
6911
+ const { formatMessage } = (0, import_react_intl36.useIntl)();
6912
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6913
+ import_components68.IconButton,
6914
+ {
6915
+ priority: "minimal",
6916
+ size: 24,
6917
+ "aria-label": formatMessage(isVisible ? ssn_input_messages_default.hideValue : ssn_input_messages_default.showValue),
6918
+ "aria-pressed": isVisible,
6919
+ onClick,
6920
+ children: isVisible ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_icons7.EyeShut, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_icons7.Eye, { size: 24 })
6921
+ }
6922
+ );
6923
+ }
6826
6924
  function TextInput(props) {
6827
- const _a = props, { control, displayFormat, onChange } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange"]);
6925
+ const _a = props, { control, displayFormat, onChange, type } = _a, commonProps = __objRest(_a, ["control", "displayFormat", "onChange", "type"]);
6828
6926
  const InputWithPattern = control === "textarea" ? import_components68.TextareaWithDisplayFormat : import_components68.InputWithDisplayFormat;
6829
6927
  const InputWithoutPattern = control === "textarea" ? import_components68.TextArea : import_components68.Input;
6830
- return displayFormat ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { onChange: (e) => onChange(e.target.value) }));
6928
+ return displayFormat ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(InputWithPattern, __spreadProps(__spreadValues({ displayPattern: displayFormat }, commonProps), { onChange })) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(InputWithoutPattern, __spreadProps(__spreadValues({}, commonProps), { type, onChange: (e) => onChange(e.target.value) }));
6929
+ }
6930
+ function SsnInput(props) {
6931
+ const _a = props, { displayFormat = "", isVisible = false, onChange, value = "" } = _a, commonProps = __objRest(_a, ["displayFormat", "isVisible", "onChange", "value"]);
6932
+ const [editVersion, setEditVersion] = (0, import_react27.useState)(0);
6933
+ const inputRef = (0, import_react27.useRef)(null);
6934
+ const selection = (0, import_react27.useRef)({ start: 0, end: 0 });
6935
+ const pendingCaret = (0, import_react27.useRef)(null);
6936
+ const rawValue = value.replace(/\D/g, "");
6937
+ const formattedValue = formatSsnValue(rawValue, displayFormat, isVisible);
6938
+ const scheduleCaret = (rawOffset) => {
6939
+ pendingCaret.current = rawOffset;
6940
+ setEditVersion((version) => version + 1);
6941
+ };
6942
+ const replaceSelection = (insertedValue, start, end) => {
6943
+ const result = replaceSsnSelection(rawValue, formattedValue, insertedValue, start, end);
6944
+ if (!result) {
6945
+ return;
6946
+ }
6947
+ scheduleCaret(result.caret);
6948
+ onChange(result.value);
6949
+ };
6950
+ const deleteSelection = (start, end, backward) => {
6951
+ const result = deleteSsnSelection(rawValue, formattedValue, start, end, backward);
6952
+ scheduleCaret(result.caret);
6953
+ onChange(result.value);
6954
+ };
6955
+ (0, import_react27.useLayoutEffect)(() => {
6956
+ if (pendingCaret.current === null || !inputRef.current) {
6957
+ return;
6958
+ }
6959
+ inputRef.current.setSelectionRange(
6960
+ getDisplayOffset(formattedValue, pendingCaret.current),
6961
+ getDisplayOffset(formattedValue, pendingCaret.current)
6962
+ );
6963
+ pendingCaret.current = null;
6964
+ }, [editVersion, formattedValue, rawValue]);
6965
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
6966
+ "input",
6967
+ __spreadProps(__spreadValues({
6968
+ ref: inputRef
6969
+ }, commonProps), {
6970
+ className: "form-control np-form-control np-input np-input--shape-rectangle",
6971
+ type: "text",
6972
+ inputMode: "numeric",
6973
+ value: formattedValue,
6974
+ onChange: (event) => {
6975
+ const nextValue = event.currentTarget.value;
6976
+ const inputType = event.nativeEvent.inputType;
6977
+ const start = selection.current.start;
6978
+ const end = selection.current.end;
6979
+ if (isVisible || /^\d+$/.test(nextValue)) {
6980
+ const nextRawValue = nextValue.replace(/\D/g, "");
6981
+ scheduleCaret(nextRawValue.length);
6982
+ onChange(nextRawValue);
6983
+ } else if ((inputType == null ? void 0 : inputType.startsWith("delete")) || nextValue.length < formattedValue.length) {
6984
+ deleteSelection(start, end, inputType === "deleteContentBackward");
6985
+ } else {
6986
+ replaceSelection(nextValue.replace(/\D/g, ""), start, end);
6987
+ }
6988
+ },
6989
+ onSelect: (event) => {
6990
+ var _a2, _b;
6991
+ selection.current = {
6992
+ start: (_a2 = event.currentTarget.selectionStart) != null ? _a2 : 0,
6993
+ end: (_b = event.currentTarget.selectionEnd) != null ? _b : 0
6994
+ };
6995
+ },
6996
+ onKeyDown: (event) => {
6997
+ var _a2, _b;
6998
+ selection.current = {
6999
+ start: (_a2 = event.currentTarget.selectionStart) != null ? _a2 : 0,
7000
+ end: (_b = event.currentTarget.selectionEnd) != null ? _b : 0
7001
+ };
7002
+ if (/^\d$/.test(event.key)) {
7003
+ event.preventDefault();
7004
+ replaceSelection(event.key, selection.current.start, selection.current.end);
7005
+ } else if (event.key === "Backspace") {
7006
+ event.preventDefault();
7007
+ deleteSelection(selection.current.start, selection.current.end, true);
7008
+ } else if (event.key === "Delete") {
7009
+ event.preventDefault();
7010
+ deleteSelection(selection.current.start, selection.current.end, false);
7011
+ }
7012
+ },
7013
+ onPaste: (event) => {
7014
+ var _a2, _b;
7015
+ event.preventDefault();
7016
+ selection.current = {
7017
+ start: (_a2 = event.currentTarget.selectionStart) != null ? _a2 : 0,
7018
+ end: (_b = event.currentTarget.selectionEnd) != null ? _b : 0
7019
+ };
7020
+ const pastedValue = event.clipboardData.getData("text").replace(/\D/g, "");
7021
+ replaceSelection(pastedValue, selection.current.start, selection.current.end);
7022
+ }
7023
+ })
7024
+ );
6831
7025
  }
6832
7026
 
6833
7027
  // ../renderers/src/TextInputRenderer.tsx
6834
7028
  var import_jsx_runtime101 = require("react/jsx-runtime");
6835
7029
  var TextInputRenderer = {
6836
7030
  canRenderType: "input-text",
6837
- render: (props) => {
6838
- const _a = props, {
7031
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(TextInputRendererComponent, __spreadValues({}, props))
7032
+ };
7033
+ function TextInputRendererComponent(props) {
7034
+ const [isSsnVisible, setIsSsnVisible] = (0, import_react28.useState)(false);
7035
+ const _a = props, {
7036
+ id,
7037
+ title,
7038
+ description,
7039
+ help,
7040
+ media,
7041
+ validationState,
7042
+ value: initialValue,
7043
+ onChange
7044
+ } = _a, rest = __objRest(_a, [
7045
+ "id",
7046
+ "title",
7047
+ "description",
7048
+ "help",
7049
+ "media",
7050
+ "validationState",
7051
+ "value",
7052
+ "onChange"
7053
+ ]);
7054
+ const value = initialValue != null ? initialValue : "";
7055
+ const isSsnInput = props.control === "ssn-input";
7056
+ const inputProps = __spreadProps(__spreadValues({}, rest), {
7057
+ value,
7058
+ id,
7059
+ isSsnVisible,
7060
+ onChange: (newValue) => {
7061
+ if ((value != null ? value : "") !== (newValue != null ? newValue : "")) {
7062
+ onChange(newValue);
7063
+ }
7064
+ }
7065
+ });
7066
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
7067
+ FieldInput_default,
7068
+ {
6839
7069
  id,
6840
- title,
7070
+ label: title,
6841
7071
  description,
7072
+ validation: validationState,
7073
+ inlineAlert: props.inlineAlert,
7074
+ loadingState: props.fieldLoadingState,
6842
7075
  help,
6843
- media,
6844
- validationState,
6845
- value: initialValue,
6846
- onChange
6847
- } = _a, rest = __objRest(_a, [
6848
- "id",
6849
- "title",
6850
- "description",
6851
- "help",
6852
- "media",
6853
- "validationState",
6854
- "value",
6855
- "onChange"
6856
- ]);
6857
- const value = initialValue != null ? initialValue : "";
6858
- const inputProps = __spreadProps(__spreadValues({}, rest), {
6859
- value,
6860
- id,
6861
- onChange: (newValue) => {
6862
- if ((value != null ? value : "") !== (newValue != null ? newValue : "")) {
6863
- onChange(newValue);
7076
+ features: props.features,
7077
+ control: props.control,
7078
+ tags: props.tags,
7079
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
7080
+ import_components69.InputGroup,
7081
+ {
7082
+ addonStart: getInputGroupAddonStart(media),
7083
+ addonEnd: isSsnInput ? {
7084
+ interactive: true,
7085
+ content: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
7086
+ SsnInputToggle,
7087
+ {
7088
+ isVisible: isSsnVisible,
7089
+ onClick: () => setIsSsnVisible((visible) => !visible)
7090
+ }
7091
+ )
7092
+ } : void 0,
7093
+ children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(VariableTextInput, __spreadValues({}, inputProps))
6864
7094
  }
6865
- }
6866
- });
6867
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
6868
- FieldInput_default,
6869
- {
6870
- id,
6871
- label: title,
6872
- description,
6873
- validation: validationState,
6874
- inlineAlert: props.inlineAlert,
6875
- loadingState: props.fieldLoadingState,
6876
- help,
6877
- features: props.features,
6878
- control: props.control,
6879
- tags: props.tags,
6880
- children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_components69.InputGroup, { addonStart: getInputGroupAddonStart(media), children: /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(VariableTextInput, __spreadValues({}, inputProps)) })
6881
- }
6882
- );
6883
- }
6884
- };
7095
+ )
7096
+ }
7097
+ );
7098
+ }
6885
7099
  var TextInputRenderer_default = TextInputRenderer;
6886
7100
 
6887
7101
  // ../renderers/src/UpdatableRenderer.tsx
6888
- var import_classnames34 = __toESM(require_classnames());
7102
+ var import_classnames35 = __toESM(require_classnames());
6889
7103
  var import_jsx_runtime102 = require("react/jsx-runtime");
6890
7104
  var UpdatableRenderer = {
6891
7105
  canRenderType: "updatable",
6892
7106
  render: ({ children, control, margin, tags }) => {
6893
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: (0, import_classnames34.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children });
7107
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("div", { className: (0, import_classnames35.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })), children });
6894
7108
  }
6895
7109
  };
6896
7110
 
@@ -7038,8 +7252,8 @@ var LargeUploadRenderer = {
7038
7252
 
7039
7253
  // ../renderers/src/UpsellRenderer.tsx
7040
7254
  var import_components71 = require("@transferwise/components");
7041
- var import_classnames35 = __toESM(require_classnames());
7042
- var import_react27 = require("react");
7255
+ var import_classnames36 = __toESM(require_classnames());
7256
+ var import_react29 = require("react");
7043
7257
  var import_jsx_runtime104 = require("react/jsx-runtime");
7044
7258
  var UpsellRenderer = {
7045
7259
  canRenderType: "upsell",
@@ -7047,11 +7261,11 @@ var UpsellRenderer = {
7047
7261
  };
7048
7262
  function UpsellRendererComponent(props) {
7049
7263
  const { text, callToAction, media, margin, onDismiss, control, tags } = props;
7050
- const [isVisible, setIsVisible] = (0, import_react27.useState)(true);
7264
+ const [isVisible, setIsVisible] = (0, import_react29.useState)(true);
7051
7265
  return isVisible ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
7052
7266
  import_components71.Nudge,
7053
7267
  {
7054
- className: (0, import_classnames35.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
7268
+ className: (0, import_classnames36.default)(getMargin(margin), controlAndTagsToCSSClass({ control, tags })),
7055
7269
  mediaName: getMediaName(media),
7056
7270
  title: text,
7057
7271
  action: __spreadValues({
@@ -7276,12 +7490,12 @@ var customEventsToAnalytics = {
7276
7490
  };
7277
7491
 
7278
7492
  // src/dynamicFlow/useOnCopy.tsx
7279
- var import_react28 = require("react");
7280
- var import_react_intl36 = require("react-intl");
7493
+ var import_react30 = require("react");
7494
+ var import_react_intl38 = require("react-intl");
7281
7495
 
7282
7496
  // src/dynamicFlow/messages.ts
7283
- var import_react_intl35 = require("react-intl");
7284
- var messages_default = (0, import_react_intl35.defineMessages)({
7497
+ var import_react_intl37 = require("react-intl");
7498
+ var messages_default = (0, import_react_intl37.defineMessages)({
7285
7499
  copied: {
7286
7500
  id: "df.wise.CopyFeedback.copy",
7287
7501
  defaultMessage: "Copied to clipboard",
@@ -7296,9 +7510,9 @@ var messages_default = (0, import_react_intl35.defineMessages)({
7296
7510
 
7297
7511
  // src/dynamicFlow/useOnCopy.tsx
7298
7512
  var useOnCopy = () => {
7299
- const { formatMessage } = (0, import_react_intl36.useIntl)();
7513
+ const { formatMessage } = (0, import_react_intl38.useIntl)();
7300
7514
  const createSnackBar = useSnackBarIfAvailable();
7301
- return (0, import_react28.useCallback)(
7515
+ return (0, import_react30.useCallback)(
7302
7516
  (copiedContent) => {
7303
7517
  if (copiedContent) {
7304
7518
  createSnackBar({ text: formatMessage(messages_default.copied) });
@@ -7311,11 +7525,11 @@ var useOnCopy = () => {
7311
7525
  };
7312
7526
 
7313
7527
  // src/dynamicFlow/useWiseHttpClient.tsx
7314
- var import_react29 = require("react");
7315
- var import_react_intl37 = require("react-intl");
7528
+ var import_react31 = require("react");
7529
+ var import_react_intl39 = require("react-intl");
7316
7530
  var useWiseHttpClient = (httpClient) => {
7317
- const { locale } = (0, import_react_intl37.useIntl)();
7318
- return (0, import_react29.useCallback)(
7531
+ const { locale } = (0, import_react_intl39.useIntl)();
7532
+ return (0, import_react31.useCallback)(
7319
7533
  async (input, init = {}) => {
7320
7534
  const headers = new Headers(init.headers);
7321
7535
  headers.set("accept-language", locale);
@@ -7356,10 +7570,10 @@ var useWiseToCoreProps = (props) => {
7356
7570
  onLog
7357
7571
  } = props;
7358
7572
  const httpClient = useWiseHttpClient(customFetch);
7359
- const mergedRenderers = (0, import_react30.useMemo)(() => getMergedRenderers(props), [renderers]);
7573
+ const mergedRenderers = (0, import_react32.useMemo)(() => getMergedRenderers(props), [renderers]);
7360
7574
  const createSnackBar = useCreateSnackBar();
7361
- const logEvent = (0, import_react30.useMemo)(() => getLogEvent(onLog), [onLog]);
7362
- const trackEvent = (0, import_react30.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
7575
+ const logEvent = (0, import_react32.useMemo)(() => getLogEvent(onLog), [onLog]);
7576
+ const trackEvent = (0, import_react32.useMemo)(() => getTrackEvent(onEvent, onAnalytics), [onEvent, onAnalytics]);
7363
7577
  const onCopy = useOnCopy();
7364
7578
  return __spreadProps(__spreadValues({}, props), {
7365
7579
  httpClient,
@@ -7407,14 +7621,14 @@ function DynamicFlow(props) {
7407
7621
  }
7408
7622
 
7409
7623
  // src/dynamicFlow/DynamicFlowWithRef.tsx
7410
- var import_react31 = require("react");
7624
+ var import_react33 = require("react");
7411
7625
  var import_dynamic_flow_client5 = require("@wise/dynamic-flow-client");
7412
7626
  var import_jsx_runtime109 = require("react/jsx-runtime");
7413
- var DynamicFlowWithRef = (0, import_react31.forwardRef)(function DynamicFlowWithRef2(props, ref) {
7627
+ var DynamicFlowWithRef = (0, import_react33.forwardRef)(function DynamicFlowWithRef2(props, ref) {
7414
7628
  const { className = "" } = props;
7415
7629
  const dfProps = useWiseToCoreProps(props);
7416
7630
  const df = (0, import_dynamic_flow_client5.useDynamicFlow)(dfProps);
7417
- (0, import_react31.useImperativeHandle)(
7631
+ (0, import_react33.useImperativeHandle)(
7418
7632
  ref,
7419
7633
  () => ({
7420
7634
  getValue: () => {
@@ -7487,6 +7701,8 @@ var cs_default = {
7487
7701
  "df.wise.group.currencies-with-account-details": "M\u011Bny s detaily \xFA\u010Dtu",
7488
7702
  "df.wise.group.popular": "Popul\xE1rn\xED",
7489
7703
  "df.wise.group.recent": "Ned\xE1vn\xE9",
7704
+ "df.wise.ssnInput.hideValue": "Hide value",
7705
+ "df.wise.ssnInput.showValue": "Show value",
7490
7706
  "df.wise.step.scrollToBottom": "P\u0159ej\xEDt na konec"
7491
7707
  };
7492
7708
 
@@ -7537,6 +7753,8 @@ var de_default = {
7537
7753
  "df.wise.group.currencies-with-account-details": "W\xE4hrungen mit Bankverbindung",
7538
7754
  "df.wise.group.popular": "Beliebt",
7539
7755
  "df.wise.group.recent": "K\xFCrzlich verwendet",
7756
+ "df.wise.ssnInput.hideValue": "Hide value",
7757
+ "df.wise.ssnInput.showValue": "Show value",
7540
7758
  "df.wise.step.scrollToBottom": "Nach unten scrollen"
7541
7759
  };
7542
7760
 
@@ -7587,6 +7805,8 @@ var en_default = {
7587
7805
  "df.wise.group.currencies-with-account-details": "Currencies with account details",
7588
7806
  "df.wise.group.popular": "Popular",
7589
7807
  "df.wise.group.recent": "Recent",
7808
+ "df.wise.ssnInput.hideValue": "Hide value",
7809
+ "df.wise.ssnInput.showValue": "Show value",
7590
7810
  "df.wise.step.scrollToBottom": "Scroll to bottom"
7591
7811
  };
7592
7812
 
@@ -7637,6 +7857,8 @@ var es_default = {
7637
7857
  "df.wise.group.currencies-with-account-details": "Divisas con datos de cuenta",
7638
7858
  "df.wise.group.popular": "Populares",
7639
7859
  "df.wise.group.recent": "Recientes",
7860
+ "df.wise.ssnInput.hideValue": "Ocultar valor",
7861
+ "df.wise.ssnInput.showValue": "Mostrar valor",
7640
7862
  "df.wise.step.scrollToBottom": "Despl\xE1zate hasta abajo"
7641
7863
  };
7642
7864
 
@@ -7687,6 +7909,8 @@ var fr_default = {
7687
7909
  "df.wise.group.currencies-with-account-details": "Devises avec num\xE9ros de compte",
7688
7910
  "df.wise.group.popular": "Populaires",
7689
7911
  "df.wise.group.recent": "R\xE9cents",
7912
+ "df.wise.ssnInput.hideValue": "Hide value",
7913
+ "df.wise.ssnInput.showValue": "Show value",
7690
7914
  "df.wise.step.scrollToBottom": "Faire d\xE9filer vers le bas"
7691
7915
  };
7692
7916
 
@@ -7737,6 +7961,8 @@ var hu_default = {
7737
7961
  "df.wise.group.currencies-with-account-details": "P\xE9nznemek sz\xE1mlaadatokkal",
7738
7962
  "df.wise.group.popular": "N\xE9pszer\u0171",
7739
7963
  "df.wise.group.recent": "Legut\xF3bbi",
7964
+ "df.wise.ssnInput.hideValue": "Hide value",
7965
+ "df.wise.ssnInput.showValue": "Show value",
7740
7966
  "df.wise.step.scrollToBottom": "G\xF6rgess legalulra"
7741
7967
  };
7742
7968
 
@@ -7787,6 +8013,8 @@ var id_default = {
7787
8013
  "df.wise.group.currencies-with-account-details": "Mata uang dengan detail rekening",
7788
8014
  "df.wise.group.popular": "Populer",
7789
8015
  "df.wise.group.recent": "Terbaru",
8016
+ "df.wise.ssnInput.hideValue": "Sembunyikan nilai",
8017
+ "df.wise.ssnInput.showValue": "Tampilkan nilai",
7790
8018
  "df.wise.step.scrollToBottom": "Gulir ke bawah"
7791
8019
  };
7792
8020
 
@@ -7837,6 +8065,8 @@ var it_default = {
7837
8065
  "df.wise.group.currencies-with-account-details": "Valute con estremi del conto",
7838
8066
  "df.wise.group.popular": "Popolari",
7839
8067
  "df.wise.group.recent": "Recenti",
8068
+ "df.wise.ssnInput.hideValue": "Hide value",
8069
+ "df.wise.ssnInput.showValue": "Show value",
7840
8070
  "df.wise.step.scrollToBottom": "Scorri fino in fondo"
7841
8071
  };
7842
8072
 
@@ -7887,6 +8117,8 @@ var ja_default = {
7887
8117
  "df.wise.group.currencies-with-account-details": "\u53E3\u5EA7\u60C5\u5831\u3092\u53D6\u5F97\u3067\u304D\u308B\u901A\u8CA8",
7888
8118
  "df.wise.group.popular": "\u4EBA\u6C17",
7889
8119
  "df.wise.group.recent": "\u6700\u8FD1",
8120
+ "df.wise.ssnInput.hideValue": "Hide value",
8121
+ "df.wise.ssnInput.showValue": "Show value",
7890
8122
  "df.wise.step.scrollToBottom": "\u4E0B\u307E\u3067\u30B9\u30AF\u30ED\u30FC\u30EB\u3059\u308B"
7891
8123
  };
7892
8124
 
@@ -7937,6 +8169,8 @@ var nl_default = {
7937
8169
  "df.wise.group.currencies-with-account-details": "Valuta's met rekeninggegevens",
7938
8170
  "df.wise.group.popular": "Populair",
7939
8171
  "df.wise.group.recent": "Recent",
8172
+ "df.wise.ssnInput.hideValue": "Hide value",
8173
+ "df.wise.ssnInput.showValue": "Show value",
7940
8174
  "df.wise.step.scrollToBottom": "Scrol omlaag"
7941
8175
  };
7942
8176
 
@@ -7987,6 +8221,8 @@ var pl_default = {
7987
8221
  "df.wise.group.currencies-with-account-details": "Waluty z danymi bankowymi",
7988
8222
  "df.wise.group.popular": "Popularne",
7989
8223
  "df.wise.group.recent": "Ostatnie",
8224
+ "df.wise.ssnInput.hideValue": "Hide value",
8225
+ "df.wise.ssnInput.showValue": "Show value",
7990
8226
  "df.wise.step.scrollToBottom": "Przewi\u0144 w d\xF3\u0142"
7991
8227
  };
7992
8228
 
@@ -8037,6 +8273,8 @@ var pt_default = {
8037
8273
  "df.wise.group.currencies-with-account-details": "Moedas com dados de conta",
8038
8274
  "df.wise.group.popular": "Popular",
8039
8275
  "df.wise.group.recent": "Recente",
8276
+ "df.wise.ssnInput.hideValue": "Hide value",
8277
+ "df.wise.ssnInput.showValue": "Show value",
8040
8278
  "df.wise.step.scrollToBottom": "Descer at\xE9 o final da p\xE1gina"
8041
8279
  };
8042
8280
 
@@ -8087,6 +8325,8 @@ var ro_default = {
8087
8325
  "df.wise.group.currencies-with-account-details": "Monede cu detalii de cont",
8088
8326
  "df.wise.group.popular": "Populare",
8089
8327
  "df.wise.group.recent": "Recente",
8328
+ "df.wise.ssnInput.hideValue": "Hide value",
8329
+ "df.wise.ssnInput.showValue": "Show value",
8090
8330
  "df.wise.step.scrollToBottom": "Deruleaz\u0103 \xEEn jos"
8091
8331
  };
8092
8332
 
@@ -8137,6 +8377,8 @@ var ru_default = {
8137
8377
  "df.wise.group.currencies-with-account-details": "\u0412\u0430\u043B\u044E\u0442\u044B \u0441 \u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430\u043C\u0438 \u0441\u0447\u0435\u0442\u0430",
8138
8378
  "df.wise.group.popular": "\u041F\u043E\u043F\u0443\u043B\u044F\u0440\u043D\u044B\u0435",
8139
8379
  "df.wise.group.recent": "\u041D\u0435\u0434\u0430\u0432\u043D\u0438\u0435",
8380
+ "df.wise.ssnInput.hideValue": "Hide value",
8381
+ "df.wise.ssnInput.showValue": "Show value",
8140
8382
  "df.wise.step.scrollToBottom": "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0432\u043D\u0438\u0437"
8141
8383
  };
8142
8384
 
@@ -8187,6 +8429,8 @@ var th_default = {
8187
8429
  "df.wise.group.currencies-with-account-details": "\u0E2A\u0E01\u0E38\u0E25\u0E40\u0E07\u0E34\u0E19\u0E15\u0E48\u0E32\u0E07\u0E46 \u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E1A\u0E31\u0E0D\u0E0A\u0E35",
8188
8430
  "df.wise.group.popular": "\u0E2A\u0E01\u0E38\u0E25\u0E22\u0E2D\u0E14\u0E19\u0E34\u0E22\u0E21",
8189
8431
  "df.wise.group.recent": "\u0E25\u0E48\u0E32\u0E2A\u0E38\u0E14",
8432
+ "df.wise.ssnInput.hideValue": "\u0E0B\u0E48\u0E2D\u0E19\u0E04\u0E48\u0E32",
8433
+ "df.wise.ssnInput.showValue": "\u0E41\u0E2A\u0E14\u0E07\u0E04\u0E48\u0E32",
8190
8434
  "df.wise.step.scrollToBottom": "\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E14\u0E49\u0E32\u0E19\u0E25\u0E48\u0E32\u0E07"
8191
8435
  };
8192
8436
 
@@ -8237,6 +8481,8 @@ var tr_default = {
8237
8481
  "df.wise.group.currencies-with-account-details": "Hesap bilgileri olan bakiyeler",
8238
8482
  "df.wise.group.popular": "Pop\xFCler",
8239
8483
  "df.wise.group.recent": "Yak\u0131n zamanl\u0131",
8484
+ "df.wise.ssnInput.hideValue": "Hide value",
8485
+ "df.wise.ssnInput.showValue": "Show value",
8240
8486
  "df.wise.step.scrollToBottom": "A\u015Fa\u011F\u0131 kayd\u0131r"
8241
8487
  };
8242
8488
 
@@ -8287,6 +8533,8 @@ var zh_CN_default = {
8287
8533
  "df.wise.group.currencies-with-account-details": "\u5E26\u6709\u8D26\u6237\u8BE6\u7EC6\u4FE1\u606F\u7684\u8D27\u5E01",
8288
8534
  "df.wise.group.popular": "\u70ED\u95E8",
8289
8535
  "df.wise.group.recent": "\u6700\u8FD1",
8536
+ "df.wise.ssnInput.hideValue": "Hide value",
8537
+ "df.wise.ssnInput.showValue": "Show value",
8290
8538
  "df.wise.step.scrollToBottom": "\u6EDA\u52A8\u5230\u5E95\u90E8"
8291
8539
  };
8292
8540
 
@@ -8337,6 +8585,8 @@ var zh_HK_default = {
8337
8585
  "df.wise.group.currencies-with-account-details": "\u63D0\u4F9B\u5E33\u6236\u8CC7\u6599\u7684\u8CA8\u5E63",
8338
8586
  "df.wise.group.popular": "\u71B1\u9580",
8339
8587
  "df.wise.group.recent": "\u6700\u8FD1\u7684",
8588
+ "df.wise.ssnInput.hideValue": "Hide value",
8589
+ "df.wise.ssnInput.showValue": "Show value",
8340
8590
  "df.wise.step.scrollToBottom": "\u6ED1\u52D5\u5230\u6700\u5E95\u90E8"
8341
8591
  };
8342
8592