@wise/dynamic-flow-client 2.3.1 → 2.4.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
@@ -2018,11 +2018,15 @@ var FormControlType = {
2018
2018
  RADIO: "radio",
2019
2019
  CHECKBOX: "checkbox",
2020
2020
  SELECT: "select",
2021
+ EMAIL: "email",
2021
2022
  FILE: "file",
2022
2023
  DATE: "date",
2023
2024
  DATETIME: "date-time",
2024
2025
  DATELOOKUP: "date-lookup",
2025
2026
  TEL: "tel",
2027
+ // For string schemas with number format
2028
+ NUMERIC: "numeric",
2029
+ // For number schemas
2026
2030
  NUMBER: "number",
2027
2031
  HIDDEN: "hidden",
2028
2032
  PASSWORD: "password",
@@ -2316,15 +2320,15 @@ var getNavigationOptionMedia = ({ icon, image }) => {
2316
2320
  var getMargin = (size) => {
2317
2321
  switch (size) {
2318
2322
  case "xs":
2319
- return "m-t-0";
2323
+ return "m-b-0";
2320
2324
  case "sm":
2321
- return "m-t-1";
2325
+ return "m-b-1";
2322
2326
  case "md":
2323
- return "m-t-2";
2327
+ return "m-b-2";
2324
2328
  case "lg":
2325
- return "m-t-3";
2329
+ return "m-b-3";
2326
2330
  case "xl":
2327
- return "m-t-5";
2331
+ return "m-b-5";
2328
2332
  default:
2329
2333
  return "";
2330
2334
  }
@@ -2621,6 +2625,7 @@ var DynamicExternal_default = DynamicExternal;
2621
2625
  var import_react22 = require("react");
2622
2626
 
2623
2627
  // src/jsonSchemaForm/allOfSchema/AllOfSchema.tsx
2628
+ var import_components6 = require("@transferwise/components");
2624
2629
  var import_classnames = __toESM(require_classnames());
2625
2630
  var import_react11 = require("react");
2626
2631
  var import_jsx_runtime17 = require("react/jsx-runtime");
@@ -2648,7 +2653,7 @@ var AllOfSchema = (props) => {
2648
2653
  };
2649
2654
  const [models, setModels] = (0, import_react11.useState)(splitModel(props.model, props.schema.allOf));
2650
2655
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
2651
- props.schema.title && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { className: "page-header", children: props.schema.title }),
2656
+ props.schema.title && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_components6.Header, { title: props.schema.title }),
2652
2657
  props.schema.description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { children: props.schema.description }),
2653
2658
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "row", children: props.schema.allOf.map((schema, index) => (
2654
2659
  // eslint-disable-next-line react/no-array-index-key
@@ -2676,12 +2681,12 @@ AllOfSchema.defaultProps = {
2676
2681
  var AllOfSchema_default = AllOfSchema;
2677
2682
 
2678
2683
  // src/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/MultipleFileUploadSchema.tsx
2679
- var import_components7 = require("@transferwise/components");
2684
+ var import_components8 = require("@transferwise/components");
2680
2685
  var import_classnames2 = __toESM(require_classnames());
2681
2686
  var import_react12 = require("react");
2682
2687
 
2683
2688
  // src/jsonSchemaForm/controlFeedback/ControlFeedback.tsx
2684
- var import_components6 = require("@transferwise/components");
2689
+ var import_components7 = require("@transferwise/components");
2685
2690
  var import_formatting = require("@transferwise/formatting");
2686
2691
  var import_react_intl5 = require("react-intl");
2687
2692
 
@@ -2751,9 +2756,9 @@ var ControlFeedback = (props) => {
2751
2756
  const isDescriptionVisible = props.focused && props.schema.description && !isValidationVisible;
2752
2757
  const hasInfoMessage = !!props.infoMessage;
2753
2758
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { id: props.id, children: [
2754
- isErrorVisible ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_components6.InlineAlert, { type: "error", children: props.errors }) : null,
2755
- isValidationVisible ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_components6.InlineAlert, { type: "error", children: props.validations.map((validation) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: validationMessages[validation] }, validation)) }) : null,
2756
- (isDescriptionVisible || hasInfoMessage) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_components6.InlineAlert, { type: "info", children: [
2759
+ isErrorVisible ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_components7.InlineAlert, { type: "error", children: props.errors }) : null,
2760
+ isValidationVisible ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_components7.InlineAlert, { type: "error", children: props.validations.map((validation) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: validationMessages[validation] }, validation)) }) : null,
2761
+ (isDescriptionVisible || hasInfoMessage) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_components7.InlineAlert, { type: "info", children: [
2757
2762
  isDescriptionVisible && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: props.schema.description }),
2758
2763
  hasInfoMessage && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: props.infoMessage })
2759
2764
  ] })
@@ -2961,7 +2966,7 @@ var MultipleFileUploadSchema = (props) => {
2961
2966
  const feedbackId = `${uid}-feedback`;
2962
2967
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: (0, import_classnames2.default)("form-group", { "has-error": showError }), children: [
2963
2968
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("label", { className: "d-block control-label", htmlFor: uid, children: props.schema.title }),
2964
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { "aria-describedby": feedbackId, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_components7.UploadInput, __spreadValues({}, uploadInputProps)) }),
2969
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { "aria-describedby": feedbackId, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_components8.UploadInput, __spreadValues({}, uploadInputProps)) }),
2965
2970
  /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2966
2971
  ControlFeedback_default,
