@wise/dynamic-flow-client 5.25.1 → 5.25.2

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 (510) hide show
  1. package/build/DynamicFlowCore.js +5 -0
  2. package/build/common/capabilities/getHttpClientWithCapabilities.js +41 -0
  3. package/build/common/capabilities/getHttpClientWithCapabilities.test.js +106 -0
  4. package/build/common/capabilities/index.js +1 -0
  5. package/build/common/errorBoundary/ErrorBoundary.js +26 -0
  6. package/build/common/errorBoundary/ErrorBoundary.test.js +29 -0
  7. package/build/common/errorBoundary/ErrorBoundaryAlert.js +11 -0
  8. package/build/common/makeHttpClient/api-utils.js +3 -0
  9. package/build/common/makeHttpClient/index.js +1 -0
  10. package/build/common/makeHttpClient/makeHttpClient.js +10 -0
  11. package/build/common/makeHttpClient/makeHttpClient.test.js +186 -0
  12. package/build/common/messages/download.messages.js +18 -0
  13. package/build/common/messages/external-confirmation.messages.js +23 -0
  14. package/build/common/messages/file-upload.messages.js +13 -0
  15. package/build/common/messages/generic-error.messages.js +18 -0
  16. package/build/common/messages/help.messages.js +8 -0
  17. package/build/common/messages/multi-file-upload.messages.js +18 -0
  18. package/build/common/messages/multi-select.messages.js +8 -0
  19. package/build/common/messages/paragraph.messages.js +13 -0
  20. package/build/common/messages/repeatable.messages.js +23 -0
  21. package/build/common/messages/search.messages.js +8 -0
  22. package/build/common/messages/validation.array.messages.js +13 -0
  23. package/build/common/messages/validation.messages.js +53 -0
  24. package/build/controller/FlowController.js +396 -0
  25. package/build/controller/executeDownload.js +86 -0
  26. package/build/controller/executePoll.js +65 -0
  27. package/build/controller/executeRefresh.js +45 -0
  28. package/build/controller/executeRequest.js +93 -0
  29. package/build/controller/executeSubflow.js +71 -0
  30. package/build/controller/executeSubmission.js +68 -0
  31. package/build/controller/getErrorMessage.js +7 -0
  32. package/build/controller/getFilenameFromContentDisposition.js +47 -0
  33. package/build/controller/getFilenameFromContentDisposition.test.js +47 -0
  34. package/build/controller/getRequestAbortController.js +13 -0
  35. package/build/controller/getResponseType.js +35 -0
  36. package/build/controller/getSafeHttpClient.js +8 -0
  37. package/build/controller/getStepCounter.js +16 -0
  38. package/build/controller/handleErrorResponse.js +26 -0
  39. package/build/controller/makeSafeHttpClient.js +8 -0
  40. package/build/controller/response-utils.js +72 -0
  41. package/build/controller/response-utils.test.js +52 -0
  42. package/build/domain/components/AlertComponent.js +2 -0
  43. package/build/domain/components/AllOfComponent.js +47 -0
  44. package/build/domain/components/BooleanInputComponent.js +48 -0
  45. package/build/domain/components/BoxComponent.js +12 -0
  46. package/build/domain/components/ButtonComponent.js +2 -0
  47. package/build/domain/components/ColumnsComponent.js +12 -0
  48. package/build/domain/components/ConstComponent.js +20 -0
  49. package/build/domain/components/ContainerComponent.js +12 -0
  50. package/build/domain/components/DateInputComponent.js +73 -0
  51. package/build/domain/components/DecisionComponent.js +2 -0
  52. package/build/domain/components/DividerComponent.js +2 -0
  53. package/build/domain/components/FormComponent.js +12 -0
  54. package/build/domain/components/FormattedValueComponent.js +47 -0
  55. package/build/domain/components/HeadingComponent.js +2 -0
  56. package/build/domain/components/ImageComponent.js +2 -0
  57. package/build/domain/components/InstructionsComponent.js +2 -0
  58. package/build/domain/components/IntegerInputComponent.js +75 -0
  59. package/build/domain/components/ListComponent.js +2 -0
  60. package/build/domain/components/LoadingIndicatorComponent.js +2 -0
  61. package/build/domain/components/MarkdownComponent.js +2 -0
  62. package/build/domain/components/MediaComponent.js +2 -0
  63. package/build/domain/components/ModalComponent.js +20 -0
  64. package/build/domain/components/ModalLayoutComponent.js +12 -0
  65. package/build/domain/components/MoneyInputComponent.js +56 -0
  66. package/build/domain/components/MultiSelectInputComponent.js +86 -0
  67. package/build/domain/components/MultiUploadInputComponent.js +86 -0
  68. package/build/domain/components/NumberInputComponent.js +74 -0
  69. package/build/domain/components/ObjectComponent.js +54 -0
  70. package/build/domain/components/ParagraphComponent.js +2 -0
  71. package/build/domain/components/PersistAsyncComponent.js +96 -0
  72. package/build/domain/components/ProgressComponent.js +2 -0
  73. package/build/domain/components/RepeatableComponent.js +106 -0
  74. package/build/domain/components/ReviewComponent.js +2 -0
  75. package/build/domain/components/RootDomainComponent.js +190 -0
  76. package/build/domain/components/SectionComponent.js +12 -0
  77. package/build/domain/components/SelectInputComponent.js +96 -0
  78. package/build/domain/components/StatusListComponent.js +2 -0
  79. package/build/domain/components/SubflowComponent.js +19 -0
  80. package/build/domain/components/TabsComponent.js +2 -0
  81. package/build/domain/components/TextInputComponent.js +77 -0
  82. package/build/domain/components/TupleComponent.js +48 -0
  83. package/build/domain/components/UploadInputComponent.js +78 -0
  84. package/build/domain/components/UpsellComponent.js +26 -0
  85. package/build/domain/components/collectionComponent/CollectionComponent.js +174 -0
  86. package/build/domain/components/collectionComponent/CollectionComponent.test.js +286 -0
  87. package/build/domain/components/collectionComponent/types.js +1 -0
  88. package/build/domain/components/searchComponent/SearchComponent.js +91 -0
  89. package/build/domain/components/searchComponent/SearchComponent.test.js +190 -0
  90. package/build/domain/components/step/ExternalConfirmationComponent.js +27 -0
  91. package/build/domain/components/step/StepDomainComponent.js +150 -0
  92. package/build/domain/components/step/ToolbarComponent.js +1 -0
  93. package/build/domain/components/utils/component-utils.js +12 -0
  94. package/build/domain/components/utils/debounce.js +34 -0
  95. package/build/domain/components/utils/debounce.test.js +67 -0
  96. package/build/domain/components/utils/file-utils.js +21 -0
  97. package/build/domain/components/utils/file-utils.test.js +27 -0
  98. package/build/domain/components/utils/getRandomId.js +1 -0
  99. package/build/domain/components/utils/isExactLocalValueMatch.js +14 -0
  100. package/build/domain/components/utils/isOrWasValid.js +5 -0
  101. package/build/domain/components/utils/isPartialModelMatch.js +18 -0
  102. package/build/domain/components/utils/isPartialModelMatch.test.js +74 -0
  103. package/build/domain/features/collection/getPerformCollectionQuery.js +80 -0
  104. package/build/domain/features/collection/getPerformCollectionQuery.test.js +223 -0
  105. package/build/domain/features/delay/getStepDelays.js +37 -0
  106. package/build/domain/features/delay/getStepDelays.test.js +69 -0
  107. package/build/domain/features/eventNames.js +38 -0
  108. package/build/domain/features/events.js +5 -0
  109. package/build/domain/features/persistAsync/getComponentMultiPersistAsync.js +50 -0
  110. package/build/domain/features/persistAsync/getInitialPersistedState.js +7 -0
  111. package/build/domain/features/persistAsync/getPerformPersistAsync.js +43 -0
  112. package/build/domain/features/persistAsync/getPerformPersistAsync.test.js +139 -0
  113. package/build/domain/features/polling/getStepPolling.js +50 -0
  114. package/build/domain/features/polling/getStepPolling.test.js +115 -0
  115. package/build/domain/features/prefetch/getStepPrefetch.js +56 -0
  116. package/build/domain/features/prefetch/request-cache.js +49 -0
  117. package/build/domain/features/prefetch/request-cache.test.js +70 -0
  118. package/build/domain/features/refreshAfter/getStepRefreshAfter.js +24 -0
  119. package/build/domain/features/refreshAfter/getStepRefreshAfter.test.js +40 -0
  120. package/build/domain/features/schema-on-change/getDebouncedSchemaOnChange.js +50 -0
  121. package/build/domain/features/schema-on-change/getSchemaOnChange.js +38 -0
  122. package/build/domain/features/search/getPerformSearchFunction.js +75 -0
  123. package/build/domain/features/search/getPerformSearchFunction.test.js +301 -0
  124. package/build/domain/features/summary/summary-utils.js +37 -0
  125. package/build/domain/features/summary/summary-utils.test.js +125 -0
  126. package/build/domain/features/utils/http-utils.js +21 -0
  127. package/build/domain/features/utils/response-utils.js +9 -0
  128. package/build/domain/features/validation/date-availability.js +54 -0
  129. package/build/domain/features/validation/date-availability.test.js +54 -0
  130. package/build/domain/features/validation/getPatternRegExp.js +25 -0
  131. package/build/domain/features/validation/spec-utils.js +23 -0
  132. package/build/domain/features/validation/validation-functions.js +6 -0
  133. package/build/domain/features/validation/validation-functions.test.js +108 -0
  134. package/build/domain/features/validation/value-checks.js +130 -0
  135. package/build/domain/features/validation/value-checks.test.js +297 -0
  136. package/build/domain/features/validationAsync/getComponentValidationAsync.js +57 -0
  137. package/build/domain/features/validationAsync/getComponentValidationAsync.test.js +67 -0
  138. package/build/domain/features/validationAsync/getInitialValidationAsyncState.js +6 -0
  139. package/build/domain/features/validationAsync/getPerformValidationAsync.js +46 -0
  140. package/build/domain/features/validationAsync/getPerformValidationAsync.test.js +162 -0
  141. package/build/domain/handlers/dismissHandler.js +11 -0
  142. package/build/domain/mappers/layout/alertLayoutToComponent.js +18 -0
  143. package/build/domain/mappers/layout/boxLayoutToComponent.js +13 -0
  144. package/build/domain/mappers/layout/buttonLayoutToComponent.js +77 -0
  145. package/build/domain/mappers/layout/collectionLayoutToComponent.js +49 -0
  146. package/build/domain/mappers/layout/columnsLayoutToComponent.js +13 -0
  147. package/build/domain/mappers/layout/decisionLayoutToComponent.js +24 -0
  148. package/build/domain/mappers/layout/deprecatedListLayoutToComponent.js +30 -0
  149. package/build/domain/mappers/layout/dividerLayoutToComponent.js +2 -0
  150. package/build/domain/mappers/layout/formLayoutToComponent.js +19 -0
  151. package/build/domain/mappers/layout/headingLayoutToComponent.js +12 -0
  152. package/build/domain/mappers/layout/imageLayoutToComponent.js +17 -0
  153. package/build/domain/mappers/layout/infoLayoutToComponent.js +12 -0
  154. package/build/domain/mappers/layout/instructionsLayoutToComponent.js +12 -0
  155. package/build/domain/mappers/layout/listLayoutToComponent.js +39 -0
  156. package/build/domain/mappers/layout/loadingIndicatorLayoutToComponent.js +9 -0
  157. package/build/domain/mappers/layout/markdownLayoutToComponent.js +12 -0
  158. package/build/domain/mappers/layout/mediaLayoutToComponent.js +12 -0
  159. package/build/domain/mappers/layout/modalLayoutToComponent.js +17 -0
  160. package/build/domain/mappers/layout/modalToComponent.js +8 -0
  161. package/build/domain/mappers/layout/paragraphLayoutToComponent.js +12 -0
  162. package/build/domain/mappers/layout/progressLayoutToComponent.js +15 -0
  163. package/build/domain/mappers/layout/reviewLayoutToComponent.js +49 -0
  164. package/build/domain/mappers/layout/searchLayoutToComponent.js +44 -0
  165. package/build/domain/mappers/layout/sectionLayoutToComponent.js +16 -0
  166. package/build/domain/mappers/layout/statusListLayoutToComponent.js +15 -0
  167. package/build/domain/mappers/layout/tabsLayoutToComponent.js +16 -0
  168. package/build/domain/mappers/layout/upsellLayoutToComponent.js +18 -0
  169. package/build/domain/mappers/mapLayoutToComponent.js +84 -0
  170. package/build/domain/mappers/mapSchemaToComponent.js +65 -0
  171. package/build/domain/mappers/mapSchemaToComponent.test.js +116 -0
  172. package/build/domain/mappers/mapStepSchemas.js +14 -0
  173. package/build/domain/mappers/mapStepToComponent.js +143 -0
  174. package/build/domain/mappers/mapStepToComponent.test.js +319 -0
  175. package/build/domain/mappers/mapToolbarToComponent.js +15 -0
  176. package/build/domain/mappers/schema/allOfSchemaToComponent.js +17 -0
  177. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToComponent.js +26 -0
  178. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiSelectComponent.js +56 -0
  179. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToMultiUploadComponent.js +66 -0
  180. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToRepeatableComponent.js +58 -0
  181. package/build/domain/mappers/schema/arraySchemaToComponent/arraySchemaToTupleComponent.js +18 -0
  182. package/build/domain/mappers/schema/blobSchemaToComponent.js +15 -0
  183. package/build/domain/mappers/schema/booleanSchemaToComponent.js +29 -0
  184. package/build/domain/mappers/schema/constSchemaToComponent.js +23 -0
  185. package/build/domain/mappers/schema/dateSchemaToComponent.js +56 -0
  186. package/build/domain/mappers/schema/dateSchemaToComponent.test.js +106 -0
  187. package/build/domain/mappers/schema/integerSchemaToComponent.js +28 -0
  188. package/build/domain/mappers/schema/numberSchemaToComponent.js +26 -0
  189. package/build/domain/mappers/schema/objectSchemaToComponent/assertDisplayOrder.js +23 -0
  190. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToFormattedValueComponent.js +9 -0
  191. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.js +119 -0
  192. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToMoneyInputComponent.test.js +97 -0
  193. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.js +32 -0
  194. package/build/domain/mappers/schema/objectSchemaToComponent/objectSchemaToObjectComponent.test.js +99 -0
  195. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.js +67 -0
  196. package/build/domain/mappers/schema/oneOfSchemaToComponent/oneOfSchemaToComponent.test.js +225 -0
  197. package/build/domain/mappers/schema/persistAsyncSchemaToComponent.js +29 -0
  198. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.js +18 -0
  199. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToComponent.test.js +133 -0
  200. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToTextInputComponent.js +38 -0
  201. package/build/domain/mappers/schema/stringSchemaToComponent/stringSchemaToUploadInputComponent.js +28 -0
  202. package/build/domain/mappers/schema/tests/test-utils.js +16 -0
  203. package/build/domain/mappers/schema/types.js +1 -0
  204. package/build/domain/mappers/schema/utils/getPerformPersistAsyncFn.js +19 -0
  205. package/build/domain/mappers/schema/utils/getValidationAsyncInitialState.js +23 -0
  206. package/build/domain/mappers/schema/utils/mapCommonSchemaProps.js +16 -0
  207. package/build/domain/mappers/types.js +1 -0
  208. package/build/domain/mappers/utils/FeatureFlags.js +22 -0
  209. package/build/domain/mappers/utils/behavior-utils.js +58 -0
  210. package/build/domain/mappers/utils/call-to-action-utils.js +24 -0
  211. package/build/domain/mappers/utils/getAutocompleteString.js +76 -0
  212. package/build/domain/mappers/utils/getAutocompleteString.test.js +21 -0
  213. package/build/domain/mappers/utils/getHrefWithTracking.js +16 -0
  214. package/build/domain/mappers/utils/groupLayoutByPinned.js +38 -0
  215. package/build/domain/mappers/utils/groupLayoutByPinned.test.js +166 -0
  216. package/build/domain/mappers/utils/image.js +6 -0
  217. package/build/domain/mappers/utils/layout-utils.js +11 -0
  218. package/build/domain/mappers/utils/legacy-utils.js +49 -0
  219. package/build/domain/mappers/utils/media-utils.js +14 -0
  220. package/build/domain/mappers/utils/suggestions-utils.js +26 -0
  221. package/build/domain/mappers/utils/suggestions-utils.test.js +36 -0
  222. package/build/domain/mappers/utils/tags-utils.js +1 -0
  223. package/build/domain/mappers/utils/utils.js +45 -0
  224. package/build/domain/types.js +1 -0
  225. package/build/i18n/index.js +40 -0
  226. package/build/index.js +9 -0
  227. package/build/main.js +361 -90
  228. package/build/main.mjs +361 -90
  229. package/build/renderers/CoreContainerRenderer.js +5 -0
  230. package/build/renderers/CoreRootRenderer.js +12 -0
  231. package/build/renderers/EmptyLoadingStateRenderer.js +5 -0
  232. package/build/renderers/getRenderFunction.js +24 -0
  233. package/build/renderers/getSchemaErrorMessageFunction.js +111 -0
  234. package/build/renderers/mappers/alertComponentToProps.js +3 -0
  235. package/build/renderers/mappers/allOfComponentToProps.js +6 -0
  236. package/build/renderers/mappers/booleanInputComponentToProps.js +3 -0
  237. package/build/renderers/mappers/boxComponentToProps.js +13 -0
  238. package/build/renderers/mappers/buttonComponentToProps.js +4 -0
  239. package/build/renderers/mappers/collectionComponentToProps.js +11 -0
  240. package/build/renderers/mappers/columnsComponentToProps.js +8 -0
  241. package/build/renderers/mappers/componentToRendererProps.js +165 -0
  242. package/build/renderers/mappers/constComponentToProps.js +5 -0
  243. package/build/renderers/mappers/containerComponentToProps.js +8 -0
  244. package/build/renderers/mappers/dateInputComponentToProps.js +3 -0
  245. package/build/renderers/mappers/decisionComponentToProps.js +16 -0
  246. package/build/renderers/mappers/dividerComponentToProps.js +2 -0
  247. package/build/renderers/mappers/externalComponentToProps.js +4 -0
  248. package/build/renderers/mappers/formComponentToProps.js +8 -0
  249. package/build/renderers/mappers/formattedValueComponentToProps.js +5 -0
  250. package/build/renderers/mappers/headingComponentToProps.js +2 -0
  251. package/build/renderers/mappers/hiddenComponentToProps.js +1 -0
  252. package/build/renderers/mappers/imageComponentToProps.js +2 -0
  253. package/build/renderers/mappers/instructionsComponentToProps.js +2 -0
  254. package/build/renderers/mappers/integerInputComponentToProps.js +3 -0
  255. package/build/renderers/mappers/listComponentToProps.js +3 -0
  256. package/build/renderers/mappers/loadingIndicatorComponentToProps.js +2 -0
  257. package/build/renderers/mappers/markdownComponentToProps.js +2 -0
  258. package/build/renderers/mappers/mediaComponentToProps.js +2 -0
  259. package/build/renderers/mappers/modalComponentToProps.js +8 -0
  260. package/build/renderers/mappers/modalLayoutComponentToProps.js +13 -0
  261. package/build/renderers/mappers/moneyInputComponentToProps.js +36 -0
  262. package/build/renderers/mappers/multiSelectComponentToProps.js +19 -0
  263. package/build/renderers/mappers/multiUploadInputComponentToProps.js +7 -0
  264. package/build/renderers/mappers/numberInputComponentToProps.js +3 -0
  265. package/build/renderers/mappers/objectComponentToProps.js +8 -0
  266. package/build/renderers/mappers/paragraphComponentToProps.js +2 -0
  267. package/build/renderers/mappers/persistAsyncComponentToProps.js +7 -0
  268. package/build/renderers/mappers/progressComponentToProps.js +2 -0
  269. package/build/renderers/mappers/repeatableComponentToProps.js +22 -0
  270. package/build/renderers/mappers/reviewComponentToProps.js +3 -0
  271. package/build/renderers/mappers/rootComponentToProps.js +20 -0
  272. package/build/renderers/mappers/searchComponentToProps.js +45 -0
  273. package/build/renderers/mappers/sectionComponentToProps.js +7 -0
  274. package/build/renderers/mappers/selectInputComponentToProps.js +34 -0
  275. package/build/renderers/mappers/statusListComponentToProps.js +3 -0
  276. package/build/renderers/mappers/subflowComponentToRendererProps.js +26 -0
  277. package/build/renderers/mappers/tabsComponentToProps.js +14 -0
  278. package/build/renderers/mappers/textInputComponentToProps.js +3 -0
  279. package/build/renderers/mappers/tupleComponentToProps.js +8 -0
  280. package/build/renderers/mappers/uploadInputComponentToProps.js +5 -0
  281. package/build/renderers/mappers/upsellComponentToProps.js +3 -0
  282. package/build/renderers/mappers/utils/getValidationState.js +12 -0
  283. package/build/renderers/mappers/utils/inputComponentToProps.js +17 -0
  284. package/build/renderers/mappers/utils/mapCallToAction.js +23 -0
  285. package/build/renderers/mappers/utils/mapErrorsToValidationState.js +9 -0
  286. package/build/renderers/mappers/utils/mapRendererLoadingState.js +1 -0
  287. package/build/renderers/mappers/utils/pick.js +8 -0
  288. package/build/renderers/mappers/utils/selectInputOptionsToProps.js +11 -0
  289. package/build/renderers/stepComponentToProps.js +32 -0
  290. package/build/renderers/subflow/getDynamicSubflowRenderer.js +13 -0
  291. package/build/renderers/subflow/getNativeSubflowRenderer.js +26 -0
  292. package/build/renderers/utils.js +71 -0
  293. package/build/renderers/utils.test.js +70 -0
  294. package/build/stories/dev-tools/ContainerQueries.story.js +66 -0
  295. package/build/stories/dev-tools/Debugger.story.js +107 -0
  296. package/build/stories/dev-tools/FixtureSelect.story.js +23 -0
  297. package/build/stories/dev-tools/TestServer.story.js +118 -0
  298. package/build/stories/examples/NativeFlow.story.js +80 -0
  299. package/build/stories/examples/Recipients.story.js +568 -0
  300. package/build/stories/spec/behavior/Copy.story.js +71 -0
  301. package/build/stories/spec/behavior/Download.story.js +254 -0
  302. package/build/stories/spec/behavior/DynamicSubflow.story.js +272 -0
  303. package/build/stories/spec/behavior/Link.story.js +40 -0
  304. package/build/stories/spec/behavior/Modal.story.js +79 -0
  305. package/build/stories/spec/behavior/NativeSubflow.story.js +249 -0
  306. package/build/stories/spec/layouts/Alert.story.js +107 -0
  307. package/build/stories/spec/layouts/Box.Container-Widths.3-sizes.story.js +59 -0
  308. package/build/stories/spec/layouts/Box.Container-Widths.story.js +57 -0
  309. package/build/stories/spec/layouts/Box.Viewport-Widths.story.js +64 -0
  310. package/build/stories/spec/layouts/Collection.story.js +286 -0
  311. package/build/stories/spec/layouts/Decision.story.js +241 -0
  312. package/build/stories/spec/layouts/Image.Illustrations.Animated.story.js +37 -0
  313. package/build/stories/spec/layouts/Image.Sizes.story.js +58 -0
  314. package/build/stories/spec/layouts/Modal.story.js +81 -0
  315. package/build/stories/spec/layouts/Search.story.js +325 -0
  316. package/build/stories/spec/layouts/Upsell.story.js +55 -0
  317. package/build/stories/spec/layouts/button/Button.story.js +111 -0
  318. package/build/stories/spec/layouts/button/PinnedButton.story.js +81 -0
  319. package/build/stories/spec/response/ActionResponse.story.js +66 -0
  320. package/build/stories/spec/schemas/InlineAlert.story.js +134 -0
  321. package/build/stories/spec/schemas/MultiSelect.story.js +206 -0
  322. package/build/stories/spec/schemas/Upload.story.js +168 -0
  323. package/build/stories/spec/schemas/const/ConstLayout.story.js +159 -0
  324. package/build/stories/spec/schemas/const/ObjectConst.story.js +94 -0
  325. package/build/stories/spec/schemas/date/DateSchema.story.js +59 -0
  326. package/build/stories/spec/schemas/features/PersistAsync.story.js +230 -0
  327. package/build/stories/spec/schemas/features/ValidationAsync.story.js +137 -0
  328. package/build/stories/spec/schemas/object/FormattedValue.story.js +92 -0
  329. package/build/stories/spec/schemas/object/MoneyInput.story.js +240 -0
  330. package/build/stories/spec/schemas/oneOf/OneOfInitialisation.story.js +55 -0
  331. package/build/stories/spec/schemas/oneOf/OneOfWithSingleOption.story.js +114 -0
  332. package/build/stories/spec/step/Controls.story.js +110 -0
  333. package/build/stories/spec/step/DFModal.story.js +58 -0
  334. package/build/stories/spec/step/Footer.story.js +70 -0
  335. package/build/stories/spec/step/Navigation.story.js +46 -0
  336. package/build/stories/spec/step/ScrollToBottom.story.js +103 -0
  337. package/build/stories/spec/step/Tags.story.js +39 -0
  338. package/build/stories/spec/step/ToolBar.story.js +60 -0
  339. package/build/stories/spec/step/features/ErrorHandling.story.js +92 -0
  340. package/build/stories/spec/step/features/External.story.js +91 -0
  341. package/build/stories/spec/step/features/LongFormError.story.js +88 -0
  342. package/build/stories/spec/step/features/Polling.story.js +108 -0
  343. package/build/stories/spec/step/features/RefreshAfter.story.js +92 -0
  344. package/build/stories/spec/step/features/refresh/Refresh.story.js +260 -0
  345. package/build/stories/spec/step/features/refresh/RefreshWithPersistAsync.story.js +958 -0
  346. package/build/stories/types.js +1 -0
  347. package/build/stories/utils/fixtureHttpClient.js +70 -0
  348. package/build/stories/utils/getBasicStep.js +223 -0
  349. package/build/stories/utils/mockSearchHandler.js +71 -0
  350. package/build/stories/utils/render-utils.js +59 -0
  351. package/build/stories/visual-tests/layouts/NotUsingListItem.story.js +17 -0
  352. package/build/test-utils/DynamicFlowWise.js +41 -0
  353. package/build/test-utils/DynamicFlowWiseModal.js +34 -0
  354. package/build/test-utils/NeptuneProviders.js +11 -0
  355. package/build/test-utils/component-utils.js +5 -0
  356. package/build/test-utils/dummy-native-subflows-handlers/dummySubflowHandlers.js +45 -0
  357. package/build/test-utils/dummy-native-subflows-handlers/geolocationSubflowHandler.js +30 -0
  358. package/build/test-utils/dummy-native-subflows-handlers/index.js +9 -0
  359. package/build/test-utils/dummy-native-subflows-handlers/notificationPermissionSubflowHandler.js +17 -0
  360. package/build/test-utils/fetch-utils.js +47 -0
  361. package/build/test-utils/getMergedTestRenderers.js +36 -0
  362. package/build/test-utils/getRandomId.js +1 -0
  363. package/build/test-utils/index.js +3 -0
  364. package/build/test-utils/mockIntersectionObserver.js +23 -0
  365. package/build/test-utils/openLinkInNewTab.js +15 -0
  366. package/build/test-utils/rtl-utils.js +7 -0
  367. package/build/test-utils/step-utils.js +6 -0
  368. package/build/test-utils/useSnackBar.js +4 -0
  369. package/build/test-utils/wait.js +3 -0
  370. package/build/tests/AlertLayout.test.js +228 -0
  371. package/build/tests/ArrayTuple.test.js +118 -0
  372. package/build/tests/ButtonLayout.test.js +356 -0
  373. package/build/tests/CollectionLayout.test.js +516 -0
  374. package/build/tests/ConstLayout.test.js +95 -0
  375. package/build/tests/DateInput.test.js +192 -0
  376. package/build/tests/DateSchema.test.js +84 -0
  377. package/build/tests/DecisionLayout.test.js +146 -0
  378. package/build/tests/DelayBehavior.test.js +186 -0
  379. package/build/tests/Download.test.js +201 -0
  380. package/build/tests/DynamicFlow.test.js +147 -0
  381. package/build/tests/External.test.js +169 -0
  382. package/build/tests/Flow.test.js +328 -0
  383. package/build/tests/FormLayout.test.js +28 -0
  384. package/build/tests/FormattedValue.test.js +107 -0
  385. package/build/tests/ImageRenderer.test.js +78 -0
  386. package/build/tests/InitialAction.test.js +235 -0
  387. package/build/tests/InitialStep.test.js +168 -0
  388. package/build/tests/InstructionsLayout.test.js +45 -0
  389. package/build/tests/ListLayout.test.js +165 -0
  390. package/build/tests/Logging.test.js +53 -0
  391. package/build/tests/ModalBehavior.test.js +149 -0
  392. package/build/tests/MoneyInput.test.js +313 -0
  393. package/build/tests/MultiUpload.test.js +293 -0
  394. package/build/tests/NativeBack.test.js +267 -0
  395. package/build/tests/NoOp.test.js +194 -0
  396. package/build/tests/OnLoad.test.js +153 -0
  397. package/build/tests/OneOfInitialisation.test.js +571 -0
  398. package/build/tests/PersistAsync.test.js +687 -0
  399. package/build/tests/Polling.test.js +708 -0
  400. package/build/tests/Prefetching.test.js +229 -0
  401. package/build/tests/RefreshAfter.test.js +63 -0
  402. package/build/tests/RefreshOnChange.ResponseHandling.test.js +199 -0
  403. package/build/tests/RefreshOnChange.test.js +233 -0
  404. package/build/tests/RefreshOnChange.with.Segmented.test.js +351 -0
  405. package/build/tests/RefreshOnChange.with.Tabs.test.js +359 -0
  406. package/build/tests/RefreshOnChangePreserve.test.js +221 -0
  407. package/build/tests/RendererProps.test.js +372 -0
  408. package/build/tests/Repeatable.test.js +104 -0
  409. package/build/tests/Rerendering.test.js +67 -0
  410. package/build/tests/ReviewLayout.test.js +271 -0
  411. package/build/tests/SchemaOnChange.test.js +133 -0
  412. package/build/tests/SchemaReferences.test.js +88 -0
  413. package/build/tests/ScrollToBottom.test.js +101 -0
  414. package/build/tests/ScrollToError.test.js +359 -0
  415. package/build/tests/SegmentedControl.test.js +49 -0
  416. package/build/tests/SingleFileUpload.test.js +168 -0
  417. package/build/tests/StatusList.test.js +85 -0
  418. package/build/tests/Subflow.dynamic.test.js +887 -0
  419. package/build/tests/Subflow.native.test.js +448 -0
  420. package/build/tests/Submission.Const.test.js +70 -0
  421. package/build/tests/Submission.ResponseHandling.test.js +557 -0
  422. package/build/tests/Submission.merging.test.js +202 -0
  423. package/build/tests/Submission.test.js +821 -0
  424. package/build/tests/Tags.test.js +466 -0
  425. package/build/tests/Upsell.test.js +154 -0
  426. package/build/tests/ValidationAsync.test.js +295 -0
  427. package/build/tests/behavior/events.test.js +348 -0
  428. package/build/tests/legacy/Actions.test.js +158 -0
  429. package/build/tests/legacy/BackButton.test.js +114 -0
  430. package/build/tests/legacy/HiddenSchemas.test.js +250 -0
  431. package/build/tests/legacy/MultiSelect.test.js +546 -0
  432. package/build/tests/legacy/MultipleFileUploadSchema.test.js +350 -0
  433. package/build/tests/legacy/PersistAsync.blob-schema.test.js +224 -0
  434. package/build/tests/legacy/PersistAsync.string-schema.test.js +211 -0
  435. package/build/tests/legacy/RefreshStepOnChange.debouncing.test.js +209 -0
  436. package/build/tests/legacy/RefreshStepOnChange.test.js +421 -0
  437. package/build/tests/legacy/Search.test.js +439 -0
  438. package/build/tests/renderers/InlineAlertInSchemas.test.js +82 -0
  439. package/build/tests/renderers/MultiSelectInputRendererProps.test.js +58 -0
  440. package/build/tests/renderers/SelectInputRendererProps.test.js +43 -0
  441. package/build/tests/renderers/TextInputRenderer.test.js +48 -0
  442. package/build/tsconfig.types.tsbuildinfo +1 -1
  443. package/build/types/domain/components/AlertComponent.d.ts +1 -1
  444. package/build/types/domain/components/AlertComponent.d.ts.map +1 -1
  445. package/build/types/domain/components/AllOfComponent.d.ts.map +1 -1
  446. package/build/types/domain/components/BooleanInputComponent.d.ts.map +1 -1
  447. package/build/types/domain/components/BoxComponent.d.ts.map +1 -1
  448. package/build/types/domain/components/ButtonComponent.d.ts.map +1 -1
  449. package/build/types/domain/components/ColumnsComponent.d.ts.map +1 -1
  450. package/build/types/domain/components/ConstComponent.d.ts.map +1 -1
  451. package/build/types/domain/components/ContainerComponent.d.ts.map +1 -1
  452. package/build/types/domain/components/DateInputComponent.d.ts.map +1 -1
  453. package/build/types/domain/components/DecisionComponent.d.ts.map +1 -1
  454. package/build/types/domain/components/DividerComponent.d.ts.map +1 -1
  455. package/build/types/domain/components/FormComponent.d.ts.map +1 -1
  456. package/build/types/domain/components/FormattedValueComponent.d.ts.map +1 -1
  457. package/build/types/domain/components/HeadingComponent.d.ts.map +1 -1
  458. package/build/types/domain/components/ImageComponent.d.ts.map +1 -1
  459. package/build/types/domain/components/InstructionsComponent.d.ts.map +1 -1
  460. package/build/types/domain/components/IntegerInputComponent.d.ts.map +1 -1
  461. package/build/types/domain/components/ListComponent.d.ts.map +1 -1
  462. package/build/types/domain/components/LoadingIndicatorComponent.d.ts.map +1 -1
  463. package/build/types/domain/components/MarkdownComponent.d.ts.map +1 -1
  464. package/build/types/domain/components/MediaComponent.d.ts.map +1 -1
  465. package/build/types/domain/components/ModalComponent.d.ts.map +1 -1
  466. package/build/types/domain/components/ModalLayoutComponent.d.ts.map +1 -1
  467. package/build/types/domain/components/MoneyInputComponent.d.ts.map +1 -1
  468. package/build/types/domain/components/MultiSelectInputComponent.d.ts.map +1 -1
  469. package/build/types/domain/components/MultiUploadInputComponent.d.ts.map +1 -1
  470. package/build/types/domain/components/NumberInputComponent.d.ts.map +1 -1
  471. package/build/types/domain/components/ObjectComponent.d.ts.map +1 -1
  472. package/build/types/domain/components/ParagraphComponent.d.ts.map +1 -1
  473. package/build/types/domain/components/PersistAsyncComponent.d.ts.map +1 -1
  474. package/build/types/domain/components/ProgressComponent.d.ts.map +1 -1
  475. package/build/types/domain/components/RepeatableComponent.d.ts.map +1 -1
  476. package/build/types/domain/components/ReviewComponent.d.ts.map +1 -1
  477. package/build/types/domain/components/RootDomainComponent.d.ts.map +1 -1
  478. package/build/types/domain/components/SectionComponent.d.ts.map +1 -1
  479. package/build/types/domain/components/SelectInputComponent.d.ts.map +1 -1
  480. package/build/types/domain/components/StatusListComponent.d.ts.map +1 -1
  481. package/build/types/domain/components/TabsComponent.d.ts.map +1 -1
  482. package/build/types/domain/components/TextInputComponent.d.ts.map +1 -1
  483. package/build/types/domain/components/TupleComponent.d.ts.map +1 -1
  484. package/build/types/domain/components/UploadInputComponent.d.ts.map +1 -1
  485. package/build/types/domain/components/UpsellComponent.d.ts.map +1 -1
  486. package/build/types/domain/components/collectionComponent/CollectionComponent.d.ts.map +1 -1
  487. package/build/types/domain/components/collectionComponent/types.d.ts +1 -0
  488. package/build/types/domain/components/collectionComponent/types.d.ts.map +1 -1
  489. package/build/types/domain/components/searchComponent/SearchComponent.d.ts.map +1 -1
  490. package/build/types/domain/components/step/ExternalConfirmationComponent.d.ts.map +1 -1
  491. package/build/types/domain/components/step/StepDomainComponent.d.ts.map +1 -1
  492. package/build/types/domain/types.d.ts +2 -0
  493. package/build/types/domain/types.d.ts.map +1 -1
  494. package/build/types.js +1 -0
  495. package/build/useDynamicFlow.js +110 -0
  496. package/build/useDynamicFlowModal.js +58 -0
  497. package/build/utils/analyse-step.js +14 -0
  498. package/build/utils/component-utils.js +8 -0
  499. package/build/utils/component-utils.test.js +113 -0
  500. package/build/utils/getScrollToTop.js +12 -0
  501. package/build/utils/normalise-flow-id.js +1 -0
  502. package/build/utils/normalise-flow-id.test.js +24 -0
  503. package/build/utils/recursiveMerge.js +40 -0
  504. package/build/utils/recursiveMerge.test.js +93 -0
  505. package/build/utils/safe-parse-link.js +8 -0
  506. package/build/utils/type-utils.js +22 -0
  507. package/build/utils/type-validators.js +11 -0
  508. package/build/utils/type-validators.test.js +180 -0
  509. package/build/utils/useStableCallback.js +15 -0
  510. package/package.json +4 -4
