@wise/dynamic-flow-client 3.4.0 → 3.5.0-experimental-6654c72

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 (275) hide show
  1. package/build/common/errorBoundary/ErrorBoundary.js +44 -0
  2. package/build/common/errorBoundary/ErrorBoundaryAlert.js +12 -0
  3. package/build/common/httpClientContext/HttpClientContext.js +35 -0
  4. package/build/common/httpClientContext/index.js +1 -0
  5. package/build/common/makeHttpClient/index.js +1 -0
  6. package/build/common/makeHttpClient/makeHttpClient.js +34 -0
  7. package/build/common/messages/external-confirmation.messages.js +23 -0
  8. package/build/common/messages/generic-error.messages.js +18 -0
  9. package/build/common/messages/help.messages.js +8 -0
  10. package/build/common/messages/multi-file-upload.messages.js +18 -0
  11. package/build/common/messages/multi-select.messages.js +8 -0
  12. package/build/common/messages/paragraph.messages.js +13 -0
  13. package/build/common/messages/repeatable.messages.js +23 -0
  14. package/build/common/messages/validation.array.messages.js +13 -0
  15. package/build/common/messages/validation.messages.js +53 -0
  16. package/build/common/utils/api-utils.js +4 -0
  17. package/build/i18n/de.json +2 -1
  18. package/build/i18n/es.json +1 -0
  19. package/build/i18n/fr.json +1 -0
  20. package/build/i18n/hu.json +1 -0
  21. package/build/i18n/id.json +1 -0
  22. package/build/i18n/index.js +36 -0
  23. package/build/i18n/it.json +1 -0
  24. package/build/i18n/ja.json +1 -0
  25. package/build/i18n/pl.json +1 -0
  26. package/build/i18n/pt.json +1 -0
  27. package/build/i18n/ro.json +1 -0
  28. package/build/i18n/ru.json +1 -0
  29. package/build/i18n/th.json +1 -0
  30. package/build/i18n/tr.json +1 -0
  31. package/build/i18n/zh_CN.json +1 -0
  32. package/build/i18n/zh_HK.json +1 -0
  33. package/build/legacy/common/constants/DateMode.js +4 -0
  34. package/build/legacy/common/constants/FeatureName.js +4 -0
  35. package/build/legacy/common/constants/FormControlType.js +21 -0
  36. package/build/legacy/common/constants/MonthFormat.js +4 -0
  37. package/build/legacy/common/constants/Size.js +7 -0
  38. package/build/legacy/common/constants/index.js +4 -0
  39. package/build/legacy/common/contexts/dynamicFlowContexts/DynamicFlowContexts.js +36 -0
  40. package/build/legacy/common/contexts/dynamicFlowContexts/usePendingPromiseCounter.js +13 -0
  41. package/build/legacy/common/contexts/eventsContext/EventsContext.js +38 -0
  42. package/build/legacy/common/contexts/featureContext/FeatureContext.js +22 -0
  43. package/build/legacy/common/contexts/index.js +3 -0
  44. package/build/legacy/common/contexts/logContext/LogContext.js +44 -0
  45. package/build/legacy/common/hooks/index.js +7 -0
  46. package/build/legacy/common/hooks/useDebouncedFunction/useDebouncedFunction.js +9 -0
  47. package/build/legacy/common/hooks/useExternal/useExternal.js +15 -0
  48. package/build/legacy/common/hooks/useExternalStepPolling/useExternalStepPolling.js +70 -0
  49. package/build/legacy/common/hooks/usePersistAsync/usePersistAsync.js +172 -0
  50. package/build/legacy/common/hooks/usePolling/usePolling.js +51 -0
  51. package/build/legacy/common/hooks/usePrevious/usePrevious.js +8 -0
  52. package/build/legacy/common/hooks/useStepPolling/useStepPolling.js +43 -0
  53. package/build/legacy/common/messages.js +8 -0
  54. package/build/legacy/common/utils/api-utils.js +6 -0
  55. package/build/legacy/common/utils/date-utils.js +22 -0
  56. package/build/legacy/common/utils/debounce.js +38 -0
  57. package/build/legacy/common/utils/file-utils.js +45 -0
  58. package/build/legacy/common/utils/id-utils.js +5 -0
  59. package/build/legacy/common/utils/index.js +11 -0
  60. package/build/legacy/common/utils/is-equal.js +21 -0
  61. package/build/legacy/common/utils/misc-utils.js +4 -0
  62. package/build/legacy/common/utils/mobile-utils.js +23 -0
  63. package/build/legacy/common/utils/model-utils.js +33 -0
  64. package/build/legacy/common/utils/schema-utils.js +113 -0
  65. package/build/legacy/common/utils/step-utils.js +32 -0
  66. package/build/legacy/common/validators/index.js +5 -0
  67. package/build/legacy/common/validators/models/model-utils.js +119 -0
  68. package/build/legacy/common/validators/models/model-validators.js +62 -0
  69. package/build/legacy/common/validators/schemas/schema-validators.js +101 -0
  70. package/build/legacy/common/validators/types/type-validators.js +14 -0
  71. package/build/legacy/common/validators/validationFailures/validation-failures.js +139 -0
  72. package/build/legacy/common/validators/validationFailures/validation-failures.utils.js +40 -0
  73. package/build/legacy/common/validators/values/value-validators.js +6 -0
  74. package/build/legacy/dynamic-flow-types.js +1 -0
  75. package/build/legacy/dynamicFlow/BackButton.js +22 -0
  76. package/build/legacy/dynamicFlow/DynamicFlow.js +346 -0
  77. package/build/legacy/dynamicFlow/DynamicFlowStep.js +37 -0
  78. package/build/legacy/dynamicFlow/DynamicFlowTypes.js +1 -0
  79. package/build/legacy/dynamicFlow/index.js +1 -0
  80. package/build/legacy/dynamicFlow/utils/index.js +5 -0
  81. package/build/legacy/dynamicFlow/utils/responseParsers/response-parsers.js +185 -0
  82. package/build/legacy/dynamicFlow/utils/useDebouncedRefresh/useDebouncedRefresh.js +26 -0
  83. package/build/legacy/dynamicFlow/utils/useDynamicFlowState.js +137 -0
  84. package/build/legacy/dynamicFlow/utils/useLoader.js +22 -0
  85. package/build/legacy/formControl/FormControl.js +266 -0
  86. package/build/legacy/formControl/index.js +1 -0
  87. package/build/legacy/formControl/utils/getAutocompleteString.js +80 -0
  88. package/build/legacy/formControl/utils/index.js +2 -0
  89. package/build/legacy/formControl/utils/value-utils.js +108 -0
  90. package/build/legacy/jsonSchemaForm/JsonSchemaForm.js +24 -0
  91. package/build/legacy/jsonSchemaForm/allOfSchema/AllOfSchema.js +50 -0
  92. package/build/legacy/jsonSchemaForm/allOfSchema/index.js +1 -0
  93. package/build/legacy/jsonSchemaForm/arrayTypeSchema/ArraySchema.js +25 -0
  94. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/ArrayListSchema.js +34 -0
  95. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multiSelectSchema/MultiSelectSchema.js +84 -0
  96. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/MultipleFileUploadSchema.js +141 -0
  97. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/index.js +1 -0
  98. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/index.js +2 -0
  99. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/upload-utils.js +79 -0
  100. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/multipleFileUploadSchema/utils/useFormattedDefaultErrorMessages.js +14 -0
  101. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/ItemSummary.js +7 -0
  102. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchema.js +134 -0
  103. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/RepeatableSchemaStep.js +85 -0
  104. package/build/legacy/jsonSchemaForm/arrayTypeSchema/arrayListSchema/repeatableSchema/utils/summary-utils.js +135 -0
  105. package/build/legacy/jsonSchemaForm/arrayTypeSchema/index.js +1 -0
  106. package/build/legacy/jsonSchemaForm/basicTypeSchema/BasicTypeSchema.js +111 -0
  107. package/build/legacy/jsonSchemaForm/basicTypeSchema/index.js +1 -0
  108. package/build/legacy/jsonSchemaForm/controlFeedback/ControlFeedback.js +86 -0
  109. package/build/legacy/jsonSchemaForm/controlFeedback/index.js +1 -0
  110. package/build/legacy/jsonSchemaForm/genericSchema/GenericSchema.js +85 -0
  111. package/build/legacy/jsonSchemaForm/genericSchema/index.js +1 -0
  112. package/build/legacy/jsonSchemaForm/help/Help.js +20 -0
  113. package/build/legacy/jsonSchemaForm/help/index.js +1 -0
  114. package/build/legacy/jsonSchemaForm/index.js +1 -0
  115. package/build/legacy/jsonSchemaForm/objectSchema/ObjectSchema.js +77 -0
  116. package/build/legacy/jsonSchemaForm/objectSchema/index.js +1 -0
  117. package/build/legacy/jsonSchemaForm/oneOfSchema/OneOfSchema.js +155 -0
  118. package/build/legacy/jsonSchemaForm/oneOfSchema/index.js +1 -0
  119. package/build/legacy/jsonSchemaForm/oneOfSchema/utils.js +68 -0
  120. package/build/legacy/jsonSchemaForm/persistAsyncSchema/PersistAsyncSchema.js +26 -0
  121. package/build/legacy/jsonSchemaForm/persistAsyncSchema/index.js +1 -0
  122. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBasicSchema/PersistAsyncBasicSchema.js +165 -0
  123. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBasicSchema/index.js +1 -0
  124. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/PersistAsyncBlobSchema.js +131 -0
  125. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/UploadInputAdapter.js +31 -0
  126. package/build/legacy/jsonSchemaForm/persistAsyncSchema/persistAsyncBlobSchema/index.js +1 -0
  127. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/PromotedOneOfSchema.js +72 -0
  128. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/index.js +1 -0
  129. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promoted-one-of-utils.js +8 -0
  130. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfCheckboxControl.js +27 -0
  131. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfControl.js +31 -0
  132. package/build/legacy/jsonSchemaForm/promotedOneOfSchema/promotedOneOfControl/PromotedOneOfRadioControl.js +32 -0
  133. package/build/legacy/jsonSchemaForm/readOnlySchema/ReadOnlySchema.js +54 -0
  134. package/build/legacy/jsonSchemaForm/readOnlySchema/ReadOnlySchema.messages.js +13 -0
  135. package/build/legacy/jsonSchemaForm/readOnlySchema/index.js +1 -0
  136. package/build/legacy/jsonSchemaForm/schemaFormControl/SchemaFormControl.js +133 -0
  137. package/build/legacy/jsonSchemaForm/schemaFormControl/index.js +1 -0
  138. package/build/legacy/jsonSchemaForm/schemaFormControl/utils/index.js +1 -0
  139. package/build/legacy/jsonSchemaForm/schemaFormControl/utils/mapping-utils.js +107 -0
  140. package/build/legacy/jsonSchemaForm/validationAsyncSchema/ValidationAsyncSchema.js +150 -0
  141. package/build/legacy/jsonSchemaForm/validationAsyncSchema/index.js +1 -0
  142. package/build/legacy/layout/DynamicLayout.js +68 -0
  143. package/build/legacy/layout/alert/DynamicAlert.js +29 -0
  144. package/build/legacy/layout/box/DynamicBox.js +41 -0
  145. package/build/legacy/layout/button/DynamicButton.js +27 -0
  146. package/build/legacy/layout/button/utils.js +45 -0
  147. package/build/legacy/layout/columns/DynamicColumns.js +38 -0
  148. package/build/legacy/layout/decision/DynamicDecision.js +21 -0
  149. package/build/legacy/layout/divider/DynamicDivider.js +9 -0
  150. package/build/legacy/layout/external/DynamicExternal.js +32 -0
  151. package/build/legacy/layout/external/DynamicExternal.messages.js +8 -0
  152. package/build/legacy/layout/form/DynamicForm.js +22 -0
  153. package/build/legacy/layout/heading/DynamicHeading.js +51 -0
  154. package/build/legacy/layout/icon/DynamicIcon.js +17 -0
  155. package/build/legacy/layout/icon/FlagIcon.js +198 -0
  156. package/build/legacy/layout/icon/NamedIcon.js +19 -0
  157. package/build/legacy/layout/image/DynamicImage.js +111 -0
  158. package/build/legacy/layout/index.js +20 -0
  159. package/build/legacy/layout/instructions/DynamicInstructions.js +30 -0
  160. package/build/legacy/layout/list/DynamicStatusList.js +37 -0
  161. package/build/legacy/layout/loadingIndicator/DynamicLoadingIndicator.js +11 -0
  162. package/build/legacy/layout/markdown/DynamicMarkdown.js +23 -0
  163. package/build/legacy/layout/modal/DynamicModal.js +26 -0
  164. package/build/legacy/layout/paragraph/DynamicParagraph.js +46 -0
  165. package/build/legacy/layout/paragraph/useSnackBarIfAvailable.js +9 -0
  166. package/build/legacy/layout/review/DynamicReview.js +58 -0
  167. package/build/legacy/layout/search/DynamicSearch.js +58 -0
  168. package/build/legacy/layout/search/SearchInput.js +17 -0
  169. package/build/legacy/layout/search/SearchResults.js +31 -0
  170. package/build/legacy/layout/search/useSearch.js +137 -0
  171. package/build/legacy/layout/utils/getNavigationOptionMedia.js +28 -0
  172. package/build/legacy/layout/utils/index.js +32 -0
  173. package/build/legacy/step/cameraStep/CameraStep.js +124 -0
  174. package/build/legacy/step/cameraStep/cameraCapture/CameraCapture.js +161 -0
  175. package/build/legacy/step/cameraStep/cameraCapture/CameraCapture.messages.js +58 -0
  176. package/build/legacy/step/cameraStep/cameraCapture/components/bottomBar/BottomBar.js +28 -0
  177. package/build/legacy/step/cameraStep/cameraCapture/components/index.js +3 -0
  178. package/build/legacy/step/cameraStep/cameraCapture/components/orientationLockOverlay/OrientationLockOverlay.js +19 -0
  179. package/build/legacy/step/cameraStep/cameraCapture/components/orientationLockOverlay/OrientationLockOverlay.messages.js +8 -0
  180. package/build/legacy/step/cameraStep/cameraCapture/hooks/useFullScreenOrientationLock.js +60 -0
  181. package/build/legacy/step/cameraStep/cameraCapture/hooks/useVideoConstraints.js +80 -0
  182. package/build/legacy/step/cameraStep/cameraCapture/index.js +1 -0
  183. package/build/legacy/step/cameraStep/cameraCapture/overlay/Overlay.js +77 -0
  184. package/build/legacy/step/cameraStep/cameraCapture/screens/cameraErrorScreen/CameraErrorScreen.js +18 -0
  185. package/build/legacy/step/cameraStep/cameraCapture/screens/index.js +1 -0
  186. package/build/legacy/step/cameraStep/cameraCapture/tracking/index.js +109 -0
  187. package/build/legacy/step/cameraStep/cameraCapture/types/index.js +7 -0
  188. package/build/legacy/step/cameraStep/cameraCapture/utils/index.js +107 -0
  189. package/build/legacy/step/cameraStep/index.js +1 -0
  190. package/build/legacy/step/externalConfirmationStep/ExternalConfirmationStep.js +64 -0
  191. package/build/legacy/step/externalConfirmationStep/index.js +1 -0
  192. package/build/legacy/step/index.js +3 -0
  193. package/build/legacy/step/layoutStep/LayoutStep.js +33 -0
  194. package/build/legacy/step/layoutStep/index.js +1 -0
  195. package/build/legacy/step/layoutStep/utils/index.js +2 -0
  196. package/build/legacy/step/layoutStep/utils/inline-reference-utils.js +105 -0
  197. package/build/legacy/step/layoutStep/utils/layout-utils.js +212 -0
  198. package/build/main.js +4791 -226
  199. package/build/main.min.js +1 -1
  200. package/build/main.mjs +4792 -227
  201. package/build/revamp/domain/components/AlertComponent.js +50 -0
  202. package/build/revamp/domain/components/AllOfComponent.js +72 -0
  203. package/build/revamp/domain/components/BooleanInputComponent.js +108 -0
  204. package/build/revamp/domain/components/BoxComponent.js +65 -0
  205. package/build/revamp/domain/components/ButtonComponent.js +50 -0
  206. package/build/revamp/domain/components/ColumnsComponent.js +74 -0
  207. package/build/revamp/domain/components/ConstComponent.js +50 -0
  208. package/build/revamp/domain/components/ContainerComponent.js +65 -0
  209. package/build/revamp/domain/components/DateInputComponent.js +127 -0
  210. package/build/revamp/domain/components/DecisionComponent.js +50 -0
  211. package/build/revamp/domain/components/DividerComponent.js +50 -0
  212. package/build/revamp/domain/components/FormComponent.js +65 -0
  213. package/build/revamp/domain/components/HeadingComponent.js +50 -0
  214. package/build/revamp/domain/components/ImageComponent.js +50 -0
  215. package/build/revamp/domain/components/InstructionsComponent.js +50 -0
  216. package/build/revamp/domain/components/IntegerInputComponent.js +125 -0
  217. package/build/revamp/domain/components/LoadingIndicatorComponent.js +50 -0
  218. package/build/revamp/domain/components/MarkdownComponent.js +50 -0
  219. package/build/revamp/domain/components/ModalComponent.js +65 -0
  220. package/build/revamp/domain/components/MultiUploadInputComponent.js +190 -0
  221. package/build/revamp/domain/components/NumberInputComponent.js +125 -0
  222. package/build/revamp/domain/components/ObjectComponent.js +104 -0
  223. package/build/revamp/domain/components/ParagraphComponent.js +50 -0
  224. package/build/revamp/domain/components/ReviewComponent.js +50 -0
  225. package/build/revamp/domain/components/SelectInputComponent.js +138 -0
  226. package/build/revamp/domain/components/StatusListComponent.js +50 -0
  227. package/build/revamp/domain/components/StepDomainComponent.js +93 -0
  228. package/build/revamp/domain/components/TextInputComponent.js +125 -0
  229. package/build/revamp/domain/components/UploadInputComponent.js +151 -0
  230. package/build/revamp/domain/components/repeatableComponent/RepeatableComponent.js +148 -0
  231. package/build/revamp/domain/components/searchComponent/SearchComponent.js +108 -0
  232. package/build/revamp/domain/components/utils/component-utils.js +18 -0
  233. package/build/revamp/domain/components/utils/debounce.js +38 -0
  234. package/build/revamp/domain/components/utils/file-utils.js +46 -0
  235. package/build/revamp/domain/components/utils/getComponentForLocalValueKey.js +31 -0
  236. package/build/revamp/domain/components/utils/isPartialLocalValueMatch.js +40 -0
  237. package/build/revamp/domain/features/events.js +1 -0
  238. package/build/revamp/domain/features/persistAsync/getComponentPersistAsync.js +133 -0
  239. package/build/revamp/domain/features/persistAsync/getPerformPersistAsync.js +103 -0
  240. package/build/revamp/domain/features/refresh/getPerformRefresh.js +53 -0
  241. package/build/revamp/domain/features/summary/summary-utils.js +39 -0
  242. package/build/revamp/domain/features/utils/http-utils.js +34 -0
  243. package/build/revamp/domain/features/utils/response-utils.js +9 -0
  244. package/build/revamp/domain/features/validation/validation-functions.js +12 -0
  245. package/build/revamp/domain/features/validation/value-checks.js +111 -0
  246. package/build/revamp/domain/features/validationAsync/getComponentValidationAsync.js +94 -0
  247. package/build/revamp/domain/features/validationAsync/getPerformValidationAsync.js +107 -0
  248. package/build/revamp/domain/mappers/types.js +1 -0
  249. package/build/revamp/domain/types.js +1 -0
  250. package/build/revamp/flow/response-utils.js +88 -0
  251. package/build/revamp/renderers/CoreContainerRenderer.js +8 -0
  252. package/build/revamp/renderers/LoadingContext.js +7 -0
  253. package/build/revamp/renderers/types.js +1 -0
  254. package/build/revamp/types.js +1 -0
  255. package/build/revamp/utils/component-utils.js +86 -0
  256. package/build/revamp/utils/type-utils.js +56 -0
  257. package/build/revamp/utils/type-validators.js +16 -0
  258. package/build/revamp/wise/renderers/AlertRenderer.js +11 -0
  259. package/build/revamp/wise/renderers/BooleanInputRenderer.js +34 -0
  260. package/build/revamp/wise/renderers/BoxRenderer.js +30 -0
  261. package/build/revamp/wise/renderers/ButtonRenderer.js +64 -0
  262. package/build/revamp/wise/renderers/ColumnsRenderer.js +25 -0
  263. package/build/revamp/wise/renderers/components/FieldInput.js +20 -0
  264. package/build/revamp/wise/renderers/components/Help.js +21 -0
  265. package/build/revamp/wise/renderers/components/LabelContentWithHelp.js +6 -0
  266. package/build/revamp/wise/renderers/utils/layout-utils.js +31 -0
  267. package/build/types/legacy/step/externalConfirmationStep/ExternalConfirmationStep.d.ts +1 -1
  268. package/build/types/revamp/domain/components/StepDomainComponent.d.ts +4 -2
  269. package/build/types/revamp/renderers/step/ExternalConfirmationDialog.d.ts +6 -0
  270. package/build/types/revamp/renderers/{StepRenderer.d.ts → step/StepRenderer.d.ts} +1 -1
  271. package/build/types/revamp/renderers/step/useExternal.d.ts +4 -0
  272. package/build/types/revamp/renderers/stepComponentToProps.d.ts +1 -1
  273. package/build/types/revamp/renderers/types.d.ts +3 -0
  274. package/package.json +13 -13
  275. /package/build/types/{legacy/step/externalConfirmationStep/ExternalConfirmationStep.messages.d.ts → common/messages/external-confirmation.messages.d.ts} +0 -0
