@wise/dynamic-flow-client 5.9.0 → 5.9.2-logging-bf0bd22

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 (413) hide show
  1. package/build/main.js +41 -44
  2. package/build/main.mjs +41 -44
  3. package/build/types/domain/components/step/StepDomainComponent.d.ts +2 -1
  4. package/build/types/domain/components/step/StepDomainComponent.d.ts.map +1 -1
  5. package/build/types/domain/mappers/mapStepSchemas.d.ts +1 -1
  6. package/build/types/domain/mappers/mapStepSchemas.d.ts.map +1 -1
  7. package/build/types/domain/mappers/mapStepToComponent.d.ts.map +1 -1
  8. package/build/types/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.d.ts +1 -531
  9. package/build/types/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.d.ts.map +1 -1
  10. package/build/types/domain/mappers/schema/persistAsyncSchemaToComponent.d.ts +0 -16
  11. package/build/types/domain/mappers/schema/persistAsyncSchemaToComponent.d.ts.map +1 -1
  12. package/build/types/domain/types.d.ts +0 -1
  13. package/build/types/domain/types.d.ts.map +1 -1
  14. package/build/types/renderers/mappers/selectInputComponentToProps.d.ts +2 -2
  15. package/build/types/renderers/mappers/selectInputComponentToProps.d.ts.map +1 -1
  16. package/package.json +20 -19
  17. package/build/DynamicFlowCore.js +0 -5
  18. package/build/common/errorBoundary/ErrorBoundary.js +0 -26
  19. package/build/common/errorBoundary/ErrorBoundary.test.js +0 -29
  20. package/build/common/errorBoundary/ErrorBoundaryAlert.js +0 -11
  21. package/build/common/makeHttpClient/api-utils.js +0 -3
  22. package/build/common/makeHttpClient/index.js +0 -1
  23. package/build/common/makeHttpClient/makeHttpClient.js +0 -10
  24. package/build/common/makeHttpClient/makeHttpClient.test.js +0 -186
  25. package/build/common/messages/external-confirmation.messages.js +0 -23
  26. package/build/common/messages/file-upload.messages.js +0 -13
  27. package/build/common/messages/generic-error.messages.js +0 -18
  28. package/build/common/messages/help.messages.js +0 -8
  29. package/build/common/messages/multi-file-upload.messages.js +0 -18
  30. package/build/common/messages/multi-select.messages.js +0 -8
  31. package/build/common/messages/paragraph.messages.js +0 -13
  32. package/build/common/messages/repeatable.messages.js +0 -23
  33. package/build/common/messages/search.messages.js +0 -8
  34. package/build/common/messages/validation.array.messages.js +0 -13
  35. package/build/common/messages/validation.messages.js +0 -53
  36. package/build/controller/FlowController.js +0 -368
  37. package/build/controller/executePoll.js +0 -49
  38. package/build/controller/executeRefresh.js +0 -39
  39. package/build/controller/executeRequest.js +0 -77
  40. package/build/controller/executeSubmission.js +0 -69
  41. package/build/controller/getErrorMessage.js +0 -7
  42. package/build/controller/getRequestAbortController.js +0 -13
  43. package/build/controller/getResponseType.js +0 -35
  44. package/build/controller/getSafeHttpClient.js +0 -8
  45. package/build/controller/getStepCounter.js +0 -16
  46. package/build/controller/handleErrorResponse.js +0 -26
  47. package/build/controller/makeSafeHttpClient.js +0 -8
  48. package/build/controller/response-utils.js +0 -72
  49. package/build/domain/components/AlertComponent.js +0 -1
  50. package/build/domain/components/AllOfComponent.js +0 -40
  51. package/build/domain/components/BooleanInputComponent.js +0 -50
  52. package/build/domain/components/BoxComponent.js +0 -3
  53. package/build/domain/components/ButtonComponent.js +0 -1
  54. package/build/domain/components/ColumnsComponent.js +0 -3
  55. package/build/domain/components/ConstComponent.js +0 -18
  56. package/build/domain/components/ContainerComponent.js +0 -3
  57. package/build/domain/components/DateInputComponent.js +0 -75
  58. package/build/domain/components/DecisionComponent.js +0 -1
  59. package/build/domain/components/DividerComponent.js +0 -1
  60. package/build/domain/components/FormComponent.js +0 -3
  61. package/build/domain/components/FormattedValueComponent.js +0 -44
  62. package/build/domain/components/HeadingComponent.js +0 -1
  63. package/build/domain/components/ImageComponent.js +0 -1
  64. package/build/domain/components/InstructionsComponent.js +0 -1
  65. package/build/domain/components/IntegerInputComponent.js +0 -74
  66. package/build/domain/components/ListComponent.js +0 -1
  67. package/build/domain/components/LoadingIndicatorComponent.js +0 -1
  68. package/build/domain/components/MarkdownComponent.js +0 -1
  69. package/build/domain/components/MediaComponent.js +0 -1
  70. package/build/domain/components/ModalComponent.js +0 -16
  71. package/build/domain/components/ModalLayoutComponent.js +0 -3
  72. package/build/domain/components/MoneyInputComponent.js +0 -57
  73. package/build/domain/components/MultiSelectInputComponent.js +0 -81
  74. package/build/domain/components/MultiUploadInputComponent.js +0 -88
  75. package/build/domain/components/NumberInputComponent.js +0 -73
  76. package/build/domain/components/ObjectComponent.js +0 -45
  77. package/build/domain/components/ParagraphComponent.js +0 -1
  78. package/build/domain/components/PersistAsyncComponent.js +0 -92
  79. package/build/domain/components/ProgressComponent.js +0 -1
  80. package/build/domain/components/RepeatableComponent.js +0 -103
  81. package/build/domain/components/ReviewComponent.js +0 -1
  82. package/build/domain/components/RootDomainComponent.js +0 -173
  83. package/build/domain/components/SectionComponent.js +0 -5
  84. package/build/domain/components/SelectInputComponent.js +0 -88
  85. package/build/domain/components/StatusListComponent.js +0 -1
  86. package/build/domain/components/SubflowDomainComponent.js +0 -9
  87. package/build/domain/components/TabsComponent.js +0 -1
  88. package/build/domain/components/TextInputComponent.js +0 -76
  89. package/build/domain/components/TupleComponent.js +0 -41
  90. package/build/domain/components/UploadInputComponent.js +0 -83
  91. package/build/domain/components/UpsellComponent.js +0 -25
  92. package/build/domain/components/searchComponent/SearchComponent.js +0 -92
  93. package/build/domain/components/searchComponent/SearchComponent.test.js +0 -190
  94. package/build/domain/components/step/ExternalConfirmationComponent.js +0 -28
  95. package/build/domain/components/step/StepDomainComponent.js +0 -73
  96. package/build/domain/components/step/ToolbarComponent.js +0 -1
  97. package/build/domain/components/utils/WithUpdate.js +0 -1
  98. package/build/domain/components/utils/component-utils.js +0 -12
  99. package/build/domain/components/utils/debounce.js +0 -34
  100. package/build/domain/components/utils/debounce.test.js +0 -67
  101. package/build/domain/components/utils/file-utils.js +0 -21
  102. package/build/domain/components/utils/file-utils.test.js +0 -27
  103. package/build/domain/components/utils/getRandomId.js +0 -1
  104. package/build/domain/components/utils/isExactLocalValueMatch.js +0 -14
  105. package/build/domain/components/utils/isOrWasValid.js +0 -5
  106. package/build/domain/components/utils/isPartialModelMatch.js +0 -18
  107. package/build/domain/components/utils/isPartialModelMatch.test.js +0 -74
  108. package/build/domain/features/eventNames.js +0 -24
  109. package/build/domain/features/events.js +0 -1
  110. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +0 -50
  111. package/build/domain/features/persistAsync/getInitialPersistedState.js +0 -7
  112. package/build/domain/features/persistAsync/getPerformPersistAsync.js +0 -43
  113. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +0 -139
  114. package/build/domain/features/polling/getStepPolling.js +0 -43
  115. package/build/domain/features/polling/getStepPolling.test.js +0 -90
  116. package/build/domain/features/prefetch/getStepPrefetch.js +0 -43
  117. package/build/domain/features/prefetch/request-cache.js +0 -49
  118. package/build/domain/features/prefetch/request-cache.test.js +0 -70
  119. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +0 -24
  120. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +0 -40
  121. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +0 -50
  122. package/build/domain/features/schema-on-change/getSchemaOnChange.js +0 -34
  123. package/build/domain/features/search/getPerformSearchFunction.js +0 -75
  124. package/build/domain/features/search/getPerformSearchFunction.test.js +0 -301
  125. package/build/domain/features/summary/summary-utils.js +0 -40
  126. package/build/domain/features/summary/summary-utils.test.js +0 -125
  127. package/build/domain/features/utils/http-utils.js +0 -21
  128. package/build/domain/features/utils/response-utils.js +0 -9
  129. package/build/domain/features/validation/spec-utils.js +0 -19
  130. package/build/domain/features/validation/validateStringPattern.js +0 -24
  131. package/build/domain/features/validation/validation-functions.js +0 -6
  132. package/build/domain/features/validation/validation-functions.test.js +0 -108
  133. package/build/domain/features/validation/value-checks.js +0 -125
  134. package/build/domain/features/validation/value-checks.test.js +0 -262
  135. package/build/domain/features/validationAsync/getComponentValidationAsync.js +0 -53
  136. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +0 -67
  137. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +0 -5
  138. package/build/domain/features/validationAsync/getPerformValidationAsync.js +0 -45
  139. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +0 -143
  140. package/build/domain/mappers/layout/alertLayoutToComponent.js +0 -16
  141. package/build/domain/mappers/layout/boxLayoutToComponent.js +0 -13
  142. package/build/domain/mappers/layout/buttonLayoutToComponent.js +0 -77
  143. package/build/domain/mappers/layout/columnsLayoutToComponent.js +0 -13
  144. package/build/domain/mappers/layout/decisionLayoutToComponent.js +0 -22
  145. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +0 -30
  146. package/build/domain/mappers/layout/dividerLayoutToComponent.js +0 -2
  147. package/build/domain/mappers/layout/formLayoutToComponent.js +0 -19
  148. package/build/domain/mappers/layout/headingLayoutToComponent.js +0 -12
  149. package/build/domain/mappers/layout/imageLayoutToComponent.js +0 -20
  150. package/build/domain/mappers/layout/infoLayoutToComponent.js +0 -12
  151. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +0 -12
  152. package/build/domain/mappers/layout/listLayoutToComponent.js +0 -39
  153. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +0 -9
  154. package/build/domain/mappers/layout/markdownLayoutToComponent.js +0 -12
  155. package/build/domain/mappers/layout/mediaLayoutToComponent.js +0 -12
  156. package/build/domain/mappers/layout/modalLayoutToComponent.js +0 -17
  157. package/build/domain/mappers/layout/modalToComponent.js +0 -8
  158. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +0 -12
  159. package/build/domain/mappers/layout/progressLayoutToComponent.js +0 -15
  160. package/build/domain/mappers/layout/reviewLayoutToComponent.js +0 -48
  161. package/build/domain/mappers/layout/searchLayoutToComponent.js +0 -44
  162. package/build/domain/mappers/layout/sectionLayoutToComponent.js +0 -15
  163. package/build/domain/mappers/layout/statusListLayoutToComponent.js +0 -15
  164. package/build/domain/mappers/layout/tabsLayoutToComponent.js +0 -16
  165. package/build/domain/mappers/layout/upsellLayoutToComponent.js +0 -25
  166. package/build/domain/mappers/mapLayoutToComponent.js +0 -81
  167. package/build/domain/mappers/mapSchemaToComponent.js +0 -61
  168. package/build/domain/mappers/mapSchemaToComponent.test.js +0 -112
  169. package/build/domain/mappers/mapStepSchemas.js +0 -17
  170. package/build/domain/mappers/mapStepToComponent.js +0 -132
  171. package/build/domain/mappers/mapStepToComponent.test.js +0 -221
  172. package/build/domain/mappers/mapToolbarToComponent.js +0 -15
  173. package/build/domain/mappers/schema/allOfSchemaToComponent.js +0 -16
  174. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +0 -26
  175. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +0 -55
  176. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +0 -67
  177. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +0 -57
  178. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +0 -20
  179. package/build/domain/mappers/schema/blobSchemaToComponent.js +0 -15
  180. package/build/domain/mappers/schema/booleanSchemaToComponent.js +0 -29
  181. package/build/domain/mappers/schema/constSchemaToComponent.js +0 -23
  182. package/build/domain/mappers/schema/integerSchemaToComponent.js +0 -28
  183. package/build/domain/mappers/schema/numberSchemaToComponent.js +0 -26
  184. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +0 -23
  185. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +0 -9
  186. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +0 -119
  187. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +0 -96
  188. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +0 -31
  189. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +0 -99
  190. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +0 -76
  191. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +0 -265
  192. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +0 -29
  193. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +0 -18
  194. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +0 -133
  195. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToDateInputComponent.js +0 -48
  196. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +0 -37
  197. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +0 -28
  198. package/build/domain/mappers/schema/tests/test-utils.js +0 -16
  199. package/build/domain/mappers/schema/types.js +0 -1
  200. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +0 -19
  201. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +0 -23
  202. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +0 -16
  203. package/build/domain/mappers/types.js +0 -1
  204. package/build/domain/mappers/utils/FeatureFlags.js +0 -22
  205. package/build/domain/mappers/utils/behavior-utils.js +0 -44
  206. package/build/domain/mappers/utils/call-to-action-utils.js +0 -21
  207. package/build/domain/mappers/utils/getAutocompleteString.js +0 -76
  208. package/build/domain/mappers/utils/getAutocompleteString.test.js +0 -21
  209. package/build/domain/mappers/utils/groupLayoutByPinned.js +0 -38
  210. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +0 -166
  211. package/build/domain/mappers/utils/image.js +0 -9
  212. package/build/domain/mappers/utils/layout-utils.js +0 -11
  213. package/build/domain/mappers/utils/legacy-utils.js +0 -49
  214. package/build/domain/mappers/utils/media-utils.js +0 -14
  215. package/build/domain/mappers/utils/suggestions-utils.js +0 -26
  216. package/build/domain/mappers/utils/suggestions-utils.test.js +0 -36
  217. package/build/domain/mappers/utils/tags-utils.js +0 -1
  218. package/build/domain/mappers/utils/utils.js +0 -35
  219. package/build/domain/types.js +0 -1
  220. package/build/getSubflowCallbacks.js +0 -38
  221. package/build/i18n/index.js +0 -40
  222. package/build/index.js +0 -8
  223. package/build/renderers/CoreContainerRenderer.js +0 -5
  224. package/build/renderers/CoreRootRenderer.js +0 -12
  225. package/build/renderers/EmptyLoadingStateRenderer.js +0 -5
  226. package/build/renderers/getRenderFunction.js +0 -24
  227. package/build/renderers/getSchemaErrorMessageFunction.js +0 -97
  228. package/build/renderers/mappers/alertComponentToProps.js +0 -2
  229. package/build/renderers/mappers/allOfComponentToProps.js +0 -6
  230. package/build/renderers/mappers/booleanInputComponentToProps.js +0 -5
  231. package/build/renderers/mappers/boxComponentToProps.js +0 -13
  232. package/build/renderers/mappers/buttonComponentToProps.js +0 -4
  233. package/build/renderers/mappers/columnsComponentToProps.js +0 -11
  234. package/build/renderers/mappers/componentToRendererProps.js +0 -164
  235. package/build/renderers/mappers/constComponentToProps.js +0 -5
  236. package/build/renderers/mappers/containerComponentToProps.js +0 -7
  237. package/build/renderers/mappers/dateInputComponentToProps.js +0 -2
  238. package/build/renderers/mappers/decisionComponentToProps.js +0 -16
  239. package/build/renderers/mappers/dividerComponentToProps.js +0 -2
  240. package/build/renderers/mappers/externalComponentToProps.js +0 -3
  241. package/build/renderers/mappers/formComponentToProps.js +0 -12
  242. package/build/renderers/mappers/formattedValueComponentToProps.js +0 -5
  243. package/build/renderers/mappers/headingComponentToProps.js +0 -2
  244. package/build/renderers/mappers/hiddenComponentToProps.js +0 -4
  245. package/build/renderers/mappers/imageComponentToProps.js +0 -2
  246. package/build/renderers/mappers/instructionsComponentToProps.js +0 -2
  247. package/build/renderers/mappers/integerInputComponentToProps.js +0 -2
  248. package/build/renderers/mappers/listComponentToProps.js +0 -2
  249. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +0 -2
  250. package/build/renderers/mappers/markdownComponentToProps.js +0 -2
  251. package/build/renderers/mappers/mediaComponentToProps.js +0 -2
  252. package/build/renderers/mappers/modalComponentToProps.js +0 -11
  253. package/build/renderers/mappers/modalLayoutComponentToProps.js +0 -16
  254. package/build/renderers/mappers/moneyInputComponentToProps.js +0 -36
  255. package/build/renderers/mappers/multiSelectComponentToProps.js +0 -23
  256. package/build/renderers/mappers/multiUploadInputComponentToProps.js +0 -12
  257. package/build/renderers/mappers/numberInputComponentToProps.js +0 -2
  258. package/build/renderers/mappers/objectComponentToProps.js +0 -8
  259. package/build/renderers/mappers/paragraphComponentToProps.js +0 -2
  260. package/build/renderers/mappers/persistAsyncComponentToProps.js +0 -8
  261. package/build/renderers/mappers/progressComponentToProps.js +0 -2
  262. package/build/renderers/mappers/repeatableComponentToProps.js +0 -30
  263. package/build/renderers/mappers/reviewComponentToProps.js +0 -2
  264. package/build/renderers/mappers/rootComponentToProps.js +0 -21
  265. package/build/renderers/mappers/searchComponentToProps.js +0 -57
  266. package/build/renderers/mappers/sectionComponentToProps.js +0 -6
  267. package/build/renderers/mappers/selectInputComponentToProps.js +0 -26
  268. package/build/renderers/mappers/statusListComponentToProps.js +0 -2
  269. package/build/renderers/mappers/subflowComponentToRendererProps.js +0 -4
  270. package/build/renderers/mappers/tabsComponentToProps.js +0 -14
  271. package/build/renderers/mappers/textInputComponentToProps.js +0 -2
  272. package/build/renderers/mappers/tupleComponentToProps.js +0 -8
  273. package/build/renderers/mappers/uploadInputComponentToProps.js +0 -8
  274. package/build/renderers/mappers/upsellComponentToProps.js +0 -2
  275. package/build/renderers/mappers/utils/getValidationState.js +0 -12
  276. package/build/renderers/mappers/utils/inputComponentToProps.js +0 -26
  277. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +0 -9
  278. package/build/renderers/mappers/utils/pick.js +0 -8
  279. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +0 -11
  280. package/build/renderers/stepComponentToProps.js +0 -32
  281. package/build/renderers/utils.js +0 -69
  282. package/build/renderers/utils.test.js +0 -70
  283. package/build/stories/dev-tools/ContainerQueries.story.js +0 -66
  284. package/build/stories/dev-tools/Debugger.story.js +0 -38
  285. package/build/stories/dev-tools/FixtureSelect.story.js +0 -23
  286. package/build/stories/dev-tools/TestServer.story.js +0 -32
  287. package/build/stories/examples/NativeFlow.story.js +0 -80
  288. package/build/stories/examples/Recipients.story.js +0 -568
  289. package/build/stories/spec/behavior/Copy.story.js +0 -59
  290. package/build/stories/spec/behavior/Modal.story.js +0 -76
  291. package/build/stories/spec/behavior/Subflow.story.js +0 -267
  292. package/build/stories/spec/layouts/Decision.story.js +0 -241
  293. package/build/stories/spec/layouts/Image.story.js +0 -42
  294. package/build/stories/spec/layouts/Modal.story.js +0 -81
  295. package/build/stories/spec/layouts/Search.story.js +0 -325
  296. package/build/stories/spec/layouts/Upsell.story.js +0 -55
  297. package/build/stories/spec/layouts/button/Button.story.js +0 -100
  298. package/build/stories/spec/layouts/button/PinnedButton.story.js +0 -81
  299. package/build/stories/spec/response/ActionResponse.story.js +0 -66
  300. package/build/stories/spec/schemas/MultiSelect.story.js +0 -148
  301. package/build/stories/spec/schemas/Upload.story.js +0 -168
  302. package/build/stories/spec/schemas/const/ConstLayout.story.js +0 -159
  303. package/build/stories/spec/schemas/const/ObjectConst.story.js +0 -94
  304. package/build/stories/spec/schemas/features/PersistAsync.story.js +0 -176
  305. package/build/stories/spec/schemas/features/ValidationAsync.story.js +0 -103
  306. package/build/stories/spec/schemas/object/FormattedValue.story.js +0 -92
  307. package/build/stories/spec/schemas/object/MoneyInput.story.js +0 -240
  308. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +0 -55
  309. package/build/stories/spec/step/Controls.story.js +0 -109
  310. package/build/stories/spec/step/DFModal.story.js +0 -58
  311. package/build/stories/spec/step/Footer.story.js +0 -70
  312. package/build/stories/spec/step/Navigation.story.js +0 -20
  313. package/build/stories/spec/step/Tags.story.js +0 -39
  314. package/build/stories/spec/step/ToolBar.story.js +0 -60
  315. package/build/stories/spec/step/features/ErrorHandling.story.js +0 -92
  316. package/build/stories/spec/step/features/External.story.js +0 -44
  317. package/build/stories/spec/step/features/Polling.story.js +0 -108
  318. package/build/stories/spec/step/features/RefreshAfter.story.js +0 -92
  319. package/build/stories/spec/step/features/refresh/Refresh.story.js +0 -258
  320. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +0 -958
  321. package/build/stories/types.js +0 -1
  322. package/build/stories/utils/fixtureHttpClient.js +0 -70
  323. package/build/stories/utils/getBasicStep.js +0 -223
  324. package/build/stories/utils/mockSearchHandler.js +0 -71
  325. package/build/stories/utils/render-utils.js +0 -41
  326. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +0 -17
  327. package/build/test-utils/DynamicFlowWise.js +0 -32
  328. package/build/test-utils/DynamicFlowWiseModal.js +0 -34
  329. package/build/test-utils/NeptuneProviders.js +0 -11
  330. package/build/test-utils/component-utils.js +0 -5
  331. package/build/test-utils/fetch-utils.js +0 -45
  332. package/build/test-utils/getMergedTestRenderers.js +0 -34
  333. package/build/test-utils/getRandomId.js +0 -1
  334. package/build/test-utils/index.js +0 -3
  335. package/build/test-utils/rtl-utils.js +0 -7
  336. package/build/test-utils/step-utils.js +0 -6
  337. package/build/test-utils/wait.js +0 -3
  338. package/build/tests/AlertLayout.test.js +0 -78
  339. package/build/tests/ArrayTuple.test.js +0 -118
  340. package/build/tests/ButtonLayout.test.js +0 -308
  341. package/build/tests/ConstLayout.test.js +0 -95
  342. package/build/tests/DateInput.test.js +0 -163
  343. package/build/tests/DecisionLayout.test.js +0 -146
  344. package/build/tests/DynamicFlow.test.js +0 -147
  345. package/build/tests/External.test.js +0 -169
  346. package/build/tests/Flow.test.js +0 -328
  347. package/build/tests/FormLayout.test.js +0 -28
  348. package/build/tests/FormattedValue.test.js +0 -107
  349. package/build/tests/ImageRenderer.test.js +0 -78
  350. package/build/tests/InitialAction.test.js +0 -179
  351. package/build/tests/InitialStep.test.js +0 -168
  352. package/build/tests/InstructionsLayout.test.js +0 -45
  353. package/build/tests/ListLayout.test.js +0 -145
  354. package/build/tests/Logging.test.js +0 -53
  355. package/build/tests/ModalBehavior.test.js +0 -149
  356. package/build/tests/MoneyInput.test.js +0 -316
  357. package/build/tests/MultiUpload.test.js +0 -293
  358. package/build/tests/NativeBack.test.js +0 -267
  359. package/build/tests/OneOfInitialisation.test.js +0 -571
  360. package/build/tests/PersistAsync.test.js +0 -653
  361. package/build/tests/Polling.test.js +0 -617
  362. package/build/tests/Prefetching.test.js +0 -230
  363. package/build/tests/RefreshAfter.test.js +0 -63
  364. package/build/tests/RefreshOnChange.ResponseHandling.test.js +0 -205
  365. package/build/tests/RefreshOnChange.test.js +0 -233
  366. package/build/tests/RefreshOnChange.with.Segmented.test.js +0 -348
  367. package/build/tests/RefreshOnChange.with.Tabs.test.js +0 -358
  368. package/build/tests/RefreshOnChangePreserve.test.js +0 -224
  369. package/build/tests/RendererProps.test.js +0 -342
  370. package/build/tests/Repeatable.test.js +0 -107
  371. package/build/tests/Rerendering.test.js +0 -67
  372. package/build/tests/ReviewLayout.test.js +0 -274
  373. package/build/tests/SchemaOnChange.test.js +0 -133
  374. package/build/tests/ScrollToError.test.js +0 -217
  375. package/build/tests/SegmentedControl.test.js +0 -49
  376. package/build/tests/SingleFileUpload.test.js +0 -88
  377. package/build/tests/StatusList.test.js +0 -85
  378. package/build/tests/Subflow.test.js +0 -710
  379. package/build/tests/Submission.ResponseHandling.test.js +0 -557
  380. package/build/tests/Submission.merging.test.js +0 -202
  381. package/build/tests/Submission.test.js +0 -523
  382. package/build/tests/Tags.test.js +0 -475
  383. package/build/tests/Upsell.test.js +0 -126
  384. package/build/tests/ValidationAsync.test.js +0 -295
  385. package/build/tests/legacy/Actions.test.js +0 -158
  386. package/build/tests/legacy/BackButton.test.js +0 -114
  387. package/build/tests/legacy/HiddenSchemas.test.js +0 -246
  388. package/build/tests/legacy/MultiSelect.test.js +0 -497
  389. package/build/tests/legacy/MultipleFileUploadSchema.test.js +0 -341
  390. package/build/tests/legacy/PersistAsync.blob-schema.test.js +0 -224
  391. package/build/tests/legacy/PersistAsync.string-schema.test.js +0 -211
  392. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +0 -209
  393. package/build/tests/legacy/RefreshStepOnChange.test.js +0 -424
  394. package/build/tests/legacy/Search.test.js +0 -437
  395. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +0 -58
  396. package/build/tests/renderers/SelectInputRendererProps.test.js +0 -42
  397. package/build/tests/renderers/TextInputRenderer.test.js +0 -51
  398. package/build/types.js +0 -1
  399. package/build/useDynamicFlow.js +0 -104
  400. package/build/useDynamicFlowModal.js +0 -58
  401. package/build/utils/analyse-step.js +0 -14
  402. package/build/utils/component-utils.js +0 -8
  403. package/build/utils/component-utils.test.js +0 -113
  404. package/build/utils/getScrollToTop.js +0 -12
  405. package/build/utils/normalise-flow-id.js +0 -1
  406. package/build/utils/normalise-flow-id.test.js +0 -24
  407. package/build/utils/openLinkInNewTab.js +0 -10
  408. package/build/utils/recursiveMerge.js +0 -40
  409. package/build/utils/recursiveMerge.test.js +0 -93
  410. package/build/utils/type-utils.js +0 -21
  411. package/build/utils/type-validators.js +0 -11
  412. package/build/utils/type-validators.test.js +0 -180
  413. package/build/utils/useStableCallback.js +0 -15
