@wise/dynamic-flow-client 5.13.2 → 5.13.3

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 (409) hide show
  1. package/build/main.css +24 -15
  2. package/build/tsconfig.types.tsbuildinfo +1 -1
  3. package/build/types/stories/utils/render-utils.d.ts.map +1 -1
  4. package/package.json +16 -16
  5. package/build/DynamicFlowCore.js +0 -5
  6. package/build/common/errorBoundary/ErrorBoundary.js +0 -26
  7. package/build/common/errorBoundary/ErrorBoundary.test.js +0 -29
  8. package/build/common/errorBoundary/ErrorBoundaryAlert.js +0 -11
  9. package/build/common/makeHttpClient/api-utils.js +0 -3
  10. package/build/common/makeHttpClient/index.js +0 -1
  11. package/build/common/makeHttpClient/makeHttpClient.js +0 -10
  12. package/build/common/makeHttpClient/makeHttpClient.test.js +0 -186
  13. package/build/common/messages/external-confirmation.messages.js +0 -23
  14. package/build/common/messages/file-upload.messages.js +0 -13
  15. package/build/common/messages/generic-error.messages.js +0 -18
  16. package/build/common/messages/help.messages.js +0 -8
  17. package/build/common/messages/multi-file-upload.messages.js +0 -18
  18. package/build/common/messages/multi-select.messages.js +0 -8
  19. package/build/common/messages/paragraph.messages.js +0 -13
  20. package/build/common/messages/repeatable.messages.js +0 -23
  21. package/build/common/messages/search.messages.js +0 -8
  22. package/build/common/messages/validation.array.messages.js +0 -13
  23. package/build/common/messages/validation.messages.js +0 -53
  24. package/build/controller/FlowController.js +0 -378
  25. package/build/controller/executePoll.js +0 -64
  26. package/build/controller/executeRefresh.js +0 -45
  27. package/build/controller/executeRequest.js +0 -80
  28. package/build/controller/executeSubmission.js +0 -70
  29. package/build/controller/getErrorMessage.js +0 -7
  30. package/build/controller/getRequestAbortController.js +0 -13
  31. package/build/controller/getResponseType.js +0 -35
  32. package/build/controller/getSafeHttpClient.js +0 -8
  33. package/build/controller/getStepCounter.js +0 -16
  34. package/build/controller/handleErrorResponse.js +0 -26
  35. package/build/controller/makeSafeHttpClient.js +0 -8
  36. package/build/controller/response-utils.js +0 -72
  37. package/build/controller/response-utils.test.js +0 -52
  38. package/build/domain/components/AlertComponent.js +0 -1
  39. package/build/domain/components/AllOfComponent.js +0 -40
  40. package/build/domain/components/BooleanInputComponent.js +0 -50
  41. package/build/domain/components/BoxComponent.js +0 -3
  42. package/build/domain/components/ButtonComponent.js +0 -1
  43. package/build/domain/components/ColumnsComponent.js +0 -3
  44. package/build/domain/components/ConstComponent.js +0 -18
  45. package/build/domain/components/ContainerComponent.js +0 -3
  46. package/build/domain/components/DateInputComponent.js +0 -75
  47. package/build/domain/components/DecisionComponent.js +0 -1
  48. package/build/domain/components/DividerComponent.js +0 -1
  49. package/build/domain/components/FormComponent.js +0 -3
  50. package/build/domain/components/FormattedValueComponent.js +0 -44
  51. package/build/domain/components/HeadingComponent.js +0 -1
  52. package/build/domain/components/ImageComponent.js +0 -1
  53. package/build/domain/components/InstructionsComponent.js +0 -1
  54. package/build/domain/components/IntegerInputComponent.js +0 -74
  55. package/build/domain/components/ListComponent.js +0 -1
  56. package/build/domain/components/LoadingIndicatorComponent.js +0 -1
  57. package/build/domain/components/MarkdownComponent.js +0 -1
  58. package/build/domain/components/MediaComponent.js +0 -1
  59. package/build/domain/components/ModalComponent.js +0 -16
  60. package/build/domain/components/ModalLayoutComponent.js +0 -3
  61. package/build/domain/components/MoneyInputComponent.js +0 -57
  62. package/build/domain/components/MultiSelectInputComponent.js +0 -81
  63. package/build/domain/components/MultiUploadInputComponent.js +0 -88
  64. package/build/domain/components/NumberInputComponent.js +0 -73
  65. package/build/domain/components/ObjectComponent.js +0 -45
  66. package/build/domain/components/ParagraphComponent.js +0 -1
  67. package/build/domain/components/PersistAsyncComponent.js +0 -92
  68. package/build/domain/components/ProgressComponent.js +0 -1
  69. package/build/domain/components/RepeatableComponent.js +0 -103
  70. package/build/domain/components/ReviewComponent.js +0 -1
  71. package/build/domain/components/RootDomainComponent.js +0 -173
  72. package/build/domain/components/SectionComponent.js +0 -5
  73. package/build/domain/components/SelectInputComponent.js +0 -88
  74. package/build/domain/components/StatusListComponent.js +0 -1
  75. package/build/domain/components/SubflowDomainComponent.js +0 -9
  76. package/build/domain/components/TabsComponent.js +0 -1
  77. package/build/domain/components/TextInputComponent.js +0 -76
  78. package/build/domain/components/TupleComponent.js +0 -41
  79. package/build/domain/components/UploadInputComponent.js +0 -83
  80. package/build/domain/components/UpsellComponent.js +0 -25
  81. package/build/domain/components/searchComponent/SearchComponent.js +0 -92
  82. package/build/domain/components/searchComponent/SearchComponent.test.js +0 -190
  83. package/build/domain/components/step/ExternalConfirmationComponent.js +0 -24
  84. package/build/domain/components/step/StepDomainComponent.js +0 -78
  85. package/build/domain/components/step/ToolbarComponent.js +0 -1
  86. package/build/domain/components/utils/WithUpdate.js +0 -1
  87. package/build/domain/components/utils/component-utils.js +0 -12
  88. package/build/domain/components/utils/debounce.js +0 -34
  89. package/build/domain/components/utils/debounce.test.js +0 -67
  90. package/build/domain/components/utils/file-utils.js +0 -21
  91. package/build/domain/components/utils/file-utils.test.js +0 -27
  92. package/build/domain/components/utils/getRandomId.js +0 -1
  93. package/build/domain/components/utils/isExactLocalValueMatch.js +0 -14
  94. package/build/domain/components/utils/isOrWasValid.js +0 -5
  95. package/build/domain/components/utils/isPartialModelMatch.js +0 -18
  96. package/build/domain/components/utils/isPartialModelMatch.test.js +0 -74
  97. package/build/domain/features/eventNames.js +0 -24
  98. package/build/domain/features/events.js +0 -1
  99. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +0 -50
  100. package/build/domain/features/persistAsync/getInitialPersistedState.js +0 -7
  101. package/build/domain/features/persistAsync/getPerformPersistAsync.js +0 -43
  102. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +0 -139
  103. package/build/domain/features/polling/getStepPolling.js +0 -50
  104. package/build/domain/features/polling/getStepPolling.test.js +0 -115
  105. package/build/domain/features/prefetch/getStepPrefetch.js +0 -43
  106. package/build/domain/features/prefetch/request-cache.js +0 -49
  107. package/build/domain/features/prefetch/request-cache.test.js +0 -70
  108. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +0 -24
  109. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +0 -40
  110. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +0 -50
  111. package/build/domain/features/schema-on-change/getSchemaOnChange.js +0 -34
  112. package/build/domain/features/search/getPerformSearchFunction.js +0 -75
  113. package/build/domain/features/search/getPerformSearchFunction.test.js +0 -301
  114. package/build/domain/features/summary/summary-utils.js +0 -40
  115. package/build/domain/features/summary/summary-utils.test.js +0 -125
  116. package/build/domain/features/utils/http-utils.js +0 -21
  117. package/build/domain/features/utils/response-utils.js +0 -9
  118. package/build/domain/features/validation/spec-utils.js +0 -19
  119. package/build/domain/features/validation/validateStringPattern.js +0 -24
  120. package/build/domain/features/validation/validation-functions.js +0 -6
  121. package/build/domain/features/validation/validation-functions.test.js +0 -108
  122. package/build/domain/features/validation/value-checks.js +0 -125
  123. package/build/domain/features/validation/value-checks.test.js +0 -262
  124. package/build/domain/features/validationAsync/getComponentValidationAsync.js +0 -53
  125. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +0 -67
  126. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +0 -5
  127. package/build/domain/features/validationAsync/getPerformValidationAsync.js +0 -45
  128. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +0 -143
  129. package/build/domain/mappers/layout/alertLayoutToComponent.js +0 -16
  130. package/build/domain/mappers/layout/boxLayoutToComponent.js +0 -13
  131. package/build/domain/mappers/layout/buttonLayoutToComponent.js +0 -77
  132. package/build/domain/mappers/layout/columnsLayoutToComponent.js +0 -13
  133. package/build/domain/mappers/layout/decisionLayoutToComponent.js +0 -22
  134. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +0 -30
  135. package/build/domain/mappers/layout/dividerLayoutToComponent.js +0 -2
  136. package/build/domain/mappers/layout/formLayoutToComponent.js +0 -19
  137. package/build/domain/mappers/layout/headingLayoutToComponent.js +0 -12
  138. package/build/domain/mappers/layout/imageLayoutToComponent.js +0 -20
  139. package/build/domain/mappers/layout/infoLayoutToComponent.js +0 -12
  140. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +0 -12
  141. package/build/domain/mappers/layout/listLayoutToComponent.js +0 -39
  142. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +0 -9
  143. package/build/domain/mappers/layout/markdownLayoutToComponent.js +0 -12
  144. package/build/domain/mappers/layout/mediaLayoutToComponent.js +0 -12
  145. package/build/domain/mappers/layout/modalLayoutToComponent.js +0 -17
  146. package/build/domain/mappers/layout/modalToComponent.js +0 -8
  147. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +0 -12
  148. package/build/domain/mappers/layout/progressLayoutToComponent.js +0 -15
  149. package/build/domain/mappers/layout/reviewLayoutToComponent.js +0 -48
  150. package/build/domain/mappers/layout/searchLayoutToComponent.js +0 -44
  151. package/build/domain/mappers/layout/sectionLayoutToComponent.js +0 -15
  152. package/build/domain/mappers/layout/statusListLayoutToComponent.js +0 -15
  153. package/build/domain/mappers/layout/tabsLayoutToComponent.js +0 -16
  154. package/build/domain/mappers/layout/upsellLayoutToComponent.js +0 -25
  155. package/build/domain/mappers/mapLayoutToComponent.js +0 -81
  156. package/build/domain/mappers/mapSchemaToComponent.js +0 -61
  157. package/build/domain/mappers/mapSchemaToComponent.test.js +0 -112
  158. package/build/domain/mappers/mapStepSchemas.js +0 -15
  159. package/build/domain/mappers/mapStepToComponent.js +0 -133
  160. package/build/domain/mappers/mapStepToComponent.test.js +0 -221
  161. package/build/domain/mappers/mapToolbarToComponent.js +0 -15
  162. package/build/domain/mappers/schema/allOfSchemaToComponent.js +0 -16
  163. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +0 -26
  164. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +0 -55
  165. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +0 -67
  166. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +0 -57
  167. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +0 -20
  168. package/build/domain/mappers/schema/blobSchemaToComponent.js +0 -15
  169. package/build/domain/mappers/schema/booleanSchemaToComponent.js +0 -29
  170. package/build/domain/mappers/schema/constSchemaToComponent.js +0 -23
  171. package/build/domain/mappers/schema/integerSchemaToComponent.js +0 -28
  172. package/build/domain/mappers/schema/numberSchemaToComponent.js +0 -26
  173. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +0 -23
  174. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +0 -9
  175. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +0 -119
  176. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +0 -96
  177. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +0 -31
  178. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +0 -99
  179. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +0 -66
  180. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +0 -225
  181. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +0 -29
  182. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +0 -18
  183. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +0 -133
  184. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToDateInputComponent.js +0 -48
  185. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +0 -38
  186. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +0 -28
  187. package/build/domain/mappers/schema/tests/test-utils.js +0 -16
  188. package/build/domain/mappers/schema/types.js +0 -1
  189. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +0 -19
  190. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +0 -23
  191. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +0 -16
  192. package/build/domain/mappers/types.js +0 -1
  193. package/build/domain/mappers/utils/FeatureFlags.js +0 -22
  194. package/build/domain/mappers/utils/behavior-utils.js +0 -44
  195. package/build/domain/mappers/utils/call-to-action-utils.js +0 -21
  196. package/build/domain/mappers/utils/getAutocompleteString.js +0 -76
  197. package/build/domain/mappers/utils/getAutocompleteString.test.js +0 -21
  198. package/build/domain/mappers/utils/groupLayoutByPinned.js +0 -38
  199. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +0 -166
  200. package/build/domain/mappers/utils/image.js +0 -9
  201. package/build/domain/mappers/utils/layout-utils.js +0 -11
  202. package/build/domain/mappers/utils/legacy-utils.js +0 -49
  203. package/build/domain/mappers/utils/media-utils.js +0 -14
  204. package/build/domain/mappers/utils/suggestions-utils.js +0 -26
  205. package/build/domain/mappers/utils/suggestions-utils.test.js +0 -36
  206. package/build/domain/mappers/utils/tags-utils.js +0 -1
  207. package/build/domain/mappers/utils/utils.js +0 -35
  208. package/build/domain/types.js +0 -1
  209. package/build/getSubflowCallbacks.js +0 -38
  210. package/build/i18n/index.js +0 -40
  211. package/build/index.js +0 -8
  212. package/build/renderers/CoreContainerRenderer.js +0 -5
  213. package/build/renderers/CoreRootRenderer.js +0 -12
  214. package/build/renderers/EmptyLoadingStateRenderer.js +0 -5
  215. package/build/renderers/getRenderFunction.js +0 -24
  216. package/build/renderers/getSchemaErrorMessageFunction.js +0 -97
  217. package/build/renderers/mappers/alertComponentToProps.js +0 -2
  218. package/build/renderers/mappers/allOfComponentToProps.js +0 -6
  219. package/build/renderers/mappers/booleanInputComponentToProps.js +0 -5
  220. package/build/renderers/mappers/boxComponentToProps.js +0 -13
  221. package/build/renderers/mappers/buttonComponentToProps.js +0 -4
  222. package/build/renderers/mappers/columnsComponentToProps.js +0 -11
  223. package/build/renderers/mappers/componentToRendererProps.js +0 -164
  224. package/build/renderers/mappers/constComponentToProps.js +0 -5
  225. package/build/renderers/mappers/containerComponentToProps.js +0 -7
  226. package/build/renderers/mappers/dateInputComponentToProps.js +0 -2
  227. package/build/renderers/mappers/decisionComponentToProps.js +0 -16
  228. package/build/renderers/mappers/dividerComponentToProps.js +0 -2
  229. package/build/renderers/mappers/externalComponentToProps.js +0 -3
  230. package/build/renderers/mappers/formComponentToProps.js +0 -12
  231. package/build/renderers/mappers/formattedValueComponentToProps.js +0 -5
  232. package/build/renderers/mappers/headingComponentToProps.js +0 -2
  233. package/build/renderers/mappers/hiddenComponentToProps.js +0 -4
  234. package/build/renderers/mappers/imageComponentToProps.js +0 -2
  235. package/build/renderers/mappers/instructionsComponentToProps.js +0 -2
  236. package/build/renderers/mappers/integerInputComponentToProps.js +0 -2
  237. package/build/renderers/mappers/listComponentToProps.js +0 -2
  238. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +0 -2
  239. package/build/renderers/mappers/markdownComponentToProps.js +0 -2
  240. package/build/renderers/mappers/mediaComponentToProps.js +0 -2
  241. package/build/renderers/mappers/modalComponentToProps.js +0 -11
  242. package/build/renderers/mappers/modalLayoutComponentToProps.js +0 -16
  243. package/build/renderers/mappers/moneyInputComponentToProps.js +0 -36
  244. package/build/renderers/mappers/multiSelectComponentToProps.js +0 -23
  245. package/build/renderers/mappers/multiUploadInputComponentToProps.js +0 -12
  246. package/build/renderers/mappers/numberInputComponentToProps.js +0 -2
  247. package/build/renderers/mappers/objectComponentToProps.js +0 -8
  248. package/build/renderers/mappers/paragraphComponentToProps.js +0 -2
  249. package/build/renderers/mappers/persistAsyncComponentToProps.js +0 -8
  250. package/build/renderers/mappers/progressComponentToProps.js +0 -2
  251. package/build/renderers/mappers/repeatableComponentToProps.js +0 -30
  252. package/build/renderers/mappers/reviewComponentToProps.js +0 -2
  253. package/build/renderers/mappers/rootComponentToProps.js +0 -21
  254. package/build/renderers/mappers/searchComponentToProps.js +0 -57
  255. package/build/renderers/mappers/sectionComponentToProps.js +0 -6
  256. package/build/renderers/mappers/selectInputComponentToProps.js +0 -34
  257. package/build/renderers/mappers/statusListComponentToProps.js +0 -2
  258. package/build/renderers/mappers/subflowComponentToRendererProps.js +0 -4
  259. package/build/renderers/mappers/tabsComponentToProps.js +0 -14
  260. package/build/renderers/mappers/textInputComponentToProps.js +0 -2
  261. package/build/renderers/mappers/tupleComponentToProps.js +0 -8
  262. package/build/renderers/mappers/uploadInputComponentToProps.js +0 -8
  263. package/build/renderers/mappers/upsellComponentToProps.js +0 -2
  264. package/build/renderers/mappers/utils/getValidationState.js +0 -12
  265. package/build/renderers/mappers/utils/inputComponentToProps.js +0 -26
  266. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +0 -9
  267. package/build/renderers/mappers/utils/pick.js +0 -8
  268. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +0 -11
  269. package/build/renderers/stepComponentToProps.js +0 -32
  270. package/build/renderers/utils.js +0 -69
  271. package/build/renderers/utils.test.js +0 -70
  272. package/build/stories/dev-tools/ContainerQueries.story.js +0 -66
  273. package/build/stories/dev-tools/Debugger.story.js +0 -38
  274. package/build/stories/dev-tools/FixtureSelect.story.js +0 -23
  275. package/build/stories/dev-tools/TestServer.story.js +0 -32
  276. package/build/stories/examples/NativeFlow.story.js +0 -80
  277. package/build/stories/examples/Recipients.story.js +0 -568
  278. package/build/stories/spec/behavior/Copy.story.js +0 -71
  279. package/build/stories/spec/behavior/Link.story.js +0 -40
  280. package/build/stories/spec/behavior/Modal.story.js +0 -79
  281. package/build/stories/spec/behavior/Subflow.story.js +0 -267
  282. package/build/stories/spec/layouts/Decision.story.js +0 -241
  283. package/build/stories/spec/layouts/Image.Illustrations.Animated.story.js +0 -37
  284. package/build/stories/spec/layouts/Image.Sizes.story.js +0 -58
  285. package/build/stories/spec/layouts/Modal.story.js +0 -81
  286. package/build/stories/spec/layouts/Search.story.js +0 -325
  287. package/build/stories/spec/layouts/Upsell.story.js +0 -55
  288. package/build/stories/spec/layouts/button/Button.story.js +0 -100
  289. package/build/stories/spec/layouts/button/PinnedButton.story.js +0 -81
  290. package/build/stories/spec/response/ActionResponse.story.js +0 -66
  291. package/build/stories/spec/schemas/MultiSelect.story.js +0 -148
  292. package/build/stories/spec/schemas/Upload.story.js +0 -168
  293. package/build/stories/spec/schemas/const/ConstLayout.story.js +0 -159
  294. package/build/stories/spec/schemas/const/ObjectConst.story.js +0 -94
  295. package/build/stories/spec/schemas/features/PersistAsync.story.js +0 -211
  296. package/build/stories/spec/schemas/features/ValidationAsync.story.js +0 -103
  297. package/build/stories/spec/schemas/object/FormattedValue.story.js +0 -92
  298. package/build/stories/spec/schemas/object/MoneyInput.story.js +0 -240
  299. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +0 -55
  300. package/build/stories/spec/schemas/oneOf/OneOfWithSingleOption.story.js +0 -114
  301. package/build/stories/spec/step/Controls.story.js +0 -109
  302. package/build/stories/spec/step/DFModal.story.js +0 -58
  303. package/build/stories/spec/step/Footer.story.js +0 -70
  304. package/build/stories/spec/step/Navigation.story.js +0 -20
  305. package/build/stories/spec/step/ScrollToBottom.story.js +0 -103
  306. package/build/stories/spec/step/Tags.story.js +0 -39
  307. package/build/stories/spec/step/ToolBar.story.js +0 -60
  308. package/build/stories/spec/step/features/ErrorHandling.story.js +0 -92
  309. package/build/stories/spec/step/features/External.story.js +0 -91
  310. package/build/stories/spec/step/features/Polling.story.js +0 -108
  311. package/build/stories/spec/step/features/RefreshAfter.story.js +0 -92
  312. package/build/stories/spec/step/features/refresh/Refresh.story.js +0 -258
  313. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +0 -958
  314. package/build/stories/types.js +0 -1
  315. package/build/stories/utils/fixtureHttpClient.js +0 -70
  316. package/build/stories/utils/getBasicStep.js +0 -223
  317. package/build/stories/utils/mockSearchHandler.js +0 -71
  318. package/build/stories/utils/render-utils.js +0 -41
  319. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +0 -17
  320. package/build/test-utils/DynamicFlowWise.js +0 -37
  321. package/build/test-utils/DynamicFlowWiseModal.js +0 -34
  322. package/build/test-utils/NeptuneProviders.js +0 -11
  323. package/build/test-utils/component-utils.js +0 -5
  324. package/build/test-utils/fetch-utils.js +0 -45
  325. package/build/test-utils/getMergedTestRenderers.js +0 -34
  326. package/build/test-utils/getRandomId.js +0 -1
  327. package/build/test-utils/index.js +0 -3
  328. package/build/test-utils/openLinkInNewTab.js +0 -15
  329. package/build/test-utils/rtl-utils.js +0 -7
  330. package/build/test-utils/step-utils.js +0 -6
  331. package/build/test-utils/wait.js +0 -3
  332. package/build/tests/AlertLayout.test.js +0 -78
  333. package/build/tests/ArrayTuple.test.js +0 -118
  334. package/build/tests/ButtonLayout.test.js +0 -308
  335. package/build/tests/ConstLayout.test.js +0 -95
  336. package/build/tests/DateInput.test.js +0 -163
  337. package/build/tests/DecisionLayout.test.js +0 -146
  338. package/build/tests/DynamicFlow.test.js +0 -147
  339. package/build/tests/External.test.js +0 -169
  340. package/build/tests/Flow.test.js +0 -328
  341. package/build/tests/FormLayout.test.js +0 -28
  342. package/build/tests/FormattedValue.test.js +0 -107
  343. package/build/tests/ImageRenderer.test.js +0 -78
  344. package/build/tests/InitialAction.test.js +0 -179
  345. package/build/tests/InitialStep.test.js +0 -168
  346. package/build/tests/InstructionsLayout.test.js +0 -45
  347. package/build/tests/ListLayout.test.js +0 -168
  348. package/build/tests/Logging.test.js +0 -53
  349. package/build/tests/ModalBehavior.test.js +0 -149
  350. package/build/tests/MoneyInput.test.js +0 -316
  351. package/build/tests/MultiUpload.test.js +0 -293
  352. package/build/tests/NativeBack.test.js +0 -267
  353. package/build/tests/NoOp.test.js +0 -194
  354. package/build/tests/OneOfInitialisation.test.js +0 -571
  355. package/build/tests/PersistAsync.test.js +0 -687
  356. package/build/tests/Polling.test.js +0 -702
  357. package/build/tests/Prefetching.test.js +0 -230
  358. package/build/tests/RefreshAfter.test.js +0 -63
  359. package/build/tests/RefreshOnChange.ResponseHandling.test.js +0 -205
  360. package/build/tests/RefreshOnChange.test.js +0 -233
  361. package/build/tests/RefreshOnChange.with.Segmented.test.js +0 -350
  362. package/build/tests/RefreshOnChange.with.Tabs.test.js +0 -358
  363. package/build/tests/RefreshOnChangePreserve.test.js +0 -224
  364. package/build/tests/RendererProps.test.js +0 -361
  365. package/build/tests/Repeatable.test.js +0 -107
  366. package/build/tests/Rerendering.test.js +0 -67
  367. package/build/tests/ReviewLayout.test.js +0 -274
  368. package/build/tests/SchemaOnChange.test.js +0 -133
  369. package/build/tests/SchemaReferences.test.js +0 -88
  370. package/build/tests/ScrollToBottom.test.js +0 -122
  371. package/build/tests/ScrollToError.test.js +0 -217
  372. package/build/tests/SegmentedControl.test.js +0 -49
  373. package/build/tests/SingleFileUpload.test.js +0 -168
  374. package/build/tests/StatusList.test.js +0 -85
  375. package/build/tests/Subflow.test.js +0 -887
  376. package/build/tests/Submission.ResponseHandling.test.js +0 -557
  377. package/build/tests/Submission.merging.test.js +0 -202
  378. package/build/tests/Submission.test.js +0 -748
  379. package/build/tests/Tags.test.js +0 -475
  380. package/build/tests/Upsell.test.js +0 -154
  381. package/build/tests/ValidationAsync.test.js +0 -295
  382. package/build/tests/legacy/Actions.test.js +0 -158
  383. package/build/tests/legacy/BackButton.test.js +0 -114
  384. package/build/tests/legacy/HiddenSchemas.test.js +0 -246
  385. package/build/tests/legacy/MultiSelect.test.js +0 -501
  386. package/build/tests/legacy/MultipleFileUploadSchema.test.js +0 -350
  387. package/build/tests/legacy/PersistAsync.blob-schema.test.js +0 -224
  388. package/build/tests/legacy/PersistAsync.string-schema.test.js +0 -211
  389. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +0 -209
  390. package/build/tests/legacy/RefreshStepOnChange.test.js +0 -424
  391. package/build/tests/legacy/Search.test.js +0 -439
  392. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +0 -58
  393. package/build/tests/renderers/SelectInputRendererProps.test.js +0 -43
  394. package/build/tests/renderers/TextInputRenderer.test.js +0 -51
  395. package/build/types.js +0 -1
  396. package/build/useDynamicFlow.js +0 -105
  397. package/build/useDynamicFlowModal.js +0 -58
  398. package/build/utils/analyse-step.js +0 -14
  399. package/build/utils/component-utils.js +0 -8
  400. package/build/utils/component-utils.test.js +0 -113
  401. package/build/utils/getScrollToTop.js +0 -12
  402. package/build/utils/normalise-flow-id.js +0 -1
  403. package/build/utils/normalise-flow-id.test.js +0 -24
  404. package/build/utils/recursiveMerge.js +0 -40
  405. package/build/utils/recursiveMerge.test.js +0 -93
  406. package/build/utils/type-utils.js +0 -21
  407. package/build/utils/type-validators.js +0 -11
  408. package/build/utils/type-validators.test.js +0 -180
  409. package/build/utils/useStableCallback.js +0 -15