2967
2972
  {
@@ -2992,7 +2997,7 @@ function getSuccessfullyProcessedFiles(allFiles) {
2992
2997
  return allFiles.filter((file) => !file.error && file.status === "succeeded");
2993
2998
  }
2994
2999
  function convertFileIdsToComponentFileObjects(fileIds) {
2995
- return fileIds.map((id) => isValidId(id) ? { id, status: import_components7.Status.SUCCEEDED } : null).filter((item) => item !== null);
3000
+ return fileIds.map((id) => isValidId(id) ? { id, status: import_components8.Status.SUCCEEDED } : null).filter((item) => item !== null);
2996
3001
  }
2997
3002
  function isValidId(id) {
2998
3003
  return isNumber(id) || isString(id);
@@ -3003,20 +3008,20 @@ function getValidationMessages(schema, required, defaultErrorMessages) {
3003
3008
  }
3004
3009
 
3005
3010
  // src/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchema.tsx
3006
- var import_components9 = require("@transferwise/components");
3011
+ var import_components10 = require("@transferwise/components");
3007
3012
  var import_icons = require("@transferwise/icons");
3008
3013
  var import_react13 = require("react");
3009
3014
  var import_react_intl11 = require("react-intl");
3010
3015
 
3011
3016
  // src/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/ItemSummary.tsx
3012
- var import_components8 = require("@transferwise/components");
3017
+ var import_components9 = require("@transferwise/components");
3013
3018
  var import_jsx_runtime20 = require("react/jsx-runtime");
3014
3019
  var ItemSummaryOption = ({
3015
3020
  item,
3016
3021
  onClick
3017
3022
  }) => {
3018
3023
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3019
- import_components8.NavigationOption,
3024
+ import_components9.NavigationOption,
3020
3025
  {
3021
3026
  onClick,
3022
3027
  media: getNavigationOptionMedia(item),
@@ -3346,7 +3351,7 @@ var RepeatableSchema = ({
3346
3351
  };
3347
3352
  const { formatMessage } = (0, import_react_intl11.useIntl)();
3348
3353
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
3349
- schema.title && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_components9.Header, { title: schema.title }),
3354
+ schema.title && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_components10.Header, { title: schema.title }),
3350
3355
  itemSummaries && itemSummaries.map((itemSummary) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3351
3356
  ItemSummaryOption,
3352
3357
  {
@@ -3356,7 +3361,7 @@ var RepeatableSchema = ({
3356
3361
  JSON.stringify(itemSummary)
3357
3362
  )),
3358
3363
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3359
- import_components9.NavigationOption,
3364
+ import_components10.NavigationOption,
3360
3365
  {
3361
3366
  onClick: onAddItem,
3362
3367
  media: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons.Plus, {}),
@@ -3364,7 +3369,7 @@ var RepeatableSchema = ({
3364
3369
  }
3365
3370
  ),
3366
3371
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3367
- import_components9.Modal,
3372
+ import_components10.Modal,
3368
3373
  {
3369
3374
  open: openModalType !== null,
3370
3375
  onClose: onCancelEdit,
@@ -3525,11 +3530,12 @@ ObjectSchema.defaultProps = {
3525
3530
  var ObjectSchema_default = ObjectSchema;
3526
3531
 
3527
3532
  // src/jsonSchemaForm/oneOfSchema/OneOfSchema.tsx
3533
+ var import_components14 = require("@transferwise/components");
3528
3534
  var import_classnames4 = __toESM(require_classnames());
3529
3535
  var import_react17 = require("react");
3530
3536
 
3531
3537
  // src/jsonSchemaForm/help/Help.tsx
3532
- var import_components10 = require("@transferwise/components");
3538
+ var import_components11 = require("@transferwise/components");
3533
3539
  var import_react_intl13 = require("react-intl");
3534
3540
 
3535
3541
  // src/jsonSchemaForm/help/Help.messages.js
@@ -3547,10 +3553,10 @@ var import_jsx_runtime26 = require("react/jsx-runtime");
3547
3553
  var Help = (props) => {
3548
3554
  const intl = (0, import_react_intl13.useIntl)();
3549
3555
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3550
- import_components10.Info,
3556
+ import_components11.Info,
3551
3557
  {
3552
3558
  className: "m-l-1",
3553
- content: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_components10.Markdown, { children: props.help.markdown }),
3559
+ content: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_components11.Markdown, { children: props.help.markdown }),
3554
3560
  presentation: "POPOVER",
3555
3561
  size: "sm",
3556
3562
  "aria-label": intl.formatMessage(Help_messages_default.helpAria)
@@ -3563,7 +3569,7 @@ var Help_default = Help;
3563
3569
  var import_react16 = require("react");
3564
3570
 
3565
3571
  // src/formControl/FormControl.tsx
3566
- var import_components11 = require("@transferwise/components");
3572
+ var import_components12 = require("@transferwise/components");
3567
3573
  var import_react15 = require("react");
3568
3574
 
3569
3575
  // src/formControl/utils/value-utils.ts
@@ -3764,7 +3770,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3764
3770
  switch (type) {
3765
3771
  case FormControlType.RADIO:
3766
3772
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3767
- import_components11.RadioGroup,
3773
+ import_components12.RadioGroup,
3768
3774
  {
3769
3775
  radios: options.map(this.mapOption),
3770
3776
  name,
@@ -3774,7 +3780,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3774
3780
  );
3775
3781
  case FormControlType.CHECKBOX:
3776
3782
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3777
- import_components11.Checkbox,
3783
+ import_components12.Checkbox,
3778
3784
  {
3779
3785
  checked: getSafeBooleanValue(value, { coerceValue: true }),
3780
3786
  disabled,
@@ -3789,7 +3795,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3789
3795
  case FormControlType.SELECT: {
3790
3796
  const search = options.length >= 20;
3791
3797
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3792
- import_components11.Select,
3798
+ import_components12.Select,
3793
3799
  {
3794
3800
  id,
3795
3801
  selected: this.getSelectedOption(options),
@@ -3813,7 +3819,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3813
3819
  }
3814
3820
  case FormControlType.TAB:
3815
3821
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3816
- import_components11.Tabs,
3822
+ import_components12.Tabs,
3817
3823
  {
3818
3824
  selected: ((_a = this.getSelectedOption(options)) == null ? void 0 : _a.value) || 0,
3819
3825
  tabs: options.map((option) => ({
@@ -3831,7 +3837,8 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3831
3837
  }
3832
3838
  }
3833
3839
  );
3834
- case FormControlType.NUMBER:
3840
+ case FormControlType.NUMERIC:
3841
+ case FormControlType.NUMBER: {
3835
3842
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3836
3843
  "input",
3837
3844
  {
@@ -3849,7 +3856,11 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3849
3856
  value: getSafeStringOrNumberValue(value, { coerceValue: true }),
3850
3857
  onBlur: this.handleOnBlur,
3851
3858
  onChange: (event) => {
3852
- this.props.onChange(parseFloat(event.target.value));
3859
+ if (type === FormControlType.NUMERIC) {
3860
+ this.props.onChange(event.target.value);
3861
+ } else {
3862
+ this.props.onChange(parseFloat(event.target.value));
3863
+ }
3853
3864
  },
3854
3865
  onFocus: this.handleOnFocus,
3855
3866
  onWheel: (event) => {
@@ -3860,6 +3871,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3860
3871
  "aria-describedby": describedBy
3861
3872
  }
3862
3873
  );
3874
+ }
3863
3875
  case FormControlType.HIDDEN:
3864
3876
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3865
3877
  "input",
@@ -3892,7 +3904,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3892
3904
  case FormControlType.DATE:
3893
3905
  case FormControlType.DATETIME:
3894
3906
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3895
- import_components11.DateInput,
3907
+ import_components12.DateInput,
3896
3908
  {
3897
3909
  disabled,
3898
3910
  size,
@@ -3906,7 +3918,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3906
3918
  );
3907
3919
  case FormControlType.DATELOOKUP: {
3908
3920
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3909
- import_components11.DateLookup,
3921
+ import_components12.DateLookup,
3910
3922
  {
3911
3923
  value: getSafeDateStringValue(value),
3912
3924
  min: minDate,
@@ -3924,7 +3936,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3924
3936
  }
3925
3937
  case FormControlType.TEL:
3926
3938
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3927
- import_components11.PhoneNumberInput,
3939
+ import_components12.PhoneNumberInput,
3928
3940
  {
3929
3941
  disabled,
3930
3942
  countryCode,
@@ -3956,7 +3968,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3956
3968
  };
3957
3969
  if (this.props.displayPattern) {
3958
3970
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3959
- import_components11.TextareaWithDisplayFormat,
3971
+ import_components12.TextareaWithDisplayFormat,
3960
3972
  __spreadProps(__spreadValues({
3961
3973
  displayPattern: this.props.displayPattern
3962
3974
  }, textareaProps), {
@@ -3978,7 +3990,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3978
3990
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3979
3991
  // @ts-expect-error - TODO: Remove this once Upload is migrated to TypeScript
3980
3992
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3981
- import_components11.Upload,
3993
+ import_components12.Upload,
3982
3994
  __spreadProps(__spreadValues({}, uploadProps), {
3983
3995
  usAccept: uploadProps.usAccept || "*",
3984
3996
  usDisabled: uploadProps.usDisabled || disabled,
@@ -3996,9 +4008,10 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
3996
4008
  );
3997
4009
  }
3998
4010
  case FormControlType.TEXT:
4011
+ case FormControlType.EMAIL:
3999
4012
  default: {
4000
4013
  const inputProps = {
4001
- type: "text",
4014
+ type: type === FormControlType.EMAIL ? "email" : "text",
4002
4015
  className: "form-control",
4003
4016
  id,
4004
4017
  name,
@@ -4015,7 +4028,7 @@ var _FormControl = class _FormControl extends import_react15.PureComponent {
4015
4028
  };
4016
4029
  if (this.props.displayPattern) {
4017
4030
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4018
- import_components11.InputWithDisplayFormat,
4031
+ import_components12.InputWithDisplayFormat,
4019
4032
  __spreadProps(__spreadValues({
4020
4033
  displayPattern: this.props.displayPattern
4021
4034
  }, inputProps), {
@@ -4072,7 +4085,7 @@ _FormControl.defaultProps = {
4072
4085
  var FormControl = _FormControl;
4073
4086
 
4074
4087
  // src/jsonSchemaForm/schemaFormControl/utils/mapping-utils.tsx
4075
- var import_components12 = require("@transferwise/components");
4088
+ var import_components13 = require("@transferwise/components");
4076
4089
  var import_jsx_runtime28 = require("react/jsx-runtime");
4077
4090
  var mapConstSchemaToOption = (schema, controlType) => {
4078
4091
  switch (controlType) {
@@ -4121,17 +4134,17 @@ var getIconPropertyForSelectOption = (icon) => {
4121
4134
  var getAvatarPropertyForRadioOption = ({ image, icon }) => {
4122
4135
  if (image == null ? void 0 : image.url) {
4123
4136
  return {
4124
- avatar: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components12.Avatar, { type: import_components12.AvatarType.THUMBNAIL, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("img", { src: image.url, alt: "" }) })
4137
+ avatar: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components13.Avatar, { type: import_components13.AvatarType.THUMBNAIL, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("img", { src: image.url, alt: "" }) })
4125
4138
  };
4126
4139
  }
4127
4140
  if ((icon == null ? void 0 : icon.name) && isValidIconName(icon.name)) {
4128
4141
  return {
4129
- avatar: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components12.Avatar, { type: import_components12.AvatarType.ICON, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DynamicIcon_default, { type: icon.name }) })
4142
+ avatar: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components13.Avatar, { type: import_components13.AvatarType.ICON, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DynamicIcon_default, { type: icon.name }) })
4130
4143
  };
4131
4144
  }
4132
4145
  if (icon == null ? void 0 : icon.text) {
4133
4146
  return {
4134
- avatar: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components12.Avatar, { type: import_components12.AvatarType.INITIALS, children: icon.text })
4147
+ avatar: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_components13.Avatar, { type: import_components13.AvatarType.INITIALS, children: icon.text })
4135
4148
  };
4136
4149
  }
4137
4150
  return null;
@@ -4166,23 +4179,12 @@ var getControlType = (schema) => {
4166
4179
  }
4167
4180
  return schema.control || FormControlType.SELECT;
4168
4181
  }
4182
+ if (isStringSchema(schema)) {
4183
+ return getStringSchemaControlType(schema);
4184
+ }
4169
4185
  if ("control" in schema && schema.control) {
4170
4186
  return schema.control;
4171
4187
  }
4172
- if (schema.type === "string") {
4173
- switch (schema.format) {
4174
- case "date":
4175
- return "date";
4176
- case "password":
4177
- return "password";
4178
- case "phone-number":
4179
- return "tel";
4180
- case "base64url":
4181
- return "file";
4182
- default:
4183
- return "text";
4184
- }
4185
- }
4186
4188
  if (schema.type === "boolean") {
4187
4189
  return "checkbox";
4188
4190
  }
@@ -4191,6 +4193,34 @@ var getControlType = (schema) => {
4191
4193
  }
4192
4194
  return schema.type;
4193
4195
  };
4196
+ var getStringSchemaControlType = ({
4197
+ format,
4198
+ control
4199
+ }) => {
4200
+ if (control) {
4201
+ return stringControlToFormControlType[control] || control;
4202
+ }
4203
+ if (format) {
4204
+ return stringFormatToFormControlType[format] || "text";
4205
+ }
4206
+ return "text";
4207
+ };
4208
+ var stringControlToFormControlType = {
4209
+ "date-lookup": "date-lookup",
4210
+ password: "password",
4211
+ textarea: "textarea",
4212
+ email: "email",
4213
+ numeric: "numeric",
4214
+ "phone-number": "tel"
4215
+ };
4216
+ var stringFormatToFormControlType = {
4217
+ date: "date",
4218
+ // Legacy formats
4219
+ email: "email",
4220
+ base64url: "file",
4221
+ password: "password",
4222
+ "phone-number": "tel"
4223
+ };
4194
4224
  var getOptions = (schema, controlType) => {
4195
4225
  if (schema.oneOf) {
4196
4226
  return schema.oneOf.map((childSchema) => mapConstSchemaToOption(childSchema, controlType));
@@ -4334,6 +4364,7 @@ var OneOfSchema = (props) => {
4334
4364
  const feedbackId = `${id}-feedback`;
4335
4365
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
4336
4366
  (props.schema.oneOf.length > 1 || isConstSchema(props.schema.oneOf[0])) && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
4367
+ props.schema.alert && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DynamicAlert_default, { component: props.schema.alert }),
4337
4368
  /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: (0, import_classnames4.default)(formGroupClasses), children: [
4338
4369
  getTitleAndHelp(props.schema, id),
4339
4370
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
@@ -4364,8 +4395,7 @@ var OneOfSchema = (props) => {
4364
4395
  infoMessage: null
4365
4396
  }
4366
4397
  )
4367
- ] }),
4368
- props.schema.alert && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DynamicAlert_default, { component: props.schema.alert })
4398
+ ] })
4369
4399
  ] }),
4370
4400
  isNoNConstSchema(props.schema.oneOf[schemaIndex]) && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4371
4401
  GenericSchema_default,
@@ -4383,16 +4413,17 @@ var OneOfSchema = (props) => {
4383
4413
  ] });
4384
4414
  };
4385
4415
  function getTitleAndHelp(schema, id) {
4416
+ var _a;
4386
4417
  const helpElement = schema.help ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Help_default, { help: schema.help }) : null;
4387
4418
  const titleElement = isConstSchema(schema.oneOf[0]) ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("label", { className: "control-label d-inline", htmlFor: id, children: [
4388
4419
  schema.title,
4389
4420
  " ",
4390
4421
  helpElement
4391
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("h4", { className: "m-b-2", children: [
4422
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: helpElement ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("h4", { className: "m-b-2", children: [
4392
4423
  schema.title,
4393
4424
  " ",
4394
4425
  helpElement
4395
- ] });
4426
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_components14.Header, { title: (_a = schema.title) != null ? _a : "" }) });
4396
4427
  return schema.title ? titleElement : helpElement;
4397
4428
  }
4398
4429
  function getValidations(props, schemaIndex) {
@@ -4432,7 +4463,7 @@ var import_classnames5 = __toESM(require_classnames());
4432
4463
  var import_react19 = require("react");
4433
4464
 
4434
4465
  // src/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/UploadInputAdapter.tsx
4435
- var import_components13 = require("@transferwise/components");
4466
+ var import_components15 = require("@transferwise/components");
4436
4467
  var import_react18 = require("react");
4437
4468
  var import_jsx_runtime31 = require("react/jsx-runtime");
4438
4469
  var UploadInputAdapter = (props) => {
@@ -4450,7 +4481,7 @@ var UploadInputAdapter = (props) => {
4450
4481
  onCancel
4451
4482
  } = props;
4452
4483
  const onEvent = useEventDispatcher();
4453
- const files = (0, import_react18.useMemo)(() => fileId ? [{ id: fileId, status: import_components13.Status.SUCCEEDED }] : [], [fileId]);
4484
+ const files = (0, import_react18.useMemo)(() => fileId ? [{ id: fileId, status: import_components15.Status.SUCCEEDED }] : [], [fileId]);
4454
4485
  const uploadFile = (formData) => {
4455
4486
  onEvent("Dynamic Flow - PersistAsync", { status: "pending", schemaId: id });
4456
4487
  return httpClient(`${httpOptions.url}`, {
@@ -4469,7 +4500,7 @@ var UploadInputAdapter = (props) => {
4469
4500
  });
4470
4501
  };
4471
4502
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4472
- import_components13.UploadInput,
4503
+ import_components15.UploadInput,
4473
4504
  {
4474
4505
  id,
4475
4506
  fileInputName: httpOptions.fileInputName,
@@ -4605,7 +4636,7 @@ var getSelectionFromModel = (schema, model) => {
4605
4636
  };
4606
4637
 
4607
4638
  // src/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfCheckboxControl.tsx
4608
- var import_components14 = require("@transferwise/components");
4639
+ var import_components16 = require("@transferwise/components");
4609
4640
  var import_jsx_runtime34 = require("react/jsx-runtime");
4610
4641
  var PromotedOneOfCheckboxControl = (props) => {
4611
4642
  const { id, selection, setSelection } = props;
@@ -4617,13 +4648,13 @@ var PromotedOneOfCheckboxControl = (props) => {
4617
4648
  const toggleSelection = () => {
4618
4649
  setSelection(checked ? selectionWhenUnchecked : selectionWhenChecked);
4619
4650
  };
4620
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "form-group", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_components14.Checkbox, { id, label: title, checked, onChange: toggleSelection }) });
4651
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "form-group", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_components16.Checkbox, { id, label: title, checked, onChange: toggleSelection }) });
4621
4652
  };
4622
4653
  PromotedOneOfCheckboxControl.defaultProps = {};
4623
4654
  var PromotedOneOfCheckboxControl_default = PromotedOneOfCheckboxControl;
4624
4655
 
4625
4656
  // src/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfRadioControl.tsx
4626
- var import_components15 = require("@transferwise/components");
4657
+ var import_components17 = require("@transferwise/components");
4627
4658
  var import_jsx_runtime35 = require("react/jsx-runtime");
4628
4659
  var PromotedOneOfRadioControl = (props) => {
4629
4660
  var _a, _b;
@@ -4644,7 +4675,7 @@ var PromotedOneOfRadioControl = (props) => {
4644
4675
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "form-group", children: [
4645
4676
  title && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("label", { className: "control-label", htmlFor: id, children: title }),
4646
4677
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4647
- import_components15.RadioGroup,
4678
+ import_components17.RadioGroup,
4648
4679
  {
4649
4680
  name: "promoted-selection",
4650
4681
  selectedValue: selection,
@@ -4735,7 +4766,7 @@ function getOtherOneOf(schema) {
4735
4766
  var PromotedOneOfSchema_default = PromotedOneOfSchema;
4736
4767
 
4737
4768
  // src/jsonSchemaForm/readOnlySchema/ReadOnlySchema.tsx
4738
- var import_components16 = require("@transferwise/components");
4769
+ var import_components18 = require("@transferwise/components");
4739
4770
  var import_react_intl15 = require("react-intl");
4740
4771
 
4741
4772
  // src/jsonSchemaForm/readOnlySchema/ReadOnlySchema.messages.js
@@ -4759,7 +4790,7 @@ var ReadOnlySchema = ({ schema, model }) => {
4759
4790
  const { title = "" } = schema;
4760
4791
  const { formatMessage } = (0, import_react_intl15.useIntl)();
4761
4792
  const value = getValueForSchema({ schema, model, formatMessage });
4762
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_components16.DefinitionList, { layout: import_components16.Layout.VERTICAL_ONE_COLUMN, definitions: [{ title, value, key: "" }] });
4793
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_components18.DefinitionList, { layout: import_components18.Layout.VERTICAL_ONE_COLUMN, definitions: [{ title, value, key: "" }] });
4763
4794
  };
4764
4795
  var ReadOnlySchema_default = ReadOnlySchema;
4765
4796
  function getValueForSchema({
@@ -5003,18 +5034,18 @@ var DynamicHeading = (props) => {
5003
5034
  var DynamicHeading_default = DynamicHeading;
5004
5035
 
5005
5036
  // src/layout/markdown/DynamicMarkdown.tsx
5006
- var import_components17 = require("@transferwise/components");
5037
+ var import_components19 = require("@transferwise/components");
5007
5038
  var import_jsx_runtime43 = require("react/jsx-runtime");
5008
5039
  var DynamicMarkdown = ({ component }) => {
5009
5040
  const { content, align, margin } = component;
5010
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: getTextAlignmentAndMargin({ align, margin }), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_components17.Markdown, { config: { link: { target: "_blank" } }, children: content }) });
5041
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: getTextAlignmentAndMargin({ align, margin }), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_components19.Markdown, { config: { link: { target: "_blank" } }, children: content }) });
5011
5042
  };
5012
5043
  var DynamicInfo = ({ component }) => {
5013
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: getTextAlignmentAndMargin(component), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_components17.Markdown, { config: { link: { target: "_blank" } }, children: component.markdown }) });
5044
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: getTextAlignmentAndMargin(component), children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_components19.Markdown, { config: { link: { target: "_blank" } }, children: component.markdown }) });
5014
5045
  };
