@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,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
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { useEffect, useRef } from 'react';
14
+ import { debounce } from '../../../../common/utils/debounce';
15
+ var captureButtonHeight = 92;
16
+ var reviewButtonsHeight = 120;
17
+ var imageHeight = 40;
18
+ var titleHeight = 32;
19
+ var instructionsHeight = 48;
20
+ var reviewInstructionsHeight = 40;
21
+ var overlayMaxWidth = 800;
22
+ function Overlay(_a) {
23
+ var overlay = _a.overlay, outline = _a.outline, imageUrl = _a.imageUrl, title = _a.title, instructions = _a.instructions, reviewInstructions = _a.reviewInstructions;
24
+ var svgReference = useRef(null);
25
+ /*
26
+ SVG doesn't always rerender when screen orientation changes,
27
+ so need to force rerender
28
+ */
29
+ useEffect(function () {
30
+ var listener = debounce(function () {
31
+ var _a;
32
+ if ((_a = svgReference.current) === null || _a === void 0 ? void 0 : _a.innerHTML) {
33
+ var reference = svgReference.current;
34
+ reference.innerHTML = String(reference.innerHTML);
35
+ }
36
+ }, 100);
37
+ window.addEventListener('resize', listener);
38
+ return function () { return window.removeEventListener('resize', listener); };
39
+ });
40
+ var helperBoxHeight = (imageUrl ? imageHeight : 0) +
41
+ (title ? titleHeight : 0) +
42
+ (instructions ? instructionsHeight : 0);
43
+ var helperBox = (_jsxs(_Fragment, { children: [imageUrl && _jsx("img", { className: "camera-capture-img", src: imageUrl, alt: "" }), title && _jsx("h4", __assign({ className: "camera-capture-title" }, { children: title })), instructions && _jsx("small", __assign({ className: "camera-capture-instructions" }, { children: instructions }))] }));
44
+ var frameBottomMargin = captureButtonHeight + helperBoxHeight;
45
+ /*
46
+ frameBottomMargin needs to stay the same for the review page so that
47
+ the overlay position does not change! Basically if it is the review step
48
+ and there is a 'reviewInstructions' specified, the overlay position stays
49
+ the same, but the helperBox height and content changes to adjust for the
50
+ large review buttons and smaller height required by 'reviewInstructionsHeight'
51
+ */
52
+ if (reviewInstructions) {
53
+ helperBoxHeight = frameBottomMargin - reviewButtonsHeight;
54
+ helperBox = _jsx("small", __assign({ className: "camera-capture-instructions" }, { children: reviewInstructions }));
55
+ var frameWithReviewInstructionsMinBottomMargin = reviewButtonsHeight + reviewInstructionsHeight;
56
+ if (frameBottomMargin < frameWithReviewInstructionsMinBottomMargin) {
57
+ helperBox = _jsx(_Fragment, {});
58
+ }
59
+ }
60
+ var framePosition = {
61
+ x: '50%',
62
+ y: '5%',
63
+ width: "min(90%, ".concat(overlayMaxWidth, "px)"),
64
+ height: "calc(90% - ".concat(frameBottomMargin, "px)"),
65
+ style: { transform: "translateX(max(-45%, -".concat(overlayMaxWidth / 2, "px))") }
66
+ };
67
+ var helperBoxPosition = {
68
+ style: {
69
+ left: '5%',
70
+ top: "calc(100% - ".concat(frameBottomMargin, "px - 5%)"),
71
+ height: "calc(".concat(helperBoxHeight, "px + 5%)"),
72
+ width: '90%'
73
+ }
74
+ };
75
+ return (_jsxs("svg", __assign({ ref: svgReference, xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("defs", { children: _jsxs("mask", __assign({ id: "mask" }, { children: [_jsx("rect", { width: "100%", height: "100%", fill: "#fff" }), _jsx("image", __assign({ href: overlay }, framePosition))] })) }), overlay && _jsx("rect", { width: "100%", height: "100%", mask: "url(#mask)", fillOpacity: "0.72" }), outline && _jsx("image", __assign({ href: outline }, framePosition)), _jsx("foreignObject", __assign({ width: "100%", height: "100%" }, { children: _jsx("div", __assign({ className: "camera-capture-text-and-image-container" }, helperBoxPosition, { children: helperBox })) }))] })));
76
+ }
77
+ export default Overlay;
@@ -0,0 +1,18 @@
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 { Button } from '@transferwise/components';
14
+ function CameraErrorScreen(_a) {
15
+ var title = _a.title, description = _a.description, actionButton = _a.actionButton, onAction = _a.onAction;
16
+ return (_jsx("div", __assign({ className: "container p-t-5" }, { children: _jsx("div", __assign({ className: "row" }, { children: _jsxs("div", __assign({ className: "col-md-6 col-md-offset-3" }, { children: [_jsx("h2", __assign({ className: "text-xs-center m-b-3" }, { children: title })), _jsx("p", __assign({ className: "text-xs-center m-b-5" }, { children: description })), onAction && actionButton && (_jsx(Button, __assign({ block: true, onClick: onAction }, { children: actionButton })))] })) })) })));
17
+ }
18
+ export default CameraErrorScreen;
@@ -0,0 +1 @@
1
+ export { default as CameraErrorScreen } from "./cameraErrorScreen/CameraErrorScreen";
@@ -0,0 +1,109 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { getActiveVideoDeviceLabel, getAvailableVideoDeviceLabels, getVideoCapabilities, getVideoTrack, } from '../utils';
49
+ export var trackCameraError = function (message, onEvent, error) { return onEvent === null || onEvent === void 0 ? void 0 : onEvent(message, { Error: getSerializedError(error) }); };
50
+ var getSerializedError = function (error) {
51
+ return error instanceof DOMException
52
+ ? JSON.stringify({
53
+ name: error === null || error === void 0 ? void 0 : error.name,
54
+ message: error === null || error === void 0 ? void 0 : error.message
55
+ })
56
+ : error;
57
+ };
58
+ export var trackCameraFeedStarted = function (onEvent, props, stream) { return __awaiter(void 0, void 0, void 0, function () { var _a, _b, _c; return __generator(this, function (_d) {
59
+ switch (_d.label) {
60
+ case 0:
61
+ if (!(onEvent === null || onEvent === void 0)) return [3 /*break*/, 1];
62
+ _a = void 0;
63
+ return [3 /*break*/, 3];
64
+ case 1:
65
+ _b = onEvent;
66
+ _c = ['Dynamic Flow - Camera Feed Started'];
67
+ return [4 /*yield*/, getCameraStartedProperties(props, stream)];
68
+ case 2:
69
+ _a = _b.apply(void 0, _c.concat([_d.sent()]));
70
+ _d.label = 3;
71
+ case 3: return [2 /*return*/, _a];
72
+ }
73
+ }); }); };
74
+ var getCameraStartedProperties = function (props, videoStream) { return __awaiter(void 0, void 0, void 0, function () {
75
+ var videoTrack, capabilities, settings, _a, _b, _c, _d;
76
+ var _e;
77
+ var _f;
78
+ return __generator(this, function (_g) {
79
+ switch (_g.label) {
80
+ case 0:
81
+ videoTrack = getVideoTrack(videoStream);
82
+ capabilities = getVideoCapabilities(videoStream);
83
+ settings = (_f = videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.getSettings) === null || _f === void 0 ? void 0 : _f.call(videoTrack);
84
+ _a = [{}];
85
+ _b = videoTrack;
86
+ if (!_b) return [3 /*break*/, 3];
87
+ _e = {};
88
+ _c = 'Available Video Devices (by label)';
89
+ return [4 /*yield*/, getAvailableVideoDeviceLabels()];
90
+ case 1:
91
+ _e[_c] = _g.sent();
92
+ _d = 'Active Video Device (by label)';
93
+ return [4 /*yield*/, getActiveVideoDeviceLabel(videoStream)];
94
+ case 2:
95
+ _b = (_e[_d] = _g.sent(),
96
+ _e['Camera Capabilities'] = capabilities,
97
+ _e['Camera Settings'] = settings,
98
+ _e);
99
+ _g.label = 3;
100
+ case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_b)])), { 'Camera Direction (Asked)': props === null || props === void 0 ? void 0 : props.direction }])];
101
+ }
102
+ });
103
+ }); };
104
+ export var trackCameraOrientationLandscape = function (onEvent) {
105
+ onEvent === null || onEvent === void 0 ? void 0 : onEvent('Dynamic Flow - Camera Orientation Lock Overlay Shown', {});
106
+ };
107
+ export var trackCameraOrientationLocked = function (onEvent) {
108
+ onEvent === null || onEvent === void 0 ? void 0 : onEvent('Dynamic Flow - Camera Orientation Locked', {});
109
+ };
@@ -0,0 +1,7 @@
1
+ export var CameraMode;
2
+ (function (CameraMode) {
3
+ CameraMode["CAPTURE"] = "CAPTURE";
4
+ CameraMode["REVIEW"] = "REVIEW";
5
+ CameraMode["ERROR"] = "ERROR";
6
+ })(CameraMode || (CameraMode = {}));
7
+ ;
@@ -0,0 +1,107 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ /* eslint-disable no-implicit-coercion */
38
+ /* eslint-disable @typescript-eslint/no-unnecessary-condition */
39
+ export var isSelfieCamera = function (stream) {
40
+ var _a;
41
+ var facingMode = (((_a = getVideoTrack(stream)) === null || _a === void 0 ? void 0 : _a.getSettings()) || {}).facingMode;
42
+ // facingMode === undefined for desktop users
43
+ return facingMode === 'user' || facingMode === undefined;
44
+ };
45
+ export var isMainBackCamera = function (deviceInfo) {
46
+ return !!((deviceInfo === null || deviceInfo === void 0 ? void 0 : deviceInfo.label) || '').match(/camera2? 0/g);
47
+ };
48
+ export var generateCanvasFromVideo = function (video) { return __awaiter(void 0, void 0, void 0, function () {
49
+ var canvas, context;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ canvas = document.createElement('canvas');
54
+ if (!video) return [3 /*break*/, 2];
55
+ canvas.setAttribute('height', "".concat(video.videoHeight));
56
+ canvas.setAttribute('width', "".concat(video.videoWidth));
57
+ context = canvas === null || canvas === void 0 ? void 0 : canvas.getContext('2d');
58
+ if (!context) return [3 /*break*/, 2];
59
+ // Timeout is needed for intermittent iOS issue
60
+ return [4 /*yield*/, new Promise(function (resolve) {
61
+ setTimeout(resolve, 100);
62
+ })];
63
+ case 1:
64
+ // Timeout is needed for intermittent iOS issue
65
+ _a.sent();
66
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
67
+ _a.label = 2;
68
+ case 2: return [2 /*return*/, canvas];
69
+ }
70
+ });
71
+ }); };
72
+ export var getAvailableVideoDevices = function () { return __awaiter(void 0, void 0, void 0, function () {
73
+ var _a, _b;
74
+ return __generator(this, function (_c) {
75
+ switch (_c.label) {
76
+ case 0: return [4 /*yield*/, ((_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices) === null || _b === void 0 ? void 0 : _b.call(_a))];
77
+ case 1: return [2 /*return*/, ((_c.sent()) || []).filter(function (deviceInfo) { return deviceInfo.kind === 'videoinput'; })];
78
+ }
79
+ });
80
+ }); };
81
+ export var getAvailableVideoDeviceLabels = function () { return __awaiter(void 0, void 0, void 0, function () {
82
+ var _a, _b;
83
+ return __generator(this, function (_c) {
84
+ switch (_c.label) {
85
+ case 0: return [4 /*yield*/, ((_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices) === null || _b === void 0 ? void 0 : _b.call(_a))];
86
+ case 1: return [2 /*return*/, ((_c.sent()) || [])
87
+ .filter(function (deviceInfo) { return deviceInfo.kind === 'videoinput'; })
88
+ .map(function (deviceInfo) { return deviceInfo.label; })];
89
+ }
90
+ });
91
+ }); };
92
+ export var getActiveVideoDeviceLabel = function (videoStream) { return __awaiter(void 0, void 0, void 0, function () {
93
+ var capabilities;
94
+ var _a, _b, _c;
95
+ return __generator(this, function (_d) {
96
+ switch (_d.label) {
97
+ case 0:
98
+ capabilities = getVideoCapabilities(videoStream);
99
+ return [4 /*yield*/, ((_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.enumerateDevices) === null || _b === void 0 ? void 0 : _b.call(_a))];
100
+ case 1: return [2 /*return*/, (_c = ((_d.sent()) || [])
101
+ .filter(function (deviceInfo) { return deviceInfo.kind === 'videoinput'; })
102
+ .find(function (deviceInfo) { return deviceInfo.deviceId === (capabilities === null || capabilities === void 0 ? void 0 : capabilities.deviceId); })) === null || _c === void 0 ? void 0 : _c.label];
103
+ }
104
+ });
105
+ }); };
106
+ export var getVideoTrack = function (videoStream) { var _a; return (((_a = videoStream === null || videoStream === void 0 ? void 0 : videoStream.getVideoTracks) === null || _a === void 0 ? void 0 : _a.call(videoStream)) || [])[0]; };
107
+ export var getVideoCapabilities = function (videoStream) { var _a, _b; return (_b = (_a = getVideoTrack(videoStream)) === null || _a === void 0 ? void 0 : _a.getCapabilities) === null || _b === void 0 ? void 0 : _b.call(_a); };
@@ -0,0 +1 @@
1
+ export { default } from './CameraStep';
@@ -0,0 +1,64 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useIntl } from 'react-intl';
3
+ import { DynamicLayout } from '../../layout';
4
+ import messages from '../../../common/messages/external-confirmation.messages';
5
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
6
+ var noop = function () { };
7
+ function ExternalConfirmationStep(_a) {
8
+ var url = _a.url, onClose = _a.onClose;
9
+ var formatMessage = useIntl().formatMessage;
10
+ return (_jsx(DynamicLayout, { components: [
11
+ {
12
+ type: 'box',
13
+ width: 'lg',
14
+ components: [
15
+ {
16
+ type: 'heading',
17
+ text: formatMessage(messages.title),
18
+ size: 'lg',
19
+ align: 'center',
20
+ margin: 'xl'
21
+ },
22
+ {
23
+ type: 'info',
24
+ markdown: formatMessage(messages.description, { origin: getOrigin(url) }),
25
+ align: 'center',
26
+ margin: 'xl'
27
+ },
28
+ {
29
+ type: 'box',
30
+ width: 'md',
31
+ components: [
32
+ {
33
+ type: 'button',
34
+ action: { title: formatMessage(messages.open), type: 'primary', url: url, exit: true }
35
+ },
36
+ {
37
+ type: 'button',
38
+ action: {
39
+ title: formatMessage(messages.cancel),
40
+ type: 'link',
41
+ url: '',
42
+ exit: true
43
+ }
44
+ },
45
+ ]
46
+ },
47
+ ]
48
+ },
49
+ ], submitted: false, onAction: function (action) {
50
+ if (action.url) {
51
+ window.open(action.url, '_blank');
52
+ }
53
+ onClose();
54
+ }, onModelChange: noop, onPersistAsync: noop }));
55
+ }
56
+ export default ExternalConfirmationStep;
57
+ function getOrigin(url) {
58
+ try {
59
+ return new URL(url).origin;
60
+ }
61
+ catch (_a) {
62
+ return url;
63
+ }
64
+ }
@@ -0,0 +1 @@
1
+ export { default } from './ExternalConfirmationStep';
@@ -0,0 +1,3 @@
1
+ export { default as LayoutStep } from './layoutStep';
2
+ export { default as CameraStep } from './cameraStep';
3
+ export { default as ExternalConfirmationStep } from './externalConfirmationStep';
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useDynamicFlow, useEventDispatcher } from '../../common/contexts';
3
+ import { useStepPolling } from '../../common/hooks';
4
+ import { isEmpty } from '../../common/validators';
5
+ import { DynamicLayout } from '../../layout';
6
+ import { convertStepToLayout, inlineReferences } from './utils';
7
+ var getComponents = function (step, options) {
8
+ var _a;
9
+ if (isEmpty(step)) {
10
+ return [];
11
+ }
12
+ var layout = convertStepToLayout(step, options);
13
+ return inlineReferences({
14
+ layout: layout,
15
+ schemas: step.schemas || [],
16
+ actions: step.actions || [],
17
+ model: (_a = step.model) !== null && _a !== void 0 ? _a : null
18
+ });
19
+ };
20
+ var LayoutStep = function (props) {
21
+ var stepSpecification = props.stepSpecification, stepLayoutOptions = props.stepLayoutOptions, submitted = props.submitted, model = props.model, formErrors = props.formErrors, onModelChange = props.onModelChange;
22
+ var components = getComponents(stepSpecification, stepLayoutOptions);
23
+ var _a = useDynamicFlow(), loading = _a.loading, registerPersistAsyncPromise = _a.registerPersistAsyncPromise;
24
+ var onEvent = useEventDispatcher();
25
+ var onAction = !loading
26
+ ? props.onAction
27
+ : function () {
28
+ onEvent('Dynamic Flow - onAction supressed', { reason: 'LayoutStep - loading state' });
29
+ };
30
+ useStepPolling(stepSpecification.polling, onAction);
31
+ return (_jsx(DynamicLayout, { components: components, submitted: submitted, model: model, errors: formErrors, onAction: onAction, onModelChange: onModelChange, onPersistAsync: registerPersistAsyncPromise }));
32
+ };
33
+ export default LayoutStep;
@@ -0,0 +1 @@
1
+ export { default } from './LayoutStep';
@@ -0,0 +1,2 @@
1
+ export { convertStepToLayout } from './layout-utils';
2
+ export { inlineReferences } from './inline-reference-utils';
@@ -0,0 +1,105 @@
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 { convertStepActionToDynamicAction } from './layout-utils';
13
+ export function inlineReferences(_a) {
14
+ var layout = _a.layout, schemas = _a.schemas, actions = _a.actions, model = _a.model;
15
+ if (!layout) {
16
+ return [];
17
+ }
18
+ if (!schemas) {
19
+ return layout;
20
+ }
21
+ return layout.map(function (component) {
22
+ if (component.type === 'form') {
23
+ return inlineFormSchema({ formComponent: component, schemas: schemas });
24
+ }
25
+ if (component.type === 'decision') {
26
+ return inlineDecisionActions({ decisionComponent: component, actions: actions });
27
+ }
28
+ if (component.type === 'button') {
29
+ return inlineAction({ actionComponent: component, actions: actions });
30
+ }
31
+ if (component.type === 'box') {
32
+ return __assign(__assign({}, component), { components: inlineReferences({ layout: component.components, schemas: schemas, actions: actions, model: model }) });
33
+ }
34
+ if (component.type === 'modal') {
35
+ return __assign(__assign({}, component), { components: inlineReferences({
36
+ layout: component.content.components,
37
+ schemas: schemas,
38
+ actions: actions,
39
+ model: model
40
+ }) });
41
+ }
42
+ if (component.type === 'columns') {
43
+ return __assign(__assign({}, component), { left: inlineReferences({ layout: component.left, schemas: schemas, actions: actions, model: model }), right: inlineReferences({ layout: component.right, schemas: schemas, actions: actions, model: model }) });
44
+ }
45
+ return component;
46
+ });
47
+ }
48
+ function inlineFormSchema(_a) {
49
+ var formComponent = _a.formComponent, schemas = _a.schemas;
50
+ if (formComponent.schemaId) {
51
+ return {
52
+ type: 'form',
53
+ margin: formComponent.margin,
54
+ schema: getSchemaById(schemas, formComponent.schemaId)
55
+ };
56
+ }
57
+ if (formComponent.schema && isReference(formComponent.schema) && formComponent.schema.$ref) {
58
+ return {
59
+ type: 'form',
60
+ margin: formComponent.margin,
61
+ schema: getSchemaById(schemas, formComponent.schema.$ref)
62
+ };
63
+ }
64
+ if (formComponent.schema && !isReference(formComponent.schema)) {
65
+ return __assign({}, formComponent);
66
+ }
67
+ throw new Error('Invalid form layout component. Missing "schema" or "schemaId" properties.');
68
+ }
69
+ function inlineDecisionActions(_a) {
70
+ var _b;
71
+ var decisionComponent = _a.decisionComponent, actions = _a.actions;
72
+ var newOptions = (_b = decisionComponent === null || decisionComponent === void 0 ? void 0 : decisionComponent.options) === null || _b === void 0 ? void 0 : _b.map(function (option) {
73
+ return option.action && isReference(option.action)
74
+ ? __assign(__assign({}, option), { action: getActionById(actions, option.action.$ref) }) : option;
75
+ });
76
+ return __assign(__assign({}, decisionComponent), { options: newOptions });
77
+ }
78
+ function inlineAction(_a) {
79
+ var _b;
80
+ var actionComponent = _a.actionComponent, actions = _a.actions;
81
+ if (actionComponent.action &&
82
+ isReference(actionComponent.action) &&
83
+ ((_b = actionComponent.action) === null || _b === void 0 ? void 0 : _b.$ref)) {
84
+ var newAction = getActionById(actions, actionComponent.action.$ref);
85
+ return convertStepActionToDynamicAction(newAction);
86
+ }
87
+ return actionComponent;
88
+ }
89
+ function getSchemaById(schemas, id) {
90
+ var schema = schemas.find(function (schema) { return schema.$id === id; });
91
+ if (!schema) {
92
+ throw new Error("Fatal Error. Schema not found. $id ".concat(id));
93
+ }
94
+ return schema;
95
+ }
96
+ function getActionById(actions, id) {
97
+ var action = actions.find(function (action) { return action.$id === id; });
98
+ if (!action) {
99
+ throw new Error("Fatal Error. Action not found. $id ".concat(id));
100
+ }
101
+ return action;
102
+ }
103
+ function isReference(block) {
104
+ return Object.hasOwnProperty.call(block, '$ref');
105
+ }