@wise/dynamic-flow-client 5.28.0 → 5.29.0-experimental-f7c2300

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 (485) hide show
  1. package/build/main.css +24 -0
  2. package/build/main.js +299 -167
  3. package/build/main.mjs +299 -167
  4. package/build/tsconfig.types.tsbuildinfo +1 -1
  5. package/build/types/domain/components/collectionComponent/CollectionComponent.d.ts +5 -5
  6. package/build/types/domain/components/collectionComponent/CollectionComponent.d.ts.map +1 -1
  7. package/build/types/domain/components/collectionComponent/CollectionState.d.ts +19 -0
  8. package/build/types/domain/components/collectionComponent/CollectionState.d.ts.map +1 -0
  9. package/build/types/domain/components/collectionComponent/mergeSections.d.ts +3 -0
  10. package/build/types/domain/components/collectionComponent/mergeSections.d.ts.map +1 -0
  11. package/build/types/domain/components/collectionComponent/types.d.ts +42 -14
  12. package/build/types/domain/components/collectionComponent/types.d.ts.map +1 -1
  13. package/build/types/domain/features/collection/getPerformCollectionQuery.d.ts +2 -2
  14. package/build/types/domain/features/collection/getPerformCollectionQuery.d.ts.map +1 -1
  15. package/build/types/domain/mappers/layout/collectionLayoutToComponent.d.ts +3 -3
  16. package/build/types/domain/mappers/layout/collectionLayoutToComponent.d.ts.map +1 -1
  17. package/build/types/renderers/mappers/collectionComponentToProps.d.ts.map +1 -1
  18. package/package.json +6 -5
  19. package/build/DynamicFlowCore.js +0 -5
  20. package/build/common/capabilities/getHttpClientWithCapabilities.js +0 -41
  21. package/build/common/capabilities/getHttpClientWithCapabilities.test.js +0 -106
  22. package/build/common/capabilities/index.js +0 -1
  23. package/build/common/errorBoundary/ErrorBoundary.js +0 -26
  24. package/build/common/errorBoundary/ErrorBoundary.test.js +0 -29
  25. package/build/common/errorBoundary/ErrorBoundaryAlert.js +0 -11
  26. package/build/common/makeHttpClient/api-utils.js +0 -3
  27. package/build/common/makeHttpClient/index.js +0 -1
  28. package/build/common/makeHttpClient/makeHttpClient.js +0 -10
  29. package/build/common/makeHttpClient/makeHttpClient.test.js +0 -186
  30. package/build/common/messages/download.messages.js +0 -18
  31. package/build/common/messages/external-confirmation.messages.js +0 -23
  32. package/build/common/messages/file-upload.messages.js +0 -13
  33. package/build/common/messages/generic-error.messages.js +0 -18
  34. package/build/common/messages/help.messages.js +0 -8
  35. package/build/common/messages/multi-file-upload.messages.js +0 -18
  36. package/build/common/messages/multi-select.messages.js +0 -8
  37. package/build/common/messages/paragraph.messages.js +0 -13
  38. package/build/common/messages/repeatable.messages.js +0 -23
  39. package/build/common/messages/search.messages.js +0 -8
  40. package/build/common/messages/validation.array.messages.js +0 -13
  41. package/build/common/messages/validation.messages.js +0 -53
  42. package/build/controller/FlowController.js +0 -400
  43. package/build/controller/executeDownload.js +0 -86
  44. package/build/controller/executePoll.js +0 -65
  45. package/build/controller/executeRefresh.js +0 -45
  46. package/build/controller/executeRequest.js +0 -93
  47. package/build/controller/executeSubflow.js +0 -71
  48. package/build/controller/executeSubmission.js +0 -68
  49. package/build/controller/getErrorMessage.js +0 -7
  50. package/build/controller/getFilenameFromContentDisposition.js +0 -47
  51. package/build/controller/getFilenameFromContentDisposition.test.js +0 -47
  52. package/build/controller/getRequestAbortController.js +0 -13
  53. package/build/controller/getResponseType.js +0 -35
  54. package/build/controller/getSafeHttpClient.js +0 -8
  55. package/build/controller/getStepCounter.js +0 -16
  56. package/build/controller/handleErrorResponse.js +0 -26
  57. package/build/controller/makeSafeHttpClient.js +0 -8
  58. package/build/controller/response-utils.js +0 -72
  59. package/build/controller/response-utils.test.js +0 -52
  60. package/build/domain/components/AlertComponent.js +0 -2
  61. package/build/domain/components/AllOfComponent.js +0 -47
  62. package/build/domain/components/BooleanInputComponent.js +0 -48
  63. package/build/domain/components/BoxComponent.js +0 -12
  64. package/build/domain/components/ButtonComponent.js +0 -2
  65. package/build/domain/components/ColumnsComponent.js +0 -12
  66. package/build/domain/components/ConstComponent.js +0 -20
  67. package/build/domain/components/ContainerComponent.js +0 -12
  68. package/build/domain/components/DateInputComponent.js +0 -73
  69. package/build/domain/components/DecisionComponent.js +0 -2
  70. package/build/domain/components/DividerComponent.js +0 -2
  71. package/build/domain/components/FormComponent.js +0 -12
  72. package/build/domain/components/FormattedValueComponent.js +0 -47
  73. package/build/domain/components/HeadingComponent.js +0 -2
  74. package/build/domain/components/ImageComponent.js +0 -2
  75. package/build/domain/components/InstructionsComponent.js +0 -2
  76. package/build/domain/components/IntegerInputComponent.js +0 -75
  77. package/build/domain/components/ListComponent.js +0 -2
  78. package/build/domain/components/LoadingIndicatorComponent.js +0 -2
  79. package/build/domain/components/MarkdownComponent.js +0 -2
  80. package/build/domain/components/MediaComponent.js +0 -2
  81. package/build/domain/components/ModalComponent.js +0 -20
  82. package/build/domain/components/ModalLayoutComponent.js +0 -12
  83. package/build/domain/components/MoneyInputComponent.js +0 -56
  84. package/build/domain/components/MultiSelectInputComponent.js +0 -86
  85. package/build/domain/components/MultiUploadInputComponent.js +0 -86
  86. package/build/domain/components/NumberInputComponent.js +0 -74
  87. package/build/domain/components/ObjectComponent.js +0 -54
  88. package/build/domain/components/ParagraphComponent.js +0 -2
  89. package/build/domain/components/PersistAsyncComponent.js +0 -96
  90. package/build/domain/components/ProgressComponent.js +0 -2
  91. package/build/domain/components/RepeatableComponent.js +0 -106
  92. package/build/domain/components/ReviewComponent.js +0 -2
  93. package/build/domain/components/RootDomainComponent.js +0 -193
  94. package/build/domain/components/SectionComponent.js +0 -12
  95. package/build/domain/components/SelectInputComponent.js +0 -96
  96. package/build/domain/components/StatusListComponent.js +0 -2
  97. package/build/domain/components/SubflowComponent.js +0 -19
  98. package/build/domain/components/TabsComponent.js +0 -2
  99. package/build/domain/components/TextInputComponent.js +0 -77
  100. package/build/domain/components/TupleComponent.js +0 -48
  101. package/build/domain/components/UpdatableComponent.js +0 -46
  102. package/build/domain/components/UploadInputComponent.js +0 -78
  103. package/build/domain/components/UpsellComponent.js +0 -26
  104. package/build/domain/components/collectionComponent/CollectionComponent.js +0 -174
  105. package/build/domain/components/collectionComponent/CollectionComponent.test.js +0 -286
  106. package/build/domain/components/collectionComponent/types.js +0 -1
  107. package/build/domain/components/searchComponent/SearchComponent.js +0 -91
  108. package/build/domain/components/searchComponent/SearchComponent.test.js +0 -190
  109. package/build/domain/components/step/ExternalConfirmationComponent.js +0 -27
  110. package/build/domain/components/step/StepDomainComponent.js +0 -153
  111. package/build/domain/components/step/ToolbarComponent.js +0 -1
  112. package/build/domain/components/utils/component-utils.js +0 -12
  113. package/build/domain/components/utils/debounce.js +0 -34
  114. package/build/domain/components/utils/debounce.test.js +0 -67
  115. package/build/domain/components/utils/file-utils.js +0 -21
  116. package/build/domain/components/utils/file-utils.test.js +0 -27
  117. package/build/domain/components/utils/getRandomId.js +0 -1
  118. package/build/domain/components/utils/isExactLocalValueMatch.js +0 -14
  119. package/build/domain/components/utils/isOrWasValid.js +0 -5
  120. package/build/domain/components/utils/isPartialModelMatch.js +0 -18
  121. package/build/domain/components/utils/isPartialModelMatch.test.js +0 -74
  122. package/build/domain/features/collection/getPerformCollectionQuery.js +0 -80
  123. package/build/domain/features/collection/getPerformCollectionQuery.test.js +0 -223
  124. package/build/domain/features/delay/getStepDelays.js +0 -37
  125. package/build/domain/features/delay/getStepDelays.test.js +0 -69
  126. package/build/domain/features/domain-event-bus/DomainEventBus.js +0 -24
  127. package/build/domain/features/domain-event-bus/index.js +0 -1
  128. package/build/domain/features/domain-event-bus/types.js +0 -1
  129. package/build/domain/features/eventNames.js +0 -41
  130. package/build/domain/features/events.js +0 -5
  131. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +0 -50
  132. package/build/domain/features/persistAsync/getInitialPersistedState.js +0 -7
  133. package/build/domain/features/persistAsync/getPerformPersistAsync.js +0 -43
  134. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +0 -139
  135. package/build/domain/features/polling/getStepPolling.js +0 -50
  136. package/build/domain/features/polling/getStepPolling.test.js +0 -115
  137. package/build/domain/features/prefetch/getStepPrefetch.js +0 -56
  138. package/build/domain/features/prefetch/request-cache.js +0 -49
  139. package/build/domain/features/prefetch/request-cache.test.js +0 -70
  140. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +0 -24
  141. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +0 -40
  142. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +0 -50
  143. package/build/domain/features/schema-on-change/getSchemaOnChange.js +0 -38
  144. package/build/domain/features/search/getPerformSearchFunction.js +0 -75
  145. package/build/domain/features/search/getPerformSearchFunction.test.js +0 -301
  146. package/build/domain/features/summary/summary-utils.js +0 -37
  147. package/build/domain/features/summary/summary-utils.test.js +0 -125
  148. package/build/domain/features/updatable/getPerformUpdateQuery.js +0 -52
  149. package/build/domain/features/utils/http-utils.js +0 -21
  150. package/build/domain/features/utils/response-utils.js +0 -9
  151. package/build/domain/features/validation/date-availability.js +0 -54
  152. package/build/domain/features/validation/date-availability.test.js +0 -54
  153. package/build/domain/features/validation/getPatternRegExp.js +0 -25
  154. package/build/domain/features/validation/spec-utils.js +0 -23
  155. package/build/domain/features/validation/validation-functions.js +0 -6
  156. package/build/domain/features/validation/validation-functions.test.js +0 -108
  157. package/build/domain/features/validation/value-checks.js +0 -130
  158. package/build/domain/features/validation/value-checks.test.js +0 -297
  159. package/build/domain/features/validationAsync/getComponentValidationAsync.js +0 -57
  160. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +0 -67
  161. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +0 -6
  162. package/build/domain/features/validationAsync/getPerformValidationAsync.js +0 -46
  163. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +0 -162
  164. package/build/domain/handlers/dismissHandler.js +0 -11
  165. package/build/domain/mappers/layout/alertLayoutToComponent.js +0 -18
  166. package/build/domain/mappers/layout/boxLayoutToComponent.js +0 -13
  167. package/build/domain/mappers/layout/buttonLayoutToComponent.js +0 -77
  168. package/build/domain/mappers/layout/collectionLayoutToComponent.js +0 -49
  169. package/build/domain/mappers/layout/columnsLayoutToComponent.js +0 -13
  170. package/build/domain/mappers/layout/decisionLayoutToComponent.js +0 -24
  171. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +0 -30
  172. package/build/domain/mappers/layout/dividerLayoutToComponent.js +0 -2
  173. package/build/domain/mappers/layout/formLayoutToComponent.js +0 -19
  174. package/build/domain/mappers/layout/headingLayoutToComponent.js +0 -12
  175. package/build/domain/mappers/layout/imageLayoutToComponent.js +0 -17
  176. package/build/domain/mappers/layout/infoLayoutToComponent.js +0 -12
  177. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +0 -12
  178. package/build/domain/mappers/layout/listLayoutToComponent.js +0 -39
  179. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +0 -9
  180. package/build/domain/mappers/layout/markdownLayoutToComponent.js +0 -12
  181. package/build/domain/mappers/layout/mediaLayoutToComponent.js +0 -12
  182. package/build/domain/mappers/layout/modalLayoutToComponent.js +0 -17
  183. package/build/domain/mappers/layout/modalToComponent.js +0 -8
  184. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +0 -12
  185. package/build/domain/mappers/layout/progressLayoutToComponent.js +0 -15
  186. package/build/domain/mappers/layout/reviewLayoutToComponent.js +0 -49
  187. package/build/domain/mappers/layout/searchLayoutToComponent.js +0 -44
  188. package/build/domain/mappers/layout/sectionLayoutToComponent.js +0 -16
  189. package/build/domain/mappers/layout/statusListLayoutToComponent.js +0 -15
  190. package/build/domain/mappers/layout/tabsLayoutToComponent.js +0 -16
  191. package/build/domain/mappers/layout/updatableLayoutToComponent.js +0 -39
  192. package/build/domain/mappers/layout/upsellLayoutToComponent.js +0 -18
  193. package/build/domain/mappers/mapLayoutToComponent.js +0 -87
  194. package/build/domain/mappers/mapSchemaToComponent.js +0 -65
  195. package/build/domain/mappers/mapSchemaToComponent.test.js +0 -116
  196. package/build/domain/mappers/mapStepSchemas.js +0 -14
  197. package/build/domain/mappers/mapStepToComponent.js +0 -145
  198. package/build/domain/mappers/mapStepToComponent.test.js +0 -319
  199. package/build/domain/mappers/mapToolbarToComponent.js +0 -15
  200. package/build/domain/mappers/schema/allOfSchemaToComponent.js +0 -17
  201. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +0 -26
  202. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +0 -56
  203. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +0 -66
  204. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +0 -58
  205. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +0 -18
  206. package/build/domain/mappers/schema/blobSchemaToComponent.js +0 -15
  207. package/build/domain/mappers/schema/booleanSchemaToComponent.js +0 -29
  208. package/build/domain/mappers/schema/constSchemaToComponent.js +0 -23
  209. package/build/domain/mappers/schema/dateSchemaToComponent.js +0 -56
  210. package/build/domain/mappers/schema/dateSchemaToComponent.test.js +0 -112
  211. package/build/domain/mappers/schema/integerSchemaToComponent.js +0 -28
  212. package/build/domain/mappers/schema/numberSchemaToComponent.js +0 -26
  213. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +0 -23
  214. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +0 -9
  215. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +0 -119
  216. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +0 -97
  217. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +0 -32
  218. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +0 -99
  219. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +0 -67
  220. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +0 -225
  221. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +0 -29
  222. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +0 -18
  223. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +0 -133
  224. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +0 -38
  225. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +0 -28
  226. package/build/domain/mappers/schema/tests/test-utils.js +0 -16
  227. package/build/domain/mappers/schema/types.js +0 -1
  228. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +0 -19
  229. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +0 -23
  230. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +0 -16
  231. package/build/domain/mappers/types.js +0 -1
  232. package/build/domain/mappers/utils/FeatureFlags.js +0 -22
  233. package/build/domain/mappers/utils/behavior-utils.js +0 -52
  234. package/build/domain/mappers/utils/call-to-action-utils.js +0 -24
  235. package/build/domain/mappers/utils/getAutocompleteString.js +0 -76
  236. package/build/domain/mappers/utils/getAutocompleteString.test.js +0 -21
  237. package/build/domain/mappers/utils/getHrefWithTracking.js +0 -16
  238. package/build/domain/mappers/utils/groupLayoutByPinned.js +0 -38
  239. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +0 -166
  240. package/build/domain/mappers/utils/image.js +0 -6
  241. package/build/domain/mappers/utils/layout-utils.js +0 -11
  242. package/build/domain/mappers/utils/legacy-utils.js +0 -49
  243. package/build/domain/mappers/utils/media-utils.js +0 -14
  244. package/build/domain/mappers/utils/suggestions-utils.js +0 -26
  245. package/build/domain/mappers/utils/suggestions-utils.test.js +0 -36
  246. package/build/domain/mappers/utils/tags-utils.js +0 -1
  247. package/build/domain/mappers/utils/utils.js +0 -45
  248. package/build/domain/types.js +0 -1
  249. package/build/i18n/index.js +0 -40
  250. package/build/index.js +0 -9
  251. package/build/renderers/CoreContainerRenderer.js +0 -5
  252. package/build/renderers/CoreRootRenderer.js +0 -12
  253. package/build/renderers/EmptyLoadingStateRenderer.js +0 -5
  254. package/build/renderers/getRenderFunction.js +0 -24
  255. package/build/renderers/getSchemaErrorMessageFunction.js +0 -111
  256. package/build/renderers/mappers/alertComponentToProps.js +0 -3
  257. package/build/renderers/mappers/allOfComponentToProps.js +0 -6
  258. package/build/renderers/mappers/booleanInputComponentToProps.js +0 -3
  259. package/build/renderers/mappers/boxComponentToProps.js +0 -13
  260. package/build/renderers/mappers/buttonComponentToProps.js +0 -4
  261. package/build/renderers/mappers/collectionComponentToProps.js +0 -11
  262. package/build/renderers/mappers/columnsComponentToProps.js +0 -8
  263. package/build/renderers/mappers/componentToRendererProps.js +0 -168
  264. package/build/renderers/mappers/constComponentToProps.js +0 -5
  265. package/build/renderers/mappers/containerComponentToProps.js +0 -8
  266. package/build/renderers/mappers/dateInputComponentToProps.js +0 -3
  267. package/build/renderers/mappers/decisionComponentToProps.js +0 -16
  268. package/build/renderers/mappers/dividerComponentToProps.js +0 -2
  269. package/build/renderers/mappers/externalComponentToProps.js +0 -4
  270. package/build/renderers/mappers/formComponentToProps.js +0 -8
  271. package/build/renderers/mappers/formattedValueComponentToProps.js +0 -5
  272. package/build/renderers/mappers/headingComponentToProps.js +0 -2
  273. package/build/renderers/mappers/hiddenComponentToProps.js +0 -1
  274. package/build/renderers/mappers/imageComponentToProps.js +0 -2
  275. package/build/renderers/mappers/instructionsComponentToProps.js +0 -2
  276. package/build/renderers/mappers/integerInputComponentToProps.js +0 -3
  277. package/build/renderers/mappers/listComponentToProps.js +0 -3
  278. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +0 -2
  279. package/build/renderers/mappers/markdownComponentToProps.js +0 -2
  280. package/build/renderers/mappers/mediaComponentToProps.js +0 -2
  281. package/build/renderers/mappers/modalComponentToProps.js +0 -8
  282. package/build/renderers/mappers/modalLayoutComponentToProps.js +0 -13
  283. package/build/renderers/mappers/moneyInputComponentToProps.js +0 -36
  284. package/build/renderers/mappers/multiSelectComponentToProps.js +0 -19
  285. package/build/renderers/mappers/multiUploadInputComponentToProps.js +0 -7
  286. package/build/renderers/mappers/numberInputComponentToProps.js +0 -3
  287. package/build/renderers/mappers/objectComponentToProps.js +0 -8
  288. package/build/renderers/mappers/paragraphComponentToProps.js +0 -2
  289. package/build/renderers/mappers/persistAsyncComponentToProps.js +0 -7
  290. package/build/renderers/mappers/progressComponentToProps.js +0 -2
  291. package/build/renderers/mappers/repeatableComponentToProps.js +0 -22
  292. package/build/renderers/mappers/reviewComponentToProps.js +0 -3
  293. package/build/renderers/mappers/rootComponentToProps.js +0 -20
  294. package/build/renderers/mappers/searchComponentToProps.js +0 -45
  295. package/build/renderers/mappers/sectionComponentToProps.js +0 -7
  296. package/build/renderers/mappers/selectInputComponentToProps.js +0 -34
  297. package/build/renderers/mappers/statusListComponentToProps.js +0 -3
  298. package/build/renderers/mappers/subflowComponentToRendererProps.js +0 -26
  299. package/build/renderers/mappers/tabsComponentToProps.js +0 -14
  300. package/build/renderers/mappers/textInputComponentToProps.js +0 -3
  301. package/build/renderers/mappers/tupleComponentToProps.js +0 -8
  302. package/build/renderers/mappers/updatableComponentToProps.js +0 -6
  303. package/build/renderers/mappers/uploadInputComponentToProps.js +0 -5
  304. package/build/renderers/mappers/upsellComponentToProps.js +0 -3
  305. package/build/renderers/mappers/utils/getValidationState.js +0 -12
  306. package/build/renderers/mappers/utils/inputComponentToProps.js +0 -17
  307. package/build/renderers/mappers/utils/mapCallToAction.js +0 -23
  308. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +0 -9
  309. package/build/renderers/mappers/utils/mapRendererLoadingState.js +0 -1
  310. package/build/renderers/mappers/utils/pick.js +0 -8
  311. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +0 -11
  312. package/build/renderers/stepComponentToProps.js +0 -32
  313. package/build/renderers/subflow/getDynamicSubflowRenderer.js +0 -13
  314. package/build/renderers/subflow/getNativeSubflowRenderer.js +0 -26
  315. package/build/renderers/utils.js +0 -72
  316. package/build/renderers/utils.test.js +0 -70
  317. package/build/stories/dev-tools/ContainerQueries.story.js +0 -66
  318. package/build/stories/dev-tools/Debugger.story.js +0 -107
  319. package/build/stories/dev-tools/FixtureSelect.story.js +0 -23
  320. package/build/stories/dev-tools/TestServer.story.js +0 -118
  321. package/build/stories/examples/NativeFlow.story.js +0 -80
  322. package/build/stories/examples/Recipients.story.js +0 -568
  323. package/build/stories/spec/behavior/Copy.story.js +0 -71
  324. package/build/stories/spec/behavior/Download.story.js +0 -254
  325. package/build/stories/spec/behavior/DynamicSubflow.story.js +0 -272
  326. package/build/stories/spec/behavior/Link.story.js +0 -40
  327. package/build/stories/spec/behavior/Modal.story.js +0 -79
  328. package/build/stories/spec/behavior/NativeSubflow.story.js +0 -249
  329. package/build/stories/spec/layouts/Alert.story.js +0 -107
  330. package/build/stories/spec/layouts/Box.Container-Widths.3-sizes.story.js +0 -59
  331. package/build/stories/spec/layouts/Box.Container-Widths.story.js +0 -57
  332. package/build/stories/spec/layouts/Box.Viewport-Widths.story.js +0 -64
  333. package/build/stories/spec/layouts/Collection.story.js +0 -294
  334. package/build/stories/spec/layouts/Decision.story.js +0 -241
  335. package/build/stories/spec/layouts/Image.Illustrations.Animated.story.js +0 -37
  336. package/build/stories/spec/layouts/Image.Sizes.story.js +0 -58
  337. package/build/stories/spec/layouts/Modal.story.js +0 -81
  338. package/build/stories/spec/layouts/Search.story.js +0 -325
  339. package/build/stories/spec/layouts/Updatable.story.js +0 -135
  340. package/build/stories/spec/layouts/Upsell.story.js +0 -55
  341. package/build/stories/spec/layouts/button/Button.story.js +0 -111
  342. package/build/stories/spec/layouts/button/PinnedButton.story.js +0 -81
  343. package/build/stories/spec/response/ActionResponse.story.js +0 -66
  344. package/build/stories/spec/schemas/InlineAlert.story.js +0 -134
  345. package/build/stories/spec/schemas/MultiSelect.story.js +0 -206
  346. package/build/stories/spec/schemas/Upload.story.js +0 -168
  347. package/build/stories/spec/schemas/const/ConstLayout.story.js +0 -159
  348. package/build/stories/spec/schemas/const/ObjectConst.story.js +0 -94
  349. package/build/stories/spec/schemas/date/DateSchema.story.js +0 -59
  350. package/build/stories/spec/schemas/features/PersistAsync.story.js +0 -230
  351. package/build/stories/spec/schemas/features/ValidationAsync.story.js +0 -137
  352. package/build/stories/spec/schemas/object/FormattedValue.story.js +0 -92
  353. package/build/stories/spec/schemas/object/MoneyInput.story.js +0 -240
  354. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +0 -55
  355. package/build/stories/spec/schemas/oneOf/OneOfWithSingleOption.story.js +0 -114
  356. package/build/stories/spec/step/Controls.story.js +0 -110
  357. package/build/stories/spec/step/DFModal.story.js +0 -58
  358. package/build/stories/spec/step/Footer.story.js +0 -90
  359. package/build/stories/spec/step/Navigation.story.js +0 -46
  360. package/build/stories/spec/step/ScrollToBottom.story.js +0 -103
  361. package/build/stories/spec/step/Tags.story.js +0 -39
  362. package/build/stories/spec/step/ToolBar.story.js +0 -60
  363. package/build/stories/spec/step/features/ErrorHandling.story.js +0 -92
  364. package/build/stories/spec/step/features/External.story.js +0 -91
  365. package/build/stories/spec/step/features/LongFormError.story.js +0 -88
  366. package/build/stories/spec/step/features/Polling.story.js +0 -108
  367. package/build/stories/spec/step/features/RefreshAfter.story.js +0 -92
  368. package/build/stories/spec/step/features/refresh/Refresh.story.js +0 -260
  369. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +0 -958
  370. package/build/stories/types.js +0 -1
  371. package/build/stories/utils/fixtureHttpClient.js +0 -70
  372. package/build/stories/utils/getBasicStep.js +0 -223
  373. package/build/stories/utils/mockSearchHandler.js +0 -71
  374. package/build/stories/utils/render-utils.js +0 -59
  375. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +0 -17
  376. package/build/test-utils/DynamicFlowWise.js +0 -41
  377. package/build/test-utils/DynamicFlowWiseModal.js +0 -34
  378. package/build/test-utils/NeptuneProviders.js +0 -11
  379. package/build/test-utils/component-utils.js +0 -5
  380. package/build/test-utils/dummy-native-subflows-handlers/dummySubflowHandlers.js +0 -45
  381. package/build/test-utils/dummy-native-subflows-handlers/geolocationSubflowHandler.js +0 -30
  382. package/build/test-utils/dummy-native-subflows-handlers/index.js +0 -9
  383. package/build/test-utils/dummy-native-subflows-handlers/notificationPermissionSubflowHandler.js +0 -17
  384. package/build/test-utils/fetch-utils.js +0 -47
  385. package/build/test-utils/getMergedTestRenderers.js +0 -36
  386. package/build/test-utils/getRandomId.js +0 -1
  387. package/build/test-utils/index.js +0 -3
  388. package/build/test-utils/mockIntersectionObserver.js +0 -23
  389. package/build/test-utils/openLinkInNewTab.js +0 -15
  390. package/build/test-utils/rtl-utils.js +0 -7
  391. package/build/test-utils/step-utils.js +0 -6
  392. package/build/test-utils/useSnackBar.js +0 -4
  393. package/build/test-utils/wait.js +0 -3
  394. package/build/tests/AlertLayout.test.js +0 -228
  395. package/build/tests/ArrayTuple.test.js +0 -118
  396. package/build/tests/ButtonLayout.test.js +0 -356
  397. package/build/tests/CollectionLayout.test.js +0 -516
  398. package/build/tests/ConstLayout.test.js +0 -95
  399. package/build/tests/DateInput.test.js +0 -190
  400. package/build/tests/DateSchema.test.js +0 -84
  401. package/build/tests/DecisionLayout.test.js +0 -146
  402. package/build/tests/DelayBehavior.test.js +0 -186
  403. package/build/tests/Download.test.js +0 -201
  404. package/build/tests/DynamicFlow.test.js +0 -147
  405. package/build/tests/External.test.js +0 -169
  406. package/build/tests/Flow.test.js +0 -328
  407. package/build/tests/FormLayout.test.js +0 -28
  408. package/build/tests/FormattedValue.test.js +0 -107
  409. package/build/tests/ImageRenderer.test.js +0 -78
  410. package/build/tests/InitialAction.test.js +0 -235
  411. package/build/tests/InitialStep.test.js +0 -168
  412. package/build/tests/InstructionsLayout.test.js +0 -45
  413. package/build/tests/ListLayout.test.js +0 -165
  414. package/build/tests/Logging.test.js +0 -53
  415. package/build/tests/ModalBehavior.test.js +0 -149
  416. package/build/tests/MoneyInput.test.js +0 -313
  417. package/build/tests/MultiUpload.test.js +0 -293
  418. package/build/tests/NativeBack.test.js +0 -267
  419. package/build/tests/NoOp.test.js +0 -194
  420. package/build/tests/OnLoad.test.js +0 -153
  421. package/build/tests/OneOfInitialisation.test.js +0 -571
  422. package/build/tests/PersistAsync.test.js +0 -687
  423. package/build/tests/Polling.test.js +0 -708
  424. package/build/tests/Prefetching.test.js +0 -229
  425. package/build/tests/RefreshAfter.test.js +0 -63
  426. package/build/tests/RefreshOnChange.ResponseHandling.test.js +0 -199
  427. package/build/tests/RefreshOnChange.test.js +0 -233
  428. package/build/tests/RefreshOnChange.with.Segmented.test.js +0 -351
  429. package/build/tests/RefreshOnChange.with.Tabs.test.js +0 -359
  430. package/build/tests/RefreshOnChangePreserve.test.js +0 -221
  431. package/build/tests/RendererProps.test.js +0 -372
  432. package/build/tests/Repeatable.test.js +0 -104
  433. package/build/tests/Rerendering.test.js +0 -67
  434. package/build/tests/ReviewLayout.test.js +0 -271
  435. package/build/tests/SchemaOnChange.test.js +0 -133
  436. package/build/tests/SchemaReferences.test.js +0 -88
  437. package/build/tests/ScrollToBottom.test.js +0 -101
  438. package/build/tests/ScrollToError.test.js +0 -359
  439. package/build/tests/ScrollToTop.test.js +0 -95
  440. package/build/tests/SegmentedControl.test.js +0 -49
  441. package/build/tests/SingleFileUpload.test.js +0 -168
  442. package/build/tests/StatusList.test.js +0 -85
  443. package/build/tests/Subflow.dynamic.test.js +0 -887
  444. package/build/tests/Subflow.native.test.js +0 -448
  445. package/build/tests/Submission.Const.test.js +0 -70
  446. package/build/tests/Submission.ResponseHandling.test.js +0 -557
  447. package/build/tests/Submission.merging.test.js +0 -202
  448. package/build/tests/Submission.test.js +0 -821
  449. package/build/tests/Tags.test.js +0 -466
  450. package/build/tests/UpdatableLayout.test.js +0 -343
  451. package/build/tests/Upsell.test.js +0 -154
  452. package/build/tests/ValidationAsync.test.js +0 -295
  453. package/build/tests/behavior/events.test.js +0 -348
  454. package/build/tests/legacy/Actions.test.js +0 -158
  455. package/build/tests/legacy/BackButton.test.js +0 -114
  456. package/build/tests/legacy/HiddenSchemas.test.js +0 -250
  457. package/build/tests/legacy/MultiSelect.test.js +0 -546
  458. package/build/tests/legacy/MultipleFileUploadSchema.test.js +0 -350
  459. package/build/tests/legacy/PersistAsync.blob-schema.test.js +0 -224
  460. package/build/tests/legacy/PersistAsync.string-schema.test.js +0 -211
  461. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +0 -209
  462. package/build/tests/legacy/RefreshStepOnChange.test.js +0 -421
  463. package/build/tests/legacy/Search.test.js +0 -439
  464. package/build/tests/renderers/InlineAlertInSchemas.test.js +0 -82
  465. package/build/tests/renderers/MediaRenderer.test.js +0 -74
  466. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +0 -58
  467. package/build/tests/renderers/SelectInputRendererProps.test.js +0 -43
  468. package/build/tests/renderers/TextInputRenderer.test.js +0 -48
  469. package/build/types.js +0 -1
  470. package/build/useDynamicFlow.js +0 -110
  471. package/build/useDynamicFlowModal.js +0 -58
  472. package/build/utils/analyse-step.js +0 -14
  473. package/build/utils/component-utils.js +0 -8
  474. package/build/utils/component-utils.test.js +0 -113
  475. package/build/utils/getScrollToTop.js +0 -12
  476. package/build/utils/normalise-flow-id.js +0 -1
  477. package/build/utils/normalise-flow-id.test.js +0 -24
  478. package/build/utils/recursiveMerge.js +0 -40
  479. package/build/utils/recursiveMerge.test.js +0 -93
  480. package/build/utils/safe-parse-link.js +0 -14
  481. package/build/utils/safe-parse-link.test.js +0 -19
  482. package/build/utils/type-utils.js +0 -22
  483. package/build/utils/type-validators.js +0 -11
  484. package/build/utils/type-validators.test.js +0 -180
  485. package/build/utils/useStableCallback.js +0 -15