5015
5046
 
5016
5047
  // src/layout/image/DynamicImage.tsx
5017
- var import_components18 = require("@transferwise/components");
5048
+ var import_components20 = require("@transferwise/components");
5018
5049
  var import_react24 = require("react");
5019
5050
  var import_jsx_runtime44 = require("react/jsx-runtime");
5020
5051
  var DynamicImage = ({ component: image }) => {
@@ -5033,7 +5064,7 @@ var DynamicImage = ({ component: image }) => {
5033
5064
  if (!imageSource) {
5034
5065
  return null;
5035
5066
  }
5036
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `df-image ${size || "md"}`, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_components18.Image, __spreadValues({ className: `img-responsive ${getMargin(margin || "md")}` }, imageProps)) });
5067
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: `df-image ${size || "md"}`, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_components20.Image, __spreadValues({ className: `img-responsive ${getMargin(margin || "md")}` }, imageProps)) });
5037
5068
  };
5038
5069
  var readImageBlobAsDataURL = (imageBlob) => {
5039
5070
  return new Promise((resolve, reject) => {
@@ -5066,7 +5097,7 @@ var getImageSource = async (httpClient, imageUrl) => {
5066
5097
  var DynamicImage_default = DynamicImage;
5067
5098
 
5068
5099
  // src/layout/instructions/DynamicInstructions.tsx
5069
- var import_components19 = require("@transferwise/components");
5100
+ var import_components21 = require("@transferwise/components");
5070
5101
  var import_jsx_runtime45 = require("react/jsx-runtime");
5071
5102
  var doContext = ["positive", "neutral"];
5072
5103
  var dontContext = ["warning", "negative"];
@@ -5075,8 +5106,8 @@ var DynamicInstructions = ({ component }) => {
5075
5106
  const dos = items.filter((item) => doContext.includes(item.context)).map(({ text }) => text);
5076
5107
  const donts = items.filter((item) => dontContext.includes(item.context)).map(({ text }) => text);
5077
5108
  return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: getMargin(component.margin || "md"), children: [
5078
- component.title ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components19.Header, { title: component.title }) : null,
5079
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components19.InstructionsList, { dos, donts })
5109
+ component.title ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components21.Header, { title: component.title }) : null,
5110
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_components21.InstructionsList, { dos, donts })
5080
5111
  ] });