@@ -1,265 +0,0 @@
1
- import { getMockMapperProps, getMockSchemaMapperProps } from '../tests/test-utils';
2
- import { oneOfSchemaToComponent } from './oneOfSchemaToComponent';
3
- describe('oneOfSchemaToComponent', () => {
4
- describe('initial model handling', () => {
5
- describe('when initial model is null', () => {
6
- it('sets component value to null', async () => {
7
- const schemaMapperProps = getMockSchemaMapperProps({
8
- schema: {
9
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
10
- },
11
- model: null,
12
- });
13
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
14
- expect(await component.getSubmittableValue()).toBeNull();
15
- });
16
- });
17
- });
18
- describe('when a default is provided', () => {
19
- it('initialises the value to the default', async () => {
20
- const schemaMapperProps = getMockSchemaMapperProps({
21
- schema: {
22
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
23
- default: 'USD',
24
- },
25
- model: null,
26
- });
27
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
28
- expect(await component.getSubmittableValue()).toBe('USD');
29
- });
30
- });
31
- describe('when initial model is defined', () => {
32
- it('sets the component value to the initial model', async () => {
33
- const schemaMapperProps = getMockSchemaMapperProps({
34
- schema: {
35
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
36
- },
37
- model: 'USD',
38
- });
39
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
40
- expect(await component.getSubmittableValue()).toBe('USD');
41
- });
42
- });
43
- describe('when a default and a model are provided', () => {
44
- it('prefers the model over the default', async () => {
45
- const schemaMapperProps = getMockSchemaMapperProps({
46
- schema: {
47
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
48
- default: 'EUR',
49
- },
50
- model: 'USD',
51
- });
52
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
53
- expect(await component.getSubmittableValue()).toBe('USD');
54
- });
55
- });
56
- describe('initial validation error handling', () => {
57
- it('sets the initial error if provided', () => {
58
- const schemaMapperProps = getMockSchemaMapperProps({
59
- schema: {
60
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
61
- },
62
- model: null,
63
- validationErrors: 'You must select a currency',
64
- });
65
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
66
- expect(component.errors).toEqual(['You must select a currency']);
67
- });
68
- });
69
- describe('validation checks', () => {
70
- describe('when required is true but the model is null', () => {
71
- it('fails validation', () => {
72
- const schemaMapperProps = Object.assign(Object.assign({}, getMockSchemaMapperProps({
73
- schema: {
74
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
75
- },
76
- model: null,
77
- })), { required: true });
78
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
79
- expect(component.validate()).toBe(false);
80
- expect(component.errors).toStrictEqual(['required']);
81
- });
82
- });
83
- describe('when required is true but the model is not null', () => {
84
- it('passes validation', () => {
85
- const schemaMapperProps = Object.assign(Object.assign({}, getMockSchemaMapperProps({
86
- schema: {
87
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
88
- },
89
- model: 'EUR',
90
- })), { required: true });
91
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
92
- expect(component.validate()).toBe(true);
93
- });
94
- });
95
- });
96
- describe('analytics', () => {
97
- describe('when selecting an option that is a const schema', () => {
98
- it('triggers an event', () => {
99
- const schemaMapperProps = getMockSchemaMapperProps({
100
- schema: {
101
- analyticsId: 'currency',
102
- oneOf: [
103
- { const: 'EUR', analyticsId: 'EUR' },
104
- { const: 'USD', analyticsId: 'USD' },
105
- { const: 'GBP', analyticsId: 'GBP' },
106
- ],
107
- },
108
- model: null,
109
- });
110
- const defaultMapperProps = getMockMapperProps();
111
- const component = oneOfSchemaToComponent(schemaMapperProps, defaultMapperProps);
112
- component.onSelect(1);
113
- expect(defaultMapperProps.trackEvent).toHaveBeenCalledWith('OneOf Selected', {
114
- oneOfId: 'currency',
115
- schemaId: 'USD',
116
- });
117
- });
118
- it('uses $id in the absence of analyticsId', () => {
119
- const schemaMapperProps = getMockSchemaMapperProps({
120
- schema: {
121
- $id: 'currency',
122
- oneOf: [
123
- { const: 'EUR', $id: 'EUR' },
124
- { const: 'USD', $id: 'USD' },
125
- { const: 'GBP', $id: 'GBP' },
126
- ],
127
- },
128
- model: null,
129
- });
130
- const defaultMapperProps = getMockMapperProps();
131
- const component = oneOfSchemaToComponent(schemaMapperProps, defaultMapperProps);
132
- component.onSelect(1);
133
- expect(defaultMapperProps.trackEvent).toHaveBeenCalledWith('OneOf Selected', {
134
- oneOfId: 'currency',
135
- schemaId: 'USD',
136
- });
137
- });
138
- it('favours analyticsId over $id', () => {
139
- const schemaMapperProps = getMockSchemaMapperProps({
140
- schema: {
141
- analyticsId: 'currency',
142
- $id: 'currency-$id',
143
- oneOf: [
144
- { const: 'EUR', analyticsId: 'EUR', $id: 'EUR-$id' },
145
- { const: 'USD', analyticsId: 'USD', $id: 'USD-$id' },
146
- { const: 'GBP', analyticsId: 'GBP', $id: 'GBP-$id' },
147
- ],
148
- },
149
- model: null,
150
- });
151
- const defaultMapperProps = getMockMapperProps();
152
- const component = oneOfSchemaToComponent(schemaMapperProps, defaultMapperProps);
153
- component.onSelect(1);
154
- expect(defaultMapperProps.trackEvent).toHaveBeenCalledWith('OneOf Selected', {
155
- oneOfId: 'currency',
156
- schemaId: 'USD',
157
- });
158
- });
159
- it(`doesn't trigger a 'OneOf Selected' event if the main schema doesn't have an analyticsId or $id, but it triggers 'OneOf Option Selected'`, () => {
160
- const schemaMapperProps = getMockSchemaMapperProps({
161
- schema: {
162
- oneOf: [
163
- { const: 'EUR', analyticsId: 'EUR', $id: 'EUR-$id' },
164
- { const: 'USD', analyticsId: 'USD', $id: 'USD-$id' },
165
- { const: 'GBP', analyticsId: 'GBP', $id: 'GBP-$id' },
166
- ],
167
- },
168
- model: null,
169
- });
170
- const defaultMapperProps = getMockMapperProps();
171
- const component = oneOfSchemaToComponent(schemaMapperProps, defaultMapperProps);
172
- component.onSelect(1);
173
- expect(defaultMapperProps.trackEvent).not.toHaveBeenCalledWith('OneOf Selected', expect.objectContaining({ oneOfId: '', schemaId: 'USD' }));
174
- expect(defaultMapperProps.trackEvent).toHaveBeenCalledWith('OneOf Option Selected', expect.objectContaining({ selectedOption: 'USD', schema: '' }));
175
- });
176
- it('does trigger an event if the selected option doesnt have an analyticsId or $id', () => {
177
- const schemaMapperProps = getMockSchemaMapperProps({
178
- schema: {
179
- analyticsId: 'currency',
180
- oneOf: [{ const: 'EUR' }, { const: 'USD' }, { const: 'GBP' }],
181
- },
182
- model: null,
183
- });
184
- const defaultMapperProps = getMockMapperProps();
185
- const component = oneOfSchemaToComponent(schemaMapperProps, defaultMapperProps);
186
- component.onSelect(1);
187
- expect(defaultMapperProps.trackEvent).toHaveBeenCalledWith('OneOf Selected', {
188
- oneOfId: 'currency',
189
- schemaId: undefined,
190
- });
191
- });
192
- });
193
- describe('when selecting an option that is an object schema', () => {
194
- it('triggers an event', () => {
195
- const schemaMapperProps = getMockSchemaMapperProps({
196
- schema: {
197
- analyticsId: 'options-a-or-b',
198
- oneOf: [
199
- {
200
- type: 'object',
201
- analyticsId: 'option-A',
202
- displayOrder: ['name'],
203
- properties: { name: { type: 'string' } },
204
- },
205
- {
206
- type: 'object',
207
- analyticsId: 'option-B',
208
- displayOrder: ['name'],
209
- properties: { name: { type: 'string' } },
210
- },
211
- ],
212
- },
213
- model: null,
214
- });
215
- const defaultMapperProps = getMockMapperProps();
216
- const component = oneOfSchemaToComponent(schemaMapperProps, defaultMapperProps);
217
- component.onSelect(1);
218
- expect(defaultMapperProps.trackEvent).toHaveBeenCalledWith('OneOf Selected', {
219
- oneOfId: 'options-a-or-b',
220
- schemaId: 'option-B',
221
- });
222
- });
223
- });
224
- });
225
- describe('number of elements', () => {
226
- describe('when the oneOf contains only more than one element', () => {
227
- it('returns an SelectComponent', () => {
228
- const schemaMapperProps = getMockSchemaMapperProps({
229
- schema: {
230
- oneOf: [
231
- { type: 'object', displayOrder: ['name'], properties: { name: { type: 'string' } } },
232
- { type: 'object', displayOrder: ['name'], properties: { name: { type: 'string' } } },
233
- ],
234
- },
235
- });
236
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
237
- expect(component.type).toBe('select');
238
- });
239
- });
240
- describe('when the oneOf contains only one element, and its an object schema', () => {
241
- it('returns an ObjectComponent', () => {
242
- const schemaMapperProps = getMockSchemaMapperProps({
243
- schema: {
244
- oneOf: [
245
- { type: 'object', displayOrder: ['name'], properties: { name: { type: 'string' } } },
246
- ],
247
- },
248
- });
249
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
250
- expect(component.type).toBe('object');
251
- });
252
- });
253
- describe('when the oneOf contains only one element, and its a const schema', () => {
254
- it('returns an SelectComponent', () => {
255
- const schemaMapperProps = getMockSchemaMapperProps({
256
- schema: {
257
- oneOf: [{ const: 'EUR' }],
258
- },
259
- });
260
- const component = oneOfSchemaToComponent(schemaMapperProps, getMockMapperProps());
261
- expect(component.type).toBe('select');
262
- });
263
- });
264
- });
265
- });
@@ -1,29 +0,0 @@
1
- import { createPersistAsyncComponent } from '../../components/PersistAsyncComponent';
2
- import { getSchemaOnChange } from '../../features/schema-on-change/getSchemaOnChange';
3
- import { mapSchemaToComponent } from '../mapSchemaToComponent';
4
- import { getPerformPersistAsyncFn } from './utils/getPerformPersistAsyncFn';
5
- // Only some component types are supported for persistAsync
6
- const isSupported = (type) => ['const', 'boolean', 'text', 'date', 'integer', 'number', 'upload'].includes(type);
7
- export const persistAsyncSchemaToComponent = (schemaMapperProps, mapperProps) => {
8
- const { uid, schema, model, localValue } = schemaMapperProps;
9
- const { persistAsync, tags } = schema;
10
- const performPersistAsync = getPerformPersistAsyncFn(schema, persistAsync, mapperProps);
11
- const onPersistAsync = async () => paComponent.persist().then(() => { });
12
- const childComponent = mapSchemaToComponent(Object.assign(Object.assign({}, schemaMapperProps), { uid: `${uid}-persist`, schema: persistAsync.schema, onPersistAsync }), mapperProps);
13
- if (!isSupported(childComponent.type)) {
14
- return childComponent;
15
- }
16
- const paComponent = createPersistAsyncComponent({
17
- uid,
18
- // This should be `schema.hidden ?? false`
19
- // but some steps are setting PA schemas as hidden for no good reason
20
- // so we default to false here to avoid hiding the the children of the PA component
21
- hidden: false,
22
- component: childComponent,
23
- schemaId: schema.$id,
24
- model,
25
- localValue,
26
- tags,
27
- }, performPersistAsync, getSchemaOnChange(schema, mapperProps.onBehavior), mapperProps.onComponentUpdate);
28
- return paComponent;
29
- };
@@ -1,18 +0,0 @@
1
- import { stringSchemaToDateInputComponent } from './stringSchemaToDateInputComponent';
2
- import { stringSchemaToUploadInputComponent } from './stringSchemaToUploadInputComponent';
3
- import { stringSchemaToTextInputComponent } from './stringSchemaToTextInputComponent';
4
- export const stringSchemaToComponent = (schemaMapperProps, mapperProps) => {
5
- const { schema } = schemaMapperProps;
6
- if (isStringSchemaWithBase64(schema)) {
7
- return stringSchemaToUploadInputComponent(Object.assign(Object.assign({}, schemaMapperProps), { schema }), mapperProps);
8
- }
9
- switch (schema.format) {
10
- case 'date':
11
- return stringSchemaToDateInputComponent(schemaMapperProps, mapperProps);
12
- default:
13
- return stringSchemaToTextInputComponent(schemaMapperProps, mapperProps);
14
- }
15
- };
16
- const isStringSchemaWithBase64 = (schema) => {
17
- return schema.format === 'base64url' && !('persistAsync' in schema);
18
- };
@@ -1,133 +0,0 @@
1
- import { getMockMapperProps, getMockSchemaMapperProps } from '../tests/test-utils';
2
- import { stringSchemaToComponent } from './stringSchemaToComponent';
3
- describe('stringSchemaToComponent', () => {
4
- const defaultMapperProps = getMockMapperProps();
5
- describe('initial model handling', () => {
6
- describe('when initial model is null', () => {
7
- it('sets component value to null', async () => {
8
- const schemaMapperProps = getMockSchemaMapperProps({
9
- schema: {
10
- type: 'string',
11
- },
12
- model: null,
13
- });
14
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
15
- expect(await component.getSubmittableValue()).toBeNull();
16
- });
17
- describe('when a default is provided', () => {
18
- it('initialises the value to the default', async () => {
19
- const schemaMapperProps = getMockSchemaMapperProps({
20
- schema: {
21
- type: 'string',
22
- default: 'John Smith',
23
- },
24
- model: null,
25
- });
26
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
27
- expect(await component.getSubmittableValue()).toBe('John Smith');
28
- });
29
- });
30
- });
31
- describe('when initial model is defined', () => {
32
- it('sets the component value to the initial model', async () => {
33
- const schemaMapperProps = getMockSchemaMapperProps({
34
- schema: {
35
- type: 'string',
36
- },
37
- model: 'John Smith',
38
- });
39
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
40
- expect(await component.getSubmittableValue()).toBe('John Smith');
41
- });
42
- describe('when a default is provided', () => {
43
- it('prefers the model over the default', async () => {
44
- const schemaMapperProps = getMockSchemaMapperProps({
45
- schema: {
46
- type: 'string',
47
- default: 'Jane Doe',
48
- },
49
- model: 'John Smith',
50
- });
51
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
52
- expect(await component.getSubmittableValue()).toBe('John Smith');
53
- });
54
- });
55
- });
56
- });
57
- describe('initial validation error handling', () => {
58
- it('sets the initial error if provided', () => {
59
- const schemaMapperProps = getMockSchemaMapperProps({
60
- schema: {
61
- type: 'string',
62
- },
63
- model: 'jane@doe.com',
64
- validationErrors: 'An account with this email already exists',
65
- });
66
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
67
- expect(component.errors).toStrictEqual(['An account with this email already exists']);
68
- });
69
- });
70
- describe('autocomplete', () => {
71
- it('sets the autocomplete value', () => {
72
- const schemaMapperProps = getMockSchemaMapperProps({
73
- schema: {
74
- type: 'string',
75
- autocompleteHint: ['name', 'shipping'],
76
- },
77
- model: 'John Smith',
78
- });
79
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
80
- expect(component.autoComplete).toBe('name shipping');
81
- });
82
- });
83
- describe('validation checks', () => {
84
- it('sets minimum length validation', () => {
85
- const schemaMapperProps = getMockSchemaMapperProps({
86
- schema: {
87
- type: 'string',
88
- minLength: 10,
89
- },
90
- model: 'Jane',
91
- });
92
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
93
- expect(component.validate()).toBe(false);
94
- expect(component.errors).toStrictEqual(['minLength']);
95
- });
96
- it('sets maximum length validation', () => {
97
- const schemaMapperProps = getMockSchemaMapperProps({
98
- schema: {
99
- type: 'string',
100
- maxLength: 2,
101
- },
102
- model: 'Jane',
103
- });
104
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
105
- expect(component.validate()).toBe(false);
106
- expect(component.errors).toStrictEqual(['maxLength']);
107
- });
108
- it('sets pattern validation', () => {
109
- const schemaMapperProps = getMockSchemaMapperProps({
110
- schema: {
111
- type: 'string',
112
- pattern: '^[a-zA-Z]*$',
113
- },
114
- model: '012345',
115
- });
116
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
117
- expect(component.validate()).toBe(false);
118
- expect(component.errors).toStrictEqual(['pattern']);
119
- });
120
- it('sets required validation', () => {
121
- const schemaMapperProps = getMockSchemaMapperProps({
122
- schema: {
123
- type: 'string',
124
- },
125
- model: null,
126
- required: true,
127
- });
128
- const component = stringSchemaToComponent(schemaMapperProps, defaultMapperProps);
129
- expect(component.validate()).toBe(false);
130
- expect(component.errors).toStrictEqual(['required']);
131
- });
132
- });
133
- });
@@ -1,48 +0,0 @@
1
- import { isString } from '../../../../utils/type-validators';
2
- import { createDateInputComponent } from '../../../components/DateInputComponent';
3
- import { getSchemaOnChange } from '../../../features/schema-on-change/getSchemaOnChange';
4
- import { getAboveMaximumDateCheck, getBelowMinimumDateCheck, getRequiredCheck, getValidDateCheck, } from '../../../features/validation/value-checks';
5
- import { getAutocompleteString } from '../../utils/getAutocompleteString';
6
- import { mapStringSchemaSuggestions } from '../../utils/suggestions-utils';
7
- import { getValidationAsyncInitialState } from '../utils/getValidationAsyncInitialState';
8
- import { mapCommonSchemaProps } from '../utils/mapCommonSchemaProps';
9
- export const stringSchemaToDateInputComponent = (schemaMapperProps, mapperProps) => {
10
- var _a;
11
- const { schema, localValue, model, required = false, onPersistAsync } = schemaMapperProps;
12
- const { autocompleteHint, default: defaultValue, minimum: minimumDate, maximum: maximumDate, suggestions, } = schema;
13
- const { getErrorMessageFunctions, onComponentUpdate, onBehavior, onValueChange } = mapperProps;
14
- const errorMessageFunctions = getErrorMessageFunctions(schema.validationMessages);
15
- const { performValidationAsync, validationAsyncState } = getValidationAsyncInitialState(schemaMapperProps, mapperProps);
16
- const validLocalValue = isString(localValue) ? localValue : null;
17
- const validModel = (_a = getValidDate(model)) !== null && _a !== void 0 ? _a : getValidDate(defaultValue !== null && defaultValue !== void 0 ? defaultValue : null);
18
- const value = onPersistAsync ? validLocalValue : validModel;
19
- return createDateInputComponent(Object.assign(Object.assign({}, mapCommonSchemaProps(schemaMapperProps)), { autoComplete: getAutocompleteString(autocompleteHint), checks: schema.hidden
20
- ? []
21
- : [
22
- getRequiredCheck(required, errorMessageFunctions),
23
- getValidDateCheck(required, errorMessageFunctions),
24
- getAboveMaximumDateCheck(schema, errorMessageFunctions),
25
- getBelowMinimumDateCheck(schema, errorMessageFunctions),
26
- ], minimumDate,
27
- maximumDate, suggestions: mapStringSchemaSuggestions(suggestions, mapperProps.logEvent), value,
28
- validationAsyncState, schemaOnChange: getSchemaOnChange(schema, onBehavior), performValidationAsync,
29
- onValueChange }), onComponentUpdate);
30
- };
31
- const getValidDate = (model) => {
32
- if (!isString(model)) {
33
- return null;
34
- }
35
- // partial date check (YYYY-MM)
36
- if (/^\d{4}-\d{2}$/.test(model)) {
37
- return model;
38
- }
39
- // otherwise, it must be parseable to a Date, or return null
40
- try {
41
- const date = new Date(model);
42
- const stringDate = date.toISOString(); // YYYY-MM-DDTHH:mm:ss.sssZ
43
- return stringDate.split('T')[0]; // return only the date part
44
- }
45
- catch (_a) {
46
- return null;
47
- }
48
- };
@@ -1,37 +0,0 @@
1
- import { createTextInputComponent } from '../../../components/TextInputComponent';
2
- import { isString } from '../../../../utils/type-validators';
3
- import { getSchemaOnChange } from '../../../features/schema-on-change/getSchemaOnChange';
4
- import { getAboveMaxLengthCheck, getBelowMinLengthCheck, getNotAdheringToPatternCheck, getRequiredCheck, } from '../../../features/validation/value-checks';
5
- import { getAutocompleteString } from '../../utils/getAutocompleteString';
6
- import { mapStringSchemaSuggestions } from '../../utils/suggestions-utils';
7
- import { getValidationAsyncInitialState } from '../utils/getValidationAsyncInitialState';
8
- import { mapCommonSchemaProps } from '../utils/mapCommonSchemaProps';
9
- export const stringSchemaToTextInputComponent = (schemaMapperProps, mapperProps) => {
10
- const { schema, localValue, model, required = false, onPersistAsync } = schemaMapperProps;
11
- const { autocapitalization, autocompleteHint, control, default: defaultValue, displayFormat, format, maxLength, minLength, suggestions, validationMessages, } = schema;
12
- const { getErrorMessageFunctions, onComponentUpdate, onBehavior, onValueChange, logEvent } = mapperProps;
13
- const controlForLegacyFormat = getControlForLegacyFormat(format);
14
- const errorMessageFunctions = getErrorMessageFunctions(validationMessages);
15
- const { performValidationAsync, validationAsyncState } = getValidationAsyncInitialState(schemaMapperProps, mapperProps);
16
- const validLocalValue = isString(localValue) ? localValue : null;
17
- const validModel = isString(model) ? model : (defaultValue !== null && defaultValue !== void 0 ? defaultValue : null);
18
- const value = onPersistAsync ? validLocalValue : validModel;
19
- return createTextInputComponent(Object.assign(Object.assign({}, mapCommonSchemaProps(schemaMapperProps)), { autocapitalization, autoComplete: getAutocompleteString(autocompleteHint), checks: schema.hidden
20
- ? []
21
- : [
22
- getRequiredCheck(required, errorMessageFunctions),
23
- getAboveMaxLengthCheck(schema, errorMessageFunctions),
24
- getBelowMinLengthCheck(schema, errorMessageFunctions),
25
- getNotAdheringToPatternCheck(schema, errorMessageFunctions, { logEvent }),
26
- ], control: control !== null && control !== void 0 ? control : controlForLegacyFormat, displayFormat,
27
- maxLength,
28
- minLength, suggestions: mapStringSchemaSuggestions(suggestions, mapperProps.logEvent), value,
29
- validationAsyncState, schemaOnChange: getSchemaOnChange(schema, onBehavior), performValidationAsync,
30
- onValueChange }), onComponentUpdate);
31
- };
32
- const getControlForLegacyFormat = (format) => {
33
- if (format && ['numeric', 'phone-number', 'email', 'password'].includes(format)) {
34
- return format;
35
- }
36
- return undefined;
37
- };
@@ -1,28 +0,0 @@
1
- import { isFile, isString } from '../../../../utils/type-validators';
2
- import { createUploadInputComponent } from '../../../components/UploadInputComponent';
3
- import { base64dataUrltoFile } from '../../../components/utils/file-utils';
4
- import { getSchemaOnChange } from '../../../features/schema-on-change/getSchemaOnChange';
5
- import { getFileSizeCheck, getFileTypeCheck, getRequiredCheck, } from '../../../features/validation/value-checks';
6
- import { getAutocompleteString } from '../../utils/getAutocompleteString';
7
- import { mapCommonSchemaProps } from '../utils/mapCommonSchemaProps';
8
- export const stringSchemaToUploadInputComponent = (schemaMapperProps, mapperProps) => {
9
- var _a;
10
- const { schema, localValue, model, required = false } = schemaMapperProps;
11
- const { accepts, autocompleteHint, cameraConfig, hidden, maxSize, source, validationMessages } = schema;
12
- const { getErrorMessageFunctions, onComponentUpdate, onBehavior, onValueChange } = mapperProps;
13
- const errorMessageFunctions = getErrorMessageFunctions(validationMessages);
14
- const validLocalValue = isFile(localValue) ? localValue : null;
15
- const value = (_a = getFileFromModel(model)) !== null && _a !== void 0 ? _a : validLocalValue;
16
- const checks = hidden
17
- ? []
18
- : [
19
- getRequiredCheck(required, errorMessageFunctions),
20
- getFileSizeCheck(schema, errorMessageFunctions),
21
- getFileTypeCheck(schema, errorMessageFunctions),
22
- ];
23
- return createUploadInputComponent(Object.assign(Object.assign({}, mapCommonSchemaProps(schemaMapperProps)), { accepts, autoComplete: getAutocompleteString(autocompleteHint), cameraConfig,
24
- checks, format: 'base64', maxSize,
25
- source,
26
- value, schemaOnChange: getSchemaOnChange(schema, onBehavior), onValueChange }), onComponentUpdate);
27
- };
28
- const getFileFromModel = (model) => isString(model) ? base64dataUrltoFile(model, '') : null;
@@ -1,16 +0,0 @@
1
- import { vi } from 'vitest';
2
- import { getRandomId } from '../../../../test-utils/getRandomId';
3
- import { mockErrorMessageFunctions } from '../../../features/validation/spec-utils';
4
- import { FeatureFlags } from '../../utils/FeatureFlags';
5
- import { makeRequestCache } from '../../../features/prefetch/request-cache';
6
- export const getStepMapperProps = () => (Object.assign(Object.assign({}, getMockMapperProps()), { uid: 'root', flowRequestCache: makeRequestCache(), etag: null, loadingState: 'idle', trackEvent: vi.fn(), onPoll: vi.fn() }));
7
- export const getMockMapperProps = (mapperProps = {}) => (Object.assign({ step: {}, stepLocalValue: null, features: new FeatureFlags({}), onComponentUpdate: vi.fn(), onBehavior: vi.fn(), onValueChange: vi.fn(), getErrorMessageFunctions: vi.fn().mockReturnValue(mockErrorMessageFunctions), trackEvent: vi.fn(), logEvent: vi.fn(), httpClient: vi.fn(), registerSubmissionBehavior: vi.fn() }, mapperProps));
8
- export const getMockSchemaMapperProps = (schemaMapperProps) => (Object.assign({ uid: getRandomId(), localValue: null, model: null, required: false, validationErrors: null }, schemaMapperProps));
9
- export const getMockRendererMapperProps = () => ({
10
- render: vi.fn(),
11
- stepLoadingState: 'idle',
12
- features: new FeatureFlags({}),
13
- trackEvent: vi.fn(),
14
- httpClient: vi.fn(),
15
- });
16
- export const getUpdateFunctionMock = (getComponent) => vi.fn(() => { });
@@ -1 +0,0 @@
1
- export {};
@@ -1,19 +0,0 @@
1
- import { getPerformPersistAsync } from '../../../features/persistAsync/getPerformPersistAsync';
2
- export const getPerformPersistAsyncFn = (schema, persistAsyncConfig, mapperProps) => {
3
- const { getErrorMessageFunctions, httpClient, trackEvent, logEvent } = mapperProps;
4
- const { $id, analyticsId } = schema;
5
- const validationMessages = schemaHasValidationMessages(schema)
6
- ? schema.validationMessages
7
- : undefined;
8
- const errorMessageFunctions = getErrorMessageFunctions(validationMessages);
9
- const persistAsyncError = errorMessageFunctions.genericError();
10
- return getPerformPersistAsync({
11
- genericErrorMessage: persistAsyncError,
12
- httpClient,
13
- logEvent,
14
- persistAsyncConfig,
15
- schemaId: analyticsId !== null && analyticsId !== void 0 ? analyticsId : $id,
16
- trackEvent,
17
- });
18
- };
19
- const schemaHasValidationMessages = (schema) => Boolean('validationMessages' in schema && schema.validationMessages);
@@ -1,23 +0,0 @@
1
- import { getInitialValidationAsyncState } from '../../../features/validationAsync/getInitialValidationAsyncState';
2
- import { getPerformValidationAsync } from '../../../features/validationAsync/getPerformValidationAsync';
3
- export const getValidationAsyncInitialState = (schemaMapperProps, mapperProps) => {
4
- const performValidationAsync = getValidationAsyncFn(schemaMapperProps, mapperProps);
5
- const validationAsyncState = getInitialValidationAsyncState();
6
- return { performValidationAsync, validationAsyncState };
7
- };
8
- const getValidationAsyncFn = (schemaMapperProps, mapperProps) => {
9
- const { schema } = schemaMapperProps;
10
- const { trackEvent } = mapperProps;
11
- if (!schemaHasValidationAsync(schema)) {
12
- return undefined;
13
- }
14
- const { $id, analyticsId, validationAsync } = schema;
15
- const { httpClient } = mapperProps;
16
- return getPerformValidationAsync({
17
- httpClient,
18
- validationAsyncConfig: validationAsync,
19
- schemaId: analyticsId !== null && analyticsId !== void 0 ? analyticsId : $id,
20
- trackEvent,
21
- });
22
- };
23
- const schemaHasValidationAsync = (schema) => Boolean('validationAsync' in schema && schema.validationAsync);
@@ -1,16 +0,0 @@
1
- import { isString } from '../../../../utils/type-validators';
2
- import { getSummariser } from '../../../features/summary/summary-utils';
3
- import { mapSchemaAlert } from '../../utils/utils';
4
- import { getDomainLayerMedia } from '../../utils/media-utils';
5
- export const mapCommonSchemaProps = (schemaMapperProps) => {
6
- var _a;
7
- const { uid, schemaId, schema, required, validationErrors, onPersistAsync } = schemaMapperProps;
8
- const { $id, analyticsId, control, description, icon, image, keywords, media, tags, title, hidden, } = schema;
9
- return Object.assign(Object.assign(Object.assign({ uid, id: $id !== null && $id !== void 0 ? $id : uid, schemaId, analyticsId: (_a = analyticsId !== null && analyticsId !== void 0 ? analyticsId : $id) !== null && _a !== void 0 ? _a : '', control,
10
- description, disabled: schemaHasDisabled(schema) ? schema.disabled : false, errors: isString(validationErrors) ? [validationErrors] : undefined, hidden: Boolean(hidden), keywords, media: getDomainLayerMedia({ icon, image, media }), required: Boolean(required), tags,
11
- title,
12
- onPersistAsync, summariser: getSummariser(schema) }, (schemaHasHelp(schema) ? { help: schema.help.markdown } : {})), (schemaHasPlaceholder(schema) ? { placeholder: schema.placeholder } : {})), (schema.alert ? { alert: mapSchemaAlert(schema.alert) } : {}));
13
- };
14
- const schemaHasDisabled = (schema) => Boolean('disabled' in schema && schema.disabled !== undefined);
15
- const schemaHasHelp = (schema) => Boolean('help' in schema && schema.help);
16
- const schemaHasPlaceholder = (schema) => Boolean('placeholder' in schema && schema.placeholder);
@@ -1 +0,0 @@
1
- export {};