@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,92 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { action } from 'storybook/actions';
3
- import DynamicFlowWise from '../../../../test-utils/DynamicFlowWise';
4
- import { fixtureHttpClient } from '../../../utils/fixtureHttpClient';
5
- import { getMockHttpClient, respondWith } from '../../../../test-utils';
6
- export default {
7
- component: DynamicFlowWise,
8
- title: 'Spec/Step/Features/Error Handling',
9
- parameters: {
10
- chromatic: { disableSnapshot: true },
11
- },
12
- };
13
- export function ErrorOnSubmission() {
14
- const step = getBasicStep();
15
- return renderWithStep(step, getHttpClient());
16
- }
17
- export function StepWithErrors() {
18
- const step = getGlobalErrorStep();
19
- return renderWithStep(step);
20
- }
21
- const getHttpClient = () => getMockHttpClient({
22
- '/submit': async () => respondWith({
23
- error: 'Server-side Global Error',
24
- validation: {
25
- name: "I don't like your name",
26
- age: 'You are too young',
27
- date: 'You are too old',
28
- money: 'You are too poor',
29
- },
30
- }, { status: 422 }),
31
- });
32
- const renderWithStep = (step, httpClient = fixtureHttpClient) => (_jsx(DynamicFlowWise, { flowId: "new-df-flow-id", httpClient: httpClient, initialStep: step, onCompletion: action('onCompletion'), onEvent: action('onEvent'), onLog: action('onLog'), onError: (error) => {
33
- action('onError');
34
- console.error(error);
35
- } }));
36
- const getBasicStep = () => ({
37
- id: 'new-df-initial-step',
38
- title: 'Error Handling in Dynamic Flow',
39
- schemas: [
40
- {
41
- $id: '#personal-details',
42
- type: 'object',
43
- title: 'Personal details object',
44
- description: 'Personal details schema description',
45
- displayOrder: ['name', 'date', 'age', 'money'],
46
- properties: {
47
- name: {
48
- title: 'Full name',
49
- type: 'string',
50
- },
51
- date: {
52
- title: 'Date',
53
- type: 'string',
54
- format: 'date',
55
- control: 'date-lookup',
56
- },
57
- age: {
58
- title: 'Age',
59
- type: 'integer',
60
- },
61
- money: {
62
- title: 'How much money would you like?',
63
- type: 'number',
64
- },
65
- },
66
- },
67
- ],
68
- layout: [
69
- {
70
- type: 'form',
71
- schemaId: '#personal-details',
72
- },
73
- {
74
- type: 'button',
75
- title: 'Submit',
76
- control: 'primary',
77
- action: {
78
- url: '/submit',
79
- method: 'POST',
80
- },
81
- },
82
- ],
83
- });
84
- const getGlobalErrorStep = () => (Object.assign(Object.assign({}, getBasicStep()), { errors: {
85
- error: 'This is a global error',
86
- validation: {
87
- name: "I don't like your name",
88
- age: 'You are too young',
89
- date: 'You are too old',
90
- money: 'You are too poor',
91
- },
92
- } }));
@@ -1,91 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { action } from 'storybook/actions';
3
- import DynamicFlowWise from '../../../../test-utils/DynamicFlowWise';
4
- import { respondWith } from '../../../../test-utils';
5
- export default {
6
- component: DynamicFlowWise,
7
- title: 'Spec/Step/Features/External',
8
- parameters: {
9
- chromatic: { disableSnapshot: true },
10
- },
11
- };
12
- export function ExternalInInitialStep() {
13
- return renderWithStep(stepWithExternal);
14
- }
15
- export function ExternalInSecondStep() {
16
- return renderWithStep(stepWithSubmission);
17
- }
18
- const httpClient = async (input, init) => {
19
- action('httpClient')(input, init === null || init === void 0 ? void 0 : init.body);
20
- switch (input.toString()) {
21
- case '/external':
22
- return respondWith(stepWithExternal);
23
- case '/skip':
24
- return respondWith(stepWithSkipMessage);
25
- default:
26
- return fetch(input, init);
27
- }
28
- };
29
- const renderWithStep = (step) => (_jsx(DynamicFlowWise, { flowId: "new-df-flow-id", httpClient: httpClient, initialStep: step, features: { nativeBack: true }, onCompletion: action('onCompletion'), onEvent: action('onEvent'), onLog: action('onLog'), onError: (error) => {
30
- action('onError');
31
- console.error(error);
32
- } }));
33
- const stepWithSubmission = {
34
- id: 'step-id-0',
35
- title: 'Initial Step',
36
- schemas: [],
37
- layout: [
38
- {
39
- type: 'paragraph',
40
- align: 'center',
41
- text: 'The next step will open an external link.',
42
- },
43
- {
44
- type: 'button',
45
- title: 'Go to next step',
46
- behavior: { type: 'action', action: { url: '/external' } },
47
- },
48
- ],
49
- };
50
- const stepWithExternal = {
51
- id: 'step-id-1',
52
- title: 'Step with External',
53
- external: { url: 'https://www.google.com' },
54
- schemas: [],
55
- layout: [
56
- {
57
- type: 'paragraph',
58
- align: 'center',
59
- text: 'Your bank is opening in another window.',
60
- },
61
- {
62
- type: 'paragraph',
63
- align: 'center',
64
- text: 'Please, follow their instructions. Keep this window open.',
65
- },
66
- { type: 'loading-indicator', margin: 'xl' },
67
- {
68
- type: 'info',
69
- align: 'center',
70
- markdown: `If it didn't work, you can [reopen](http://google.com/) the tab`,
71
- },
72
- {
73
- type: 'button',
74
- control: 'tertiary',
75
- title: 'Skip',
76
- behavior: { type: 'action', action: { url: '/skip' } },
77
- },
78
- ],
79
- };
80
- const stepWithSkipMessage = {
81
- id: 'step-id-2',
82
- title: 'Step with Skip Message',
83
- schemas: [],
84
- layout: [
85
- {
86
- type: 'paragraph',
87
- align: 'center',
88
- text: 'You have skipped. You can go back to open the external link, but manually.',
89
- },
90
- ],
91
- };
@@ -1,108 +0,0 @@
1
- import { action } from 'storybook/actions';
2
- import { getMockHttpClient, respondWith } from '../../../../test-utils';
3
- import DynamicFlowWise from '../../../../test-utils/DynamicFlowWise';
4
- import { renderWithStep } from '../../../utils/render-utils';
5
- export default {
6
- component: DynamicFlowWise,
7
- title: 'Spec/Step/Features/Polling',
8
- parameters: {
9
- chromatic: { disableSnapshot: true },
10
- },
11
- argTypes: {},
12
- };
13
- export function PollingSuccess() {
14
- let attempts = 0;
15
- const httpClient = getMockHttpClient({
16
- '/polling/1234': async () => {
17
- action('attempts!')(attempts);
18
- if (attempts <= 2) {
19
- attempts += 1;
20
- return respondWith({}, { status: 200 });
21
- }
22
- action('attempts!')(attempts, 'going to respond with step');
23
- return respondWith({
24
- id: 'hello',
25
- title: 'Direct Success',
26
- description: 'Direct success after polling. Response is a step.',
27
- layout: [],
28
- schemas: [],
29
- }, { status: 200, headers: { 'X-Df-Response-Type': 'step' } });
30
- },
31
- });
32
- return renderWithStep(step, httpClient);
33
- }
34
- export function PollingActionResponse() {
35
- let attempts = 0;
36
- const httpClient = getMockHttpClient({
37
- '/polling/1234': async () => {
38
- if (attempts <= 2) {
39
- attempts += 1;
40
- return respondWith({}, { status: 200 });
41
- }
42
- return respondWith({ action: { id: 'polling-action-response', url: '/success' } }, { status: 200 });
43
- },
44
- '/success': async () => respondWith({
45
- id: 'hello',
46
- title: 'Success after polling',
47
- description: 'ActionResponse submitted to /success which returned this step.',
48
- layout: [],
49
- schemas: [],
50
- }),
51
- });
52
- return renderWithStep(step, httpClient);
53
- }
54
- export function PollingFails() {
55
- let attempts = 0;
56
- const httpClient = getMockHttpClient({
57
- '/polling/1234': async () => {
58
- if (attempts <= 5) {
59
- attempts += 1;
60
- return respondWith({}, { status: 200 });
61
- }
62
- return respondWith({ action: { url: '/success' } }, { status: 200 });
63
- },
64
- '/success': async () => respondWith({
65
- id: 'hello',
66
- title: 'success',
67
- layout: [],
68
- schemas: [],
69
- }),
70
- });
71
- return renderWithStep(step, httpClient);
72
- }
73
- const step = {
74
- id: 'Features/Polling',
75
- title: 'Polling Feature',
76
- polling: {
77
- url: '/polling/1234',
78
- delay: 2,
79
- maxAttempts: 5,
80
- onError: {
81
- action: { url: '/failure', data: { error: 'Polling failed' } },
82
- },
83
- },
84
- layout: [
85
- {
86
- type: 'paragraph',
87
- align: 'center',
88
- text: 'We are waiting for something to happen.',
89
- },
90
- { type: 'loading-indicator', margin: 'xl' },
91
- {
92
- type: 'button',
93
- title: 'Back',
94
- action: {
95
- type: 'link',
96
- url: '/back',
97
- },
98
- },
99
- ],
100
- schemas: [
101
- {
102
- $id: '#unreferenced-schema',
103
- const: {
104
- unreferencedKey: 'unreferenced value',
105
- },
106
- },
107
- ],
108
- };
@@ -1,92 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { action } from 'storybook/actions';
3
- import { respondWith } from '../../../../test-utils';
4
- import DynamicFlowWise from '../../../../test-utils/DynamicFlowWise';
5
- export default {
6
- component: DynamicFlowWise,
7
- title: 'Spec/Step/Features/Refresh After',
8
- parameters: {
9
- chromatic: { disableSnapshot: true },
10
- },
11
- };
12
- export function RefreshAfter() {
13
- return renderWithStep(getMenuStep());
14
- }
15
- const mockHttpClient = async (input, init) => {
16
- action('httpClient')(input, init);
17
- switch (input) {
18
- case '/menu':
19
- return respondWith(getMenuStep());
20
- case '/future-5':
21
- return respondWith(getRefreshAfterStep('This step will refresh in 5 seconds', '/menu', getISO8601DateString(5000)));
22
- case '/past-40':
23
- return respondWith(getRefreshAfterStep('This step will refresh immediately (well, in 1 second)', '/menu', getISO8601DateString(-40000)));
24
- case '/banana':
25
- return respondWith(getRefreshAfterStep('This should throw', '/menu', 'banana'));
26
- case '/undefined':
27
- default:
28
- return respondWith(getRefreshAfterStep('This step should not refresh. Now you have to restart the story.', '/menu', undefined));
29
- }
30
- };
31
- const renderWithStep = (step) => (_jsx(DynamicFlowWise, { flowId: "new-df-flow-id", httpClient: mockHttpClient, initialStep: step, onCompletion: action('onCompletion'), onEvent: action('onEvent'), onLog: action('onLog'), onError: (error) => {
32
- action('onError');
33
- console.error(error);
34
- } }));
35
- const getMenuStep = () => ({
36
- id: 'refresh-after-menu',
37
- title: 'Refresh After Menu',
38
- description: 'This is the menu step',
39
- schemas: [],
40
- layout: [
41
- {
42
- type: 'decision',
43
- options: [
44
- {
45
- title: 'Future 5',
46
- description: 'This step will refresh in 5 seconds',
47
- behavior: {
48
- type: 'action',
49
- action: { url: '/future-5' },
50
- },
51
- },
52
- {
53
- title: 'Past 40',
54
- description: 'This step will refresh immediately',
55
- behavior: {
56
- type: 'action',
57
- action: { url: '/past-40' },
58
- },
59
- },
60
- {
61
- title: 'Invalid date string',
62
- description: 'This step should throw',
63
- behavior: {
64
- type: 'action',
65
- action: { url: '/banana' },
66
- },
67
- },
68
- {
69
- title: 'Undefined',
70
- description: 'This step will not refresh.',
71
- behavior: {
72
- type: 'action',
73
- action: { url: '/undefined' },
74
- },
75
- },
76
- ],
77
- },
78
- ],
79
- });
80
- const getRefreshAfterStep = (description, refreshUrl, refreshAfter) => ({
81
- id: 'refresh-after-step',
82
- title: 'Refresh After Step',
83
- description,
84
- schemas: [],
85
- layout: [],
86
- refreshUrl,
87
- refreshAfter,
88
- });
89
- const getISO8601DateString = (ms) => {
90
- const date = new Date(Date.now() + ms);
91
- return date.toISOString();
92
- };
@@ -1,258 +0,0 @@
1
- import { abortableDelay, getMockHttpClient, respondWith, } from '../../../../../test-utils/fetch-utils';
2
- import DynamicFlowWise from '../../../../../test-utils/DynamicFlowWise';
3
- import { renderWithStep } from '../../../../utils/render-utils';
4
- const getRespondWithDelay = (delayMs) => async (_, init) => {
5
- var _a, _b, _c;
6
- const customStep = Object.assign(Object.assign({}, refreshedStep), { model: JSON.parse((_b = (_a = init === null || init === void 0 ? void 0 : init.body) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '{}') });
7
- await abortableDelay(delayMs, (_c = init === null || init === void 0 ? void 0 : init.signal) !== null && _c !== void 0 ? _c : null);
8
- return respondWith(customStep);
9
- };
10
- const httpClient = getMockHttpClient({
11
- '/submit': async () => respondWith(Object.assign(Object.assign({}, initialStep), { id: String(Math.random()) })),
12
- '/refresh': getRespondWithDelay(0),
13
- '/refresh-with-delay': getRespondWithDelay(2000),
14
- '/refresh-multi': async (_, init) => {
15
- var _a, _b;
16
- await abortableDelay(100, init === null || init === void 0 ? void 0 : init.signal);
17
- return respondWith(Object.assign(Object.assign({}, refreshedMultiStep), { model: JSON.parse((_b = (_a = init === null || init === void 0 ? void 0 : init.body) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '{}') }));
18
- },
19
- '/submit-multi': async () => respondWith(Object.assign(Object.assign({}, initialMultiStep), { id: String(Math.random()) })),
20
- '/persist': async () => respondWith({ token: '123' }),
21
- });
22
- export default {
23
- component: DynamicFlowWise,
24
- title: 'Spec/Step/Features/Refresh On Change',
25
- parameters: {
26
- chromatic: { disableSnapshot: true },
27
- },
28
- };
29
- export function Refresh() {
30
- return renderWithStep(initialStep, httpClient);
31
- }
32
- export function RefreshWithMultiFileUpload() {
33
- return renderWithStep(initialMultiStep, httpClient);
34
- }
35
- const objectSchemaProps = {
36
- name: {
37
- title: 'Full name',
38
- type: 'string',
39
- refreshFormUrl: '/refresh-with-delay',
40
- description: 'This field has a delayed refresh',
41
- refreshStepOnChange: true,
42
- },
43
- email: {
44
- title: 'Email (with pattern validation)',
45
- type: 'string',
46
- pattern: "\\s*[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+\\s*",
47
- description: 'This field has a delayed refresh',
48
- refreshStepOnChange: true,
49
- },
50
- sortCode: {
51
- title: 'Sort code',
52
- type: 'string',
53
- displayFormat: '**-**-**',
54
- placeholder: '12-34-56',
55
- refreshStepOnChange: true,
56
- },
57
- colour: {
58
- title: 'Favourite colour',
59
- oneOf: [
60
- { title: 'Red', const: 'red' },
61
- { title: 'Blue', const: 'blue' },
62
- { title: 'Yellow', const: 'yellow' },
63
- { title: 'Green', const: 'green' },
64
- ],
65
- refreshStepOnChange: true,
66
- },
67
- age: {
68
- title: 'Age',
69
- type: 'integer',
70
- refreshStepOnChange: true,
71
- },
72
- tnc: {
73
- title: 'Terms and conditions',
74
- type: 'boolean',
75
- refreshStepOnChange: true,
76
- },
77
- 'credit-card-number': {
78
- title: 'Credit card number',
79
- type: 'string',
80
- persistAsync: {
81
- url: '/persist',
82
- method: 'POST',
83
- param: 'credit-card-number',
84
- idProperty: 'token',
85
- schema: {
86
- description: 'This field will trigger persist async but not refresh on change',
87
- title: 'Credit Card Number',
88
- type: 'string',
89
- control: 'numeric',
90
- },
91
- },
92
- },
93
- };
94
- const initialStep = {
95
- id: 'Features/Refresh on Change',
96
- title: 'Refresh on Change Feature',
97
- schemas: [
98
- {
99
- $id: '#schema',
100
- type: 'object',
101
- displayOrder: [
102
- 'name',
103
- 'email',
104
- 'colour',
105
- 'age',
106
- 'float',
107
- 'tnc',
108
- 'sortCode',
109
- 'credit-card-number',
110
- ],
111
- properties: Object.assign(Object.assign({}, objectSchemaProps), { float: {
112
- title: 'Float',
113
- description: 'This field will disappear after refresh on change',
114
- type: 'number',
115
- refreshStepOnChange: true,
116
- } }),
117
- },
118
- ],
119
- layout: [
120
- { type: 'paragraph', text: 'This step will refresh when any of the fields are changed' },
121
- {
122
- type: 'form',
123
- schemaId: '#schema',
124
- },
125
- {
126
- type: 'button',
127
- title: 'Submit',
128
- control: 'primary',
129
- action: { url: '/submit' },
130
- },
131
- ],
132
- refreshUrl: '/refresh',
133
- };
134
- const refreshedStep = {
135
- id: 'Features/Refresh on Change',
136
- title: 'Step refreshed!',
137
- schemas: [
138
- {
139
- $id: '#schema',
140
- type: 'object',
141
- displayOrder: ['name', 'email', 'colour', 'age', 'tnc', 'sortCode', 'credit-card-number'],
142
- properties: objectSchemaProps,
143
- },
144
- ],
145
- layout: [
146
- { type: 'paragraph', text: 'This step will refresh when any of the fields are changed' },
147
- {
148
- type: 'form',
149
- schemaId: '#schema',
150
- },
151
- {
152
- type: 'alert',
153
- context: 'warning',
154
- markdown: 'This is a refreshed step',
155
- },
156
- {
157
- type: 'button',
158
- title: 'Submit',
159
- control: 'primary',
160
- action: { url: '/submit' },
161
- },
162
- ],
163
- refreshUrl: '/refresh',
164
- };
165
- const arraySchema = {
166
- type: 'array',
167
- title: 'This field has persist async but no refresh on change',
168
- maxItems: 5,
169
- addItemTitle: 'Add',
170
- editItemTitle: 'Edit',
171
- items: {
172
- $id: '#id',
173
- type: 'string',
174
- persistAsync: {
175
- method: 'POST',
176
- url: '/persist',
177
- param: 'param',
178
- idProperty: 'token',
179
- schema: {
180
- type: 'blob',
181
- source: 'file',
182
- title: 'Upload label',
183
- description: 'PNG, JPG, or PDF, less than 5mb',
184
- accepts: ['image/png', 'image/jpg', 'application/pdf'],
185
- maxSize: 5242000,
186
- validationMessages: {
187
- maxSize: 'Your file is too large',
188
- },
189
- },
190
- },
191
- },
192
- };
193
- const refreshedMultiStep = {
194
- id: 'multi-step',
195
- title: 'Step refreshed!',
196
- schemas: [
197
- {
198
- $id: '#schema',
199
- type: 'object',
200
- displayOrder: ['array'],
201
- properties: {
202
- array: arraySchema,
203
- },
204
- },
205
- ],
206
- layout: [
207
- { type: 'paragraph', text: 'This step will refresh when any of the fields are changed' },
208
- {
209
- type: 'form',
210
- schemaId: '#schema',
211
- },
212
- {
213
- type: 'button',
214
- title: 'Submit',
215
- control: 'primary',
216
- action: { url: '/submit-multi' },
217
- },
218
- ],
219
- refreshUrl: '/refresh-multi',
220
- };
221
- const initialMultiStep = {
222
- id: 'multi-step',
223
- title: 'Refresh on Change with MultiFileUpload',
224
- schemas: [
225
- {
226
- $id: '#schema',
227
- type: 'object',
228
- displayOrder: ['otherField', 'array', 'anotherField'],
229
- properties: {
230
- array: arraySchema,
231
- otherField: {
232
- type: 'string',
233
- title: 'A field that will disappear after refresh on change',
234
- refreshStepOnChange: true,
235
- },
236
- anotherField: {
237
- type: 'string',
238
- title: 'A second field that will disappear after refresh on change',
239
- refreshStepOnChange: true,
240
- },
241
- },
242
- },
243
- ],
244
- layout: [
245
- { type: 'paragraph', text: 'This step will refresh when any of the fields are changed' },
246
- {
247
- type: 'form',
248
- schemaId: '#schema',
249
- },
250
- {
251
- type: 'button',
252
- title: 'Submit',
253
- control: 'primary',
254
- action: { url: '/submit-multi' },
255
- },
256
- ],
257
- refreshUrl: '/refresh-multi',
258
- };