5081
5112
  };
5082
5113
  var DynamicInstructions_default = DynamicInstructions;
@@ -5173,15 +5204,11 @@ var DynamicLayout = (props) => {
5173
5204
  var DynamicLayout_default = DynamicLayout;
5174
5205
 
5175
5206
  // src/layout/list/DynamicStatusList.tsx
5176
- var import_components20 = require("@transferwise/components");
5207
+ var import_components22 = require("@transferwise/components");
5177
5208
  var import_jsx_runtime47 = require("react/jsx-runtime");
5178
5209
  var DynamicStatusList = ({ component }) => {
5179
5210
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: getMargin(component.margin || "md"), children: [
5180
- component.title ? /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("h4", { className: "m-b-2", children: [
5181
- " ",
5182
- component.title,
5183
- " "
5184
- ] }) : null,
5211
+ component.title ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_components22.Header, { title: component.title }) : null,
5185
5212
  component.items.map(mapListItemToSummary)
5186
5213
  ] });
5187
5214
  };
@@ -5191,7 +5218,7 @@ var mapListItemToSummary = ({ title, description, icon, status }) => {
5191
5218
  title,
5192
5219
  description
5193
5220
  }, (icon == null ? void 0 : icon.name) ? { icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(DynamicIcon_default, { type: icon.name }) } : {}), status ? { status: statusMap[status] } : {});
5194
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_components20.Summary, __spreadValues({}, props));
5221
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_components22.Summary, __spreadValues({}, props));
5195
5222
  };
