@wise/dynamic-flow-client 3.4.0-experimental-ed080a1 → 3.4.1

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 (188) hide show
  1. package/build/i18n/de.json +2 -1
  2. package/build/i18n/en.json +1 -0
  3. package/build/i18n/es.json +1 -0
  4. package/build/i18n/fr.json +1 -0
  5. package/build/i18n/hu.json +1 -0
  6. package/build/i18n/id.json +1 -0
  7. package/build/i18n/it.json +1 -0
  8. package/build/i18n/ja.json +1 -0
  9. package/build/i18n/pl.json +1 -0
  10. package/build/i18n/pt.json +1 -0
  11. package/build/i18n/ro.json +1 -0
  12. package/build/i18n/ru.json +1 -0
  13. package/build/i18n/th.json +1 -0
  14. package/build/i18n/tr.json +1 -0
  15. package/build/i18n/zh_CN.json +1 -0
  16. package/build/i18n/zh_HK.json +1 -0
  17. package/build/main.js +1116 -966
  18. package/build/main.min.js +1 -1
  19. package/build/main.mjs +945 -795
  20. package/build/types/common/messages/multi-select.messages.d.ts +8 -0
  21. package/build/types/legacy/common/utils/schema-utils.d.ts +4 -3
  22. package/build/types/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/ArrayListSchema.d.ts +6 -6
  23. package/build/types/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multiSelectSchema/MultiSelectSchema.d.ts +9 -0
  24. package/build/types/revamp/domain/components/MultiUploadInputComponent.d.ts +1 -1
  25. package/package.json +3 -3
  26. package/build/common/httpClientContext/HttpClientContext.js +0 -35
  27. package/build/common/httpClientContext/index.js +0 -1
  28. package/build/common/makeHttpClient/index.js +0 -1
  29. package/build/common/makeHttpClient/makeHttpClient.js +0 -34
  30. package/build/common/messages/generic-error.messages.js +0 -18
  31. package/build/common/messages/help.messages.js +0 -8
  32. package/build/common/messages/multi-file-upload.messages.js +0 -18
  33. package/build/common/messages/paragraph.messages.js +0 -13
  34. package/build/common/messages/repeatable.messages.js +0 -23
  35. package/build/common/messages/validation.array.messages.js +0 -13
  36. package/build/common/messages/validation.messages.js +0 -53
  37. package/build/common/utils/api-utils.js +0 -4
  38. package/build/legacy/common/constants/DateMode.js +0 -4
  39. package/build/legacy/common/constants/FeatureName.js +0 -4
  40. package/build/legacy/common/constants/FormControlType.js +0 -21
  41. package/build/legacy/common/constants/MonthFormat.js +0 -4
  42. package/build/legacy/common/constants/Size.js +0 -7
  43. package/build/legacy/common/constants/index.js +0 -4
  44. package/build/legacy/common/contexts/dynamicFlowContexts/DynamicFlowContexts.js +0 -36
  45. package/build/legacy/common/contexts/dynamicFlowContexts/usePendingPromiseCounter.js +0 -13
  46. package/build/legacy/common/contexts/eventsContext/EventsContext.js +0 -38
  47. package/build/legacy/common/contexts/featureContext/FeatureContext.js +0 -22
  48. package/build/legacy/common/contexts/index.js +0 -3
  49. package/build/legacy/common/contexts/logContext/LogContext.js +0 -44
  50. package/build/legacy/common/hooks/index.js +0 -7
  51. package/build/legacy/common/hooks/useDebouncedFunction/useDebouncedFunction.js +0 -9
  52. package/build/legacy/common/hooks/useExternal/useExternal.js +0 -15
  53. package/build/legacy/common/hooks/useExternalStepPolling/useExternalStepPolling.js +0 -70
  54. package/build/legacy/common/hooks/usePersistAsync/usePersistAsync.js +0 -172
  55. package/build/legacy/common/hooks/usePolling/usePolling.js +0 -51
  56. package/build/legacy/common/hooks/usePrevious/usePrevious.js +0 -8
  57. package/build/legacy/common/hooks/useStepPolling/useStepPolling.js +0 -43
  58. package/build/legacy/common/messages.js +0 -8
  59. package/build/legacy/common/utils/api-utils.js +0 -6
  60. package/build/legacy/common/utils/date-utils.js +0 -22
  61. package/build/legacy/common/utils/debounce.js +0 -38
  62. package/build/legacy/common/utils/file-utils.js +0 -45
  63. package/build/legacy/common/utils/id-utils.js +0 -5
  64. package/build/legacy/common/utils/index.js +0 -11
  65. package/build/legacy/common/utils/is-equal.js +0 -21
  66. package/build/legacy/common/utils/misc-utils.js +0 -4
  67. package/build/legacy/common/utils/mobile-utils.js +0 -23
  68. package/build/legacy/common/utils/model-utils.js +0 -33
  69. package/build/legacy/common/utils/schema-utils.js +0 -97
  70. package/build/legacy/common/utils/step-utils.js +0 -32
  71. package/build/legacy/common/validators/index.js +0 -5
  72. package/build/legacy/common/validators/models/model-utils.js +0 -119
  73. package/build/legacy/common/validators/models/model-validators.js +0 -62
  74. package/build/legacy/common/validators/schemas/schema-validators.js +0 -101
  75. package/build/legacy/common/validators/types/type-validators.js +0 -14
  76. package/build/legacy/common/validators/validationFailures/validation-failures.js +0 -139
  77. package/build/legacy/common/validators/validationFailures/validation-failures.utils.js +0 -40
  78. package/build/legacy/common/validators/values/value-validators.js +0 -6
  79. package/build/legacy/dynamic-flow-types.js +0 -1
  80. package/build/legacy/dynamicFlow/BackButton.js +0 -22
  81. package/build/legacy/dynamicFlow/DynamicFlowStep.js +0 -37
  82. package/build/legacy/formControl/FormControl.js +0 -266
  83. package/build/legacy/formControl/index.js +0 -1
  84. package/build/legacy/formControl/utils/getAutocompleteString.js +0 -80
  85. package/build/legacy/formControl/utils/index.js +0 -2
  86. package/build/legacy/formControl/utils/value-utils.js +0 -108
  87. package/build/legacy/jsonSchemaForm/allOfSchema/AllOfSchema.js +0 -50
  88. package/build/legacy/jsonSchemaForm/allOfSchema/index.js +0 -1
  89. package/build/legacy/jsonSchemaForm/arrayTypeSchema/ArraySchema.js +0 -25
  90. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/ArrayListSchema.js +0 -30
  91. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/MultipleFileUploadSchema.js +0 -141
  92. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/index.js +0 -1
  93. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/index.js +0 -2
  94. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/upload-utils.js +0 -79
  95. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/useFormattedDefaultErrorMessages.js +0 -14
  96. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/ItemSummary.js +0 -7
  97. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchema.js +0 -134
  98. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchemaStep.js +0 -85
  99. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/utils/summary-utils.js +0 -135
  100. package/build/legacy/jsonSchemaForm/arrayTypeSchema/index.js +0 -1
  101. package/build/legacy/jsonSchemaForm/basicTypeSchema/BasicTypeSchema.js +0 -111
  102. package/build/legacy/jsonSchemaForm/basicTypeSchema/index.js +0 -1
  103. package/build/legacy/jsonSchemaForm/controlFeedback/ControlFeedback.js +0 -86
  104. package/build/legacy/jsonSchemaForm/controlFeedback/index.js +0 -1
  105. package/build/legacy/jsonSchemaForm/help/Help.js +0 -20
  106. package/build/legacy/jsonSchemaForm/help/index.js +0 -1
  107. package/build/legacy/jsonSchemaForm/objectSchema/ObjectSchema.js +0 -77
  108. package/build/legacy/jsonSchemaForm/objectSchema/index.js +0 -1
  109. package/build/legacy/jsonSchemaForm/oneOfSchema/OneOfSchema.js +0 -155
  110. package/build/legacy/jsonSchemaForm/oneOfSchema/index.js +0 -1
  111. package/build/legacy/jsonSchemaForm/oneOfSchema/utils.js +0 -68
  112. package/build/legacy/jsonSchemaForm/persistAsyncSchema/PersistAsyncSchema.js +0 -26
  113. package/build/legacy/jsonSchemaForm/persistAsyncSchema/index.js +0 -1
  114. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBasicSchema/PersistAsyncBasicSchema.js +0 -165
  115. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBasicSchema/index.js +0 -1
  116. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/PersistAsyncBlobSchema.js +0 -131
  117. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/UploadInputAdapter.js +0 -31
  118. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/index.js +0 -1
  119. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/PromotedOneOfSchema.js +0 -72
  120. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/index.js +0 -1
  121. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promoted-one-of-utils.js +0 -8
  122. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfCheckboxControl.js +0 -27
  123. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfControl.js +0 -31
  124. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfRadioControl.js +0 -32
  125. package/build/legacy/jsonSchemaForm/readOnlySchema/ReadOnlySchema.js +0 -54
  126. package/build/legacy/jsonSchemaForm/readOnlySchema/ReadOnlySchema.messages.js +0 -13
  127. package/build/legacy/jsonSchemaForm/readOnlySchema/index.js +0 -1
  128. package/build/legacy/jsonSchemaForm/schemaFormControl/SchemaFormControl.js +0 -133
  129. package/build/legacy/jsonSchemaForm/schemaFormControl/index.js +0 -1
  130. package/build/legacy/jsonSchemaForm/schemaFormControl/utils/index.js +0 -1
  131. package/build/legacy/jsonSchemaForm/schemaFormControl/utils/mapping-utils.js +0 -107
  132. package/build/legacy/layout/DynamicLayout.js +0 -68
  133. package/build/legacy/layout/alert/DynamicAlert.js +0 -29
  134. package/build/legacy/layout/box/DynamicBox.js +0 -41
  135. package/build/legacy/layout/button/DynamicButton.js +0 -27
  136. package/build/legacy/layout/button/utils.js +0 -45
  137. package/build/legacy/layout/columns/DynamicColumns.js +0 -38
  138. package/build/legacy/layout/decision/DynamicDecision.js +0 -21
  139. package/build/legacy/layout/divider/DynamicDivider.js +0 -9
  140. package/build/legacy/layout/external/DynamicExternal.js +0 -32
  141. package/build/legacy/layout/external/DynamicExternal.messages.js +0 -8
  142. package/build/legacy/layout/form/DynamicForm.js +0 -22
  143. package/build/legacy/layout/heading/DynamicHeading.js +0 -51
  144. package/build/legacy/layout/icon/DynamicIcon.js +0 -17
  145. package/build/legacy/layout/icon/FlagIcon.js +0 -198
  146. package/build/legacy/layout/icon/NamedIcon.js +0 -19
  147. package/build/legacy/layout/image/DynamicImage.js +0 -111
  148. package/build/legacy/layout/index.js +0 -20
  149. package/build/legacy/layout/instructions/DynamicInstructions.js +0 -30
  150. package/build/legacy/layout/list/DynamicStatusList.js +0 -37
  151. package/build/legacy/layout/loadingIndicator/DynamicLoadingIndicator.js +0 -11
  152. package/build/legacy/layout/markdown/DynamicMarkdown.js +0 -23
  153. package/build/legacy/layout/modal/DynamicModal.js +0 -26
  154. package/build/legacy/layout/paragraph/DynamicParagraph.js +0 -46
  155. package/build/legacy/layout/paragraph/useSnackBarIfAvailable.js +0 -9
  156. package/build/legacy/layout/review/DynamicReview.js +0 -58
  157. package/build/legacy/layout/search/DynamicSearch.js +0 -58
  158. package/build/legacy/layout/search/SearchInput.js +0 -17
  159. package/build/legacy/layout/search/SearchResults.js +0 -31
  160. package/build/legacy/layout/search/useSearch.js +0 -137
  161. package/build/legacy/layout/utils/getNavigationOptionMedia.js +0 -28
  162. package/build/legacy/layout/utils/index.js +0 -32
  163. package/build/legacy/step/cameraStep/CameraStep.js +0 -124
  164. package/build/legacy/step/cameraStep/cameraCapture/CameraCapture.js +0 -161
  165. package/build/legacy/step/cameraStep/cameraCapture/CameraCapture.messages.js +0 -58
  166. package/build/legacy/step/cameraStep/cameraCapture/components/bottomBar/BottomBar.js +0 -28
  167. package/build/legacy/step/cameraStep/cameraCapture/components/index.js +0 -3
  168. package/build/legacy/step/cameraStep/cameraCapture/components/orientationLockOverlay/OrientationLockOverlay.js +0 -19
  169. package/build/legacy/step/cameraStep/cameraCapture/components/orientationLockOverlay/OrientationLockOverlay.messages.js +0 -8
  170. package/build/legacy/step/cameraStep/cameraCapture/hooks/useFullScreenOrientationLock.js +0 -60
  171. package/build/legacy/step/cameraStep/cameraCapture/hooks/useVideoConstraints.js +0 -80
  172. package/build/legacy/step/cameraStep/cameraCapture/index.js +0 -1
  173. package/build/legacy/step/cameraStep/cameraCapture/overlay/Overlay.js +0 -77
  174. package/build/legacy/step/cameraStep/cameraCapture/screens/cameraErrorScreen/CameraErrorScreen.js +0 -18
  175. package/build/legacy/step/cameraStep/cameraCapture/screens/index.js +0 -1
  176. package/build/legacy/step/cameraStep/cameraCapture/tracking/index.js +0 -109
  177. package/build/legacy/step/cameraStep/cameraCapture/types/index.js +0 -7
  178. package/build/legacy/step/cameraStep/cameraCapture/utils/index.js +0 -107
  179. package/build/legacy/step/cameraStep/index.js +0 -1
  180. package/build/legacy/step/externalConfirmationStep/ExternalConfirmationStep.js +0 -64
  181. package/build/legacy/step/externalConfirmationStep/ExternalConfirmationStep.messages.js +0 -23
  182. package/build/legacy/step/externalConfirmationStep/index.js +0 -1
  183. package/build/legacy/step/index.js +0 -3
  184. package/build/legacy/step/layoutStep/LayoutStep.js +0 -33
  185. package/build/legacy/step/layoutStep/index.js +0 -1
  186. package/build/legacy/step/layoutStep/utils/index.js +0 -2
  187. package/build/legacy/step/layoutStep/utils/inline-reference-utils.js +0 -105
  188. package/build/legacy/step/layoutStep/utils/layout-utils.js +0 -212