@@ -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,38 +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, pattern, 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,
29
- pattern, suggestions: mapStringSchemaSuggestions(suggestions, mapperProps.logEvent), value,
30
- validationAsyncState, schemaOnChange: getSchemaOnChange(schema, onBehavior), performValidationAsync,
31
- onValueChange }), onComponentUpdate);
32
- };
33
- const getControlForLegacyFormat = (format) => {
34
- if (format && ['numeric', 'phone-number', 'email', 'password'].includes(format)) {
35
- return format;
36
- }
37
- return undefined;
38
- };
@@ -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(), onLink: 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 {};
@@ -1,22 +0,0 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _FeatureFlags_features;
13
- export class FeatureFlags {
14
- constructor(features) {
15
- _FeatureFlags_features.set(this, void 0);
16
- __classPrivateFieldSet(this, _FeatureFlags_features, features, "f");
17
- }
18
- isEnabled(featureName) {
19
- return __classPrivateFieldGet(this, _FeatureFlags_features, "f")[featureName] != null && __classPrivateFieldGet(this, _FeatureFlags_features, "f")[featureName] !== false;
20
- }
21
- }
22
- _FeatureFlags_features = new WeakMap();
@@ -1,44 +0,0 @@
1
- export const getDomainLayerBehavior = ({ action, behavior: specBehavior }, stepActions, registerSubmissionBehavior) => {
2
- if (specBehavior) {
3
- const behavior = normaliseBehavior(specBehavior, stepActions);
4
- registerSubmissionBehavior === null || registerSubmissionBehavior === void 0 ? void 0 : registerSubmissionBehavior(behavior);
5
- return behavior;
6
- }
7
- if (action) {
8
- const behavior = actionToBehavior(action, stepActions);
9
- registerSubmissionBehavior === null || registerSubmissionBehavior === void 0 ? void 0 : registerSubmissionBehavior(behavior);
10
- return behavior;
11
- }
12
- return { type: 'none' };
13
- };
14
- export const normaliseBehavior = (behavior, stepActions) => {
15
- // New "discriminated union" behavior type
16
- if ('type' in behavior) {
17
- if (behavior.type === 'subflow') {
18
- return Object.assign(Object.assign({}, behavior), { onCompletion: behavior.onCompletion
19
- ? normaliseBehavior(behavior.onCompletion, stepActions)
20
- : undefined, onError: behavior.onError ? normaliseBehavior(behavior.onError, stepActions) : undefined });
21
- }
22
- return behavior;
23
- }
24
- // Deprecated "container" behavior type
25
- if ('action' in behavior && behavior.action) {
26
- return actionToBehavior(behavior.action, stepActions);
27
- }
28
- if ('link' in behavior && behavior.link) {
29
- return { type: 'link', url: behavior.link.url };
30
- }
31
- return { type: 'none' };
32
- };
33
- const actionToBehavior = (action, stepActions) => ({
34
- type: 'action',
35
- action: inlineAction(action, stepActions),
36
- });
37
- export const inlineAction = (action, stepActions = []) => action.$ref ? Object.assign(Object.assign({}, getActionByReference(action.$ref, stepActions)), action) : action;
38
- const getActionByReference = ($ref, actions = []) => {
39
- const action = actions.find((a) => a.$id === $ref);
40
- if (!action) {
41
- throw new Error('Action reference not found in actions array.');
42
- }
43
- return action;
44
- };
@@ -1,21 +0,0 @@
1
- import { getDomainLayerBehavior } from './behavior-utils';
2
- import { mapLegacyContext } from './legacy-utils';
3
- export function getDomainLayerCallToAction(cta, mapperProps) {
4
- var _a, _b;
5
- if (!cta) {
6
- return undefined;
7
- }
8
- const { step, onBehavior, registerSubmissionBehavior } = mapperProps;
9
- const stepActions = (_a = step.actions) !== null && _a !== void 0 ? _a : [];
10
- const behavior = getDomainLayerBehavior(cta, stepActions, registerSubmissionBehavior);
11
- return {
12
- type: behavior.type,
13
- title: (_b = cta.title) !== null && _b !== void 0 ? _b : '',
14
- context: cta.context ? mapLegacyContext(cta.context) : undefined,
15
- accessibilityDescription: cta.accessibilityDescription,
16
- href: behavior.type === 'link' ? behavior.url : undefined,
17
- onClick: () => {
18
- void onBehavior(behavior);
19
- },
20
- };
21
- }
@@ -1,76 +0,0 @@
1
- export const getAutocompleteString = (hints) => {
2
- if (!hints || hints.length === 0) {
3
- return 'off';
4
- }
5
- const validHints = hints.filter((hint) => autocompleteTokenMap[hint]);
6
- if (validHints.length === 0) {
7
- return 'off';
8
- }
9
- return validHints.map((hint) => autocompleteTokenMap[hint]).join(' ');
10
- };
11
- const autocompleteTokenMap = {
12
- on: 'on',
13
- name: 'name',
14
- 'name-prefix': 'honorific-prefix',
15
- 'given-name': 'given-name',
16
- 'additional-name': 'additional-name',
17
- 'family-name': 'family-name',
18
- 'name-suffix': 'honorific-suffix',
19
- nickname: 'nickname',
20
- email: 'email',
21
- // Web doesn't have a specific mapping for new username, but this is semantically close enough
22
- 'new-username': 'username',
23
- username: 'username',
24
- 'new-password': 'new-password',
25
- password: 'current-password',
26
- 'one-time-code': 'one-time-code',
27
- 'job-title': 'organization-title',
28
- 'organization-name': 'organization',
29
- 'full-street-address': 'street-address',
30
- 'street-address-line-1': 'address-line1',
31
- 'street-address-line-2': 'address-line2',
32
- 'street-address-line-3': 'address-line3',
33
- 'address-level-1': 'address-level1',
34
- 'address-level-2': 'address-level2',
35
- 'address-level-3': 'address-level3',
36
- 'address-level-4': 'address-level4',
37
- 'country-code': 'country',
38
- 'country-name': 'country-name',
39
- 'postal-code': 'postal-code',
40
- 'credit-card-name': 'cc-name',
41
- 'credit-card-given-name': 'cc-given-name',
42
- 'credit-card-middle-name': 'cc-additional-name',
43
- 'credit-card-family-name': 'cc-family-name',
44
- 'credit-card-number': 'cc-number',
45
- 'credit-card-expiration': 'cc-exp',
46
- 'credit-card-expiration-month': 'cc-exp-month',
47
- 'credit-card-expiration-year': 'cc-exp-year',
48
- 'credit-card-security-code': 'cc-csc',
49
- 'credit-card-type': 'cc-type',
50
- 'transaction-currency': 'transaction-currency',
51
- 'transaction-amount': 'transaction-amount',
52
- language: 'language',
53
- birthdate: 'bday',
54
- 'birthdate-day': 'bday-day',
55
- 'birthdate-month': 'bday-month',
56
- 'birthdate-year': 'bday-year',
57
- gender: 'sex',
58
- 'phone-number': 'tel',
59
- 'phone-country-code': 'tel-country-code',
60
- 'phone-national': 'tel-national',
61
- 'phone-area-code': 'tel-area-code',
62
- 'phone-local': 'tel-local',
63
- 'phone-local-prefix': 'tel-local-prefix',
64
- 'phone-local-suffix': 'tel-local-suffix',
65
- 'phone-extension': 'tel-extension',
66
- url: 'url',
67
- photo: 'photo',
68
- impp: 'impp',
69
- shipping: 'shipping',
70
- billing: 'billing',
71
- home: 'home',
72
- work: 'work',
73
- mobile: 'mobile',
74
- fax: 'fax',
75
- pager: 'pager',
76
- };
@@ -1,21 +0,0 @@
1
- import { getAutocompleteString } from './getAutocompleteString';
2
- describe('getAutocompleteString', () => {
3
- it('should return "off" if no hints are provided', () => {
4
- expect(getAutocompleteString(undefined)).toBe('off');
5
- expect(getAutocompleteString([])).toBe('off');
6
- });
7
- it('should return a string for valid hints', () => {
8
- expect(getAutocompleteString(['name-prefix'])).toBe('honorific-prefix');
9
- });
10
- it('should return a space delimited, concatenated string for multiple valid hints', () => {
11
- expect(getAutocompleteString(['name', 'billing'])).toBe('name billing');
12
- });
13
- it('should discard invalid hints', () => {
14
- // @ts-expect-error testing an invalid hint
15
- expect(getAutocompleteString(['name', 'cats'])).toBe('name');
16
- });
17
- it('should return "off" if no valid hints are provided', () => {
18
- // @ts-expect-error testing an invalid hint
19
- expect(getAutocompleteString(['cats'])).toBe('off');
20
- });
21
- });
@@ -1,38 +0,0 @@
1
- export const groupLayoutByPinned = (layouts) => {
2
- return layouts.reduce(groupLayout, { pinned: [], nonPinned: [] });
3
- };
4
- const groupLayout = (acc, layout) => {
5
- if (layout.type === 'button' && layout.pinOrder !== undefined) {
6
- return {
7
- pinned: [...acc.pinned, layout],
8
- nonPinned: acc.nonPinned,
9
- };
10
- }
11
- if (hasColumns(layout)) {
12
- const leftChildren = groupLayoutByPinned(layout.left);
13
- const rightChildren = groupLayoutByPinned(layout.right);
14
- return {
15
- pinned: [...acc.pinned, ...leftChildren.pinned, ...rightChildren.pinned],
16
- nonPinned: [
17
- ...acc.nonPinned,
18
- Object.assign(Object.assign({}, layout), { left: leftChildren.nonPinned, right: rightChildren.nonPinned }),
19
- ],
20
- };
21
- }
22
- if (hasChildren(layout)) {
23
- const childComponents = groupLayoutByPinned(layout.components);
24
- return {
25
- pinned: [...acc.pinned, ...childComponents.pinned],
26
- nonPinned: [
27
- ...acc.nonPinned,
28
- Object.assign(Object.assign({}, layout), { components: childComponents.nonPinned }),
29
- ],
30
- };
31
- }
32
- return {
33
- pinned: [...acc.pinned],
34
- nonPinned: [...acc.nonPinned, layout],
35
- };
36
- };
37
- const hasChildren = (component) => 'components' in component;
38
- const hasColumns = (component) => 'right' in component && 'left' in component;