5196
5223
  var statusListMap = {
5197
5224
  done: "done",
@@ -5207,12 +5234,12 @@ var statusMap = __spreadValues(__spreadValues({}, statusListMap), legacyStatusMa
5207
5234
  var DynamicStatusList_default = DynamicStatusList;
5208
5235
 
5209
5236
  // src/layout/loadingIndicator/DynamicLoadingIndicator.tsx
5210
- var import_components21 = require("@transferwise/components");
5237
+ var import_components23 = require("@transferwise/components");
5211
5238
  var import_jsx_runtime48 = require("react/jsx-runtime");
5212
5239
  var DynamicLoadingIndicator = ({ component }) => {
5213
5240
  const { margin, size = "md" } = component;
5214
5241
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
5215
- import_components21.Loader,
5242
+ import_components23.Loader,
5216
5243
  {
5217
5244
  size,
5218
5245
  classNames: {
@@ -5225,7 +5252,7 @@ var DynamicLoadingIndicator = ({ component }) => {
5225
5252
  var DynamicLoadingIndicator_default = DynamicLoadingIndicator;
5226
5253
 
5227
5254
  // src/layout/paragraph/DynamicParagraph.tsx
5228
- var import_components23 = require("@transferwise/components");
5255
+ var import_components25 = require("@transferwise/components");
5229
5256
  var import_react_intl17 = require("react-intl");
5230
5257
 
5231
5258
  // src/layout/paragraph/DynamicParagraph.messages.ts
@@ -5244,10 +5271,10 @@ var DynamicParagraph_messages_default = (0, import_react_intl16.defineMessages)(
5244
5271
  });
5245
5272
 
5246
5273
  // src/layout/paragraph/useSnackBarIfAvailable.ts
5247
- var import_components22 = require("@transferwise/components");
5274
+ var import_components24 = require("@transferwise/components");
5248
5275
  var import_react25 = require("react");
5249
5276
  function useSnackBarIfAvailable() {
5250
- const context = (0, import_react25.useContext)(import_components22.SnackbarContext);
5277
+ const context = (0, import_react25.useContext)(import_components24.SnackbarContext);
5251
5278
  return context ? context.createSnackbar : noop2;
5252
5279
  }
5253
5280
  function noop2() {
@@ -5269,7 +5296,7 @@ var CopyableDynamicParagraph = ({ component }) => {
5269
5296
  var _a;
5270
5297
  (_a = navigator.clipboard) == null ? void 0 : _a.writeText(text).then(() => createSnackbar({ text: formatMessage(DynamicParagraph_messages_default.copied) })).catch(noop3);
5271
5298
  };
5272
- const classNames7 = getTextAlignmentAndMargin({ align: component.align }) + " form-control";
5299
+ const classNames7 = getTextAlignmentAndMargin({ align: component.align, margin: "sm" }) + " form-control";
5273
5300
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: getTextAlignmentAndMargin(component), children: [
5274
5301
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
5275
5302
  "input",
@@ -5281,7 +5308,7 @@ var CopyableDynamicParagraph = ({ component }) => {
5281
5308
  style: { textOverflow: "ellipsis" }
5282
5309
  }
5283
5310
  ),
5284
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_components23.Button, { block: true, onClick: copy, className: getMargin("sm"), children: formatMessage(DynamicParagraph_messages_default.copy) })
5311
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_components25.Button, { block: true, onClick: copy, children: formatMessage(DynamicParagraph_messages_default.copy) })
5285
5312
  ] });
5286
5313
  };
5287
5314
  function noop3() {
@@ -5289,7 +5316,7 @@ function noop3() {
5289
5316
  var DynamicParagraph_default = DynamicParagraph;
5290
5317
 
5291
5318
  // src/layout/review/DynamicReview.tsx
5292
- var import_components24 = require("@transferwise/components");
5319
+ var import_components26 = require("@transferwise/components");
5293
5320
  var import_jsx_runtime50 = require("react/jsx-runtime");
5294
5321
  var getDefinitions = (orientation, review) => {
5295
5322
  return review.fields.map(
@@ -5323,28 +5350,22 @@ var getReviewLayout = (review) => {
5323
5350
  var DynamicReview = (props) => {
5324
5351
  const review = props.component;
5325
5352
  const margin = getMargin(review.margin || "xs");
5326
- const getReviewAction = (action) => {
5327
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
5328
- "a",
5329
- {
5330
- href: action.url,
5331
- className: "pull-right",
5332
- role: "button",
5333
- onClick: (event) => {
5334
- event.preventDefault();
5335
- props.onAction(action);
5336
- },
5337
- children: action.title
5353
+ const getReviewAction = (title, action) => ({
5354
+ text: title != null ? title : "",
5355
+ href: action.url,
5356
+ onClick: (event) => {
5357
+ event.preventDefault();
5358
+ if (action) {
5359
+ props.onAction(action);
5338
5360
  }
5339
- );
5340
- };
5361
+ }
5362
+ });
5341
5363
  const orientation = getReviewLayout(review);
5342
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
5343
- review.title && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("h6", { className: `m-b-2 ${margin}`, children: [
5344
- review.title,
5345
- review.action && getReviewAction(review.action)
5346
- ] }),
5347
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: review.title ? "" : margin, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_components24.DefinitionList, { layout: orientation, definitions: getDefinitions(orientation, review) }) })
5364
+ const callToAction = review.callToAction ? getReviewAction(review.callToAction.title, review.callToAction.action) : null;
5365
+ const legacyCallToAction = !callToAction && review.action ? getReviewAction(review.action.title || "", review.action) : null;
5366
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: margin, children: [
5367
+ review.title && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_components26.Header, { title: review.title, action: callToAction || legacyCallToAction || void 0 }),
5368
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: margin, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_components26.DefinitionList, { layout: orientation, definitions: getDefinitions(orientation, review) }) })
5348
5369
  ] });
5349
5370
  };
5350
5371
  var DynamicReview_default = DynamicReview;
@@ -5353,13 +5374,13 @@ var DynamicReview_default = DynamicReview;
5353
5374
  var import_react27 = require("react");
5354
5375
 
5355
5376
  // src/layout/search/SearchInput.tsx
5356
- var import_components25 = require("@transferwise/components");
5377
+ var import_components27 = require("@transferwise/components");
5357
5378
  var import_jsx_runtime51 = require("react/jsx-runtime");