package/build/main.js CHANGED
@@ -1294,9 +1294,16 @@ var createModalContentComponent = (props, onComponentUpdate) => {
1294
1294
  return component.components;
1295
1295
  },
1296
1296
  close() {
1297
+ component.stop();
1297
1298
  update(component, (draft) => {
1298
1299
  draft.open = false;
1299
1300
  });
1301
+ },
1302
+ start() {
1303
+ component.getChildren().forEach((child) => child.start());
1304
+ },
1305
+ stop() {
1306
+ component.getChildren().forEach((child) => child.stop());
1300
1307
  }
1301
1308
  });
1302
1309
  return component;
@@ -1306,10 +1313,15 @@ var createModalContentComponent = (props, onComponentUpdate) => {
1306
1313
  var getRandomId = () => Math.random().toString(36).substring(2);
1307
1314
 
1308
1315
  // src/domain/components/AlertComponent.ts
1309
- var createAlertComponent = (props) => __spreadValues({
1316
+ var createAlertComponent = (props) => __spreadProps(__spreadValues({
1310
1317
  type: "alert",
1311
1318
  kind: "layout"
1312
- }, props);
1319
+ }, props), {
1320
+ start() {
1321
+ },
1322
+ stop() {
1323
+ }
1324
+ });
1313
1325
 
1314
1326
  // src/domain/handlers/dismissHandler.ts
1315
1327
  var makeDismissHandler = (onDismiss, mapperProps) => () => {
@@ -1524,13 +1536,22 @@ var alertLayoutToComponent = (uid, {
1524
1536
  });
1525
1537
 
1526
1538
  // src/domain/components/BoxComponent.ts
1527
- var createBoxComponent = (props) => __spreadProps(__spreadValues({}, props), {
1528
- type: "box",
1529
- kind: "layout",
1530
- getChildren() {
1531
- return props.components;
1532
- }
1533
- });
1539
+ var createBoxComponent = (props) => {
1540
+ const component = __spreadProps(__spreadValues({}, props), {
1541
+ type: "box",
1542
+ kind: "layout",
1543
+ getChildren() {
1544
+ return props.components;
1545
+ },
1546
+ start() {
1547
+ component.getChildren().forEach((child) => child.start());
1548
+ },
1549
+ stop() {
1550
+ component.getChildren().forEach((child) => child.stop());
1551
+ }
1552
+ });
1553
+ return component;
1554
+ };
1534
1555
 
1535
1556
  // src/domain/mappers/utils/layout-utils.ts
1536
1557
  var normaliseMarginInLastComponent = (container) => {
@@ -1817,6 +1838,13 @@ var createCollectionComponent = (props, onComponentUpdate, queryFunction, trackE
1817
1838
  control,
1818
1839
  margin,
1819
1840
  tags,
1841
+ getChildren() {
1842
+ var _a, _b, _c, _d;
1843
+ return [
1844
+ ...(_b = (_a = component.state) == null ? void 0 : _a.beforeSections) != null ? _b : [],
1845
+ ...(_d = (_c = component.state) == null ? void 0 : _c.afterSections) != null ? _d : []
1846
+ ];
1847
+ },
1820
1848
  status: {
1821
1849
  type: "idle",
1822
1850
  loadMore: state.nextCursor ? () => query("pagination") : void 0
@@ -1824,7 +1852,13 @@ var createCollectionComponent = (props, onComponentUpdate, queryFunction, trackE
1824
1852
  state: __spreadProps(__spreadValues({}, state), {
1825
1853
  filters: mapFilters(state.filters),
1826
1854
  search: mapSearch(props.search)
1827
- })
1855
+ }),
1856
+ start() {
1857
+ component.getChildren().forEach((child) => child.start());
1858
+ },
1859
+ stop() {
1860
+ component.getChildren().forEach((child) => child.stop());
1861
+ }
1828
1862
  };
1829
1863
  return component;
1830
1864
  };
@@ -2029,10 +2063,15 @@ var mapFilter = (filter) => {
2029
2063
  };
2030
2064
 
2031
2065
  // src/domain/components/ButtonComponent.ts
2032
- var createButtonComponent = (props) => __spreadValues({
2066
+ var createButtonComponent = (props) => __spreadProps(__spreadValues({
2033
2067
  type: "button",
2034
2068
  kind: "layout"
2035
- }, props);
2069
+ }, props), {
2070
+ start() {
2071
+ },
2072
+ stop() {
2073
+ }
2074
+ });
2036
2075
 
2037
2076
  // src/domain/mappers/layout/buttonLayoutToComponent.ts
2038
2077
  var buttonLayoutToComponent = (uid, button, mapperProps) => {
@@ -2134,13 +2173,22 @@ var getButtonContext = ({ context, action }) => {
2134
2173
  };
2135
2174
 
2136
2175
  // src/domain/components/ColumnsComponent.ts
2137
- var createColumnsComponent = (props) => __spreadProps(__spreadValues({}, props), {
2138
- type: "columns",
2139
- kind: "layout",
2140
- getChildren() {
2141
- return [...props.startComponents, ...props.endComponents];
2142
- }
2143
- });
2176
+ var createColumnsComponent = (props) => {
2177
+ const component = __spreadProps(__spreadValues({}, props), {
2178
+ type: "columns",
2179
+ kind: "layout",
2180
+ getChildren() {
2181
+ return [...props.startComponents, ...props.endComponents];
2182
+ },
2183
+ start() {
2184
+ component.getChildren().forEach((child) => child.start());
2185
+ },
2186
+ stop() {
2187
+ component.getChildren().forEach((child) => child.stop());
2188
+ }
2189
+ });
2190
+ return component;
2191
+ };
2144
2192
 
2145
2193
  // src/domain/mappers/layout/columnsLayoutToComponent.ts
2146
2194
  var columnsLayoutToComponent = (uid, { control, left, right, bias, margin, analyticsId, tags }, mapperProps, schemaComponents) => createColumnsComponent({
@@ -2164,10 +2212,15 @@ var columnsLayoutToComponent = (uid, { control, left, right, bias, margin, analy
2164
2212
  });
2165
2213
 
2166
2214
  // src/domain/components/DecisionComponent.ts
2167
- var createDecisionComponent = (props) => __spreadValues({
2215
+ var createDecisionComponent = (props) => __spreadProps(__spreadValues({
2168
2216
  type: "decision",
2169
2217
  kind: "layout"
2170
- }, props);
2218
+ }, props), {
2219
+ start() {
2220
+ },
2221
+ stop() {
2222
+ }
2223
+ });
2171
2224
 
2172
2225
  // src/domain/mappers/utils/tags-utils.ts
2173
2226
  var mapTags = ({ tag, tags }) => tags != null ? tags : tag != null ? [tag] : void 0;
@@ -2208,10 +2261,15 @@ var mapOption = (option, mapperProps) => {
2208
2261
  };
2209
2262
 
2210
2263
  // src/domain/components/StatusListComponent.ts
2211
- var createStatusListComponent = (props) => __spreadValues({
2264
+ var createStatusListComponent = (props) => __spreadProps(__spreadValues({
2212
2265
  type: "status-list",
2213
2266
  kind: "layout"
2214
- }, props);
2267
+ }, props), {
2268
+ start() {
2269
+ },
2270
+ stop() {
2271
+ }
2272
+ });
2215
2273
 
2216
2274
  // src/domain/mappers/layout/deprecatedListLayoutToComponent.ts
2217
2275
  var isDeprecatedListLayout = (layout) => {
@@ -2245,22 +2303,36 @@ var mapLegacyStatus = (status) => {
2245
2303
  };
2246
2304
 
2247
2305
  // src/domain/components/DividerComponent.ts
2248
- var createDividerComponent = (props) => __spreadValues({
2306
+ var createDividerComponent = (props) => __spreadProps(__spreadValues({
2249
2307
  type: "divider",
2250
2308
  kind: "layout"
2251
- }, props);
2309
+ }, props), {
2310
+ start() {
2311
+ },
2312
+ stop() {
2313
+ }
2314
+ });
2252
2315
 
2253
2316
  // src/domain/mappers/layout/dividerLayoutToComponent.ts
2254
2317
  var dividerLayoutToComponent = (uid, { control, margin, analyticsId, tags }) => createDividerComponent({ uid, analyticsId, control, margin: margin != null ? margin : "md", tags });
2255
2318
 
2256
2319
  // src/domain/components/FormComponent.ts
2257
- var createFormComponent = (props) => __spreadProps(__spreadValues({}, props), {
2258
- type: "form",
2259
- kind: "layout",
2260
- getChildren() {
2261
- return [props.schemaComponent];
2262
- }
2263
- });
2320
+ var createFormComponent = (props) => {
2321
+ const component = __spreadProps(__spreadValues({}, props), {
2322
+ type: "form",
2323
+ kind: "layout",
2324
+ getChildren() {
2325
+ return [props.schemaComponent];
2326
+ },
2327
+ start() {
2328
+ component.getChildren().forEach((child) => child.start());
2329
+ },
2330
+ stop() {
2331
+ component.getChildren().forEach((child) => child.stop());
2332
+ }
2333
+ });
2334
+ return component;
2335
+ };
2264
2336
 
2265
2337
  // src/domain/mappers/layout/formLayoutToComponent.ts
2266
2338
  var formLayoutToComponent = (uid, { analyticsId, schemaId, schema: schemaRef, control, margin, tags }, schemaComponents) => {
@@ -2287,10 +2359,15 @@ var formLayoutToComponent = (uid, { analyticsId, schemaId, schema: schemaRef, co
2287
2359
  };
2288
2360
 
2289
2361
  // src/domain/components/HeadingComponent.ts
2290
- var createHeadingComponent = (props) => __spreadValues({
2362
+ var createHeadingComponent = (props) => __spreadProps(__spreadValues({
2291
2363
  type: "heading",
2292
2364
  kind: "layout"
2293
- }, props);
2365
+ }, props), {
2366
+ start() {
2367
+ },
2368
+ stop() {
2369
+ }
2370
+ });
2294
2371
 
2295
2372
  // src/domain/mappers/layout/headingLayoutToComponent.ts
2296
2373
  var headingLayoutToComponent = (uid, { analyticsId, align, margin, size, control, tags, text }) => createHeadingComponent({
@@ -2305,10 +2382,15 @@ var headingLayoutToComponent = (uid, { analyticsId, align, margin, size, control
2305
2382
  });
2306
2383
 
2307
2384
  // src/domain/components/ImageComponent.ts
2308
- var createImageComponent = (props) => __spreadValues({
2385
+ var createImageComponent = (props) => __spreadProps(__spreadValues({
2309
2386
  type: "image",
2310
2387
  kind: "layout"
2311
- }, props);
2388
+ }, props), {
2389
+ start() {
2390
+ },
2391
+ stop() {
2392
+ }
2393
+ });
2312
2394
 
2313
2395
  // src/domain/mappers/layout/imageLayoutToComponent.ts
2314
2396
  var imageLayoutToComponent = (uid, {
@@ -2340,10 +2422,15 @@ var imageLayoutToComponent = (uid, {
2340
2422
  };
2341
2423
 
2342
2424
  // src/domain/components/MarkdownComponent.ts
2343
- var createMarkdownComponent = (props) => __spreadValues({
2425
+ var createMarkdownComponent = (props) => __spreadProps(__spreadValues({
2344
2426
  type: "markdown",
2345
2427
  kind: "layout"
2346
- }, props);
2428
+ }, props), {
2429
+ start() {
2430
+ },
2431
+ stop() {
2432
+ }
2433
+ });
2347
2434
 
2348
2435
  // src/domain/mappers/layout/infoLayoutToComponent.ts
2349
2436
  var infoLayoutToComponent = (uid, { analyticsId, align, control, margin, markdown: content, tags }) => createMarkdownComponent({
@@ -2358,10 +2445,15 @@ var infoLayoutToComponent = (uid, { analyticsId, align, control, margin, markdow
2358
2445
  });
2359
2446
 
2360
2447
  // src/domain/components/InstructionsComponent.ts
2361
- var createInstructionsComponent = (props) => __spreadValues({
2448
+ var createInstructionsComponent = (props) => __spreadProps(__spreadValues({
2362
2449
  type: "instructions",
2363
2450
  kind: "layout"
2364
- }, props);
2451
+ }, props), {
2452
+ start() {
2453
+ },
2454
+ stop() {
2455
+ }
2456
+ });
2365
2457
 
2366
2458
  // src/domain/mappers/layout/instructionsLayoutToComponent.ts
2367
2459
  var instructionsLayoutToComponent = (uid, { analyticsId, control, items, margin, tags, title }) => createInstructionsComponent({
@@ -2378,10 +2470,15 @@ var instructionsLayoutToComponent = (uid, { analyticsId, control, items, margin,
2378
2470
  });
2379
2471
 
2380
2472
  // src/domain/components/ListComponent.ts
2381
- var createListComponent = (props) => __spreadValues({
2473
+ var createListComponent = (props) => __spreadProps(__spreadValues({
2382
2474
  type: "list",
2383
2475
  kind: "layout"
2384
- }, props);
2476
+ }, props), {
2477
+ start() {
2478
+ },
2479
+ stop() {
2480
+ }
2481
+ });
2385
2482
 
2386
2483
  // src/domain/mappers/layout/listLayoutToComponent.ts
2387
2484
  var listLayoutToComponent = (uid, { analyticsId, callToAction, control, items, margin, tags, title }, mapperProps) => {
@@ -2439,10 +2536,15 @@ var mapSupportingValues = (item) => {
2439
2536
  };
2440
2537
 
2441
2538
  // src/domain/components/LoadingIndicatorComponent.ts
2442
- var createLoadingIndicatorComponent = (props) => __spreadValues({
2539
+ var createLoadingIndicatorComponent = (props) => __spreadProps(__spreadValues({
2443
2540
  type: "loading-indicator",
2444
2541
  kind: "layout"
2445
- }, props);
2542
+ }, props), {
2543
+ start() {
2544
+ },
2545
+ stop() {
2546
+ }
2547
+ });
2446
2548
 
2447
2549
  // src/domain/mappers/layout/loadingIndicatorLayoutToComponent.ts
2448
2550
  var loadingIndicatorLayoutToComponent = (uid, { analyticsId, control, margin, size, tags }) => createLoadingIndicatorComponent({
@@ -2475,10 +2577,15 @@ var markdownLayoutToComponent = (uid, {
2475
2577
  });
2476
2578
 
2477
2579
  // src/domain/components/MediaComponent.ts
2478
- var createMediaComponent = (props) => __spreadValues({
2580
+ var createMediaComponent = (props) => __spreadProps(__spreadValues({
2479
2581
  type: "media",
2480
2582
  kind: "layout"
2481
- }, props);
2583
+ }, props), {
2584
+ start() {
2585
+ },
2586
+ stop() {
2587
+ }
2588
+ });
2482
2589
 
2483
2590
  // src/domain/mappers/layout/mediaLayoutToComponent.ts
2484
2591
  var mediaLayoutToComponent = (uid, { analyticsId, align, control, margin, media, size, tags }) => createMediaComponent({
@@ -2493,14 +2600,23 @@ var mediaLayoutToComponent = (uid, { analyticsId, align, control, margin, media,
2493
2600
  });
2494
2601
 
2495
2602
  // src/domain/components/ModalLayoutComponent.ts
2496
- var createModalComponent = (props) => __spreadProps(__spreadValues({
2497
- type: "modal-layout",
2498
- kind: "layout"
2499
- }, props), {
2500
- getChildren() {
2501
- return props.content.components;
2502
- }
2503
- });
2603
+ var createModalComponent = (props) => {
2604
+ const component = __spreadProps(__spreadValues({
2605
+ type: "modal-layout",
2606
+ kind: "layout"
2607
+ }, props), {
2608
+ getChildren() {
2609
+ return props.content.components;
2610
+ },
2611
+ start() {
2612
+ component.getChildren().forEach((child) => child.start());
2613
+ },
2614
+ stop() {
2615
+ component.getChildren().forEach((child) => child.stop());
2616
+ }
2617
+ });
2618
+ return component;
2619
+ };
2504
2620
 
2505
2621
  // src/domain/mappers/layout/modalLayoutToComponent.ts
2506
2622
  var modalLayoutToComponent = (uid, { analyticsId, content, control, margin, tags, trigger }, mapperProps, schemaComponents) => {
@@ -2522,10 +2638,15 @@ var modalLayoutToComponent = (uid, { analyticsId, content, control, margin, tags
2522
2638
  };
2523
2639
 
2524
2640
  // src/domain/components/ParagraphComponent.ts
2525
- var createParagraphComponent = (props) => __spreadValues({
2641
+ var createParagraphComponent = (props) => __spreadProps(__spreadValues({
2526
2642
  type: "paragraph",
2527
2643
  kind: "layout"
2528
- }, props);
2644
+ }, props), {
2645
+ start() {
2646
+ },
2647
+ stop() {
2648
+ }
2649
+ });
2529
2650
 
2530
2651
  // src/domain/mappers/layout/paragraphLayoutToComponent.ts
2531
2652
  var paragraphLayoutToComponent = (uid, { analyticsId, align, control, margin, size, tags, text }) => createParagraphComponent({
@@ -2540,10 +2661,15 @@ var paragraphLayoutToComponent = (uid, { analyticsId, align, control, margin, si
2540
2661
  });
2541
2662
 
2542
2663
  // src/domain/components/ProgressComponent.ts
2543
- var createProgressComponent = (props) => __spreadValues({
2664
+ var createProgressComponent = (props) => __spreadProps(__spreadValues({
2544
2665
  type: "progress",
2545
2666
  kind: "layout"
2546
- }, props);
2667
+ }, props), {
2668
+ start() {
2669
+ },
2670
+ stop() {
2671
+ }
2672
+ });
2547
2673
 
2548
2674
  // src/domain/mappers/layout/progressLayoutToComponent.ts
2549
2675
  var progressLayoutToComponent = (uid, {
@@ -2572,10 +2698,15 @@ var progressLayoutToComponent = (uid, {
2572
2698
  });
2573
2699
 
2574
2700
  // src/domain/components/ReviewComponent.ts
2575
- var createReviewComponent = (props) => __spreadValues({
2701
+ var createReviewComponent = (props) => __spreadProps(__spreadValues({
2576
2702
  type: "review",
2577
2703
  kind: "layout"
2578
- }, props);
2704
+ }, props), {
2705
+ start() {
2706
+ },
2707
+ stop() {
2708
+ }
2709
+ });
2579
2710
 
2580
2711
  // src/domain/mappers/layout/reviewLayoutToComponent.ts
2581
2712
  var reviewLayoutToComponent = (uid, {
@@ -2726,6 +2857,10 @@ var createSearchComponent = (props, performSearch, onBehavior, onComponentUpdate
2726
2857
  url: value.url
2727
2858
  });
2728
2859
  }
2860
+ },
2861
+ start() {
2862
+ },
2863
+ stop() {
2729
2864
  }
2730
2865
  };
2731
2866
  return component;
@@ -2871,13 +3006,22 @@ var emptyInitialState = {
2871
3006
  };
2872
3007
 
2873
3008
  // src/domain/components/SectionComponent.ts
2874
- var createSectionComponent = (props) => __spreadProps(__spreadValues({}, props), {
2875
- type: "section",
2876
- kind: "layout",
2877
- getChildren() {
2878
- return props.components;
2879
- }
2880
- });
3009
+ var createSectionComponent = (props) => {
3010
+ const component = __spreadProps(__spreadValues({}, props), {
3011
+ type: "section",
3012
+ kind: "layout",
3013
+ getChildren() {
3014
+ return props.components;
3015
+ },
3016
+ start() {
3017
+ component.getChildren().forEach((child) => child.start());
3018
+ },
3019
+ stop() {
3020
+ component.getChildren().forEach((child) => child.stop());
3021
+ }
3022
+ });
3023
+ return component;
3024
+ };
2881
3025
 
2882
3026
  // src/domain/mappers/layout/sectionLayoutToComponent.ts
2883
3027
  var sectionLayoutToComponent = (uid, {
@@ -2922,7 +3066,11 @@ var statusListLayoutToComponent = (uid, { analyticsId, control, items, margin, t
2922
3066
  // src/domain/components/TabsComponent.ts
2923
3067
  var createTabsComponent = (props) => __spreadProps(__spreadValues({}, props), {
2924
3068
  type: "tabs",
2925
- kind: "layout"
3069
+ kind: "layout",
3070
+ start() {
3071
+ },
3072
+ stop() {
3073
+ }
2926
3074
  });
2927
3075
 
2928
3076
  // src/domain/mappers/layout/tabsLayoutToComponent.ts
@@ -2961,7 +3109,11 @@ var createUpsellComponent = (props, onComponentUpdate) => {
2961
3109
  draft.visible = false;
2962
3110
  });
2963
3111
  dismiss();
2964
- } : void 0
3112
+ } : void 0,
3113
+ start() {
3114
+ },
3115
+ stop() {
3116
+ }
2965
3117
  });
2966
3118
  return component;
2967
3119
  };
@@ -3076,6 +3228,10 @@ var createExternalConfirmation = (uid, url, onLink, onComponentUpdate) => {
3076
3228
  update(component, (draft) => {
3077
3229
  draft.status = "dismissed";
3078
3230
  });
3231
+ },
3232
+ start() {
3233
+ },
3234
+ stop() {
3079
3235
  }
3080
3236
  };
3081
3237
  return component;
@@ -3176,6 +3332,9 @@ var createStepComponent = (props) => {
3176
3332
  });
3177
3333
  },
3178
3334
  showModal(modal) {
3335
+ if (component.state === "started") {
3336
+ modal.start();
3337
+ }
3179
3338
  update(component, (draft) => {
3180
3339
  draft.modals = [...draft.modals, modal];
3181
3340
  });
@@ -3211,6 +3370,9 @@ var createStepComponent = (props) => {
3211
3370
  return stepDelays.start(delay);
3212
3371
  },
3213
3372
  addSubflow(subflow) {
3373
+ if (component.state === "started") {
3374
+ subflow.start();
3375
+ }
3214
3376
  update(component, (draft) => {
3215
3377
  draft.subflow = subflow;
3216
3378
  });
@@ -3219,6 +3381,7 @@ var createStepComponent = (props) => {
3219
3381
  if (!component.subflow) {
3220
3382
  return;
3221
3383
  }
3384
+ component.subflow.stop();
3222
3385
  update(component, (draft) => {
3223
3386
  draft.subflow = null;
3224
3387
  });
@@ -3233,12 +3396,14 @@ var createStepComponent = (props) => {
3233
3396
  stepPolling == null ? void 0 : stepPolling.start();
3234
3397
  stepRefreshAfter == null ? void 0 : stepRefreshAfter.start();
3235
3398
  stepPrefetch.start(component.getSubmittableValueSync());
3399
+ getAllSubcomponents(component).forEach((child) => child.start());
3236
3400
  },
3237
3401
  stop() {
3238
3402
  stepPolling == null ? void 0 : stepPolling.stop();
3239
3403
  stepRefreshAfter == null ? void 0 : stepRefreshAfter.stop();
3240
3404
  stepDelays.stop();
3241
3405
  stepPrefetch.stop();
3406
+ getAllSubcomponents(component).forEach((child) => child.stop());
3242
3407
  update(component, (draft) => {
3243
3408
  draft.state = "stopped";
3244
3409
  draft.modals = [];
@@ -3252,6 +3417,14 @@ var createStepComponent = (props) => {
3252
3417
  });
3253
3418
  return component;
3254
3419
  };
3420
+ var getAllSubcomponents = (component) => [
3421
+ ...component.layoutComponents,
3422
+ ...component.schemaComponents,
3423
+ ...component.footerComponents,
3424
+ ...component.externalConfirmation ? [component.externalConfirmation] : [],
3425
+ ...component.modals,
3426
+ ...component.subflow ? [component.subflow] : []
3427
+ ];
3255
3428
  var validateInputComponent = (component, inputComponent, isStrict, logEvent) => {
3256
3429
  var _a;
3257
3430
  const isSchemaReferenced = component.referencedSchemaIds.includes((_a = inputComponent.schemaId) != null ? _a : "");
@@ -3868,7 +4041,7 @@ var createNumberInputComponent = (props, onComponentUpdate) => {
3868
4041
  const getValidationErrors = getLocalValueValidator(checks);
3869
4042
  const performOnChange = getDebouncedSchemaOnChange(schemaOnChange, getValidationErrors);
3870
4043
  const validateAsync = performValidationAsync ? getDebouncedComponentValidationAsync(update, performValidationAsync) : void 0;
3871
- const component = __spreadValues({
4044
+ const component = __spreadProps(__spreadValues({
3872
4045
  type: "number",
3873
4046
  kind: "input",
3874
4047
  uid,
@@ -3920,7 +4093,12 @@ var createNumberInputComponent = (props, onComponentUpdate) => {
3920
4093
  });
3921
4094
  return errors.length === 0;
3922
4095
  }
3923
- }, rest);
4096
+ }, rest), {
4097
+ start() {
4098
+ },
4099
+ stop() {
4100
+ }
4101
+ });
3924
4102
  return component;
3925
4103
  };
3926
4104
 
@@ -4531,6 +4709,12 @@ var createAllOfComponent = (props) => {
4531
4709
  },
4532
4710
  validate() {
4533
4711
  return hidden ? true : validateComponents(component.getChildren());
4712
+ },
4713
+ start() {
4714
+ component.getChildren().forEach((child) => child.start());
4715
+ },
4716
+ stop() {
4717
+ component.getChildren().forEach((child) => child.stop());
4534
4718
  }
4535
4719
  };
4536
4720
  return component;
@@ -4673,6 +4857,12 @@ var createRepeatableComponent = (props, onComponentUpdate) => {
4673
4857
  draft.errors = messages;
4674
4858
  });
4675
4859
  return messages.length === 0 && childComponentsValid;
4860
+ },
4861
+ start() {
4862
+ component.getChildren().forEach((child) => child.start());
4863
+ },
4864
+ stop() {
4865
+ component.getChildren().forEach((child) => child.stop());
4676
4866
  }
4677
4867
  });
4678
4868
  return component;
@@ -4851,7 +5041,7 @@ var createMultiUploadInputComponent = (props, onComponentUpdate) => {
4851
5041
  const getValidationErrors = getLocalValueValidator(checks);
4852
5042
  const getFileValidationErrors = getLocalValueValidator(fileChecks);
4853
5043
  const persist = performPersistAsync ? getComponentMultiPersistAsync(update, performPersistAsync) : void 0;
4854
- const component = __spreadValues({
5044
+ const component = __spreadProps(__spreadValues({
4855
5045
  type: "multi-upload",
4856
5046
  kind: "input",
4857
5047
  uid,
@@ -4917,7 +5107,12 @@ var createMultiUploadInputComponent = (props, onComponentUpdate) => {
4917
5107
  });
4918
5108
  return errorMsgs.length === 0 && component.files.every(({ errors }) => errors.length === 0);
4919
5109
  }
4920
- }, rest);
5110
+ }, rest), {
5111
+ start() {
5112
+ },
5113
+ stop() {
5114
+ }
5115
+ });
4921
5116
  return component;
4922
5117
  };
4923
5118
 
@@ -5153,6 +5348,12 @@ var createMultiSelectComponent = (props, onComponentUpdate) => {
5153
5348
  },
5154
5349
  getSelectedChildren() {
5155
5350
  return component.selectedIndices.map((i) => component.children[i]);
5351
+ },
5352
+ start() {
5353
+ component.getChildren().forEach((child) => child.start());
5354
+ },
5355
+ stop() {
5356
+ component.getChildren().forEach((child) => child.stop());
5156
5357
  }
5157
5358
  });
5158
5359
  return component;
@@ -5286,6 +5487,12 @@ var createTupleComponent = (props) => {
5286
5487
  },
5287
5488
  validate() {
5288
5489
  return hidden ? true : validateComponents(component.getChildren());
5490
+ },
5491
+ start() {
5492
+ component.getChildren().forEach((child) => child.start());
5493
+ },
5494
+ stop() {
5495
+ component.getChildren().forEach((child) => child.stop());
5289
5496
  }
5290
5497
  };
5291
5498
  return component;
@@ -5369,7 +5576,7 @@ var createUploadInputComponent = (props, onComponentUpdate) => {
5369
5576
  ]);
5370
5577
  const update = getInputUpdateFunction(onComponentUpdate);
5371
5578
  const getValidationErrors = getLocalValueValidator(checks);
5372
- const component = __spreadValues({
5579
+ const component = __spreadProps(__spreadValues({
5373
5580
  type: "upload",
5374
5581
  kind: "input",
5375
5582
  uid,
@@ -5423,7 +5630,12 @@ var createUploadInputComponent = (props, onComponentUpdate) => {
5423
5630
  });
5424
5631
  return errors.length === 0;
5425
5632
  }
5426
- }, rest);
5633
+ }, rest), {
5634
+ start() {
5635
+ },
5636
+ stop() {
5637
+ }
5638
+ });
5427
5639
  if (format === "base64" && value && !onPersistAsync) {
5428
5640
  void toBase64(value).then((base64Value) => {
5429
5641
  if (base64Value) {
@@ -5491,7 +5703,7 @@ var createBooleanInputComponent = (props, onComponentUpdate) => {
5491
5703
  ]);
5492
5704
  const update = getInputUpdateFunction(onComponentUpdate);
5493
5705
  const validateAsync = performValidationAsync ? getComponentValidationAsync(update, performValidationAsync) : void 0;
5494
- const component = __spreadValues({
5706
+ const component = __spreadProps(__spreadValues({
5495
5707
  type: "boolean",
5496
5708
  kind: "input",
5497
5709
  uid,
@@ -5529,7 +5741,12 @@ var createBooleanInputComponent = (props, onComponentUpdate) => {
5529
5741
  return component.value;
5530
5742
  },
5531
5743
  validate: () => true
5532
- }, rest);
5744
+ }, rest), {
5745
+ start() {
5746
+ },
5747
+ stop() {
5748
+ }
5749
+ });
5533
5750
  return component;
5534
5751
  };
5535
5752
 
@@ -5586,7 +5803,11 @@ var createConstComponent = (props) => {
5586
5803
  getSubmittableValue: async () => value,
5587
5804
  getSubmittableValueSync: () => value,
5588
5805
  getSummary: () => summary,
5589
- validate: () => true
5806
+ validate: () => true,
5807
+ start() {
5808
+ },
5809
+ stop() {
5810
+ }
5590
5811
  };
5591
5812
  };
5592
5813
 
@@ -5640,7 +5861,7 @@ var createDateInputComponent = (props, onComponentUpdate) => {
5640
5861
  const update = getInputUpdateFunction(onComponentUpdate);
5641
5862
  const getValidationErrors = getLocalValueValidator(checks);
5642
5863
  const validateAsync = performValidationAsync ? getComponentValidationAsync(update, performValidationAsync) : void 0;
5643
- const component = __spreadValues({
5864
+ const component = __spreadProps(__spreadValues({
5644
5865
  type: "date",
5645
5866
  kind: "input",
5646
5867
  uid,
@@ -5694,7 +5915,12 @@ var createDateInputComponent = (props, onComponentUpdate) => {
5694
5915
  });
5695
5916
  return errors.length === 0;
5696
5917
  }
5697
- }, rest);
5918
+ }, rest), {
5919
+ start() {
5920
+ },
5921
+ stop() {
5922
+ }
5923
+ });
5698
5924
  return component;
5699
5925
  };
5700
5926
 
@@ -5813,7 +6039,7 @@ var createIntegerInputComponent = (props, onComponentUpdate) => {
5813
6039
  const getValidationErrors = getLocalValueValidator(checks);
5814
6040
  const performOnChange = getDebouncedSchemaOnChange(schemaOnChange, getValidationErrors);
5815
6041
  const validateAsync = performValidationAsync ? getDebouncedComponentValidationAsync(update, performValidationAsync) : void 0;
5816
- const component = __spreadValues({
6042
+ const component = __spreadProps(__spreadValues({
5817
6043
  type: "integer",
5818
6044
  kind: "input",
5819
6045
  uid,
@@ -5866,7 +6092,12 @@ var createIntegerInputComponent = (props, onComponentUpdate) => {
5866
6092
  });
5867
6093
  return errors.length === 0;
5868
6094
  }
5869
- }, rest);
6095
+ }, rest), {
6096
+ start() {
6097
+ },
6098
+ stop() {
6099
+ }
6100
+ });
5870
6101
  return component;
5871
6102
  };
5872
6103
 
@@ -5969,6 +6200,10 @@ var createFormattedValueComponent = (props, onComponentUpdate) => {
5969
6200
  draft.value = newValue;
5970
6201
  });
5971
6202
  void (schemaOnChange == null ? void 0 : schemaOnChange());
6203
+ },
6204
+ start() {
6205
+ },
6206
+ stop() {
5972
6207
  }
5973
6208
  };
5974
6209
  return component;
@@ -6032,7 +6267,7 @@ var createMoneyInputComponent = (props, onComponentUpdate) => {
6032
6267
  ]);
6033
6268
  const getValidationErrors = getLocalValueValidator(checks);
6034
6269
  const update = getInputUpdateFunction(onComponentUpdate);
6035
- const component = __spreadValues({
6270
+ const component = __spreadProps(__spreadValues({
6036
6271
  type: "money-input",
6037
6272
  kind: "input",
6038
6273
  id,
@@ -6088,7 +6323,12 @@ var createMoneyInputComponent = (props, onComponentUpdate) => {
6088
6323
  // noop
6089
6324
  onFocus() {
6090
6325
  }
6091
- }, rest);
6326
+ }, rest), {
6327
+ start() {
6328
+ },
6329
+ stop() {
6330
+ }
6331
+ });
6092
6332
  return component;
6093
6333
  };
6094
6334
 
@@ -6159,6 +6399,12 @@ var createObjectComponent = (props) => {
6159
6399
  },
6160
6400
  validate() {
6161
6401
  return hidden ? true : validateComponents(component.getChildren());
6402
+ },
6403
+ start() {
6404
+ component.getChildren().forEach((child) => child.start());
6405
+ },
6406
+ stop() {
6407
+ component.getChildren().forEach((child) => child.stop());
6162
6408
  }
6163
6409
  };
6164
6410
  return component;
@@ -6425,6 +6671,12 @@ var createSelectInputComponent = (props, onComponentUpdate) => {
6425
6671
  draft.errors = errors;
6426
6672
  });
6427
6673
  return errors.length === 0 && validChild;
6674
+ },
6675
+ start() {
6676
+ component.getChildren().forEach((child) => child.start());
6677
+ },
6678
+ stop() {
6679
+ component.getChildren().forEach((child) => child.stop());
6428
6680
  }
6429
6681
  });
