@wise/dynamic-flow-client 5.11.0 → 5.12.0

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 (407) hide show
  1. package/build/main.js +15 -1
  2. package/build/main.mjs +15 -1
  3. package/build/types/controller/executePoll.d.ts.map +1 -1
  4. package/package.json +1 -1
  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 -373
  25. package/build/controller/executePoll.js +0 -49
  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/domain/components/AlertComponent.js +0 -1
  38. package/build/domain/components/AllOfComponent.js +0 -40
  39. package/build/domain/components/BooleanInputComponent.js +0 -50
  40. package/build/domain/components/BoxComponent.js +0 -3
  41. package/build/domain/components/ButtonComponent.js +0 -1
  42. package/build/domain/components/ColumnsComponent.js +0 -3
  43. package/build/domain/components/ConstComponent.js +0 -18
  44. package/build/domain/components/ContainerComponent.js +0 -3
  45. package/build/domain/components/DateInputComponent.js +0 -75
  46. package/build/domain/components/DecisionComponent.js +0 -1
  47. package/build/domain/components/DividerComponent.js +0 -1
  48. package/build/domain/components/FormComponent.js +0 -3
  49. package/build/domain/components/FormattedValueComponent.js +0 -44
  50. package/build/domain/components/HeadingComponent.js +0 -1
  51. package/build/domain/components/ImageComponent.js +0 -1
  52. package/build/domain/components/InstructionsComponent.js +0 -1
  53. package/build/domain/components/IntegerInputComponent.js +0 -74
  54. package/build/domain/components/ListComponent.js +0 -1
  55. package/build/domain/components/LoadingIndicatorComponent.js +0 -1
  56. package/build/domain/components/MarkdownComponent.js +0 -1
  57. package/build/domain/components/MediaComponent.js +0 -1
  58. package/build/domain/components/ModalComponent.js +0 -16
  59. package/build/domain/components/ModalLayoutComponent.js +0 -3
  60. package/build/domain/components/MoneyInputComponent.js +0 -57
  61. package/build/domain/components/MultiSelectInputComponent.js +0 -81
  62. package/build/domain/components/MultiUploadInputComponent.js +0 -88
  63. package/build/domain/components/NumberInputComponent.js +0 -73
  64. package/build/domain/components/ObjectComponent.js +0 -45
  65. package/build/domain/components/ParagraphComponent.js +0 -1
  66. package/build/domain/components/PersistAsyncComponent.js +0 -92
  67. package/build/domain/components/ProgressComponent.js +0 -1
  68. package/build/domain/components/RepeatableComponent.js +0 -103
  69. package/build/domain/components/ReviewComponent.js +0 -1
  70. package/build/domain/components/RootDomainComponent.js +0 -173
  71. package/build/domain/components/SectionComponent.js +0 -5
  72. package/build/domain/components/SelectInputComponent.js +0 -88
  73. package/build/domain/components/StatusListComponent.js +0 -1
  74. package/build/domain/components/SubflowDomainComponent.js +0 -9
  75. package/build/domain/components/TabsComponent.js +0 -1
  76. package/build/domain/components/TextInputComponent.js +0 -76
  77. package/build/domain/components/TupleComponent.js +0 -41
  78. package/build/domain/components/UploadInputComponent.js +0 -83
  79. package/build/domain/components/UpsellComponent.js +0 -25
  80. package/build/domain/components/searchComponent/SearchComponent.js +0 -92
  81. package/build/domain/components/searchComponent/SearchComponent.test.js +0 -190
  82. package/build/domain/components/step/ExternalConfirmationComponent.js +0 -24
  83. package/build/domain/components/step/StepDomainComponent.js +0 -78
  84. package/build/domain/components/step/ToolbarComponent.js +0 -1
  85. package/build/domain/components/utils/WithUpdate.js +0 -1
  86. package/build/domain/components/utils/component-utils.js +0 -12
  87. package/build/domain/components/utils/debounce.js +0 -34
  88. package/build/domain/components/utils/debounce.test.js +0 -67
  89. package/build/domain/components/utils/file-utils.js +0 -21
  90. package/build/domain/components/utils/file-utils.test.js +0 -27
  91. package/build/domain/components/utils/getRandomId.js +0 -1
  92. package/build/domain/components/utils/isExactLocalValueMatch.js +0 -14
  93. package/build/domain/components/utils/isOrWasValid.js +0 -5
  94. package/build/domain/components/utils/isPartialModelMatch.js +0 -18
  95. package/build/domain/components/utils/isPartialModelMatch.test.js +0 -74
  96. package/build/domain/features/eventNames.js +0 -24
  97. package/build/domain/features/events.js +0 -1
  98. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +0 -50
  99. package/build/domain/features/persistAsync/getInitialPersistedState.js +0 -7
  100. package/build/domain/features/persistAsync/getPerformPersistAsync.js +0 -43
  101. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +0 -139
  102. package/build/domain/features/polling/getStepPolling.js +0 -43
  103. package/build/domain/features/polling/getStepPolling.test.js +0 -90
  104. package/build/domain/features/prefetch/getStepPrefetch.js +0 -43
  105. package/build/domain/features/prefetch/request-cache.js +0 -49
  106. package/build/domain/features/prefetch/request-cache.test.js +0 -70
  107. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +0 -24
  108. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +0 -40
  109. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +0 -50
  110. package/build/domain/features/schema-on-change/getSchemaOnChange.js +0 -34
  111. package/build/domain/features/search/getPerformSearchFunction.js +0 -75
  112. package/build/domain/features/search/getPerformSearchFunction.test.js +0 -301
  113. package/build/domain/features/summary/summary-utils.js +0 -40
  114. package/build/domain/features/summary/summary-utils.test.js +0 -125
  115. package/build/domain/features/utils/http-utils.js +0 -21
  116. package/build/domain/features/utils/response-utils.js +0 -9
  117. package/build/domain/features/validation/spec-utils.js +0 -19
  118. package/build/domain/features/validation/validateStringPattern.js +0 -24
  119. package/build/domain/features/validation/validation-functions.js +0 -6
  120. package/build/domain/features/validation/validation-functions.test.js +0 -108
  121. package/build/domain/features/validation/value-checks.js +0 -125
  122. package/build/domain/features/validation/value-checks.test.js +0 -262
  123. package/build/domain/features/validationAsync/getComponentValidationAsync.js +0 -53
  124. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +0 -67
  125. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +0 -5
  126. package/build/domain/features/validationAsync/getPerformValidationAsync.js +0 -45
  127. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +0 -143
  128. package/build/domain/mappers/layout/alertLayoutToComponent.js +0 -16
  129. package/build/domain/mappers/layout/boxLayoutToComponent.js +0 -13
  130. package/build/domain/mappers/layout/buttonLayoutToComponent.js +0 -77
  131. package/build/domain/mappers/layout/columnsLayoutToComponent.js +0 -13
  132. package/build/domain/mappers/layout/decisionLayoutToComponent.js +0 -22
  133. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +0 -30
  134. package/build/domain/mappers/layout/dividerLayoutToComponent.js +0 -2
  135. package/build/domain/mappers/layout/formLayoutToComponent.js +0 -19
  136. package/build/domain/mappers/layout/headingLayoutToComponent.js +0 -12
  137. package/build/domain/mappers/layout/imageLayoutToComponent.js +0 -20
  138. package/build/domain/mappers/layout/infoLayoutToComponent.js +0 -12
  139. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +0 -12
  140. package/build/domain/mappers/layout/listLayoutToComponent.js +0 -39
  141. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +0 -9
  142. package/build/domain/mappers/layout/markdownLayoutToComponent.js +0 -12
  143. package/build/domain/mappers/layout/mediaLayoutToComponent.js +0 -12
  144. package/build/domain/mappers/layout/modalLayoutToComponent.js +0 -17
  145. package/build/domain/mappers/layout/modalToComponent.js +0 -8
  146. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +0 -12
  147. package/build/domain/mappers/layout/progressLayoutToComponent.js +0 -15
  148. package/build/domain/mappers/layout/reviewLayoutToComponent.js +0 -48
  149. package/build/domain/mappers/layout/searchLayoutToComponent.js +0 -44
  150. package/build/domain/mappers/layout/sectionLayoutToComponent.js +0 -15
  151. package/build/domain/mappers/layout/statusListLayoutToComponent.js +0 -15
  152. package/build/domain/mappers/layout/tabsLayoutToComponent.js +0 -16
  153. package/build/domain/mappers/layout/upsellLayoutToComponent.js +0 -25
  154. package/build/domain/mappers/mapLayoutToComponent.js +0 -81
  155. package/build/domain/mappers/mapSchemaToComponent.js +0 -61
  156. package/build/domain/mappers/mapSchemaToComponent.test.js +0 -112
  157. package/build/domain/mappers/mapStepSchemas.js +0 -15
  158. package/build/domain/mappers/mapStepToComponent.js +0 -133
  159. package/build/domain/mappers/mapStepToComponent.test.js +0 -221
  160. package/build/domain/mappers/mapToolbarToComponent.js +0 -15
  161. package/build/domain/mappers/schema/allOfSchemaToComponent.js +0 -16
  162. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +0 -26
  163. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +0 -55
  164. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +0 -67
  165. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +0 -57
  166. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +0 -20
  167. package/build/domain/mappers/schema/blobSchemaToComponent.js +0 -15
  168. package/build/domain/mappers/schema/booleanSchemaToComponent.js +0 -29
  169. package/build/domain/mappers/schema/constSchemaToComponent.js +0 -23
  170. package/build/domain/mappers/schema/integerSchemaToComponent.js +0 -28
  171. package/build/domain/mappers/schema/numberSchemaToComponent.js +0 -26
  172. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +0 -23
  173. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +0 -9
  174. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +0 -119
  175. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +0 -96
  176. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +0 -31
  177. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +0 -99
  178. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +0 -66
  179. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +0 -225
  180. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +0 -29
  181. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +0 -18
  182. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +0 -133
  183. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToDateInputComponent.js +0 -48
  184. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +0 -37
  185. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +0 -28
  186. package/build/domain/mappers/schema/tests/test-utils.js +0 -16
  187. package/build/domain/mappers/schema/types.js +0 -1
  188. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +0 -19
  189. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +0 -23
  190. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +0 -16
  191. package/build/domain/mappers/types.js +0 -1
  192. package/build/domain/mappers/utils/FeatureFlags.js +0 -22
  193. package/build/domain/mappers/utils/behavior-utils.js +0 -44
  194. package/build/domain/mappers/utils/call-to-action-utils.js +0 -21
  195. package/build/domain/mappers/utils/getAutocompleteString.js +0 -76
  196. package/build/domain/mappers/utils/getAutocompleteString.test.js +0 -21
  197. package/build/domain/mappers/utils/groupLayoutByPinned.js +0 -38
  198. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +0 -166
  199. package/build/domain/mappers/utils/image.js +0 -9
  200. package/build/domain/mappers/utils/layout-utils.js +0 -11
  201. package/build/domain/mappers/utils/legacy-utils.js +0 -49
  202. package/build/domain/mappers/utils/media-utils.js +0 -14
  203. package/build/domain/mappers/utils/suggestions-utils.js +0 -26
  204. package/build/domain/mappers/utils/suggestions-utils.test.js +0 -36
  205. package/build/domain/mappers/utils/tags-utils.js +0 -1
  206. package/build/domain/mappers/utils/utils.js +0 -35
  207. package/build/domain/types.js +0 -1
  208. package/build/getSubflowCallbacks.js +0 -38
  209. package/build/i18n/index.js +0 -40
  210. package/build/index.js +0 -8
  211. package/build/renderers/CoreContainerRenderer.js +0 -5
  212. package/build/renderers/CoreRootRenderer.js +0 -12
  213. package/build/renderers/EmptyLoadingStateRenderer.js +0 -5
  214. package/build/renderers/getRenderFunction.js +0 -24
  215. package/build/renderers/getSchemaErrorMessageFunction.js +0 -97
  216. package/build/renderers/mappers/alertComponentToProps.js +0 -2
  217. package/build/renderers/mappers/allOfComponentToProps.js +0 -6
  218. package/build/renderers/mappers/booleanInputComponentToProps.js +0 -5
  219. package/build/renderers/mappers/boxComponentToProps.js +0 -13
  220. package/build/renderers/mappers/buttonComponentToProps.js +0 -4
  221. package/build/renderers/mappers/columnsComponentToProps.js +0 -11
  222. package/build/renderers/mappers/componentToRendererProps.js +0 -164
  223. package/build/renderers/mappers/constComponentToProps.js +0 -5
  224. package/build/renderers/mappers/containerComponentToProps.js +0 -7
  225. package/build/renderers/mappers/dateInputComponentToProps.js +0 -2
  226. package/build/renderers/mappers/decisionComponentToProps.js +0 -16
  227. package/build/renderers/mappers/dividerComponentToProps.js +0 -2
  228. package/build/renderers/mappers/externalComponentToProps.js +0 -3
  229. package/build/renderers/mappers/formComponentToProps.js +0 -12
  230. package/build/renderers/mappers/formattedValueComponentToProps.js +0 -5
  231. package/build/renderers/mappers/headingComponentToProps.js +0 -2
  232. package/build/renderers/mappers/hiddenComponentToProps.js +0 -4
  233. package/build/renderers/mappers/imageComponentToProps.js +0 -2
  234. package/build/renderers/mappers/instructionsComponentToProps.js +0 -2
  235. package/build/renderers/mappers/integerInputComponentToProps.js +0 -2
  236. package/build/renderers/mappers/listComponentToProps.js +0 -2
  237. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +0 -2
  238. package/build/renderers/mappers/markdownComponentToProps.js +0 -2
  239. package/build/renderers/mappers/mediaComponentToProps.js +0 -2
  240. package/build/renderers/mappers/modalComponentToProps.js +0 -11
  241. package/build/renderers/mappers/modalLayoutComponentToProps.js +0 -16
  242. package/build/renderers/mappers/moneyInputComponentToProps.js +0 -36
  243. package/build/renderers/mappers/multiSelectComponentToProps.js +0 -23
  244. package/build/renderers/mappers/multiUploadInputComponentToProps.js +0 -12
  245. package/build/renderers/mappers/numberInputComponentToProps.js +0 -2
  246. package/build/renderers/mappers/objectComponentToProps.js +0 -8
  247. package/build/renderers/mappers/paragraphComponentToProps.js +0 -2
  248. package/build/renderers/mappers/persistAsyncComponentToProps.js +0 -8
  249. package/build/renderers/mappers/progressComponentToProps.js +0 -2
  250. package/build/renderers/mappers/repeatableComponentToProps.js +0 -30
  251. package/build/renderers/mappers/reviewComponentToProps.js +0 -2
  252. package/build/renderers/mappers/rootComponentToProps.js +0 -21
  253. package/build/renderers/mappers/searchComponentToProps.js +0 -57
  254. package/build/renderers/mappers/sectionComponentToProps.js +0 -6
  255. package/build/renderers/mappers/selectInputComponentToProps.js +0 -34
  256. package/build/renderers/mappers/statusListComponentToProps.js +0 -2
  257. package/build/renderers/mappers/subflowComponentToRendererProps.js +0 -4
  258. package/build/renderers/mappers/tabsComponentToProps.js +0 -14
  259. package/build/renderers/mappers/textInputComponentToProps.js +0 -2
  260. package/build/renderers/mappers/tupleComponentToProps.js +0 -8
  261. package/build/renderers/mappers/uploadInputComponentToProps.js +0 -8
  262. package/build/renderers/mappers/upsellComponentToProps.js +0 -2
  263. package/build/renderers/mappers/utils/getValidationState.js +0 -12
  264. package/build/renderers/mappers/utils/inputComponentToProps.js +0 -26
  265. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +0 -9
  266. package/build/renderers/mappers/utils/pick.js +0 -8
  267. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +0 -11
  268. package/build/renderers/stepComponentToProps.js +0 -32
  269. package/build/renderers/utils.js +0 -69
  270. package/build/renderers/utils.test.js +0 -70
  271. package/build/stories/dev-tools/ContainerQueries.story.js +0 -66
  272. package/build/stories/dev-tools/Debugger.story.js +0 -38
  273. package/build/stories/dev-tools/FixtureSelect.story.js +0 -23
  274. package/build/stories/dev-tools/TestServer.story.js +0 -32
  275. package/build/stories/examples/NativeFlow.story.js +0 -80
  276. package/build/stories/examples/Recipients.story.js +0 -568
  277. package/build/stories/spec/behavior/Copy.story.js +0 -71
  278. package/build/stories/spec/behavior/Link.story.js +0 -40
  279. package/build/stories/spec/behavior/Modal.story.js +0 -79
  280. package/build/stories/spec/behavior/Subflow.story.js +0 -267
  281. package/build/stories/spec/layouts/Decision.story.js +0 -241
  282. package/build/stories/spec/layouts/Image.story.js +0 -42
  283. package/build/stories/spec/layouts/Modal.story.js +0 -81
  284. package/build/stories/spec/layouts/Search.story.js +0 -325
  285. package/build/stories/spec/layouts/Upsell.story.js +0 -55
  286. package/build/stories/spec/layouts/button/Button.story.js +0 -100
  287. package/build/stories/spec/layouts/button/PinnedButton.story.js +0 -81
  288. package/build/stories/spec/response/ActionResponse.story.js +0 -66
  289. package/build/stories/spec/schemas/MultiSelect.story.js +0 -148
  290. package/build/stories/spec/schemas/Upload.story.js +0 -168
  291. package/build/stories/spec/schemas/const/ConstLayout.story.js +0 -159
  292. package/build/stories/spec/schemas/const/ObjectConst.story.js +0 -94
  293. package/build/stories/spec/schemas/features/PersistAsync.story.js +0 -211
  294. package/build/stories/spec/schemas/features/ValidationAsync.story.js +0 -103
  295. package/build/stories/spec/schemas/object/FormattedValue.story.js +0 -92
  296. package/build/stories/spec/schemas/object/MoneyInput.story.js +0 -240
  297. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +0 -55
  298. package/build/stories/spec/schemas/oneOf/OneOfWithSingleOption.story.js +0 -114
  299. package/build/stories/spec/step/Controls.story.js +0 -109
  300. package/build/stories/spec/step/DFModal.story.js +0 -58
  301. package/build/stories/spec/step/Footer.story.js +0 -70
  302. package/build/stories/spec/step/Navigation.story.js +0 -20
  303. package/build/stories/spec/step/ScrollToBottom.story.js +0 -103
  304. package/build/stories/spec/step/Tags.story.js +0 -39
  305. package/build/stories/spec/step/ToolBar.story.js +0 -60
  306. package/build/stories/spec/step/features/ErrorHandling.story.js +0 -92
  307. package/build/stories/spec/step/features/External.story.js +0 -91
  308. package/build/stories/spec/step/features/Polling.story.js +0 -108
  309. package/build/stories/spec/step/features/RefreshAfter.story.js +0 -92
  310. package/build/stories/spec/step/features/refresh/Refresh.story.js +0 -258
  311. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +0 -958
  312. package/build/stories/types.js +0 -1
  313. package/build/stories/utils/fixtureHttpClient.js +0 -70
  314. package/build/stories/utils/getBasicStep.js +0 -223
  315. package/build/stories/utils/mockSearchHandler.js +0 -71
  316. package/build/stories/utils/render-utils.js +0 -41
  317. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +0 -17
  318. package/build/test-utils/DynamicFlowWise.js +0 -32
  319. package/build/test-utils/DynamicFlowWiseModal.js +0 -34
  320. package/build/test-utils/NeptuneProviders.js +0 -11
  321. package/build/test-utils/component-utils.js +0 -5
  322. package/build/test-utils/fetch-utils.js +0 -45
  323. package/build/test-utils/getMergedTestRenderers.js +0 -34
  324. package/build/test-utils/getRandomId.js +0 -1
  325. package/build/test-utils/index.js +0 -3
  326. package/build/test-utils/openLinkInNewTab.js +0 -15
  327. package/build/test-utils/rtl-utils.js +0 -7
  328. package/build/test-utils/step-utils.js +0 -6
  329. package/build/test-utils/wait.js +0 -3
  330. package/build/tests/AlertLayout.test.js +0 -78
  331. package/build/tests/ArrayTuple.test.js +0 -118
  332. package/build/tests/ButtonLayout.test.js +0 -308
  333. package/build/tests/ConstLayout.test.js +0 -95
  334. package/build/tests/DateInput.test.js +0 -163
  335. package/build/tests/DecisionLayout.test.js +0 -146
  336. package/build/tests/DynamicFlow.test.js +0 -147
  337. package/build/tests/External.test.js +0 -169
  338. package/build/tests/Flow.test.js +0 -328
  339. package/build/tests/FormLayout.test.js +0 -28
  340. package/build/tests/FormattedValue.test.js +0 -107
  341. package/build/tests/ImageRenderer.test.js +0 -78
  342. package/build/tests/InitialAction.test.js +0 -179
  343. package/build/tests/InitialStep.test.js +0 -168
  344. package/build/tests/InstructionsLayout.test.js +0 -45
  345. package/build/tests/ListLayout.test.js +0 -145
  346. package/build/tests/Logging.test.js +0 -53
  347. package/build/tests/ModalBehavior.test.js +0 -149
  348. package/build/tests/MoneyInput.test.js +0 -316
  349. package/build/tests/MultiUpload.test.js +0 -293
  350. package/build/tests/NativeBack.test.js +0 -267
  351. package/build/tests/NoOp.test.js +0 -194
  352. package/build/tests/OneOfInitialisation.test.js +0 -571
  353. package/build/tests/PersistAsync.test.js +0 -687
  354. package/build/tests/Polling.test.js +0 -617
  355. package/build/tests/Prefetching.test.js +0 -230
  356. package/build/tests/RefreshAfter.test.js +0 -63
  357. package/build/tests/RefreshOnChange.ResponseHandling.test.js +0 -205
  358. package/build/tests/RefreshOnChange.test.js +0 -233
  359. package/build/tests/RefreshOnChange.with.Segmented.test.js +0 -348
  360. package/build/tests/RefreshOnChange.with.Tabs.test.js +0 -358
  361. package/build/tests/RefreshOnChangePreserve.test.js +0 -224
  362. package/build/tests/RendererProps.test.js +0 -342
  363. package/build/tests/Repeatable.test.js +0 -107
  364. package/build/tests/Rerendering.test.js +0 -67
  365. package/build/tests/ReviewLayout.test.js +0 -274
  366. package/build/tests/SchemaOnChange.test.js +0 -133
  367. package/build/tests/SchemaReferences.test.js +0 -88
  368. package/build/tests/ScrollToBottom.test.js +0 -122
  369. package/build/tests/ScrollToError.test.js +0 -217
  370. package/build/tests/SegmentedControl.test.js +0 -49
  371. package/build/tests/SingleFileUpload.test.js +0 -168
  372. package/build/tests/StatusList.test.js +0 -85
  373. package/build/tests/Subflow.test.js +0 -710
  374. package/build/tests/Submission.ResponseHandling.test.js +0 -557
  375. package/build/tests/Submission.merging.test.js +0 -202
  376. package/build/tests/Submission.test.js +0 -748
  377. package/build/tests/Tags.test.js +0 -475
  378. package/build/tests/Upsell.test.js +0 -154
  379. package/build/tests/ValidationAsync.test.js +0 -295
  380. package/build/tests/legacy/Actions.test.js +0 -158
  381. package/build/tests/legacy/BackButton.test.js +0 -114
  382. package/build/tests/legacy/HiddenSchemas.test.js +0 -246
  383. package/build/tests/legacy/MultiSelect.test.js +0 -501
  384. package/build/tests/legacy/MultipleFileUploadSchema.test.js +0 -341
  385. package/build/tests/legacy/PersistAsync.blob-schema.test.js +0 -224
  386. package/build/tests/legacy/PersistAsync.string-schema.test.js +0 -211
  387. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +0 -209
  388. package/build/tests/legacy/RefreshStepOnChange.test.js +0 -424
  389. package/build/tests/legacy/Search.test.js +0 -437
  390. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +0 -58
  391. package/build/tests/renderers/SelectInputRendererProps.test.js +0 -43
  392. package/build/tests/renderers/TextInputRenderer.test.js +0 -51
  393. package/build/types.js +0 -1
  394. package/build/useDynamicFlow.js +0 -104
  395. package/build/useDynamicFlowModal.js +0 -58
  396. package/build/utils/analyse-step.js +0 -14
  397. package/build/utils/component-utils.js +0 -8
  398. package/build/utils/component-utils.test.js +0 -113
  399. package/build/utils/getScrollToTop.js +0 -12
  400. package/build/utils/normalise-flow-id.js +0 -1
  401. package/build/utils/normalise-flow-id.test.js +0 -24
  402. package/build/utils/recursiveMerge.js +0 -40
  403. package/build/utils/recursiveMerge.test.js +0 -93
  404. package/build/utils/type-utils.js +0 -21
  405. package/build/utils/type-validators.js +0 -11
  406. package/build/utils/type-validators.test.js +0 -180
  407. 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,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(), 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;