5358
5379
  var SearchInput = ({ title, value, onFocus, onChange }) => {
5359
5380
  return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("label", { className: "control-label d-inline", children: [
5360
5381
  title,
5361
5382
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5362
- import_components25.Input,
5383
+ import_components27.Input,
5363
5384
  {
5364
5385
  type: "text",
5365
5386
  value,
@@ -5371,7 +5392,7 @@ var SearchInput = ({ title, value, onFocus, onChange }) => {
5371
5392
  };
5372
5393
 
5373
5394
  // src/layout/search/SearchResults.tsx
5374
- var import_components26 = require("@transferwise/components");
5395
+ var import_components28 = require("@transferwise/components");
5375
5396
  var import_react_intl19 = require("react-intl");
5376
5397
 
5377
5398
  // src/dynamicFlow/utils/errorBoundary/ErrorBoundary.messages.ts
@@ -5395,9 +5416,9 @@ var SearchResults = ({ results, emptyMessage, onSelect }) => {
5395
5416
  if (results.length === 0) {
5396
5417
  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "m-t-2", children: emptyMessage });
5397
5418
  }
5398
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_components26.NavigationOptionsList, { children: results.map((result) => {
5419
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_components28.NavigationOptionsList, { children: results.map((result) => {
5399
5420
  return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
5400
- import_components26.NavigationOption,
5421
+ import_components28.NavigationOption,
5401
5422
  {
5402
5423
  title: result.title,
5403
5424
  content: result.description,
@@ -6036,7 +6057,7 @@ var CameraCapture_messages_default = (0, import_react_intl22.defineMessages)({
6036
6057
  });
6037
6058
 
6038
6059
  // src/step/cameraStep/cameraCapture/components/bottomBar/BottomBar.tsx
6039
- var import_components27 = require("@transferwise/components");
6060
+ var import_components29 = require("@transferwise/components");
6040
6061
  var import_react_intl23 = require("react-intl");
6041
6062
  var import_jsx_runtime57 = require("react/jsx-runtime");
6042
6063
  var CaptureBottomBar = ({ onCapture }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "bottom-bar", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(CaptureButton, { onClick: onCapture }) });
@@ -6047,24 +6068,24 @@ var ReviewBottomBar = ({
6047
6068
  const intl = (0, import_react_intl23.useIntl)();
6048
6069
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "bottom-bar p-x-2", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "row", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "col-xs-12 col-md-6 col-md-offset-3", children: [
6049
6070
  /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6050
- import_components27.Button,
6071
+ import_components29.Button,
6051
6072
  {
6052
6073
  className: "m-b-1",
6053
6074
  block: true,
6054
- size: import_components27.Size.MEDIUM,
6055
- type: import_components27.ControlType.ACCENT,
6075
+ size: import_components29.Size.MEDIUM,
6076
+ type: import_components29.ControlType.ACCENT,
6056
6077
  onClick: onSubmit,
6057
6078
  children: intl.formatMessage(CameraCapture_messages_default.reviewSubmit)
6058
6079
  }
6059
6080
  ),
6060
6081
  /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
6061
- import_components27.Button,
6082
+ import_components29.Button,
6062
6083
  {
6063
6084
  className: "m-b-2",
6064
6085
  block: true,
6065
- size: import_components27.Size.MEDIUM,
6066
- type: import_components27.ControlType.ACCENT,
6067
- priority: import_components27.Priority.SECONDARY,
6086
+ size: import_components29.Size.MEDIUM,
6087
+ type: import_components29.ControlType.ACCENT,
6088
+ priority: import_components29.Priority.SECONDARY,
6068
6089
  onClick: onRetry,
6069
6090
  children: intl.formatMessage(CameraCapture_messages_default.reviewRetry)
6070
6091
  }
@@ -6303,7 +6324,7 @@ var Overlay = ({
6303
6324
  var Overlay_default = Overlay;
6304
6325
 
6305
6326
  // src/step/cameraStep/cameraCapture/screens/NoCameraAccess/NoCameraAccess.tsx
6306
- var import_components28 = require("@transferwise/components");
6327
+ var import_components30 = require("@transferwise/components");
6307
6328
  var import_react_intl27 = require("react-intl");
6308
6329
 
6309
6330
  // src/step/cameraStep/cameraCapture/screens/NoCameraAccess/NoCameraAccess.messages.ts
@@ -6333,7 +6354,7 @@ var NoCameraAccess = ({ onAction }) => {
6333
6354
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { id: "no-camera-access", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "container p-t-5", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "row", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "col-md-6 col-md-offset-3", children: [
6334
6355
  /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("h2", { className: "text-xs-center m-b-3", children: intl.formatMessage(NoCameraAccess_messages_default.title) }),
6335
6356
  /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs-center m-b-5", children: intl.formatMessage(NoCameraAccess_messages_default.paragraph) }),
6336
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_components28.Button, { block: true, onClick: onAction, children: intl.formatMessage(NoCameraAccess_messages_default.action) })
6357
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_components30.Button, { block: true, onClick: onAction, children: intl.formatMessage(NoCameraAccess_messages_default.action) })
6337
6358
  ] }) }) }) });
6338
6359
  };
6339
6360
  var NoCameraAccess_default = NoCameraAccess;
@@ -6702,7 +6723,7 @@ function getOrigin(url) {
6702
6723
  }
6703
6724
 
6704
6725
  // src/dynamicFlow/BackButton.tsx
6705
- var import_components30 = require("@transferwise/components");
6726
+ var import_components32 = require("@transferwise/components");
6706
6727
  var import_icons2 = require("@transferwise/icons");
6707
6728
  var import_jsx_runtime65 = require("react/jsx-runtime");
6708
6729
  var BackButton = ({ title, action, onAction }) => {
@@ -6718,7 +6739,7 @@ var BackButton = ({ title, action, onAction }) => {
6718
6739
  "aria-label": title,
6719
6740
  children: [
6720
6741
  /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "sr-only", children: title }),
6721
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_components30.Avatar, { type: "icon", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_icons2.ArrowLeft, { size: "24" }) })
6742
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_components32.Avatar, { type: "icon", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_icons2.ArrowLeft, { size: "24" }) })
6722
6743
  ]
6723
6744
  }
6724
6745
  );
@@ -6892,19 +6913,19 @@ var isInlineSchema = (schema) => {
6892
6913
  };
6893
6914
 
6894
6915
  // src/dynamicFlow/utils/useLoader.tsx
6895
- var import_components31 = require("@transferwise/components");
6916
+ var import_components33 = require("@transferwise/components");
6896
6917
  var import_react41 = require("react");
6897
6918
  var import_jsx_runtime67 = require("react/jsx-runtime");