@@ -0,0 +1,85 @@
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
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
24
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
25
+ if (ar || !(i in from)) {
26
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27
+ ar[i] = from[i];
28
+ }
29
+ }
30
+ return to.concat(ar || Array.prototype.slice.call(from));
31
+ };
32
+ import { jsx as _jsx } from "react/jsx-runtime";
33
+ import { useState } from 'react';
34
+ import { useIntl } from 'react-intl';
35
+ import { DynamicFlowStep } from '../../../../dynamicFlow/DynamicFlowStep';
36
+ import messages from '../../../../../common/messages/repeatable.messages';
37
+ function RepeatableSchemaStep(_a) {
38
+ var type = _a.type, schema = _a.schema, model = _a.model, errors = _a.errors, submitted = _a.submitted, onModelChange = _a.onModelChange, onAction = _a.onAction;
39
+ var formatMessage = useIntl().formatMessage;
40
+ var _b = useState(undefined), filename = _b[0], setFilename = _b[1];
41
+ var step = {
42
+ layout: __spreadArray([
43
+ {
44
+ type: 'form',
45
+ schema: schema.items
46
+ },
47
+ {
48
+ type: 'button',
49
+ control: 'primary',
50
+ action: {
51
+ url: type,
52
+ title: formatMessage(type === 'add' ? messages.addItem : messages.editItem)
53
+ }
54
+ }
55
+ ], (type === 'edit'
56
+ ? [
57
+ {
58
+ type: 'button',
59
+ context: 'negative',
60
+ action: {
61
+ url: 'remove',
62
+ title: formatMessage(messages.removeItem)
63
+ }
64
+ },
65
+ ]
66
+ : []), true),
67
+ title: '',
68
+ actions: [],
69
+ schemas: []
70
+ };
71
+ var onChange = function (props) {
72
+ var metadata = props.metadata, model = props.model, modelChangeProps = __rest(props, ["metadata", "model"]);
73
+ if (schema.items.format === 'base64url' &&
74
+ typeof model === 'string' &&
75
+ typeof (metadata === null || metadata === void 0 ? void 0 : metadata.filename) === 'string') {
76
+ setFilename(metadata.filename);
77
+ }
78
+ onModelChange(__assign(__assign({}, modelChangeProps), { model: model }));
79
+ };
80
+ return (_jsx(DynamicFlowStep, { step: step, model: model, stepLayoutOptions: { displayStepTitle: false }, submitted: submitted, formErrors: errors, globalError: null, onAction: function (action) {
81
+ onAction(action.url, filename);
82
+ setFilename(undefined);
83
+ }, onModelChange: onChange }));
84
+ }
85
+ export default RepeatableSchemaStep;
@@ -0,0 +1,135 @@
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 { getSchemaType, isConstSchema, isNullableStringModel, isObjectModel, isOneOfObjectSchema, } from '../../../../../common/utils';
13
+ import { isString } from '../../../../../common/validators';
14
+ import { getActiveSchemaIndex, getBestMatchingSchemaIndexForValue, } from '../../../../oneOfSchema/utils';
15
+ export var getItemSummaryFromSchema = function (schema, model, defaults, summaryTextOverride) {
16
+ if (defaults === void 0) { defaults = {}; }
17
+ var _a = defaults.defaultTitle, defaultTitle = _a === void 0 ? '' : _a, _b = defaults.defaultDescription, defaultDescription = _b === void 0 ? '' : _b, defaultIcon = defaults.defaultIcon, defaultImage = defaults.defaultImage;
18
+ var title = getSummaryPropFromSchema({
19
+ schema: schema,
20
+ model: model,
21
+ providesProp: 'providesTitle',
22
+ getValueFromSchema: function (schema, model) {
23
+ return summaryTextOverride !== null && summaryTextOverride !== void 0 ? summaryTextOverride : getStringValueFromSchema(schema, model);
24
+ }
25
+ });
26
+ var description = getSummaryPropFromSchema({
27
+ schema: schema,
28
+ model: model,
29
+ providesProp: 'providesDescription',
30
+ getValueFromSchema: function (schema, model) {
31
+ return summaryTextOverride !== null && summaryTextOverride !== void 0 ? summaryTextOverride : getStringValueFromSchema(schema, model);
32
+ }
33
+ });
34
+ var icon = getSummaryPropFromSchema({
35
+ schema: schema,
36
+ model: model,
37
+ providesProp: 'providesIcon',
38
+ getValueFromSchema: function (schema) { var _a; return (_a = schema.icon) !== null && _a !== void 0 ? _a : null; }
39
+ });
40
+ var image = getSummaryPropFromSchema({
41
+ schema: schema,
42
+ model: model,
43
+ providesProp: 'providesImage',
44
+ getValueFromSchema: function (schema) { var _a; return (_a = schema.image) !== null && _a !== void 0 ? _a : null; }
45
+ });
46
+ return {
47
+ value: model,
48
+ title: title || defaultTitle,
49
+ description: description || defaultDescription,
50
+ icon: icon || defaultIcon,
51
+ image: image || defaultImage
52
+ };
53
+ };
54
+ var getSummaryPropFromSchema = function (props) {
55
+ var schema = props.schema, model = props.model, providesProp = props.providesProp, getValueFromSchema = props.getValueFromSchema;
56
+ var type = getSchemaType(schema);
57
+ if (schemaSummaryProvides(schema.summary, providesProp)) {
58
+ return getValueFromSchema(schema, model);
59
+ }
60
+ switch (type) {
61
+ case 'object': {
62
+ return getObjectValueFromSchema(props);
63
+ }
64
+ case 'oneOf': {
65
+ return getOneOfValueFromSchema(props);
66
+ }
67
+ case 'allOf': {
68
+ return getAllOfValueFromSchema(props);
69
+ }
70
+ default:
71
+ return null;
72
+ }
73
+ };
74
+ var getObjectValueFromSchema = function (props) {
75
+ var schema = props.schema, model = props.model;
76
+ var objectSchema = schema;
77
+ // eslint-disable-next-line guard-for-in, no-restricted-syntax
78
+ for (var propertyKey in objectSchema.properties) {
79
+ var propertySchema = objectSchema.properties[propertyKey];
80
+ var propertyModel = isObjectModel(model) && propertyKey in model ? model[propertyKey] : null;
81
+ var result = getSummaryPropFromSchema(__assign(__assign({}, props), { schema: propertySchema, model: propertyModel }));
82
+ if (result) {
83
+ return result;
84
+ }
85
+ }
86
+ return null;
87
+ };
88
+ var getOneOfValueFromSchema = function (props) {
89
+ var schema = props.schema, model = props.model;
90
+ if (isOneOfObjectSchema(schema)) {
91
+ if (!isObjectModel(model)) {
92
+ return null;
93
+ }
94
+ var activeSchemaIndex_1 = getBestMatchingSchemaIndexForValue(schema, model);
95
+ if (activeSchemaIndex_1 === null || activeSchemaIndex_1 < 0) {
96
+ return null;
97
+ }
98
+ var activeSchema = schema.oneOf[activeSchemaIndex_1];
99
+ return getSummaryPropFromSchema(__assign(__assign({}, props), { schema: activeSchema }));
100
+ }
101
+ var oneOfSchema = schema;
102
+ var activeSchemaIndex = getActiveSchemaIndex(oneOfSchema, model);
103
+ if (activeSchemaIndex === null || activeSchemaIndex < 0) {
104
+ return null;
105
+ }
106
+ return getSummaryPropFromSchema(__assign(__assign({}, props), { schema: oneOfSchema.oneOf[activeSchemaIndex] }));
107
+ };
108
+ var getAllOfValueFromSchema = function (props) {
109
+ var schema = props.schema;
110
+ var allOfSchema = schema;
111
+ for (var _i = 0, _a = allOfSchema.allOf; _i < _a.length; _i++) {
112
+ var childSchema = _a[_i];
113
+ var result = getSummaryPropFromSchema(__assign(__assign({}, props), { schema: childSchema }));
114
+ if (result) {
115
+ return result;
116
+ }
117
+ }
118
+ return null;
119
+ };
120
+ var getStringValueFromSchema = function (schema, model) {
121
+ if (isConstSchema(schema)) {
122
+ if (schema.title) {
123
+ return schema.title;
124
+ }
125
+ if (isString(schema["const"])) {
126
+ return schema["const"];
127
+ }
128
+ return null;
129
+ }
130
+ return isNullableStringModel(model) ? model : null;
131
+ };
132
+ var schemaSummaryProvides = function (summary, providesProp) {
133
+ // eslint-disable-next-line prefer-object-has-own, no-implicit-coercion
134
+ return !!summary && Object.hasOwnProperty.call(summary, providesProp) && Boolean(summary[providesProp]);
135
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ArraySchema';
@@ -0,0 +1,111 @@
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, Fragment as _Fragment } from "react/jsx-runtime";
13
+ import classNames from 'classnames';
14
+ import { useEffect, useMemo, useState } from 'react';
15
+ import { generateRandomId } from '../../common/utils';
16
+ import { getValidBasicModelOrNull, getValidationFailures, isNull, isUndefined, } from '../../common/validators';
17
+ import { DynamicAlert } from '../../layout';
18
+ import ControlFeedback from '../controlFeedback';
19
+ import Help from '../help';
20
+ import SchemaFormControl from '../schemaFormControl';
21
+ var isNullish = function (value) {
22
+ return isNull(value) || isUndefined(value);
23
+ };
24
+ var getDefaultValue = function (schema) {
25
+ return schema.type === 'boolean' && isNullish(schema["default"]) ? false : schema["default"];
26
+ };
27
+ var BasicTypeSchema = function (props) {
28
+ var _a, _b, _c;
29
+ var onChange = function (newModel, _type, metadata) {
30
+ setChanged(true);
31
+ setModelAndBroadcast(sanitiseModel(newModel), 'user', metadata);
32
+ };
33
+ var getValidationKeys = function (newModel) {
34
+ return getValidationFailures(newModel, props.schema, props.required);
35
+ }; // TODO: LOW avoid type assertion
36
+ var setModelAndBroadcast = function (newModel, type, metadata) {
37
+ setModel(newModel);
38
+ var validationKeys = getValidationKeys(newModel);
39
+ setValidations(validationKeys);
40
+ var broadcastModel = newModel;
41
+ setLastModel(broadcastModel);
42
+ if (broadcastModel !== lastModel) {
43
+ props.onChange({
44
+ model: broadcastModel,
45
+ triggerSchema: props.schema,
46
+ triggerModel: broadcastModel,
47
+ lastTriggerModel: lastModel,
48
+ type: type,
49
+ metadata: metadata
50
+ });
51
+ }
52
+ };
53
+ var sanitiseModel = function (newModel) {
54
+ return getValidBasicModelOrNull(newModel, props.schema);
55
+ };
56
+ var onFocus = function () { return setFocused(true); };
57
+ var onBlur = function () {
58
+ setFocused(false);
59
+ setBlurred(true);
60
+ if (props.onBlur) {
61
+ props.onBlur();
62
+ }
63
+ };
64
+ var _d = useState((_a = props.model) !== null && _a !== void 0 ? _a : null), model = _d[0], setModel = _d[1];
65
+ var _e = useState((_b = props.model) !== null && _b !== void 0 ? _b : null), lastModel = _e[0], setLastModel = _e[1];
66
+ var _f = useState(false), changed = _f[0], setChanged = _f[1];
67
+ var _g = useState(false), focused = _g[0], setFocused = _g[1];
68
+ var _h = useState(false), blurred = _h[0], setBlurred = _h[1];
69
+ var _j = useState([]), validations = _j[0], setValidations = _j[1];
70
+ var id = useMemo(function () { return props.schema.$id || generateRandomId(); }, [props.schema.$id]);
71
+ var onSchemaChange = function () {
72
+ var defaultValue = getDefaultValue(props.schema);
73
+ // if no model, change to the default, only run this when the schema changes
74
+ if (isNullish(model) && !isNullish(defaultValue)) {
75
+ setModelAndBroadcast(defaultValue, 'init');
76
+ }
77
+ if (props.schema["const"]) {
78
+ setModelAndBroadcast(props.schema["const"], 'init');
79
+ }
80
+ };
81
+ var refreshValidations = function () {
82
+ setValidations(getValidationKeys(model));
83
+ };
84
+ var isConst = props.schema["const"];
85
+ var isHidden = props.schema.hidden || isConst;
86
+ useEffect(refreshValidations, [props.model, props.submitted]);
87
+ useEffect(onSchemaChange, [props.schema]);
88
+ useEffect(function () {
89
+ var _a;
90
+ var newModel = (_a = props.model) !== null && _a !== void 0 ? _a : null;
91
+ if (newModel !== model) {
92
+ setModel(newModel);
93
+ }
94
+ }, [props.model]);
95
+ var formGroupClasses = {
96
+ 'form-group': true,
97
+ 'has-error': ((props.submitted || !changed) && !!props.errors) ||
98
+ ((props.submitted || (changed && blurred)) && !!validations.length),
99
+ 'has-info': !!props.schema.description || !!props.infoMessage
100
+ };
101
+ var showLabel = props.schema.format !== 'file' && props.schema.type !== 'boolean';
102
+ var schemaHelp = props.schema.help;
103
+ var feedbackId = "".concat(id, "-feedback");
104
+ return !isHidden ? (_jsxs(_Fragment, { children: [props.schema.alert && _jsx(DynamicAlert, { component: props.schema.alert }), _jsxs("div", __assign({ className: classNames(formGroupClasses) }, { children: [showLabel && (_jsxs("div", __assign({ className: "d-inline-block m-b-1" }, { children: [_jsx("label", __assign({ className: "control-label d-inline", htmlFor: id }, { children: props.schema.title })), !!schemaHelp && _jsx(Help, { help: schemaHelp })] }))), !showLabel && !!schemaHelp && _jsx(Help, { help: schemaHelp }), _jsx(SchemaFormControl, { id: id, schema: props.schema, value: model, disabled: !!props.disabled, onChange: onChange, onFocus: onFocus, onBlur: onBlur, describedBy: feedbackId }), _jsx(ControlFeedback, { id: feedbackId, changed: changed, focused: focused, blurred: blurred, submitted: props.submitted, errors: (_c = props.errors) !== null && _c !== void 0 ? _c : null, schema: props.schema, validations: validations, infoMessage: props.infoMessage })] }))] })) : null;
105
+ };
106
+ BasicTypeSchema.defaultProps = {
107
+ required: false,
108
+ disabled: false,
109
+ onBlur: null
110
+ };
111
+ export default BasicTypeSchema;
@@ -0,0 +1 @@
1
+ export { default } from './BasicTypeSchema';
@@ -0,0 +1,86 @@
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 { InlineAlert } from '@transferwise/components';
14
+ import { formatDate } from '@transferwise/formatting';
15
+ import { useIntl } from 'react-intl';
16
+ import validationArrayMessages from '../../../common/messages/validation.array.messages';
17
+ import controlFeedbackMessages from '../../../common/messages/validation.messages';
18
+ function ControlFeedback(props) {
19
+ var _a;
20
+ var defaultValidationMessages = useDefaultValidationMessages(props.schema);
21
+ var validationMessages = __assign(__assign(__assign({}, defaultValidationMessages), props.validationMessages), props.schema.validationMessages);
22
+ var isErrorVisible = (props.submitted || !props.changed) && Boolean(props.errors);
23
+ var isValidationVisible = !isErrorVisible &&
24
+ (props.submitted || (props.changed && props.blurred)) &&
25
+ Boolean((_a = props.validations) === null || _a === void 0 ? void 0 : _a.length);
26
+ var isDescriptionVisible = props.schema.description && !isErrorVisible && !isValidationVisible;
27
+ var hasInfoMessage = Boolean(props.infoMessage);
28
+ return (_jsxs("div", __assign({ id: props.id }, { children: [isErrorVisible ? _jsx(InlineAlert, __assign({ type: "error" }, { children: props.errors })) : null, isValidationVisible ? (_jsx(InlineAlert, __assign({ type: "error" }, { children: props.validations.map(function (validation) { return (_jsx("div", { children: validationMessages[validation] }, validation)); }) }))) : null, (isDescriptionVisible || hasInfoMessage) && (_jsxs(InlineAlert, __assign({ type: "info" }, { children: [isDescriptionVisible && _jsx("div", { children: props.schema.description }), hasInfoMessage && _jsx("div", { children: props.infoMessage })] })))] })));
29
+ }
30
+ ControlFeedback.defaultProps = {
31
+ errors: '',
32
+ validations: [],
33
+ validationMessages: {},
34
+ validationAsyncSuccessMessage: null
35
+ };
36
+ // TODO: avoid typre assertions in this function
37
+ function useDefaultValidationMessages(schema) {
38
+ var _a = useIntl(), formatMessage = _a.formatMessage, locale = _a.locale;
39
+ var formattedMessages = {
40
+ type: formatMessage(controlFeedbackMessages.type),
41
+ minimum: formatMessage(controlFeedbackMessages.minimum, {
42
+ minimum: schema.minimum
43
+ }),
44
+ maximum: formatMessage(controlFeedbackMessages.maximum, {
45
+ maximum: schema.maximum
46
+ }),
47
+ minLength: formatMessage(controlFeedbackMessages.minLength, {
48
+ minLength: schema.minLength
49
+ }),
50
+ maxLength: formatMessage(controlFeedbackMessages.maxLength, {
51
+ maxLength: schema.maxLength
52
+ }),
53
+ minItems: formatMessage(validationArrayMessages.minItemsError, {
54
+ minItems: schema.minItems
55
+ }),
56
+ maxItems: formatMessage(validationArrayMessages.maxItemsError, {
57
+ maxItems: schema.maxItems
58
+ }),
59
+ pattern: formatMessage(controlFeedbackMessages.pattern),
60
+ required: formatMessage(controlFeedbackMessages.required)
61
+ };
62
+ if (schema.format === 'date') {
63
+ var dateOverrides = {
64
+ pattern: formatMessage(controlFeedbackMessages.patternDate),
65
+ minimum: schema.minimum
66
+ ? formatMessage(controlFeedbackMessages.minimumDate, {
67
+ minimum: formatDate(new Date(schema.minimum), locale, {
68
+ timeZone: 'UTC',
69
+ dateStyle: 'long'
70
+ })
71
+ })
72
+ : undefined,
73
+ maximum: schema.maximum
74
+ ? formatMessage(controlFeedbackMessages.maximumDate, {
75
+ maximum: formatDate(new Date(schema.maximum), locale, {
76
+ timeZone: 'UTC',
77
+ dateStyle: 'long'
78
+ })
79
+ })
80
+ : undefined
81
+ };
82
+ return __assign(__assign({}, formattedMessages), dateOverrides);
83
+ }
84
+ return formattedMessages;
85
+ }
86
+ export default ControlFeedback;
@@ -0,0 +1 @@
1
+ export { default } from './ControlFeedback';
@@ -0,0 +1,85 @@
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 { createElement as _createElement } from "react";
13
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
14
+ import { useEffect } from 'react';
15
+ import { getSchemaType, isBasicError, isNullableBasicModel, isNullableObjectModel, isNullableArrayModel, isNullableStringModel, isObjectModel, isAllOfSchema, isOneOfSchema, isObjectSchema, isArraySchema, isPersistAsyncSchema, isValidationAsyncSchema, isBasicSchema, isOneOfObjectSchema, } from '../../common/utils';
16
+ import AllOfSchema from '../allOfSchema';
17
+ import ArraySchema from '../arrayTypeSchema';
18
+ import BasicTypeSchema from '../basicTypeSchema';
19
+ import ObjectSchema from '../objectSchema';
20
+ import OneOfSchema from '../oneOfSchema';
21
+ import PersistAsyncSchema from '../persistAsyncSchema';
22
+ import PromotedOneOfSchema from '../promotedOneOfSchema';
23
+ import ReadOnlySchema from '../readOnlySchema';
24
+ import ValidationAsyncSchema from '../validationAsyncSchema';
25
+ import { useLogger } from '../../common/contexts';
26
+ function GenericSchemaForm(props) {
27
+ var schema = props.schema, _a = props.model, model = _a === void 0 ? null : _a, _b = props.errors, errors = _b === void 0 ? null : _b, _c = props.hideTitle, hideTitle = _c === void 0 ? false : _c, _d = props.disabled, disabled = _d === void 0 ? false : _d;
28
+ var schemaProps = __assign(__assign({}, props), { model: model, errors: errors, hideTitle: hideTitle, disabled: disabled });
29
+ var type = getSchemaType(schema);
30
+ var log = useLogger();
31
+ useEffect(function () {
32
+ if (!isValidGenericSchema(schema, model, errors)) {
33
+ log.error('Invalid schema or model', "Schema of type ".concat(type || 'undefined', " requested, but schema did not pass validation."));
34
+ }
35
+ }, [JSON.stringify(schema), JSON.stringify(model), JSON.stringify(errors), type, log]);
36
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
37
+ switch (type) {
38
+ case 'readOnly':
39
+ return _jsx(ReadOnlySchema, __assign({}, schemaProps));
40
+ case 'persistAsync':
41
+ return _jsx(PersistAsyncSchema, __assign({}, schemaProps));
42
+ case 'validationAsync':
43
+ return _jsx(ValidationAsyncSchema, __assign({}, schemaProps));
44
+ case 'basic': {
45
+ var basicTypeProps = __assign({ infoMessage: null }, schemaProps);
46
+ return _jsx(BasicTypeSchema, __assign({}, basicTypeProps));
47
+ }
48
+ case 'object':
49
+ return _createElement(ObjectSchema, __assign({}, schemaProps, { key: JSON.stringify(schema) }));
50
+ case 'array':
51
+ return _jsx(ArraySchema, __assign({}, schemaProps));
52
+ case 'promotedOneOf':
53
+ return _jsx(PromotedOneOfSchema, __assign({}, schemaProps));
54
+ case 'oneOf':
55
+ return _jsx(OneOfSchema, __assign({}, schemaProps));
56
+ case 'allOf':
57
+ return _jsx(AllOfSchema, __assign({}, schemaProps));
58
+ }
59
+ return _jsx(_Fragment, {});
60
+ }
61
+ export default GenericSchemaForm;
62
+ // TODO: MC-3224 - We want to implement proper schema validation
63
+ var isValidGenericSchema = function (schema, model, errors) {
64
+ var type = getSchemaType(schema);
65
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
66
+ switch (type) {
67
+ case 'persistAsync':
68
+ return isPersistAsyncSchema(schema) && isNullableStringModel(model) && isBasicError(errors);
69
+ case 'validationAsync':
70
+ return isValidationAsyncSchema(schema) && isNullableBasicModel(model) && isBasicError(errors);
71
+ case 'basic':
72
+ return isBasicSchema(schema) && isNullableBasicModel(model) && isBasicError(errors);
73
+ case 'object':
74
+ return isObjectSchema(schema) && isNullableObjectModel(model);
75
+ case 'array':
76
+ return isArraySchema(schema) && isNullableArrayModel(model) && isBasicError(errors);
77
+ case 'promotedOneOf':
78
+ return isOneOfObjectSchema(schema) && isNullableObjectModel(model);
79
+ case 'oneOf':
80
+ return isOneOfSchema(schema);
81
+ case 'allOf':
82
+ return isAllOfSchema(schema) && isObjectModel(model);
83
+ }
84
+ return false;
85
+ };
@@ -0,0 +1 @@
1
+ export { default } from './GenericSchema';
@@ -0,0 +1,20 @@
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 { Markdown, Info } from '@transferwise/components';
14
+ import { useIntl } from 'react-intl';
15
+ import helpMessages from '../../../common/messages/help.messages';
16
+ function Help(props) {
17
+ var intl = useIntl();
18
+ return (_jsx(Info, { className: "m-l-1", content: _jsx(Markdown, __assign({ config: { link: { target: '_blank' } } }, { children: props.help.markdown })), presentation: "POPOVER", size: "sm", "aria-label": intl.formatMessage(helpMessages.helpAria) }));
19
+ }
20
+ export default Help;
@@ -0,0 +1 @@
1
+ export { default } from './Help';
@@ -0,0 +1 @@
1
+ export { default } from './JsonSchemaForm';
@@ -0,0 +1,77 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
22
+ import { Header } from '@transferwise/components';
23
+ import classNames from 'classnames';
24
+ import { useState, useEffect } from 'react';
25
+ import { isEqual } from '../../common/utils';
26
+ import { getValidObjectModelParts } from '../../common/validators';
27
+ import { DynamicAlert } from '../../layout';
28
+ import GenericSchema from '../genericSchema';
29
+ var getSchemaColumnClasses = function (width) { return ({
30
+ 'col-xs-12': true,
31
+ 'col-sm-6': width === 'md',
32
+ 'col-sm-4': width === 'sm'
33
+ }); };
34
+ function ObjectSchema(props) {
35
+ var _a = useState(function () { return (__assign({}, getValidObjectModelParts(props.model, props.schema))); }), model = _a[0], setModel = _a[1];
36
+ var onChangeProperty = function (propertyName, onChangeProps) {
37
+ if (onChangeProps.model !== null) {
38
+ // FIXME we should not mutate the model here
39
+ model[propertyName] = onChangeProps.model;
40
+ }
41
+ else {
42
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
43
+ delete model[propertyName];
44
+ }
45
+ setModel(model);
46
+ props.onChange(__assign(__assign({}, onChangeProps), { model: model }));
47
+ };
48
+ var isRequired = function (propertyName) {
49
+ return props.schema.required && props.schema.required.includes(propertyName);
50
+ };
51
+ useEffect(function () {
52
+ // When the schema changes, only retain valid parts of the model
53
+ var newModel = getValidObjectModelParts(model, props.schema) || {};
54
+ setModel(newModel);
55
+ if (!isEqual(newModel, model)) {
56
+ props.onChange({
57
+ model: newModel,
58
+ triggerSchema: props.schema,
59
+ triggerModel: newModel
60
+ });
61
+ }
62
+ }, [props.schema]);
63
+ var allorderedPropertiesSet = new Set(__spreadArray(__spreadArray([], (props.schema.displayOrder || []), true), Object.keys(props.schema.properties), true));
64
+ var isPropertyDefined = function (propertyName) {
65
+ return typeof props.schema.properties[propertyName] !== 'undefined';
66
+ };
67
+ // eslint-disable-next-line unicorn/prefer-spread
68
+ var orderedPropertyNames = Array.from(allorderedPropertiesSet).filter(isPropertyDefined);
69
+ // TODO: LOW avoid type assertion -- what happens when props.errors is not an object?
70
+ var propsErrors = props.errors;
71
+ return (_jsxs(_Fragment, { children: [props.schema.alert && _jsx(DynamicAlert, { component: props.schema.alert }), _jsxs("fieldset", { children: [props.schema.title && !props.hideTitle && (_jsx(Header, { title: props.schema.title, as: "legend" })), props.schema.description && !props.hideTitle && _jsxs("p", { children: [" ", props.schema.description, " "] }), _jsx("div", __assign({ className: "row" }, { children: orderedPropertyNames.map(function (propertyName) { return (_jsx("div", __assign({ className: classNames(getSchemaColumnClasses(props.schema.properties[propertyName].width)) }, { children: _jsx(GenericSchema, { schema: props.schema.properties[propertyName], model: props.model && props.model[propertyName], errors: propsErrors === null || propsErrors === void 0 ? void 0 : propsErrors[propertyName], submitted: props.submitted, required: isRequired(propertyName), disabled: props.disabled, onChange: function (onChangeProps) { return onChangeProperty(propertyName, onChangeProps); }, onPersistAsync: props.onPersistAsync }) }), propertyName)); }) }))] })] }));
72
+ }
73
+ ObjectSchema.defaultProps = {
74
+ hideTitle: false,
75
+ disabled: false
76
+ };
77
+ export default ObjectSchema;
@@ -0,0 +1 @@
1
+ export { default } from './ObjectSchema';