@@ -1,9 +1,9 @@
1
- import { CollectionComponent, CollectionSearch } from './types';
1
+ import { CollectionComponent, CollectionResponse } from './types';
2
2
  import { PerformCollectionQuery } from '../../features/collection/getPerformCollectionQuery';
3
3
  import { OnComponentUpdate } from '../../types';
4
- import { AnalyticsEventDispatcher, EventName } from '../../features/events';
5
- export type CollectionEvent = EventName & `Collection ${string}`;
6
- export declare const createCollectionComponent: (props: Pick<CollectionComponent, 'uid' | 'analyticsId' | 'control' | 'margin' | 'tags' | 'state'> & {
7
- search?: Omit<CollectionSearch, 'onChange' | 'query'>;
4
+ import { AnalyticsEventDispatcher } from '../../features/events';
5
+ export type { CollectionEvent } from './CollectionState';
6
+ export declare const createCollectionComponent: (props: Pick<CollectionComponent, 'uid' | 'analyticsId' | 'control' | 'margin' | 'tags'> & {
7
+ state: CollectionResponse;
8
8
  }, onComponentUpdate: OnComponentUpdate, queryFunction: PerformCollectionQuery, trackEvent: AnalyticsEventDispatcher) => CollectionComponent;
9
9
  //# sourceMappingURL=CollectionComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionComponent.d.ts","sourceRoot":"","sources":["../../../../../src/domain/components/collectionComponent/CollectionComponent.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EAEnB,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAK5E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,MAAM,EAAE,CAAC;AAKjE,eAAO,MAAM,yBAAyB,UAC7B,IAAI,CACT,mBAAmB,EACnB,KAAK,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAChE,GAAG;IACF,MAAM,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;CACvD,qBACkB,iBAAiB,iBACrB,sBAAsB,cACzB,wBAAwB,KACnC,mBA6KF,CAAC"}
1
+ {"version":3,"file":"CollectionComponent.d.ts","sourceRoot":"","sources":["../../../../../src/domain/components/collectionComponent/CollectionComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,eAAO,MAAM,yBAAyB,UAC7B,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG;IACxF,KAAK,EAAE,kBAAkB,CAAC;CAC3B,qBACkB,iBAAiB,iBACrB,sBAAsB,cACzB,wBAAwB,KACnC,mBAsDF,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { CollectionResponse, CollectionState } from './types';
2
+ import { PerformCollectionQuery } from '../../features/collection/getPerformCollectionQuery';
3
+ import { OnComponentUpdate } from '../../types';
4
+ import { AnalyticsEventDispatcher, EventName } from '../../features/events';
5
+ export type CollectionEvent = EventName & `Collection ${string}`;
6
+ export type CollectionStateProps = {
7
+ id: string;
8
+ initialState: CollectionResponse;
9
+ searchQuery: string;
10
+ onComponentUpdate: OnComponentUpdate;
11
+ queryFunction: PerformCollectionQuery;
12
+ trackEvent: AnalyticsEventDispatcher;
13
+ };
14
+ /**
15
+ * Creates a collection state. Each state owns its query, filters and results, and makes its own
16
+ * requests, so a response is always applied to the state that made the request.
17
+ */
18
+ export declare const createCollectionState: ({ id, initialState, searchQuery, onComponentUpdate, queryFunction, trackEvent, }: CollectionStateProps) => CollectionState;
19
+ //# sourceMappingURL=CollectionState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionState.d.ts","sourceRoot":"","sources":["../../../../../src/domain/components/collectionComponent/CollectionState.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAIlB,eAAe,EAEhB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAmB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAM5E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,MAAM,EAAE,CAAC;AAIjE,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,kBAAkB,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,sBAAsB,CAAC;IACtC,UAAU,EAAE,wBAAwB,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,qFAO/B,oBAAoB,KAAG,eAiKzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { CollectionSection } from './types';
2
+ export declare const mergeSections: (existing: CollectionSection[], incoming: CollectionSection[]) => CollectionSection[];
3
+ //# sourceMappingURL=mergeSections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeSections.d.ts","sourceRoot":"","sources":["../../../../../src/domain/components/collectionComponent/mergeSections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,aAAa,aACd,iBAAiB,EAAE,YACnB,iBAAiB,EAAE,KAC5B,iBAAiB,EAoCnB,CAAC"}
@@ -1,39 +1,61 @@
1
- import { AdditionalInfo, BaseLayoutComponent, CallToAction, DomainComponent, InlineAlert, Media, SupportingValues } from '../../types';
1
+ import { AdditionalInfo, BaseLayoutComponent, CallToAction, DomainComponent, InlineAlert, LayoutComponent, Media, SupportingValues } from '../../types';
2
2
  export type CollectionStatus = {
3
3
  type: 'idle';
4
4
  loadMore?: () => void;
5
5
  } | {
6
6
  type: 'loading';
7
- reason: 'search' | 'pagination';
7
+ reason: 'search' | 'filter' | 'pagination';
8
8
  } | {
9
9
  type: 'error';
10
- reason: 'pagination' | 'search';
10
+ reason: 'search' | 'filter' | 'pagination';
11
11
  retry: () => void;
12
12
  };
13
13
  export type CollectionComponent = BaseLayoutComponent & {
14
14
  type: 'collection';
15
15
  kind: 'layout';
16
- state: CollectionState;
16
+ /**
17
+ * A stack of states, where the last one is active. Forking pushes a copy of the active state,
18
+ * which can then be searched or filtered independently, and popping discards it.
19
+ */
20
+ stack: CollectionStack;
21
+ fork: () => void;
22
+ pop: () => void;
23
+ getChildren: () => DomainComponent[];
24
+ };
25
+ export type CollectionStack = [CollectionState, ...CollectionState[]];
26
+ export type CollectionState = Omit<CollectionResponse, 'search'> & {
27
+ id: string;
17
28
  status: CollectionStatus;
29
+ search?: CollectionSearch;
30
+ /** Creates a copy of this state with the given id, which makes its own requests. */
31
+ fork: (id: string) => CollectionState;
32
+ /** Cancels any pending or in-flight request for this state. */
33
+ cancel: () => void;
34
+ /** Returns the layout components in this state, including its initial search sections. */
18
35
  getChildren: () => DomainComponent[];
19
36
  };
20
- export type CollectionState = {
37
+ export type CollectionResponse = {
21
38
  sections: CollectionSection[];
22
- search?: CollectionSearch;
23
39
  nextCursor?: string;
40
+ analytics: Record<string, string>;
41
+ search?: CollectionSearchConfig;
24
42
  filters?: CollectionFilter[];
25
43
  beforeSections?: DomainComponent[];
26
44
  afterSections?: DomainComponent[];
27
- analytics: Record<string, string>;
28
45
  };
29
- export type CollectionResponse = Omit<CollectionState, 'filters'> & {
30
- filters?: CollectionFilter[];
46
+ export type CollectionSection = CollectionItemsSection | CollectionLayoutSection;
47
+ export type CollectionItemsSection = BaseCollectionSection & {
48
+ type: 'items';
49
+ items: CollectionItem[];
31
50
  };
32
- export type CollectionSection = {
51
+ export type CollectionLayoutSection = BaseCollectionSection & {
52
+ type: 'layout';
53
+ components: LayoutComponent[];
54
+ };
55
+ type BaseCollectionSection = {
33
56
  id: string;
34
57
  title?: string;
35
58
  callToAction?: CallToAction;
36
- items: CollectionItem[];
37
59
  inlineAlert?: InlineAlert;
38
60
  help?: string;
39
61
  };
@@ -52,12 +74,17 @@ export type CollectionItem = {
52
74
  analyticsId?: string;
53
75
  tags?: string[];
54
76
  };
55
- export type CollectionSearch = {
77
+ export type CollectionSearchConfig = {
56
78
  param: string;
57
- query: string;
58
- onChange: (query: string) => void;
59
79
  title?: string;
60
80
  hint?: string;
81
+ hints?: string[];
82
+ help?: string;
83
+ initialSections?: CollectionSection[];
84
+ };
85
+ export type CollectionSearch = CollectionSearchConfig & {
86
+ query: string;
87
+ onChange: (query: string) => void;
61
88
  };
62
89
  export type CollectionFilter = {
63
90
  type: 'select';
@@ -72,4 +99,5 @@ export type CollectionFilterOption = {
72
99
  onSelect: () => void;
73
100
  selected: boolean;
74
101
  };
102
+ export {};
75
103
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/domain/components/collectionComponent/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/domain/components/collectionComponent/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { CollectionLayout, Request } from '@wise/dynamic-flow-types/spec';
2
2
  import { HttpClient } from '../../../types';
3
- import { CollectionFilter, CollectionResponse, CollectionState } from '../../components/collectionComponent/types';
3
+ import { CollectionFilter, CollectionResponse } from '../../components/collectionComponent/types';
4
4
  type PerformCollectionQueryParameters = {
5
5
  searchParam?: string;
6
6
  query?: string | null;
@@ -9,6 +9,6 @@ type PerformCollectionQueryParameters = {
9
9
  filters?: CollectionFilter[];
10
10
  };
11
11
  export type PerformCollectionQuery = (params: PerformCollectionQueryParameters) => Promise<CollectionResponse | null>;
12
- export declare const getPerformCollectionQuery: (httpClient: HttpClient, baseRequest: Request, mapState: (state: CollectionLayout['initialState']) => CollectionState) => PerformCollectionQuery;
12
+ export declare const getPerformCollectionQuery: (httpClient: HttpClient, baseRequest: Request, mapState: (state: CollectionLayout['initialState']) => CollectionResponse) => PerformCollectionQuery;
13
13
  export {};
14
14
  //# sourceMappingURL=getPerformCollectionQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPerformCollectionQuery.d.ts","sourceRoot":"","sources":["../../../../../src/domain/features/collection/getPerformCollectionQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,OAAO,EACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,4CAA4C,CAAC;AAGpD,KAAK,gCAAgC,GAAG;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE,gCAAgC,KACrC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAIxC,eAAO,MAAM,yBAAyB,eACxB,UAAU,eACT,OAAO,YACV,CAAC,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,eAAe,KACrE,sBAkBF,CAAC"}
1
+ {"version":3,"file":"getPerformCollectionQuery.d.ts","sourceRoot":"","sources":["../../../../../src/domain/features/collection/getPerformCollectionQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,OAAO,EACR,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAGlG,KAAK,gCAAgC,GAAG;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE,gCAAgC,KACrC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAIxC,eAAO,MAAM,yBAAyB,eACxB,UAAU,eACT,OAAO,YACV,CAAC,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,kBAAkB,KACxE,sBAkBF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { CollectionLayout, Layout } from '@wise/dynamic-flow-types/spec';
2
2
  import { CollectionResponse } from '../../components/collectionComponent/types';
3
3
  import type { MapperProps } from '../schema/types';
4
- import { LayoutComponent } from '../../types';
5
- export declare const collectionLayoutToComponent: (uid: string, { analyticsId, control, initialState, margin, search, tags, baseRequest }: CollectionLayout, mapperProps: MapperProps) => import("../../components/collectionComponent/types").CollectionComponent;
6
- export declare const mapCollectionSpecToDomainState: (specState: CollectionLayout['initialState'], mapperProps: MapperProps, mapLayout: (layout: Layout, index: number) => LayoutComponent) => CollectionResponse;
4
+ import { LayoutComponent, SchemaComponent } from '../../types';
5
+ export declare const collectionLayoutToComponent: (uid: string, { analyticsId, control, initialState, margin, search, tags, baseRequest }: CollectionLayout, mapperProps: MapperProps, schemaComponents: SchemaComponent[]) => import("../../components/collectionComponent/types").CollectionComponent;
6
+ export declare const mapCollectionSpecToDomainState: (specState: CollectionLayout['initialState'], mapperProps: MapperProps, mapLayout: (layout: Layout) => LayoutComponent) => CollectionResponse;
7
7
  //# sourceMappingURL=collectionLayoutToComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collectionLayoutToComponent.d.ts","sourceRoot":"","sources":["../../../../../src/domain/mappers/layout/collectionLayoutToComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,EACP,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,kBAAkB,EACnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,2BAA2B,QACjC,MAAM,6EACgE,gBAAgB,eAC9E,WAAW,6EA2BzB,CAAC;AAEF,eAAO,MAAM,8BAA8B,cAC9B,gBAAgB,CAAC,cAAc,CAAC,eAC9B,WAAW,aACb,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,eAAe,KAC5D,kBA0CF,CAAC"}
1
+ {"version":3,"file":"collectionLayoutToComponent.d.ts","sourceRoot":"","sources":["../../../../../src/domain/mappers/layout/collectionLayoutToComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAKhB,MAAM,EACP,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAIL,kBAAkB,EAGnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/D,eAAO,MAAM,2BAA2B,QACjC,MAAM,6EACgE,gBAAgB,eAC9E,WAAW,oBACN,eAAe,EAAE,6EAsCpC,CAAC;AAEF,eAAO,MAAM,8BAA8B,cAC9B,gBAAgB,CAAC,cAAc,CAAC,eAC9B,WAAW,aACb,CAAC,MAAM,EAAE,MAAM,KAAK,eAAe,KAC7C,kBAmBF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectionComponentToProps.d.ts","sourceRoot":"","sources":["../../../../src/renderers/mappers/collectionComponentToProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAC7F,OAAO,EAA4B,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAI3F,eAAO,MAAM,0BAA0B,cAC1B,mBAAmB,uBACT,mBAAmB,KACvC,uBAkCF,CAAC"}
1
+ {"version":3,"file":"collectionComponentToProps.d.ts","sourceRoot":"","sources":["../../../../src/renderers/mappers/collectionComponentToProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAGxB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAA4B,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAI3F,eAAO,MAAM,0BAA0B,cAC1B,mBAAmB,uBACT,mBAAmB,KACvC,uBASF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client",
3
- "version": "5.28.0",
3
+ "version": "5.29.0-experimental-f7c2300",
4
4
  "description": "Dynamic Flow web client",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.js",
@@ -41,9 +41,9 @@
41
41
  "@testing-library/jest-dom": "^6.9.1",
42
42
  "@testing-library/react": "^16.3.3",
43
43
  "@testing-library/user-event": "^14.6.7",
44
- "@transferwise/components": "^46.162.0",
44
+ "@transferwise/components": "^46.165.4",
45
45
  "@transferwise/formatting": "^2.14.1",
46
- "@transferwise/icons": "4.5.2",
46
+ "@transferwise/icons": "4.6.0",
47
47
  "@transferwise/navigation-ui": "^4.50.1",
48
48
  "@types/node": "^24.13.3",
49
49
  "@types/react": "^19.2.18",
@@ -58,6 +58,7 @@
58
58
  "eslint-plugin-storybook": "^10.6.0",
59
59
  "framer-motion": "^12.43.0",
60
60
  "jsdom-testing-mocks": "^1.16.0",
61
+ "motion": "^12.42.2",
61
62
  "npm-run-all2": "^9.0.3",
62
63
  "postcss": "^8.5.28",
63
64
  "postcss-cli": "^11.0.1",
@@ -76,7 +77,7 @@
76
77
  "vitest": "^4.1.11"
77
78
  },
78
79
  "peerDependencies": {
79
- "@transferwise/components": "^46.104.0",
80
+ "@transferwise/components": "^46.162.0",
80
81
  "@transferwise/formatting": "^2",
81
82
  "@transferwise/icons": "^3 || ^4",
82
83
  "@wise/art": "^2.19.0",
@@ -85,7 +86,7 @@
85
86
  "react-intl": "^6 || ^7"
86
87
  },
87
88
  "dependencies": {
88
- "@wise/dynamic-flow-types": "4.26.0"
89
+ "@wise/dynamic-flow-types": "4.27.0-experimental-f7c2300"
89
90
  },
90
91
  "wise": {
91
92
  "platform": "wise-library",
@@ -1,5 +0,0 @@
1
- import { useDynamicFlow } from './useDynamicFlow';
2
- export function DynamicFlowCore(props) {
3
- const df = useDynamicFlow(props);
4
- return df.view;
5
- }
@@ -1,41 +0,0 @@
1
- import { mergeRequestInit } from '../makeHttpClient';
2
- export const getHttpClientWithCapabilities = (httpClient, nativeSubflowHandlers = []) => {
3
- const headers = getCapabilitiesHeader(nativeSubflowHandlers);
4
- return async (input, init) => {
5
- return headers && isRelativeOrSameOrigin(input)
6
- ? httpClient(input, mergeRequestInit(init !== null && init !== void 0 ? init : {}, { headers }))
7
- : httpClient(input, init);
8
- };
9
- };
10
- export const getCapabilitiesHeader = (nativeSubflowHandlers) => {
11
- const capabilities = nativeSubflowHandlers.map(getCapability);
12
- return capabilities.length > 0 ? { 'X-DF-Native-Capabilities': capabilities.join(';') } : null;
13
- };
14
- const getCapability = (handler) => {
15
- return `${encode(handler.id)}${getCapabilityComments(handler)}`;
16
- };
17
- const getCapabilityComments = (handler) => {
18
- var _a;
19
- var _b;
20
- const comments = Object.entries((_b = (_a = handler.getCapabilityComments) === null || _a === void 0 ? void 0 : _a.call(handler)) !== null && _b !== void 0 ? _b : {}).map(([key, value]) => {
21
- return `${encode(key)}:${encode(value)}`;
22
- });
23
- return comments.length > 0 ? `(${comments.join(',')})` : '';
24
- };
25
- const isRelativeOrSameOrigin = (input) => {
26
- var _a;
27
- if (typeof input === 'string') {
28
- return isRelativePath(input) || input.startsWith(`${(_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.origin}/`);
29
- }
30
- if (input instanceof Request) {
31
- return isRelativeOrSameOrigin(input.url);
32
- }
33
- if (input instanceof URL) {
34
- return isRelativeOrSameOrigin(input.toString());
35
- }
36
- return false;
37
- };
38
- const isRelativePath = (url = '') => {
39
- return !['https://', 'http://', 'data:'].some((prefix) => url.startsWith(prefix) && url.length > prefix.length);
40
- };
41
- const encode = (value) => encodeURIComponent(value).replace(/\(/g, '%28').replace(/\)/g, '%29');
@@ -1,106 +0,0 @@
1
- import { getCapabilitiesHeader } from './getHttpClientWithCapabilities';
2
- const makeHandler = (partial) => (Object.assign({ getPresentationMode: () => 'push', render: () => null }, partial));
3
- describe('getCapabilitiesHeader', () => {
4
- describe('when there are no handlers', () => {
5
- it('returns null', () => {
6
- expect(getCapabilitiesHeader([])).toBeNull();
7
- });
8
- });
9
- describe('when handlers have no comments', () => {
10
- it('returns a header with a single capability ID', () => {
11
- const result = getCapabilitiesHeader([makeHandler({ id: 'facetec' })]);
12
- expect(result).toEqual({ 'X-DF-Native-Capabilities': 'facetec' });
13
- });
14
- it('returns a header with multiple capability IDs separated by semicolons', () => {
15
- const result = getCapabilitiesHeader([
16
- makeHandler({ id: 'facetec' }),
17
- makeHandler({ id: 'biometric-authentication' }),
18
- ]);
19
- expect(result).toEqual({ 'X-DF-Native-Capabilities': 'facetec;biometric-authentication' });
20
- });
21
- });
22
- describe('when handlers have comments', () => {
23
- it('appends comments in parentheses after the capability ID', () => {
24
- const result = getCapabilitiesHeader([
25
- makeHandler({ id: 'facetec', getCapabilityComments: () => ({ 'sdk-version': '1.2.3' }) }),
26
- ]);
27
- expect(result).toEqual({ 'X-DF-Native-Capabilities': 'facetec(sdk-version:1.2.3)' });
28
- });
29
- it('separates multiple comments with commas', () => {
30
- const result = getCapabilitiesHeader([
31
- makeHandler({
32
- id: 'biometric-authentication',
33
- getCapabilityComments: () => ({ faceid: 'true', touchid: 'true' }),
34
- }),
35
- ]);
36
- expect(result).toEqual({
37
- 'X-DF-Native-Capabilities': 'biometric-authentication(faceid:true,touchid:true)',
38
- });
39
- });
40
- it('omits parentheses when getCapabilityComments returns an empty object', () => {
41
- const result = getCapabilitiesHeader([
42
- makeHandler({ id: 'facetec', getCapabilityComments: () => ({}) }),
43
- ]);
44
- expect(result).toEqual({ 'X-DF-Native-Capabilities': 'facetec' });
45
- });
46
- it('omits parentheses when getCapabilityComments is not defined', () => {
47
- const result = getCapabilitiesHeader([makeHandler({ id: 'facetec' })]);
48
- expect(result).toEqual({ 'X-DF-Native-Capabilities': 'facetec' });
49
- });
50
- it('produces the correct format for mixed handlers', () => {
51
- const result = getCapabilitiesHeader([
52
- makeHandler({ id: 'facetec', getCapabilityComments: () => ({ 'sdk-version': '1.2.3' }) }),
53
- makeHandler({
54
- id: 'biometric-authentication',
55
- getCapabilityComments: () => ({ faceid: 'true', touchid: 'true' }),
56
- }),
57
- makeHandler({ id: 'camera' }),
58
- ]);
59
- expect(result).toEqual({
60
- 'X-DF-Native-Capabilities': 'facetec(sdk-version:1.2.3);biometric-authentication(faceid:true,touchid:true);camera',
61
- });
62
- });
63
- });
64
- describe('encoding delimiter characters', () => {
65
- it('encodes delimiter characters in capability id', () => {
66
- const result = getCapabilitiesHeader([
67
- makeHandler({ id: 'face;tec' }),
68
- makeHandler({ id: 'bio(metric)' }),
69
- makeHandler({ id: 'apple,banana' }),
70
- makeHandler({ id: 'foo:bar' }),
71
- ]);
72
- expect(result).toEqual({
73
- 'X-DF-Native-Capabilities': 'face%3Btec;bio%28metric%29;apple%2Cbanana;foo%3Abar',
74
- });
75
- });
76
- it('encodes delimiter characters in comment keys and values', () => {
77
- const result = getCapabilitiesHeader([
78
- makeHandler({
79
- id: 'facetec',
80
- getCapabilityComments: () => ({
81
- 'sdk;version': '1.2.3',
82
- 'foo(bar)': 'baz,qux',
83
- 'colon:key': 'colon:value',
84
- }),
85
- }),
86
- ]);
87
- expect(result).toEqual({
88
- 'X-DF-Native-Capabilities': 'facetec(sdk%3Bversion:1.2.3,foo%28bar%29:baz%2Cqux,colon%3Akey:colon%3Avalue)',
89
- });
90
- });
91
- it('encodes all delimiters in both id and comments', () => {
92
- const result = getCapabilitiesHeader([
93
- makeHandler({
94
- id: 'foo;bar,baz:qux(quux)',
95
- getCapabilityComments: () => ({
96
- 'a;b': 'c,d',
97
- 'e:f': 'g(h)i',
98
- }),
99
- }),
100
- ]);
101
- expect(result).toEqual({
102
- 'X-DF-Native-Capabilities': 'foo%3Bbar%2Cbaz%3Aqux%28quux%29(a%3Bb:c%2Cd,e%3Af:g%28h%29i)',
103
- });
104
- });
105
- });
106
- });
@@ -1 +0,0 @@
1
- export { getHttpClientWithCapabilities } from './getHttpClientWithCapabilities';
@@ -1,26 +0,0 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Component } from 'react';
3
- import { ErrorBoundaryAlert } from './ErrorBoundaryAlert';
4
- const noop = () => { };
5
- class ErrorBoundary extends Component {
6
- static getDerivedStateFromError() {
7
- return { hasError: true, isFatalError: true };
8
- }
9
- constructor(props) {
10
- super(props);
11
- this.handleErrorReset = () => {
12
- this.setState({ hasError: false, isFatalError: false });
13
- };
14
- this.state = { hasError: false, isFatalError: false };
15
- }
16
- componentDidCatch(error) {
17
- const { onError = noop } = this.props;
18
- onError(error);
19
- }
20
- render() {
21
- const { children } = this.props;
22
- const { hasError, isFatalError } = this.state;
23
- return (_jsxs(_Fragment, { children: [hasError && _jsx(ErrorBoundaryAlert, { onDismiss: this.handleErrorReset }), !isFatalError && children] }));
24
- }
25
- }
26
- export default ErrorBoundary;
@@ -1,29 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { screen, waitFor } from '@testing-library/react';
3
- import { vi } from 'vitest';
4
- import { renderWithProviders } from '../../test-utils';
5
- import ErrorBoundary from './ErrorBoundary';
6
- describe('when an error occurs during rendering', () => {
7
- const ThrowError = () => {
8
- throw new Error('Forced error during rendering.');
9
- };
10
- beforeEach(() => {
11
- vi.spyOn(console, 'error').mockImplementation(() => { });
12
- });
13
- afterEach(() => {
14
- vi.restoreAllMocks();
15
- });
16
- it('should render an error message with a retry link', async () => {
17
- const onError = vi.fn();
18
- renderWithProviders(_jsx(ErrorBoundary, { onError: onError, children: _jsx(ThrowError, {}) }));
19
- expect(screen.getByText('Something went wrong.')).toBeInTheDocument();
20
- await waitFor(() => {
21
- expect(screen.getByRole('link', { name: 'Retry' })).toBeInTheDocument();
22
- });
23
- });
24
- it('should trigger the onError callback', () => {
25
- const onError = vi.fn();
26
- renderWithProviders(_jsx(ErrorBoundary, { onError: onError, children: _jsx(ThrowError, {}) }));
27
- expect(onError).toHaveBeenCalledWith(new Error('Forced error during rendering.'));
28
- });
29
- });
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Alert, Sentiment } from '@transferwise/components';
3
- import { useIntl } from 'react-intl';
4
- import messages from '../messages/generic-error.messages';
5
- export function ErrorBoundaryAlert({ onDismiss }) {
6
- const { formatMessage } = useIntl();
7
- return (_jsx(Alert, { action: {
8
- text: formatMessage(messages.retry),
9
- href: window.location.href,
10
- }, message: formatMessage(messages.genericError), type: Sentiment.NEGATIVE, className: "m-b-3", onDismiss: onDismiss }));
11
- }
@@ -1,3 +0,0 @@
1
- export function isRelativePath(url = '') {
2
- return !['https://', 'http://', 'data:'].some((prefix) => url.startsWith(prefix) && url.length > prefix.length);
3
- }
@@ -1 +0,0 @@
1
- export * from './makeHttpClient';
@@ -1,10 +0,0 @@
1
- import { isRelativePath } from './api-utils';
2
- export const makeHttpClient = (baseUrl, additionalHeaders) =>
3
- // eslint-disable-next-line @typescript-eslint/promise-function-async
4
- (input, init) => {
5
- const resource = applyBaseUrl(input, baseUrl || '');
6
- return fetch(resource, mergeRequestInit(init !== null && init !== void 0 ? init : {}, { headers: additionalHeaders }));
7
- };
8
- const applyBaseUrl = (input, baseUrl) => typeof input === 'string' && isRelativePath(input) ? baseUrl + input : input;
9
- export const mergeRequestInit = (init, additionalInit) => (Object.assign(Object.assign(Object.assign({}, init), additionalInit), { headers: mergeHeaders(init === null || init === void 0 ? void 0 : init.headers, additionalInit === null || additionalInit === void 0 ? void 0 : additionalInit.headers) }));
10
- const mergeHeaders = (...headersInits) => headersInits.reduce((acc, headers) => (Object.assign(Object.assign({}, acc), Object.fromEntries(new Headers(headers).entries()))), {});