6430
6682
  return component;
@@ -6612,6 +6864,10 @@ var createPersistAsyncComponent = (props, performPersistAsync, schemaOnChange, o
6612
6864
  draft.status = "persisting";
6613
6865
  });
6614
6866
  return newSubmission;
6867
+ },
6868
+ start() {
6869
+ },
6870
+ stop() {
6615
6871
  }
6616
6872
  };
6617
6873
  return component;
@@ -6712,7 +6968,7 @@ var createTextInputComponent = (props, onComponentUpdate) => {
6712
6968
  const getValidationErrors = getLocalValueValidator(checks);
6713
6969
  const performOnChange = getDebouncedSchemaOnChange(schemaOnChange, getValidationErrors);
6714
6970
  const validateAsync = performValidationAsync ? getDebouncedComponentValidationAsync(update, performValidationAsync) : void 0;
6715
- const component = __spreadValues({
6971
+ const component = __spreadProps(__spreadValues({
6716
6972
  type: "text",
6717
6973
  kind: "input",
6718
6974
  uid,
@@ -6767,7 +7023,12 @@ var createTextInputComponent = (props, onComponentUpdate) => {
6767
7023
  });
6768
7024
  return errors.length === 0;
6769
7025
  }
6770
- }, rest);
7026
+ }, rest), {
7027
+ start() {
7028
+ },
7029
+ stop() {
7030
+ }
7031
+ });
6771
7032
  return component;