@@ -1,133 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { useEffect } from 'react';
14
- import { FormControlType } from '../../common/constants';
15
- import { isOneOfSchema, isStringSchema } from '../../common/utils';
16
- import { getValidBasicModelOrNull, isNull, isUndefined } from '../../common/validators';
17
- import FormControl from '../../formControl';
18
- import { mapConstSchemaToOption, mapSchemaToUploadOptions } from './utils';
19
- import { useLogger } from '../../common/contexts';
20
- var isNativeInput = function (propsSchemaType) {
21
- return propsSchemaType === 'string' || propsSchemaType === 'number';
22
- };
23
- export var getControlType = function (schema) {
24
- if (isOneOfSchema(schema)) {
25
- if (schema.control === FormControlType.TAB && schema.oneOf.length > 3) {
26
- return FormControlType.SELECT;
27
- }
28
- return schema.control || FormControlType.SELECT;
29
- }
30
- if (isStringSchema(schema)) {
31
- return getStringSchemaControlType(schema);
32
- }
33
- // We should really check if the control is known, but I don't want to break behaviour so I'm leaving it as is for now
34
- if ('control' in schema && schema.control) {
35
- return schema.control;
36
- }
37
- if (schema.type === 'boolean') {
38
- return 'checkbox';
39
- }
40
- if (schema.type === 'integer') {
41
- return 'number';
42
- }
43
- return schema.type;
44
- };
45
- export var getStringSchemaControlType = function (_a) {
46
- var format = _a.format, control = _a.control;
47
- if (control) {
48
- return stringControlToFormControlType[control] || control;
49
- }
50
- if (format) {
51
- return stringFormatToFormControlType[format] || 'text';
52
- }
53
- return 'text';
54
- };
55
- var stringControlToFormControlType = {
56
- 'date-lookup': 'date-lookup',
57
- password: 'password',
58
- textarea: 'textarea',
59
- email: 'email',
60
- numeric: 'numeric',
61
- 'phone-number': 'tel'
62
- };
63
- var stringFormatToFormControlType = {
64
- date: 'date',
65
- // Legacy formats
66
- email: 'email',
67
- base64url: 'file',
68
- password: 'password',
69
- 'phone-number': 'tel'
70
- };
71
- var getOptions = function (schema, controlType) {
72
- if (schema.oneOf) {
73
- return schema.oneOf.map(function (childSchema) { return mapConstSchemaToOption(childSchema, controlType); });
74
- }
75
- return null;
76
- };
77
- function SchemaFormControl(props) {
78
- var id = props.id, schema = props.schema, value = props.value, disabled = props.disabled, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, onSearchChange = props.onSearchChange, describedBy = props.describedBy;
79
- var log = useLogger();
80
- var getSanitisedValue = function (value) {
81
- return isNativeInput(schema.type) && (isNull(value) || isUndefined(value)) ? '' : value;
82
- };
83
- var onModelChange = function (value, type, metadata) {
84
- onChange(getValidBasicModelOrNull(value, schema), type, metadata);
85
- };
86
- var controlType = getControlType(schema);
87
- useEffect(function () {
88
- warnIfInvalidSchema(schema, log, controlType);
89
- // eslint-disable-next-line react-hooks/exhaustive-deps
90
- }, [JSON.stringify(schema), log, controlType]);
91
- var options = schema.values || getOptions(schema, controlType);
92
- var events = {
93
- onFocus: onFocus,
94
- onBlur: onBlur,
95
- onSearchChange: onSearchChange,
96
- onChange: onModelChange
97
- };
98
- var safeValue = getSanitisedValue(value);
99
- var controlProps = {
100
- id: id,
101
- name: id,
102
- label: schema.title,
103
- options: options || [],
104
- placeholder: schema.placeholder,
105
- autoComplete: !schema.help,
106
- autocompleteHint: schema.autocompleteHint,
107
- disabled: disabled || schema.disabled,
108
- displayPattern: schema.displayFormat,
109
- // TODO: LOW avoid type assertion below
110
- uploadProps: mapSchemaToUploadOptions(schema),
111
- describedBy: describedBy
112
- };
113
- return (_jsx("div", __assign({ "aria-describedby": describedBy }, { children: _jsx(FormControl, __assign({ type: controlType, value: safeValue }, events, controlProps)) })));
114
- }
115
- SchemaFormControl.defaultProps = {
116
- value: null,
117
- onFocus: null,
118
- onBlur: null,
119
- onSearchChange: null,
120
- disabled: false
121
- };
122
- var warnIfInvalidSchema = function (schema, log, controlType) {
123
- if (isOneOfSchema(schema) && schema.oneOf.length === 2 && !schema.control) {
124
- log.warning('Deprecation warning', 'A oneOf schema with 2 options and no control type currently renders as a "radio" but will be changed to render as a "select". Please specify control radio to retain the existing behaviour.');
125
- }
126
- if (controlType === 'file') {
127
- log.warning('Deprecation warning', 'Please use a persist-async blob schema instead of string with base64url for file uploads. The base64url does not perform well on low end devices. Support for this schema will be removed in a later release.');
128
- }
129
- if (schema.values) {
130
- log.warning('Deprecated schema', 'Schema.values is a legacy approach. Please use oneOf.');
131
- }
132
- };
133
- export default SchemaFormControl;
@@ -1 +0,0 @@
1
- export { default } from './SchemaFormControl';
@@ -1 +0,0 @@
1
- export * from './mapping-utils';
@@ -1,107 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { Avatar, AvatarType } from '@transferwise/components';
14
- import { Flag } from '@wise/art';
15
- import { isArray, isNull, isUndefined } from '../../../common/validators';
16
- import DynamicIcon, { isValidIconName } from '../../../layout/icon/DynamicIcon';
17
- import { isFlagIcon } from '../../../layout/icon/FlagIcon';
18
- var mapConstSchemaToOption = function (schema, controlType) {
19
- switch (controlType) {
20
- case 'select':
21
- return mapConstSchemaToSelectOption(schema);
22
- case 'radio':
23
- default:
24
- return mapConstSchemaToRadioOption(schema);
25
- }
26
- };
27
- var mapConstSchemaToRadioOption = function (schema) { return (__assign(__assign(__assign({
28
- // TODO: LOW avoid type assertion -- using || '' would fail some tests
29
- label: schema.title, value: schema["const"] }, getRadioOptionDescription(schema.title, schema.description)), getAvatarPropertyForRadioOption(schema)), getDisabled(schema.disabled))); };
30
- var mapConstSchemaToSelectOption = function (schema) { return (__assign(__assign(__assign(__assign(__assign({
31
- // TODO: LOW avoid type assertion -- using || '' would fail some tests
32
- label: schema.title, value: schema["const"] }, getOptionDescription(schema.title, schema.description)), getIconPropertyForSelectOption(schema.icon)), mapImage(schema.image)), getDisabled(schema.disabled)), mapKeywordsToSearchStrings(schema.keywords))); };
33
- var mapKeywordsToSearchStrings = function (searchStrings) {
34
- return isArray(searchStrings) ? { searchStrings: searchStrings } : {};
35
- };
36
- var mapImage = function (image) {
37
- if (image === null || image === void 0 ? void 0 : image.url) {
38
- return {
39
- icon: (_jsx("div", __assign({ className: "media" }, { children: _jsx("div", __assign({ className: "np-option__no-media-circle" }, { children: _jsx("img", { src: image.url, alt: image.name || '' }) })) }))),
40
- hideIconInTrigger: true
41
- };
42
- }
43
- return null;
44
- };
45
- var getIconPropertyForSelectOption = function (icon) {
46
- if ((icon === null || icon === void 0 ? void 0 : icon.name) && isFlagIcon(icon.name)) {
47
- return {
48
- icon: _jsx(Flag, { code: icon.name.substring(5), intrinsicSize: 24 })
49
- };
50
- }
51
- if ((icon === null || icon === void 0 ? void 0 : icon.name) && isValidIconName(icon.name)) {
52
- return {
53
- icon: _jsx(DynamicIcon, { type: icon.name })
54
- };
55
- }
56
- if (icon === null || icon === void 0 ? void 0 : icon.text) {
57
- return {
58
- icon: _jsx("span", { children: icon.text })
59
- };
60
- }
61
- return null;
62
- };
63
- var getAvatarPropertyForRadioOption = function (_a) {
64
- var image = _a.image, icon = _a.icon;
65
- if (image === null || image === void 0 ? void 0 : image.url) {
66
- return {
67
- avatar: (_jsx(Avatar, __assign({ type: AvatarType.THUMBNAIL }, { children: _jsx("img", { src: image.url, alt: "" }) })))
68
- };
69
- }
70
- if ((icon === null || icon === void 0 ? void 0 : icon.name) && isValidIconName(icon.name)) {
71
- return {
72
- avatar: (_jsx(Avatar, __assign({ type: AvatarType.ICON }, { children: _jsx(DynamicIcon, { type: icon.name }) })))
73
- };
74
- }
75
- if (icon === null || icon === void 0 ? void 0 : icon.text) {
76
- return {
77
- avatar: _jsx(Avatar, __assign({ type: AvatarType.INITIALS }, { children: icon.text }))
78
- };
79
- }
80
- return null;
81
- };
82
- var mapSchemaToUploadOptions = function (_a) {
83
- var accepts = _a.accepts;
84
- return (__assign({}, (isArray(accepts) && { usAccept: accepts.join(',') })));
85
- };
86
- var getOptionDescription = function (title, description) {
87
- if (title && description) {
88
- if ((title + description).length > 50) {
89
- return { secondary: description };
90
- }
91
- return { note: description };
92
- }
93
- return undefined;
94
- };
95
- var getRadioOptionDescription = function (title, description) {
96
- if (title && description) {
97
- return { note: description };
98
- }
99
- return undefined;
100
- };
101
- var getDisabled = function (disabled) {
102
- if (!isUndefined(disabled) && !isNull(disabled)) {
103
- return { disabled: disabled };
104
- }
105
- return undefined;
106
- };
107
- export { mapConstSchemaToOption, getAvatarPropertyForRadioOption, mapSchemaToUploadOptions };
@@ -1,68 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
13
- import { DynamicAlert, DynamicBox, DynamicButton, DynamicColumns, DynamicDecision, DynamicDivider, DynamicExternal, DynamicForm, DynamicHeading, DynamicImage, DynamicInfo, DynamicInstructions, DynamicStatusList, DynamicLoadingIndicator, DynamicMarkdown, DynamicParagraph, DynamicReview, DynamicSearch, DynamicModal, } from '.';
14
- import { HttpClientProviderFromBaseUrl, useHasHttpClientProvider, } from '../../common/httpClientContext';
15
- var getKey = function (component) { return JSON.stringify(component); };
16
- function DynamicLayout(props) {
17
- var components = props.components, model = props.model, submitted = props.submitted, errors = props.errors, onModelChange = props.onModelChange, onAction = props.onAction, onPersistAsync = props.onPersistAsync, baseUrl = props.baseUrl;
18
- var renderComponent = function (component) {
19
- switch (component.type) {
20
- case 'heading':
21
- return _jsx(DynamicHeading, { component: component }, getKey(component));
22
- case 'paragraph':
23
- return _jsx(DynamicParagraph, { component: component }, getKey(component));
24
- case 'image':
25
- return _jsx(DynamicImage, { component: component }, getKey(component));
26
- case 'alert':
27
- return _jsx(DynamicAlert, { component: component }, getKey(component));
28
- case 'review':
29
- return _jsx(DynamicReview, { component: component, onAction: onAction }, getKey(component));
30
- case 'divider':
31
- return _jsx(DynamicDivider, { component: component }, getKey(component));
32
- case 'info':
33
- return _jsx(DynamicInfo, { component: component }, getKey(component));
34
- case 'instructions':
35
- return _jsx(DynamicInstructions, { component: component }, getKey(component));
36
- case 'markdown':
37
- return _jsx(DynamicMarkdown, { component: component }, getKey(component));
38
- case 'columns':
39
- return (_jsx(DynamicColumns, { component: component, model: model, submitted: submitted, errors: errors, onModelChange: onModelChange, onAction: onAction, onPersistAsync: onPersistAsync }, getKey(component)));
40
- case 'form':
41
- return (_jsx(DynamicForm, { component: component, model: model, submitted: submitted, errors: errors, onModelChange: onModelChange, onPersistAsync: onPersistAsync }, getKey(__assign(__assign({}, component), { errors: errors !== null && errors !== void 0 ? errors : null }))));
42
- case 'button':
43
- return _jsx(DynamicButton, { component: component, onAction: onAction }, getKey(component));
44
- case 'box':
45
- return (_jsx(DynamicBox, { component: component, model: model, submitted: submitted, errors: errors, onModelChange: onModelChange, onAction: onAction, onPersistAsync: onPersistAsync }, getKey(component)));
46
- case 'decision':
47
- return (_jsx(DynamicDecision, { component: component, onAction: onAction }, getKey(component)));
48
- case 'external':
49
- return (_jsx(DynamicExternal, { component: component, onAction: onAction }, getKey(component)));
50
- case 'list':
51
- case 'status-list':
52
- return (_jsx(DynamicStatusList, { component: component, onAction: onAction }, getKey(component)));
53
- case 'loading-indicator':
54
- return _jsx(DynamicLoadingIndicator, { component: component }, getKey(component));
55
- case 'search':
56
- return _jsx(DynamicSearch, { component: component, onAction: onAction }, getKey(component));
57
- case 'modal':
58
- return (_jsx(DynamicModal, { component: component, model: model, submitted: submitted, errors: errors, onModelChange: onModelChange, onAction: onAction, onPersistAsync: onPersistAsync }, getKey(component)));
59
- default:
60
- return _jsx("div", {}, getKey(component));
61
- }
62
- };
63
- if (useHasHttpClientProvider() || baseUrl == null) {
64
- return _jsx(_Fragment, { children: components.map(renderComponent) });
65
- }
66
- return (_jsx(HttpClientProviderFromBaseUrl, __assign({ baseUrl: baseUrl }, { children: components.map(renderComponent) })));
67
- }
68
- export default DynamicLayout;
@@ -1,29 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Alert } from '@transferwise/components';
3
- import { getMargin } from '../utils';
4
- var DynamicAlert = function (props) {
5
- var alert = props.component;
6
- return (_jsx(Alert, { type: mapContextToAlertType(legacy_mapContext(alert.context)), className: getMargin(alert.margin), message: alert.markdown }));
7
- };
8
- var legacy_mapContext = function (context) {
9
- switch (context) {
10
- case 'success':
11
- return 'positive';
12
- case 'failure':
13
- return 'negative';
14
- case 'warning':
15
- return 'warning';
16
- case 'info':
17
- case 'primary':
18
- return 'neutral';
19
- default:
20
- return context;
21
- }
22
- };
23
- var mapContextToAlertType = function (context) {
24
- if (!context || !['neutral', 'warning', 'negative', 'positive'].includes(context)) {
25
- return 'neutral';
26
- }
27
- return context;
28
- };
29
- export default DynamicAlert;
@@ -1,41 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { DynamicLayout } from '..';
14
- import { getMargin } from '../utils';
15
- var DynamicBox = function (props) {
16
- var box = props.component;
17
- var margin = getMargin(box.margin || box.border ? 'lg' : 'xs');
18
- if (!box.width || box.width === 'xl') {
19
- return (_jsx("div", __assign({ className: margin + getBorderClass(box.border) }, { children: _jsx(DynamicLayout, { components: box.components, model: props.model, submitted: props.submitted, errors: props.errors, onModelChange: props.onModelChange, onAction: props.onAction, onPersistAsync: props.onPersistAsync }) })));
20
- }
21
- return (_jsx("div", __assign({ className: "row" }, { children: _jsx("div", __assign({ className: margin + getBoxWidthClasses(box) }, { children: _jsx("div", __assign({ className: getBorderClass(box.border) }, { children: _jsx(DynamicLayout, { components: box.components, model: props.model, submitted: props.submitted, errors: props.errors, onModelChange: props.onModelChange, onAction: props.onAction, onPersistAsync: props.onPersistAsync }) })) })) })));
22
- };
23
- var getBorderClass = function (border) {
24
- return border ? ' well p-b-0' : '';
25
- };
26
- var getBoxWidthClasses = function (component) {
27
- switch (component.width) {
28
- case 'xs':
29
- return ' col-md-4 col-md-offset-4';
30
- case 'sm':
31
- return ' col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4';
32
- case 'md':
33
- return ' col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3';
34
- case 'lg':
35
- return ' col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2';
36
- case 'xl':
37
- default:
38
- return ' col-xs-12';
39
- }
40
- };
41
- export default DynamicBox;
@@ -1,27 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { Button } from '@transferwise/components';
14
- import { useDynamicFlow } from '../../common/contexts';
15
- import { getMargin } from '../utils';
16
- import { getButtonPriority, getButtonType, getButtonSize } from './utils';
17
- function DynamicButton(props) {
18
- var _a;
19
- var component = props.component, onAction = props.onAction;
20
- var componentAction = component.action; // there should be no $ref at this point
21
- var type = getButtonType(component);
22
- var priority = getButtonPriority(component);
23
- var loading = useDynamicFlow().loading;
24
- var className = getMargin(component.margin || 'md');
25
- return (_jsx(Button, __assign({ size: getButtonSize(component.size), type: priority === 'tertiary' ? undefined : type, priority: priority, block: true, className: className, disabled: loading || component.disabled || componentAction.disabled, onClick: function () { return onAction(componentAction); } }, { children: (_a = component.title) !== null && _a !== void 0 ? _a : componentAction.title })));
26
- }
27
- export default DynamicButton;
@@ -1,45 +0,0 @@
1
- var priorities = {
2
- primary: 'primary',
3
- secondary: 'secondary',
4
- link: 'tertiary',
5
- positive: 'primary',
6
- negative: 'primary'
7
- };
8
- export var getButtonPriority = function (component) {
9
- var _a;
10
- var actionType = component.action.type;
11
- return (_a = component.control) !== null && _a !== void 0 ? _a : (actionType ? priorities[actionType] : 'secondary');
12
- };
13
- var contextToType = {
14
- positive: 'positive',
15
- negative: 'negative',
16
- neutral: 'accent',
17
- warning: 'accent'
18
- };
19
- var actionTypeToType = {
20
- primary: 'accent',
21
- secondary: 'accent',
22
- link: 'accent',
23
- positive: 'positive',
24
- negative: 'negative'
25
- };
26
- export var getButtonType = function (component) {
27
- if (component.context) {
28
- return contextToType[component.context];
29
- }
30
- var actionType = component.action.type;
31
- return actionType ? actionTypeToType[actionType] : 'accent';
32
- };
33
- export var getButtonSize = function (size) {
34
- switch (size) {
35
- case 'xs':
36
- case 'sm':
37
- return 'sm';
38
- case 'lg':
39
- case 'xl':
40
- return 'lg';
41
- case 'md':
42
- default:
43
- return 'md';
44
- }
45
- };
@@ -1,38 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { DynamicLayout } from '..';
14
- import { getMargin } from '../utils';
15
- var DynamicColumns = function (props) {
16
- var columns = props.component;
17
- var _a = getWidth(columns.bias), leftWidth = _a.leftWidth, rightWidth = _a.rightWidth;
18
- return (_jsxs("div", __assign({ className: "".concat(getMargin(columns.margin || 'xs'), " row") }, { children: [_jsx("div", __assign({ className: "".concat(leftWidth, " m-b-0") }, { children: _jsx(DynamicLayout, { components: columns.left, model: props.model, submitted: props.submitted, errors: props.errors, onModelChange: props.onModelChange, onAction: props.onAction, onPersistAsync: props.onPersistAsync }) })), _jsx("div", __assign({ className: "".concat(rightWidth, " m-b-0") }, { children: _jsx(DynamicLayout, { components: columns.right, model: props.model, submitted: props.submitted, errors: props.errors, onModelChange: props.onModelChange, onAction: props.onAction, onPersistAsync: props.onPersistAsync }) }))] })));
19
- };
20
- var getWidth = function (bias) {
21
- if (bias === 'left') {
22
- return {
23
- leftWidth: 'col-md-8',
24
- rightWidth: 'col-md-4'
25
- };
26
- }
27
- if (bias === 'right') {
28
- return {
29
- leftWidth: 'col-md-4',
30
- rightWidth: 'col-md-8'
31
- };
32
- }
33
- return {
34
- leftWidth: 'col-md-6',
35
- rightWidth: 'col-md-6'
36
- };
37
- };
38
- export default DynamicColumns;
@@ -1,21 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { NavigationOption, NavigationOptionsList } from '@transferwise/components';
14
- import { getNavigationOptionMedia, getMargin } from '../utils';
15
- import { useDynamicFlow } from '../../common/contexts';
16
- function DynamicDecision(_a) {
17
- var component = _a.component, onAction = _a.onAction;
18
- var loading = useDynamicFlow().loading;
19
- return (_jsx("div", __assign({ className: getMargin(component.margin) }, { children: _jsx(NavigationOptionsList, { children: component.options.map(function (option) { return (_jsx(NavigationOption, { title: option.title, content: option.description, disabled: loading || option.disabled, media: getNavigationOptionMedia(option), showMediaCircle: false, showMediaAtAllSizes: true, onClick: function () { return onAction(option.action); } }, JSON.stringify(option))); }) }) })));
20
- }
21
- export default DynamicDecision;
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { getMargin } from '../utils';
3
- var DynamicDivider = function (_a) {
4
- var component = _a.component;
5
- var margin = getMargin(component.margin);
6
- var className = "m-t-0 ".concat(margin);
7
- return _jsx("hr", { className: className });
8
- };
9
- export default DynamicDivider;
@@ -1,32 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { Button, Loader, Size } from '@transferwise/components';
14
- import { useCallback, useEffect } from 'react';
15
- import { useIntl } from 'react-intl';
16
- import { useExternalStepPolling } from '../../common/hooks';
17
- import messages from './DynamicExternal.messages';
18
- /** @deprecated - No longer supported, use the external feature instead */
19
- var DynamicExternal = function (_a) {
20
- var component = _a.component, onAction = _a.onAction;
21
- var requestUrl = component.requestUrl, responseHandlers = component.responseHandlers, polling = component.polling, retryTitle = component.retryTitle;
22
- var intl = useIntl();
23
- var openExternalUrl = useCallback(function () { return window.open(requestUrl, 'df-external-window'); }, [requestUrl]);
24
- useEffect(function () {
25
- openExternalUrl();
26
- }, [openExternalUrl]);
27
- var pollingConfiguration = polling && responseHandlers
28
- ? __assign(__assign({}, polling), { responseHandlers: responseHandlers }) : undefined;
29
- useExternalStepPolling(pollingConfiguration, onAction);
30
- return (_jsxs(_Fragment, { children: [_jsx(Loader, { size: Size.LARGE, classNames: { 'tw-loader': 'tw-loader m-x-auto' } }), _jsx("br", {}), _jsx(Button, __assign({ priority: "tertiary", block: true, onClick: openExternalUrl }, { children: retryTitle || intl.formatMessage(messages.retryTitle) }))] }));
31
- };
32
- export default DynamicExternal;
@@ -1,8 +0,0 @@
1
- import { defineMessages } from 'react-intl';
2
- export default defineMessages({
3
- retryTitle: {
4
- id: 'dynamicFlows.DynamicExternal.retryTitle',
5
- defaultMessage: 'Reopen window',
6
- description: ''
7
- }
8
- });
@@ -1,22 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import GenericSchema from '../../jsonSchemaForm/genericSchema';
14
- import { getMargin } from '../utils';
15
- function DynamicForm(_a) {
16
- var component = _a.component, _b = _a.model, model = _b === void 0 ? null : _b, _c = _a.errors, errors = _c === void 0 ? null : _c, submitted = _a.submitted, onModelChange = _a.onModelChange, onPersistAsync = _a.onPersistAsync;
17
- var formSchema = component.schema; // There should be no $ref, nor schemaId at this point
18
- return (_jsx("div", __assign({ className: getMargin(component.margin || 'md') }, { children: _jsx(GenericSchema, { schema: formSchema, model: model, errors: errors, submitted: submitted, onChange: function (parameters) {
19
- onModelChange(__assign({ formSchema: formSchema }, parameters));
20
- }, onPersistAsync: onPersistAsync }) })));
21
- }
22
- export default DynamicForm;
@@ -1,51 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { Display } from '@transferwise/components';
14
- import classNames from 'classnames';
15
- import { getTextAlignmentAndMargin } from '../utils';
16
- var DynamicHeading = function (props) {
17
- var _a = props.component, text = _a.text, _b = _a.size, size = _b === void 0 ? 'md' : _b, _c = _a.align, align = _c === void 0 ? 'left' : _c, _d = _a.margin, margin = _d === void 0 ? 'md' : _d, control = _a.control;
18
- var classes = classNames(getTextAlignmentAndMargin({ align: align, margin: margin }));
19
- return control === 'display' ? (_jsx(DisplayHeading, { size: size, text: text, classes: classes })) : (_jsx(StandardHeading, { size: size, text: text, classes: classes }));
20
- };
21
- var StandardHeading = function (_a) {
22
- var size = _a.size, text = _a.text, classes = _a.classes;
23
- switch (size) {
24
- case 'xs':
25
- return _jsx("h5", __assign({ className: classes }, { children: text }));
26
- case 'sm':
27
- return _jsx("h4", __assign({ className: classes }, { children: text }));
28
- case 'lg':
29
- return _jsx("h2", __assign({ className: classes }, { children: text }));
30
- case 'xl':
31
- return _jsx("h1", __assign({ className: classes }, { children: text }));
32
- case 'md':
33
- default:
34
- return _jsx("h3", __assign({ className: classes }, { children: text }));
35
- }
36
- };
37
- var DisplayHeading = function (_a) {
38
- var size = _a.size, text = _a.text, classes = _a.classes;
39
- switch (size) {
40
- case 'xs':
41
- case 'sm':
42
- return (_jsx(Display, __assign({ type: "display-small", className: classes }, { children: text })));
43
- case 'xl':
44
- case 'lg':
45
- return (_jsx(Display, __assign({ type: "display-large", className: classes }, { children: text })));
46
- case 'md':
47
- default:
48
- return (_jsx(Display, __assign({ type: "display-medium", className: classes }, { children: text })));
49
- }
50
- };
51
- export default DynamicHeading;