6898
6919
  function useLoader(loaderConfig, initialState) {
6899
6920
  const config = __spreadValues({
6900
- size: import_components31.Size.EXTRA_LARGE,
6921
+ size: import_components33.Size.EXTRA_LARGE,
6901
6922
  initial: true,
6902
6923
  submission: false
6903
6924
  }, loaderConfig);
6904
6925
  const [loadingState, setLoadingState] = (0, import_react41.useState)(initialState);
6905
6926
  const shouldDisplayLoader = config.initial && loadingState === "initial" || config.submission && loadingState === "submission";
6906
6927
  const loader = shouldDisplayLoader ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6907
- import_components31.Loader,
6928
+ import_components33.Loader,
6908
6929
  {
6909
6930
  size: config.size,
6910
6931
  classNames: { "tw-loader": "tw-loader m-x-auto" },
@@ -6918,20 +6939,20 @@ function useLoader(loaderConfig, initialState) {
6918
6939
  var import_react42 = require("react");
6919
6940
 
6920
6941
  // src/dynamicFlow/utils/errorBoundary/ErrorBoundaryAlert.tsx
6921
- var import_components32 = require("@transferwise/components");
6942
+ var import_components34 = require("@transferwise/components");
6922
6943
  var import_react_intl33 = require("react-intl");
6923
6944
  var import_jsx_runtime68 = require("react/jsx-runtime");
6924
6945
  var ErrorBoundaryAlert = ({ onDismiss }) => {
6925
6946
  const { formatMessage } = (0, import_react_intl33.useIntl)();
6926
6947
  return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6927
- import_components32.Alert,
6948
+ import_components34.Alert,
6928
6949
  {
6929
6950
  action: {
6930
6951
  text: formatMessage(ErrorBoundary_messages_default.retry),
6931
6952
  href: window.location.href
6932
6953
  },
6933
6954
  message: formatMessage(ErrorBoundary_messages_default.errorAlert),
6934
- type: import_components32.Sentiment.NEGATIVE,
6955
+ type: import_components34.Sentiment.NEGATIVE,
6935
6956
  className: "m-b-3",
6936
6957
  onDismiss
6937
6958
  }
@@ -7357,6 +7378,7 @@ var de_default = {
7357
7378
  "dynamicFlows.CameraCapture.reviewInstructions": "Ist das aufgenommene Bild deutlich erkennbar und vollst\xE4ndig?",
7358
7379
  "dynamicFlows.CameraCapture.reviewRetry": "Nein, erneut versuchen",
7359
7380
  "dynamicFlows.CameraCapture.reviewSubmit": "Ja, senden",
7381
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Drehe dein Ger\xE4t in die Hochformatansicht, um ein Foto aufzunehmen",
7360
7382
  "dynamicFlows.ControlFeedback.maxLength": "Bitte gib nicht mehr als {maxLength} Zeichen ein.",
7361
7383
  "dynamicFlows.ControlFeedback.maximum": "Bitte gib eine Zahl ein, die {maximum} oder weniger betr\xE4gt.",
7362
7384
  "dynamicFlows.ControlFeedback.maximumDate": "Bitte gib ein Datum ein, das am oder vor dem {maximum} liegt.",
@@ -7446,6 +7468,7 @@ var es_default = {
7446
7468
  "dynamicFlows.CameraCapture.reviewInstructions": "\xBFTu foto es clara, legible y completa?",
7447
7469
  "dynamicFlows.CameraCapture.reviewRetry": "No, intentar de nuevo",
7448
7470
  "dynamicFlows.CameraCapture.reviewSubmit": "S\xED, enviar",
7471
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Gira el tel\xE9fono a la vista vertical para hacer una foto",
7449
7472
  "dynamicFlows.ControlFeedback.maxLength": "Introduce {maxLength} caracteres o menos.",
7450
7473
  "dynamicFlows.ControlFeedback.maximum": "Introduce una cifra igual o inferior a {maximum}.",
7451
7474
  "dynamicFlows.ControlFeedback.maximumDate": "Introduce una fecha que sea igual o anterior al {maximum}.",
@@ -7490,6 +7513,7 @@ var fr_default = {
7490
7513
  "dynamicFlows.CameraCapture.reviewInstructions": "Votre image est-elle claire, lisible et dans son int\xE9gralit\xE9\xA0?",
7491
7514
  "dynamicFlows.CameraCapture.reviewRetry": "Non, r\xE9essayer",
7492
7515
  "dynamicFlows.CameraCapture.reviewSubmit": "Oui, confirmer",
7516
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Faites pivoter votre t\xE9l\xE9phone vers la vue portrait pour prendre une photo",
7493
7517
  "dynamicFlows.ControlFeedback.maxLength": "Veuillez saisir {maxLength} caract\xE8res ou moins.",
7494
7518
  "dynamicFlows.ControlFeedback.maximum": "Veuillez saisir un nombre inf\xE9rieur ou \xE9gal \xE0 {maximum}.",
7495
7519
  "dynamicFlows.ControlFeedback.maximumDate": "Veuillez saisir une date \xE9gale ou ant\xE9rieure au {maximum}.",
@@ -7534,6 +7558,7 @@ var hu_default = {
7534
7558
  "dynamicFlows.CameraCapture.reviewInstructions": "Tiszta, olvashat\xF3, teljes k\xE9pet k\xE9sz\xEDtett\xE9l?",
7535
7559
  "dynamicFlows.CameraCapture.reviewRetry": "Nem, pr\xF3b\xE1ljuk \xFAjra",
7536
7560
  "dynamicFlows.CameraCapture.reviewSubmit": "Igen, elk\xFCld\xF6m",
7561
+ "dynamicFlows.CameraCapture.rotatePhone.text": "F\xE9nyk\xE9p k\xE9sz\xEDt\xE9s\xE9hez ford\xEDtsd a telefont \xE1ll\xF3 n\xE9zetbe",
7537
7562
  "dynamicFlows.ControlFeedback.maxLength": "K\xE9r\xFCnk, legfeljebb {maxLength} karaktert adj meg.",
7538
7563
  "dynamicFlows.ControlFeedback.maximum": "K\xE9r\xFCnk, add meg ezt vagy egy enn\xE9l kisebb sz\xE1mot: {maximum}.",
7539
7564
  "dynamicFlows.ControlFeedback.maximumDate": "K\xE9r\xFCnk, adj meg egy d\xE1tumot, ami megegyezik {maximum} napj\xE1val, vagy egy enn\xE9l kor\xE1bbit.",
@@ -7578,6 +7603,7 @@ var id_default = {
7578
7603
  "dynamicFlows.CameraCapture.reviewInstructions": "Apakah gambar Anda jelas, dapat dibaca, dan lengkap?",
7579
7604
  "dynamicFlows.CameraCapture.reviewRetry": "Tidak, coba lagi",
7580
7605
  "dynamicFlows.CameraCapture.reviewSubmit": "Ya, kirim",
7606
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Putar ponsel Anda ke tampilan potret untuk mengambil foto",
7581
7607
  "dynamicFlows.ControlFeedback.maxLength": "Harap masukkan {maxLength} karakter atau kurang.",
7582
7608
  "dynamicFlows.ControlFeedback.maximum": "Harap masukkan angka paling besar {maximum} atau kurang dari itu.",
7583
7609
  "dynamicFlows.ControlFeedback.maximumDate": "Harap masukkan tanggal pada atau sebelum {maximum}.",
@@ -7622,6 +7648,7 @@ var it_default = {
7622
7648
  "dynamicFlows.CameraCapture.reviewInstructions": "La tua foto \xE8 chiara, ben leggibile e completa?",
7623
7649
  "dynamicFlows.CameraCapture.reviewRetry": "No, riprova",
7624
7650
  "dynamicFlows.CameraCapture.reviewSubmit": "S\xEC, invia",
7651
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Ruota il telefono in posizione verticale per scattare una foto",
7625
7652
  "dynamicFlows.ControlFeedback.maxLength": "Inserisci un massimo di {maxLength} caratteri.",
7626
7653
  "dynamicFlows.ControlFeedback.maximum": "Inserisci un numero uguale o inferiore a {maximum}.",
7627
7654
  "dynamicFlows.ControlFeedback.maximumDate": "Inserisci una data corrispondente o precedente al {maximum}.",
@@ -7666,6 +7693,7 @@ var ja_default = {
7666
7693
  "dynamicFlows.CameraCapture.reviewInstructions": "\u5199\u771F\u304C\u9BAE\u660E\u3067\u3001\u3059\u3079\u3066\u306E\u60C5\u5831\u304C\u8AAD\u307F\u53D6\u308C\u6B20\u3051\u3066\u3044\u308B\u90E8\u5206\u306A\u3069\u306F\u3042\u308A\u307E\u305B\u3093\u304B\uFF1F",
7667
7694
  "dynamicFlows.CameraCapture.reviewRetry": "\u3044\u3044\u3048\u3001\u64AE\u308A\u76F4\u3059",
7668
7695
  "dynamicFlows.CameraCapture.reviewSubmit": "\u306F\u3044\u3001\u9001\u4FE1\u3059\u308B",
7696
+ "dynamicFlows.CameraCapture.rotatePhone.text": "\u7E26\u9577\u306E\u5199\u771F\u3092\u64AE\u5F71\u3059\u308B\u306B\u306F\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3092\u56DE\u8EE2\u3055\u305B\u3066\u304F\u3060\u3055\u3044",
7669
7697
  "dynamicFlows.ControlFeedback.maxLength": "{maxLength}\u6587\u5B57\u4EE5\u4E0B\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
7670
7698
  "dynamicFlows.ControlFeedback.maximum": "{maximum}\u4EE5\u4E0B\u306E\u6570\u5B57\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
7671
7699
  "dynamicFlows.ControlFeedback.maximumDate": "{maximum}\u307E\u305F\u306F\u305D\u308C\u4EE5\u524D\u306E\u65E5\u4ED8\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
@@ -7710,6 +7738,7 @@ var pl_default = {
7710
7738
  "dynamicFlows.CameraCapture.reviewInstructions": "Czy Twoje zdj\u0119cie jest wyra\u017Ane, czytelne i kompletne?",
7711
7739
  "dynamicFlows.CameraCapture.reviewRetry": "Nie, spr\xF3buj ponownie",
7712
7740
  "dynamicFlows.CameraCapture.reviewSubmit": "Tak, prze\u015Blij",
7741
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Obr\xF3\u0107 sw\xF3j telefon do widoku pionowego, \u017Ceby zrobi\u0107 zdj\u0119cie",
7713
7742
  "dynamicFlows.ControlFeedback.maxLength": "Prosimy wprowadzi\u0107 do {maxLength} znak\xF3w.",
7714
7743
  "dynamicFlows.ControlFeedback.maximum": "Wprowad\u017A liczb\u0119 r\xF3wn\u0105 lub mniejsz\u0105 ni\u017C {maximum}.",
7715
7744
  "dynamicFlows.ControlFeedback.maximumDate": "Wprowad\u017A dat\u0119 nie p\xF3\u017Aniejsz\u0105 ni\u017C {maximum}.",
@@ -7754,6 +7783,7 @@ var pt_default = {
7754
7783
  "dynamicFlows.CameraCapture.reviewInstructions": "A sua foto est\xE1 clara, leg\xEDvel e aparece por inteiro?",
7755
7784
  "dynamicFlows.CameraCapture.reviewRetry": "N\xE3o, tentar novamente",
7756
7785
  "dynamicFlows.CameraCapture.reviewSubmit": "Sim, enviar",
7786
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Rotate your phone to portrait view to take a photo",
7757
7787
  "dynamicFlows.ControlFeedback.maxLength": "Por favor, insira {maxLength} caracteres ou menos.",
7758
7788
  "dynamicFlows.ControlFeedback.maximum": "Por favor, insira um n\xFAmero que seja {maximum} ou menos.",
7759
7789
  "dynamicFlows.ControlFeedback.maximumDate": "Por favor, insira uma data que seja em ou antes de {maximum}.",
@@ -7798,6 +7828,7 @@ var ro_default = {
7798
7828
  "dynamicFlows.CameraCapture.reviewInstructions": "Imaginea ta este clar\u0103, lizibil\u0103 \u0219i complet\u0103?",
7799
7829
  "dynamicFlows.CameraCapture.reviewRetry": "Nu, \xEEncearc\u0103 din nou",
7800
7830
  "dynamicFlows.CameraCapture.reviewSubmit": "Da, trimite",
7831
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Rote\u0219te-\u021Bi telefonul \xEEn modul portret pentru a face o fotografie",
7801
7832
  "dynamicFlows.ControlFeedback.maxLength": "Te rug\u0103m s\u0103 introduci {maxLength} sau mai pu\u021Bine caractere.",
7802
7833
  "dynamicFlows.ControlFeedback.maximum": "Te rug\u0103m s\u0103 introduci un num\u0103r egal cu {maximum} sau mai mic.",
7803
7834
  "dynamicFlows.ControlFeedback.maximumDate": "Te rug\u0103m s\u0103 introduci o dat\u0103 de \xEEnainte de sau egal\u0103 cu {maximum}.",
@@ -7842,6 +7873,7 @@ var ru_default = {
7842
7873
  "dynamicFlows.CameraCapture.reviewInstructions": "\u0412\u0430\u0448\u0430 \u0444\u043E\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u044F \u0447\u0435\u0442\u043A\u0430\u044F, \u043B\u0435\u0433\u043A\u043E \u0447\u0438\u0442\u0430\u0435\u043C\u0430\u044F \u0438 \u043D\u0435 \u043E\u0431\u0440\u0435\u0437\u0430\u043D\u0430?",
7843
7874
  "dynamicFlows.CameraCapture.reviewRetry": "\u041D\u0435\u0442, \u043F\u043E\u043F\u0440\u043E\u0431\u043E\u0432\u0430\u0442\u044C \u0435\u0449\u0435 \u0440\u0430\u0437",
7844
7875
  "dynamicFlows.CameraCapture.reviewSubmit": "\u0414\u0430, \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
7876
+ "dynamicFlows.CameraCapture.rotatePhone.text": "\u041F\u043E\u0432\u0435\u0440\u043D\u0438\u0442\u0435 \u0442\u0435\u043B\u0435\u0444\u043E\u043D \u0432 \u043F\u043E\u0440\u0442\u0440\u0435\u0442\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C, \u0447\u0442\u043E\u0431\u044B \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0444\u043E\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u044E",
7845
7877
  "dynamicFlows.ControlFeedback.maxLength": "\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 {maxLength} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 \u0438\u043B\u0438 \u043C\u0435\u043D\u044C\u0448\u0435.",
7846
7878
  "dynamicFlows.ControlFeedback.maximum": "\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E, \u0440\u0430\u0432\u043D\u043E\u0435 {maximum} \u0438\u043B\u0438 \u043C\u0435\u043D\u044C\u0448\u0435.",
7847
7879
  "dynamicFlows.ControlFeedback.maximumDate": "\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u0430\u0442\u0443, \u0440\u0430\u0432\u043D\u0443\u044E {maximum} \u0438\u043B\u0438 \u0431\u043E\u043B\u0435\u0435 \u0440\u0430\u043D\u043D\u044E\u044E.",
@@ -7886,6 +7918,7 @@ var th_default = {
7886
7918
  "dynamicFlows.CameraCapture.reviewInstructions": "\u0E23\u0E39\u0E1B\u0E20\u0E32\u0E1E\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E0A\u0E31\u0E14\u0E40\u0E08\u0E19 \u0E2D\u0E48\u0E32\u0E19\u0E44\u0E14\u0E49 \u0E41\u0E25\u0E30\u0E04\u0E23\u0E1A\u0E16\u0E49\u0E27\u0E19\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48",
7887
7919
  "dynamicFlows.CameraCapture.reviewRetry": "\u0E44\u0E21\u0E48 \u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E17\u0E31\u0E49\u0E07",
7888
7920
  "dynamicFlows.CameraCapture.reviewSubmit": "\u0E43\u0E0A\u0E48 \u0E2A\u0E48\u0E07\u0E40\u0E25\u0E22",
7921
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Rotate your phone to portrait view to take a photo",
7889
7922
  "dynamicFlows.ControlFeedback.maxLength": "\u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19 {maxLength} \u0E2D\u0E31\u0E01\u0E02\u0E23\u0E30\u0E2B\u0E23\u0E37\u0E2D\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",
7890
7923
  "dynamicFlows.ControlFeedback.maximum": "\u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 {maximum} \u0E2B\u0E23\u0E37\u0E2D\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",
7891
7924
  "dynamicFlows.ControlFeedback.maximumDate": "\u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E15\u0E23\u0E07\u0E1E\u0E2D\u0E14\u0E35\u0E2B\u0E23\u0E37\u0E2D\u0E01\u0E48\u0E2D\u0E19 {maximum}",
@@ -7930,6 +7963,7 @@ var tr_default = {
7930
7963
  "dynamicFlows.CameraCapture.reviewInstructions": "Foto\u011Fraf\u0131n\u0131z net, okunakl\u0131 ve eksiksiz mi?",
7931
7964
  "dynamicFlows.CameraCapture.reviewRetry": "Hay\u0131r, tekrar dene",
7932
7965
  "dynamicFlows.CameraCapture.reviewSubmit": "Evet, g\xF6nder",
7966
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Rotate your phone to portrait view to take a photo",
7933
7967
  "dynamicFlows.ControlFeedback.maxLength": "L\xFCtfen {maxLength} veya daha az karakter girin.",
7934
7968
  "dynamicFlows.ControlFeedback.maximum": "L\xFCtfen {maximum} veya daha d\xFC\u015F\xFCk bir say\u0131 girin.",
7935
7969
  "dynamicFlows.ControlFeedback.maximumDate": "L\xFCtfen {maximum} veya daha erken bir tarih girin.",
@@ -7974,6 +8008,7 @@ var zh_CN_default = {
7974
8008
  "dynamicFlows.CameraCapture.reviewInstructions": "\u60A8\u7684\u56FE\u7247\u662F\u5426\u6E05\u6670\u3001\u53EF\u8BFB\u548C\u5B8C\u6574\uFF1F",
7975
8009
  "dynamicFlows.CameraCapture.reviewRetry": "\u5426\uFF0C\u91CD\u8BD5",
7976
8010
  "dynamicFlows.CameraCapture.reviewSubmit": "\u662F\uFF0C\u63D0\u4EA4",
8011
+ "dynamicFlows.CameraCapture.rotatePhone.text": "Rotate your phone to portrait view to take a photo",
7977
8012
  "dynamicFlows.ControlFeedback.maxLength": "\u8BF7\u8F93\u5165 {maxLength} \u4E2A\u6216\u66F4\u5C11\u5B57\u7B26",
7978
8013
  "dynamicFlows.ControlFeedback.maximum": "\u8BF7\u8F93\u5165\u4E00\u4E2A\u5C0F\u4E8E\u6216\u7B49\u4E8E {maximum} \u7684\u6570\u5B57",
7979
8014
  "dynamicFlows.ControlFeedback.maximumDate": "\u8BF7\u8F93\u5165 {maximum} \u6216\u4E4B\u524D\u7684\u65E5\u671F",
@@ -8018,6 +8053,7 @@ var zh_HK_default = {
8018
8053
  "dynamicFlows.CameraCapture.reviewInstructions": "\u4F60\u7684\u7167\u7247\u662F\u5426\u5B8C\u6574\u3001\u6E05\u6670\u53CA\u53EF\u8B80\uFF1F",
8019
8054
  "dynamicFlows.CameraCapture.reviewRetry": "\u5426\uFF0C\u518D\u8A66\u4E00\u6B21",
8020
8055
  "dynamicFlows.CameraCapture.reviewSubmit": "\u662F\uFF0C\u63D0\u4EA4",
8056
+ "dynamicFlows.CameraCapture.rotatePhone.text": "\u5C07\u624B\u6A5F\u65CB\u8F49\u81F3\u5782\u76F4\u756B\u9762\u4EE5\u62CD\u7167",
8021
8057
  "dynamicFlows.ControlFeedback.maxLength": "\u8ACB\u8F38\u5165\u6700\u591A{maxLength}\u500B\u5B57\u5143\u3002",
8022
8058
  "dynamicFlows.ControlFeedback.maximum": "\u8ACB\u8F38\u5165\u4E00\u500B\u5C0F\u65BC\u6216\u7B49\u65BC{maximum}\u7684\u6578\u5B57\u3002",
8023
8059
  "dynamicFlows.ControlFeedback.maximumDate": "\u8ACB\u8F38\u5165{maximum}\u6216\u4E4B\u524D\u7684\u65E5\u671F\u3002",