6772
7033
  };
6773
7034
 
@@ -7439,20 +7700,30 @@ var createSubflowComponent = (props, onComponentUpdate) => {
7439
7700
  };
7440
7701
  var createDynamicSubflowComponent = (props, onComponentUpdate) => {
7441
7702
  const update = getInputUpdateFunction(onComponentUpdate);
7442
- return __spreadValues({
7703
+ return __spreadProps(__spreadValues({
7443
7704
  uid: `subflow-dynamic-${getRandomId()}`,
7444
7705
  type: "subflow",
7445
7706
  subflowType: "dynamic",
7446
7707
  kind: "layout"
7447
- }, props);
7708
+ }, props), {
7709
+ start() {
7710
+ },
7711
+ stop() {
7712
+ }
7713
+ });
7448
7714
  };
7449
7715
  var createNativeSubflowComponent = (props) => {
7450
- return __spreadValues({
7716
+ return __spreadProps(__spreadValues({
7451
7717
  uid: `subflow-native-${getRandomId()}`,
7452
7718
  type: "subflow",
7453
7719
  subflowType: "native",
7454
7720
  kind: "layout"
7455
- }, props);
7721
+ }, props), {
7722
+ start() {
7723
+ },
7724
+ stop() {
7725
+ }
7726
+ });
7456
7727
  };
7457
7728
 
7458
7729
  // src/controller/executeSubflow.ts