@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.mjs CHANGED
@@ -1263,9 +1263,16 @@ var createModalContentComponent = (props, onComponentUpdate) => {
1263
1263
  return component.components;
1264
1264
  },
1265
1265
  close() {
1266
+ component.stop();
1266
1267
  update(component, (draft) => {
1267
1268
  draft.open = false;
1268
1269
  });
1270
+ },
1271
+ start() {
1272
+ component.getChildren().forEach((child) => child.start());
1273
+ },
1274
+ stop() {
1275
+ component.getChildren().forEach((child) => child.stop());
1269
1276
  }
1270
1277
  });
1271
1278
  return component;
@@ -1275,10 +1282,15 @@ var createModalContentComponent = (props, onComponentUpdate) => {
1275
1282
  var getRandomId = () => Math.random().toString(36).substring(2);
1276
1283
 
1277
1284
  // src/domain/components/AlertComponent.ts
1278
- var createAlertComponent = (props) => __spreadValues({
1285
+ var createAlertComponent = (props) => __spreadProps(__spreadValues({
1279
1286
  type: "alert",
1280
1287
  kind: "layout"
1281
- }, props);
1288
+ }, props), {
1289
+ start() {
1290
+ },
1291
+ stop() {
1292
+ }
1293
+ });
1282
1294
 
1283
1295
  // src/domain/handlers/dismissHandler.ts
1284
1296
  var makeDismissHandler = (onDismiss, mapperProps) => () => {
@@ -1493,13 +1505,22 @@ var alertLayoutToComponent = (uid, {
1493
1505
  });
1494
1506
 
1495
1507
  // src/domain/components/BoxComponent.ts
1496
- var createBoxComponent = (props) => __spreadProps(__spreadValues({}, props), {
1497
- type: "box",
1498
- kind: "layout",
1499
- getChildren() {
1500
- return props.components;
1501
- }
1502
- });
1508
+ var createBoxComponent = (props) => {
1509
+ const component = __spreadProps(__spreadValues({}, props), {
1510
+ type: "box",
1511
+ kind: "layout",
1512
+ getChildren() {
1513
+ return props.components;
1514
+ },
1515
+ start() {
1516
+ component.getChildren().forEach((child) => child.start());
1517
+ },
1518
+ stop() {
1519
+ component.getChildren().forEach((child) => child.stop());
1520
+ }
1521
+ });
1522
+ return component;
1523
+ };
1503
1524
 
1504
1525
  // src/domain/mappers/utils/layout-utils.ts
1505
1526
  var normaliseMarginInLastComponent = (container) => {
@@ -1786,6 +1807,13 @@ var createCollectionComponent = (props, onComponentUpdate, queryFunction, trackE
1786
1807
  control,
1787
1808
  margin,
1788
1809
  tags,
1810
+ getChildren() {
1811
+ var _a, _b, _c, _d;
1812
+ return [
1813
+ ...(_b = (_a = component.state) == null ? void 0 : _a.beforeSections) != null ? _b : [],
1814
+ ...(_d = (_c = component.state) == null ? void 0 : _c.afterSections) != null ? _d : []
1815
+ ];
1816
+ },
1789
1817
  status: {
1790
1818
  type: "idle",
1791
1819
  loadMore: state.nextCursor ? () => query("pagination") : void 0
@@ -1793,7 +1821,13 @@ var createCollectionComponent = (props, onComponentUpdate, queryFunction, trackE
1793
1821
  state: __spreadProps(__spreadValues({}, state), {
1794
1822
  filters: mapFilters(state.filters),
1795
1823
  search: mapSearch(props.search)
1796
- })
1824
+ }),
1825
+ start() {
1826
+ component.getChildren().forEach((child) => child.start());
1827
+ },
1828
+ stop() {
1829
+ component.getChildren().forEach((child) => child.stop());
1830
+ }
1797
1831
  };
1798
1832
  return component;
1799
1833
  };
@@ -1998,10 +2032,15 @@ var mapFilter = (filter) => {
1998
2032
  };
1999
2033
 
2000
2034
  // src/domain/components/ButtonComponent.ts
2001
- var createButtonComponent = (props) => __spreadValues({
2035
+ var createButtonComponent = (props) => __spreadProps(__spreadValues({
2002
2036
  type: "button",
2003
2037
  kind: "layout"
2004
- }, props);
2038
+ }, props), {
2039
+ start() {
2040
+ },
2041
+ stop() {
2042
+ }
2043
+ });
2005
2044
 
2006
2045
  // src/domain/mappers/layout/buttonLayoutToComponent.ts
2007
2046
  var buttonLayoutToComponent = (uid, button, mapperProps) => {
@@ -2103,13 +2142,22 @@ var getButtonContext = ({ context, action }) => {
2103
2142
  };
2104
2143
 
2105
2144
  // src/domain/components/ColumnsComponent.ts
2106
- var createColumnsComponent = (props) => __spreadProps(__spreadValues({}, props), {
2107
- type: "columns",
2108
- kind: "layout",
2109
- getChildren() {
2110
- return [...props.startComponents, ...props.endComponents];
2111
- }
2112
- });
2145
+ var createColumnsComponent = (props) => {
2146
+ const component = __spreadProps(__spreadValues({}, props), {
2147
+ type: "columns",
2148
+ kind: "layout",
2149
+ getChildren() {
2150
+ return [...props.startComponents, ...props.endComponents];
2151
+ },
2152
+ start() {
2153
+ component.getChildren().forEach((child) => child.start());
2154
+ },
2155
+ stop() {
2156
+ component.getChildren().forEach((child) => child.stop());
2157
+ }
2158
+ });
2159
+ return component;
2160
+ };
2113
2161
 
2114
2162
  // src/domain/mappers/layout/columnsLayoutToComponent.ts
2115
2163
  var columnsLayoutToComponent = (uid, { control, left, right, bias, margin, analyticsId, tags }, mapperProps, schemaComponents) => createColumnsComponent({
@@ -2133,10 +2181,15 @@ var columnsLayoutToComponent = (uid, { control, left, right, bias, margin, analy
2133
2181
  });
2134
2182
 
2135
2183
  // src/domain/components/DecisionComponent.ts
2136
- var createDecisionComponent = (props) => __spreadValues({
2184
+ var createDecisionComponent = (props) => __spreadProps(__spreadValues({
2137
2185
  type: "decision",
2138
2186
  kind: "layout"
2139
- }, props);
2187
+ }, props), {
2188
+ start() {
2189
+ },
2190
+ stop() {
2191
+ }
2192
+ });
2140
2193
 
2141
2194
  // src/domain/mappers/utils/tags-utils.ts
2142
2195
  var mapTags = ({ tag, tags }) => tags != null ? tags : tag != null ? [tag] : void 0;
@@ -2177,10 +2230,15 @@ var mapOption = (option, mapperProps) => {
2177
2230
  };
2178
2231
 
2179
2232
  // src/domain/components/StatusListComponent.ts
2180
- var createStatusListComponent = (props) => __spreadValues({
2233
+ var createStatusListComponent = (props) => __spreadProps(__spreadValues({
2181
2234
  type: "status-list",
2182
2235
  kind: "layout"
2183
- }, props);
2236
+ }, props), {
2237
+ start() {
2238
+ },
2239
+ stop() {
2240
+ }
2241
+ });
2184
2242
 
2185
2243
  // src/domain/mappers/layout/deprecatedListLayoutToComponent.ts
2186
2244
  var isDeprecatedListLayout = (layout) => {
@@ -2214,22 +2272,36 @@ var mapLegacyStatus = (status) => {
2214
2272
  };
2215
2273
 
2216
2274
  // src/domain/components/DividerComponent.ts
2217
- var createDividerComponent = (props) => __spreadValues({
2275
+ var createDividerComponent = (props) => __spreadProps(__spreadValues({
2218
2276
  type: "divider",
2219
2277
  kind: "layout"
2220
- }, props);
2278
+ }, props), {
2279
+ start() {
2280
+ },
2281
+ stop() {
2282
+ }
2283
+ });
2221
2284
 
2222
2285
  // src/domain/mappers/layout/dividerLayoutToComponent.ts
2223
2286
  var dividerLayoutToComponent = (uid, { control, margin, analyticsId, tags }) => createDividerComponent({ uid, analyticsId, control, margin: margin != null ? margin : "md", tags });
2224
2287
 
2225
2288
  // src/domain/components/FormComponent.ts
2226
- var createFormComponent = (props) => __spreadProps(__spreadValues({}, props), {
2227
- type: "form",
2228
- kind: "layout",
2229
- getChildren() {
2230
- return [props.schemaComponent];
2231
- }
2232
- });
2289
+ var createFormComponent = (props) => {
2290
+ const component = __spreadProps(__spreadValues({}, props), {
2291
+ type: "form",
2292
+ kind: "layout",
2293
+ getChildren() {
2294
+ return [props.schemaComponent];
2295
+ },
2296
+ start() {
2297
+ component.getChildren().forEach((child) => child.start());
2298
+ },
2299
+ stop() {
2300
+ component.getChildren().forEach((child) => child.stop());
2301
+ }
2302
+ });
2303
+ return component;
2304
+ };
2233
2305
 
2234
2306
  // src/domain/mappers/layout/formLayoutToComponent.ts
2235
2307
  var formLayoutToComponent = (uid, { analyticsId, schemaId, schema: schemaRef, control, margin, tags }, schemaComponents) => {
@@ -2256,10 +2328,15 @@ var formLayoutToComponent = (uid, { analyticsId, schemaId, schema: schemaRef, co
2256
2328
  };
2257
2329
 
2258
2330
  // src/domain/components/HeadingComponent.ts
2259
- var createHeadingComponent = (props) => __spreadValues({
2331
+ var createHeadingComponent = (props) => __spreadProps(__spreadValues({
2260
2332
  type: "heading",
2261
2333
  kind: "layout"
2262
- }, props);
2334
+ }, props), {
2335
+ start() {
2336
+ },
2337
+ stop() {
2338
+ }
2339
+ });
2263
2340
 
2264
2341
  // src/domain/mappers/layout/headingLayoutToComponent.ts
2265
2342
  var headingLayoutToComponent = (uid, { analyticsId, align, margin, size, control, tags, text }) => createHeadingComponent({
@@ -2274,10 +2351,15 @@ var headingLayoutToComponent = (uid, { analyticsId, align, margin, size, control
2274
2351
  });
2275
2352
 
2276
2353
  // src/domain/components/ImageComponent.ts
2277
- var createImageComponent = (props) => __spreadValues({
2354
+ var createImageComponent = (props) => __spreadProps(__spreadValues({
2278
2355
  type: "image",
2279
2356
  kind: "layout"
2280
- }, props);
2357
+ }, props), {
2358
+ start() {
2359
+ },
2360
+ stop() {
2361
+ }
2362
+ });
2281
2363
 
2282
2364
  // src/domain/mappers/layout/imageLayoutToComponent.ts
2283
2365
  var imageLayoutToComponent = (uid, {
@@ -2309,10 +2391,15 @@ var imageLayoutToComponent = (uid, {
2309
2391
  };
2310
2392
 
2311
2393
  // src/domain/components/MarkdownComponent.ts
2312
- var createMarkdownComponent = (props) => __spreadValues({
2394
+ var createMarkdownComponent = (props) => __spreadProps(__spreadValues({
2313
2395
  type: "markdown",
2314
2396
  kind: "layout"
2315
- }, props);
2397
+ }, props), {
2398
+ start() {
2399
+ },
2400
+ stop() {
2401
+ }
2402
+ });
2316
2403
 
2317
2404
  // src/domain/mappers/layout/infoLayoutToComponent.ts
2318
2405
  var infoLayoutToComponent = (uid, { analyticsId, align, control, margin, markdown: content, tags }) => createMarkdownComponent({
@@ -2327,10 +2414,15 @@ var infoLayoutToComponent = (uid, { analyticsId, align, control, margin, markdow
2327
2414
  });
2328
2415
 
2329
2416
  // src/domain/components/InstructionsComponent.ts
2330
- var createInstructionsComponent = (props) => __spreadValues({
2417
+ var createInstructionsComponent = (props) => __spreadProps(__spreadValues({
2331
2418
  type: "instructions",
2332
2419
  kind: "layout"
2333
- }, props);
2420
+ }, props), {
2421
+ start() {
2422
+ },
2423
+ stop() {
2424
+ }
2425
+ });
2334
2426
 
2335
2427
  // src/domain/mappers/layout/instructionsLayoutToComponent.ts
2336
2428
  var instructionsLayoutToComponent = (uid, { analyticsId, control, items, margin, tags, title }) => createInstructionsComponent({
@@ -2347,10 +2439,15 @@ var instructionsLayoutToComponent = (uid, { analyticsId, control, items, margin,
2347
2439
  });
2348
2440
 
2349
2441
  // src/domain/components/ListComponent.ts
2350
- var createListComponent = (props) => __spreadValues({
2442
+ var createListComponent = (props) => __spreadProps(__spreadValues({
2351
2443
  type: "list",
2352
2444
  kind: "layout"
2353
- }, props);
2445
+ }, props), {
2446
+ start() {
2447
+ },
2448
+ stop() {
2449
+ }
2450
+ });
2354
2451
 
2355
2452
  // src/domain/mappers/layout/listLayoutToComponent.ts
2356
2453
  var listLayoutToComponent = (uid, { analyticsId, callToAction, control, items, margin, tags, title }, mapperProps) => {
@@ -2408,10 +2505,15 @@ var mapSupportingValues = (item) => {
2408
2505
  };
2409
2506
 
2410
2507
  // src/domain/components/LoadingIndicatorComponent.ts
2411
- var createLoadingIndicatorComponent = (props) => __spreadValues({
2508
+ var createLoadingIndicatorComponent = (props) => __spreadProps(__spreadValues({
2412
2509
  type: "loading-indicator",
2413
2510
  kind: "layout"
2414
- }, props);
2511
+ }, props), {
2512
+ start() {
2513
+ },
2514
+ stop() {
2515
+ }
2516
+ });
2415
2517
 
2416
2518
  // src/domain/mappers/layout/loadingIndicatorLayoutToComponent.ts
2417
2519
  var loadingIndicatorLayoutToComponent = (uid, { analyticsId, control, margin, size, tags }) => createLoadingIndicatorComponent({
@@ -2444,10 +2546,15 @@ var markdownLayoutToComponent = (uid, {
2444
2546
  });
2445
2547
 
2446
2548
  // src/domain/components/MediaComponent.ts
2447
- var createMediaComponent = (props) => __spreadValues({
2549
+ var createMediaComponent = (props) => __spreadProps(__spreadValues({
2448
2550
  type: "media",
2449
2551
  kind: "layout"
2450
- }, props);
2552
+ }, props), {
2553
+ start() {
2554
+ },
2555
+ stop() {
2556
+ }
2557
+ });
2451
2558
 
2452
2559
  // src/domain/mappers/layout/mediaLayoutToComponent.ts
2453
2560
  var mediaLayoutToComponent = (uid, { analyticsId, align, control, margin, media, size, tags }) => createMediaComponent({
@@ -2462,14 +2569,23 @@ var mediaLayoutToComponent = (uid, { analyticsId, align, control, margin, media,
2462
2569
  });
2463
2570
 
2464
2571
  // src/domain/components/ModalLayoutComponent.ts
2465
- var createModalComponent = (props) => __spreadProps(__spreadValues({
2466
- type: "modal-layout",
2467
- kind: "layout"
2468
- }, props), {
2469
- getChildren() {
2470
- return props.content.components;
2471
- }
2472
- });
2572
+ var createModalComponent = (props) => {
2573
+ const component = __spreadProps(__spreadValues({
2574
+ type: "modal-layout",
2575
+ kind: "layout"
2576
+ }, props), {
2577
+ getChildren() {
2578
+ return props.content.components;
2579
+ },
2580
+ start() {
2581
+ component.getChildren().forEach((child) => child.start());
2582
+ },
2583
+ stop() {
2584
+ component.getChildren().forEach((child) => child.stop());
2585
+ }
2586
+ });
2587
+ return component;
2588
+ };
2473
2589
 
2474
2590
  // src/domain/mappers/layout/modalLayoutToComponent.ts
2475
2591
  var modalLayoutToComponent = (uid, { analyticsId, content, control, margin, tags, trigger }, mapperProps, schemaComponents) => {
@@ -2491,10 +2607,15 @@ var modalLayoutToComponent = (uid, { analyticsId, content, control, margin, tags
2491
2607
  };
2492
2608
 
2493
2609
  // src/domain/components/ParagraphComponent.ts
2494
- var createParagraphComponent = (props) => __spreadValues({
2610
+ var createParagraphComponent = (props) => __spreadProps(__spreadValues({
2495
2611
  type: "paragraph",
2496
2612
  kind: "layout"
2497
- }, props);
2613
+ }, props), {
2614
+ start() {
2615
+ },
2616
+ stop() {
2617
+ }
2618
+ });
2498
2619
 
2499
2620
  // src/domain/mappers/layout/paragraphLayoutToComponent.ts
2500
2621
  var paragraphLayoutToComponent = (uid, { analyticsId, align, control, margin, size, tags, text }) => createParagraphComponent({
@@ -2509,10 +2630,15 @@ var paragraphLayoutToComponent = (uid, { analyticsId, align, control, margin, si
2509
2630
  });
2510
2631
 
2511
2632
  // src/domain/components/ProgressComponent.ts
2512
- var createProgressComponent = (props) => __spreadValues({
2633
+ var createProgressComponent = (props) => __spreadProps(__spreadValues({
2513
2634
  type: "progress",
2514
2635
  kind: "layout"
2515
- }, props);
2636
+ }, props), {
2637
+ start() {
2638
+ },
2639
+ stop() {
2640
+ }
2641
+ });
2516
2642
 
2517
2643
  // src/domain/mappers/layout/progressLayoutToComponent.ts
2518
2644
  var progressLayoutToComponent = (uid, {
@@ -2541,10 +2667,15 @@ var progressLayoutToComponent = (uid, {
2541
2667
  });
2542
2668
 
2543
2669
  // src/domain/components/ReviewComponent.ts
2544
- var createReviewComponent = (props) => __spreadValues({
2670
+ var createReviewComponent = (props) => __spreadProps(__spreadValues({
2545
2671
  type: "review",
2546
2672
  kind: "layout"
2547
- }, props);
2673
+ }, props), {
2674
+ start() {
2675
+ },
2676
+ stop() {
2677
+ }
2678
+ });
2548
2679
 
2549
2680
  // src/domain/mappers/layout/reviewLayoutToComponent.ts
2550
2681
  var reviewLayoutToComponent = (uid, {
@@ -2695,6 +2826,10 @@ var createSearchComponent = (props, performSearch, onBehavior, onComponentUpdate
2695
2826
  url: value.url
2696
2827
  });
2697
2828
  }
2829
+ },
2830
+ start() {
2831
+ },
2832
+ stop() {
2698
2833
  }
2699
2834
  };
2700
2835
  return component;
@@ -2840,13 +2975,22 @@ var emptyInitialState = {
2840
2975
  };
2841
2976
 
2842
2977
  // src/domain/components/SectionComponent.ts
2843
- var createSectionComponent = (props) => __spreadProps(__spreadValues({}, props), {
2844
- type: "section",
2845
- kind: "layout",
2846
- getChildren() {
2847
- return props.components;
2848
- }
2849
- });
2978
+ var createSectionComponent = (props) => {
2979
+ const component = __spreadProps(__spreadValues({}, props), {
2980
+ type: "section",
2981
+ kind: "layout",
2982
+ getChildren() {
2983
+ return props.components;
2984
+ },
2985
+ start() {
2986
+ component.getChildren().forEach((child) => child.start());
2987
+ },
2988
+ stop() {
2989
+ component.getChildren().forEach((child) => child.stop());
2990
+ }
2991
+ });
2992
+ return component;
2993
+ };
2850
2994
 
2851
2995
  // src/domain/mappers/layout/sectionLayoutToComponent.ts
2852
2996
  var sectionLayoutToComponent = (uid, {
@@ -2891,7 +3035,11 @@ var statusListLayoutToComponent = (uid, { analyticsId, control, items, margin, t
2891
3035
  // src/domain/components/TabsComponent.ts
2892
3036
  var createTabsComponent = (props) => __spreadProps(__spreadValues({}, props), {
2893
3037
  type: "tabs",
2894
- kind: "layout"
3038
+ kind: "layout",
3039
+ start() {
3040
+ },
3041
+ stop() {
3042
+ }
2895
3043
  });
2896
3044
 
2897
3045
  // src/domain/mappers/layout/tabsLayoutToComponent.ts
@@ -2930,7 +3078,11 @@ var createUpsellComponent = (props, onComponentUpdate) => {
2930
3078
  draft.visible = false;
2931
3079
  });
2932
3080
  dismiss();
2933
- } : void 0
3081
+ } : void 0,
3082
+ start() {
3083
+ },
3084
+ stop() {
3085
+ }
2934
3086
  });
2935
3087
  return component;
2936
3088
  };
@@ -3045,6 +3197,10 @@ var createExternalConfirmation = (uid, url, onLink, onComponentUpdate) => {
3045
3197
  update(component, (draft) => {
3046
3198
  draft.status = "dismissed";
3047
3199
  });
3200
+ },
3201
+ start() {
3202
+ },
3203
+ stop() {
3048
3204
  }
3049
3205
  };
3050
3206
  return component;
@@ -3145,6 +3301,9 @@ var createStepComponent = (props) => {
3145
3301
  });
3146
3302
  },
3147
3303
  showModal(modal) {
3304
+ if (component.state === "started") {
3305
+ modal.start();
3306
+ }
3148
3307
  update(component, (draft) => {
3149
3308
  draft.modals = [...draft.modals, modal];
3150
3309
  });
@@ -3180,6 +3339,9 @@ var createStepComponent = (props) => {
3180
3339
  return stepDelays.start(delay);
3181
3340
  },
3182
3341
  addSubflow(subflow) {
3342
+ if (component.state === "started") {
3343
+ subflow.start();
3344
+ }
3183
3345
  update(component, (draft) => {
3184
3346
  draft.subflow = subflow;
3185
3347
  });
@@ -3188,6 +3350,7 @@ var createStepComponent = (props) => {
3188
3350
  if (!component.subflow) {
3189
3351
  return;
3190
3352
  }
3353
+ component.subflow.stop();
3191
3354
  update(component, (draft) => {
3192
3355
  draft.subflow = null;
3193
3356
  });
@@ -3202,12 +3365,14 @@ var createStepComponent = (props) => {
3202
3365
  stepPolling == null ? void 0 : stepPolling.start();
3203
3366
  stepRefreshAfter == null ? void 0 : stepRefreshAfter.start();
3204
3367
  stepPrefetch.start(component.getSubmittableValueSync());
3368
+ getAllSubcomponents(component).forEach((child) => child.start());
3205
3369
  },
3206
3370
  stop() {
3207
3371
  stepPolling == null ? void 0 : stepPolling.stop();
3208
3372
  stepRefreshAfter == null ? void 0 : stepRefreshAfter.stop();
3209
3373
  stepDelays.stop();
3210
3374
  stepPrefetch.stop();
3375
+ getAllSubcomponents(component).forEach((child) => child.stop());
3211
3376
  update(component, (draft) => {
3212
3377
  draft.state = "stopped";
3213
3378
  draft.modals = [];
@@ -3221,6 +3386,14 @@ var createStepComponent = (props) => {
3221
3386
  });
3222
3387
  return component;
3223
3388
  };
3389
+ var getAllSubcomponents = (component) => [
3390
+ ...component.layoutComponents,
3391
+ ...component.schemaComponents,
3392
+ ...component.footerComponents,
3393
+ ...component.externalConfirmation ? [component.externalConfirmation] : [],
3394
+ ...component.modals,
3395
+ ...component.subflow ? [component.subflow] : []
3396
+ ];
3224
3397
  var validateInputComponent = (component, inputComponent, isStrict, logEvent) => {
3225
3398
  var _a;
3226
3399
  const isSchemaReferenced = component.referencedSchemaIds.includes((_a = inputComponent.schemaId) != null ? _a : "");
@@ -3837,7 +4010,7 @@ var createNumberInputComponent = (props, onComponentUpdate) => {
3837
4010
  const getValidationErrors = getLocalValueValidator(checks);
3838
4011
  const performOnChange = getDebouncedSchemaOnChange(schemaOnChange, getValidationErrors);
3839
4012
  const validateAsync = performValidationAsync ? getDebouncedComponentValidationAsync(update, performValidationAsync) : void 0;
3840
- const component = __spreadValues({
4013
+ const component = __spreadProps(__spreadValues({
3841
4014
  type: "number",
3842
4015
  kind: "input",
3843
4016
  uid,
@@ -3889,7 +4062,12 @@ var createNumberInputComponent = (props, onComponentUpdate) => {
3889
4062
  });
3890
4063
  return errors.length === 0;
3891
4064
  }
3892
- }, rest);
4065
+ }, rest), {
4066
+ start() {
4067
+ },
4068
+ stop() {
4069
+ }
4070
+ });
3893
4071
  return component;
3894
4072
  };
3895
4073
 
@@ -4500,6 +4678,12 @@ var createAllOfComponent = (props) => {
4500
4678
  },
4501
4679
  validate() {
4502
4680
  return hidden ? true : validateComponents(component.getChildren());
4681
+ },
4682
+ start() {
4683
+ component.getChildren().forEach((child) => child.start());
4684
+ },
4685
+ stop() {
4686
+ component.getChildren().forEach((child) => child.stop());
4503
4687
  }
4504
4688
  };
4505
4689
  return component;
@@ -4642,6 +4826,12 @@ var createRepeatableComponent = (props, onComponentUpdate) => {
4642
4826
  draft.errors = messages;
4643
4827
  });
4644
4828
  return messages.length === 0 && childComponentsValid;
4829
+ },
4830
+ start() {
4831
+ component.getChildren().forEach((child) => child.start());
4832
+ },
4833
+ stop() {
4834
+ component.getChildren().forEach((child) => child.stop());
4645
4835
  }
4646
4836
  });
4647
4837
  return component;
@@ -4820,7 +5010,7 @@ var createMultiUploadInputComponent = (props, onComponentUpdate) => {
4820
5010
  const getValidationErrors = getLocalValueValidator(checks);
4821
5011
  const getFileValidationErrors = getLocalValueValidator(fileChecks);
4822
5012
  const persist = performPersistAsync ? getComponentMultiPersistAsync(update, performPersistAsync) : void 0;
4823
- const component = __spreadValues({
5013
+ const component = __spreadProps(__spreadValues({
4824
5014
  type: "multi-upload",
4825
5015
  kind: "input",
4826
5016
  uid,
@@ -4886,7 +5076,12 @@ var createMultiUploadInputComponent = (props, onComponentUpdate) => {
4886
5076
  });
4887
5077
  return errorMsgs.length === 0 && component.files.every(({ errors }) => errors.length === 0);
4888
5078
  }
4889
- }, rest);
5079
+ }, rest), {
5080
+ start() {
5081
+ },
5082
+ stop() {
5083
+ }
5084
+ });
4890
5085
  return component;
4891
5086
  };
4892
5087
 
@@ -5122,6 +5317,12 @@ var createMultiSelectComponent = (props, onComponentUpdate) => {
5122
5317
  },
5123
5318
  getSelectedChildren() {
5124
5319
  return component.selectedIndices.map((i) => component.children[i]);
5320
+ },
5321
+ start() {
5322
+ component.getChildren().forEach((child) => child.start());
5323
+ },
5324
+ stop() {
5325
+ component.getChildren().forEach((child) => child.stop());
5125
5326
  }
5126
5327
  });
5127
5328
  return component;
@@ -5255,6 +5456,12 @@ var createTupleComponent = (props) => {
5255
5456
  },
5256
5457
  validate() {
5257
5458
  return hidden ? true : validateComponents(component.getChildren());
5459
+ },
5460
+ start() {
5461
+ component.getChildren().forEach((child) => child.start());
5462
+ },
5463
+ stop() {
5464
+ component.getChildren().forEach((child) => child.stop());
5258
5465
  }
5259
5466
  };
5260
5467
  return component;
@@ -5338,7 +5545,7 @@ var createUploadInputComponent = (props, onComponentUpdate) => {
5338
5545
  ]);
5339
5546
  const update = getInputUpdateFunction(onComponentUpdate);
5340
5547
  const getValidationErrors = getLocalValueValidator(checks);
5341
- const component = __spreadValues({
5548
+ const component = __spreadProps(__spreadValues({
5342
5549
  type: "upload",
5343
5550
  kind: "input",
5344
5551
  uid,
@@ -5392,7 +5599,12 @@ var createUploadInputComponent = (props, onComponentUpdate) => {
5392
5599
  });
5393
5600
  return errors.length === 0;
5394
5601
  }
5395
- }, rest);
5602
+ }, rest), {
5603
+ start() {
5604
+ },
5605
+ stop() {
5606
+ }
5607
+ });
5396
5608
  if (format === "base64" && value && !onPersistAsync) {
5397
5609
  void toBase64(value).then((base64Value) => {
5398
5610
  if (base64Value) {
@@ -5460,7 +5672,7 @@ var createBooleanInputComponent = (props, onComponentUpdate) => {
5460
5672
  ]);
5461
5673
  const update = getInputUpdateFunction(onComponentUpdate);
5462
5674
  const validateAsync = performValidationAsync ? getComponentValidationAsync(update, performValidationAsync) : void 0;
5463
- const component = __spreadValues({
5675
+ const component = __spreadProps(__spreadValues({
5464
5676
  type: "boolean",
5465
5677
  kind: "input",
5466
5678
  uid,
@@ -5498,7 +5710,12 @@ var createBooleanInputComponent = (props, onComponentUpdate) => {
5498
5710
  return component.value;
5499
5711
  },
5500
5712
  validate: () => true
5501
- }, rest);
5713
+ }, rest), {
5714
+ start() {
5715
+ },
5716
+ stop() {
5717
+ }
5718
+ });
5502
5719
  return component;
5503
5720
  };
5504
5721
 
@@ -5555,7 +5772,11 @@ var createConstComponent = (props) => {
5555
5772
  getSubmittableValue: async () => value,
5556
5773
  getSubmittableValueSync: () => value,
5557
5774
  getSummary: () => summary,
5558
- validate: () => true
5775
+ validate: () => true,
5776
+ start() {
5777
+ },
5778
+ stop() {
5779
+ }
5559
5780
  };
5560
5781
  };
5561
5782
 
@@ -5609,7 +5830,7 @@ var createDateInputComponent = (props, onComponentUpdate) => {
5609
5830
  const update = getInputUpdateFunction(onComponentUpdate);
5610
5831
  const getValidationErrors = getLocalValueValidator(checks);
5611
5832
  const validateAsync = performValidationAsync ? getComponentValidationAsync(update, performValidationAsync) : void 0;
5612
- const component = __spreadValues({
5833
+ const component = __spreadProps(__spreadValues({
5613
5834
  type: "date",
5614
5835
  kind: "input",
5615
5836
  uid,
@@ -5663,7 +5884,12 @@ var createDateInputComponent = (props, onComponentUpdate) => {
5663
5884
  });
5664
5885
  return errors.length === 0;
5665
5886
  }
5666
- }, rest);
5887
+ }, rest), {
5888
+ start() {
5889
+ },
5890
+ stop() {
5891
+ }
5892
+ });
5667
5893
  return component;
5668
5894
  };
5669
5895
 
@@ -5782,7 +6008,7 @@ var createIntegerInputComponent = (props, onComponentUpdate) => {
5782
6008
  const getValidationErrors = getLocalValueValidator(checks);
5783
6009
  const performOnChange = getDebouncedSchemaOnChange(schemaOnChange, getValidationErrors);
5784
6010
  const validateAsync = performValidationAsync ? getDebouncedComponentValidationAsync(update, performValidationAsync) : void 0;
5785
- const component = __spreadValues({
6011
+ const component = __spreadProps(__spreadValues({
5786
6012
  type: "integer",
5787
6013
  kind: "input",
5788
6014
  uid,
@@ -5835,7 +6061,12 @@ var createIntegerInputComponent = (props, onComponentUpdate) => {
5835
6061
  });
5836
6062
  return errors.length === 0;
5837
6063
  }
5838
- }, rest);
6064
+ }, rest), {
6065
+ start() {
6066
+ },
6067
+ stop() {
6068
+ }
6069
+ });
5839
6070
  return component;
5840
6071
  };
5841
6072
 
@@ -5938,6 +6169,10 @@ var createFormattedValueComponent = (props, onComponentUpdate) => {
5938
6169
  draft.value = newValue;
5939
6170
  });
5940
6171
  void (schemaOnChange == null ? void 0 : schemaOnChange());
6172
+ },
6173
+ start() {
6174
+ },
6175
+ stop() {
5941
6176
  }
5942
6177
  };
5943
6178
  return component;
@@ -6001,7 +6236,7 @@ var createMoneyInputComponent = (props, onComponentUpdate) => {
6001
6236
  ]);
6002
6237
  const getValidationErrors = getLocalValueValidator(checks);
6003
6238
  const update = getInputUpdateFunction(onComponentUpdate);
6004
- const component = __spreadValues({
6239
+ const component = __spreadProps(__spreadValues({
6005
6240
  type: "money-input",
6006
6241
  kind: "input",
6007
6242
  id,
@@ -6057,7 +6292,12 @@ var createMoneyInputComponent = (props, onComponentUpdate) => {
6057
6292
  // noop
6058
6293
  onFocus() {
6059
6294
  }
6060
- }, rest);
6295
+ }, rest), {
6296
+ start() {
6297
+ },
6298
+ stop() {
6299
+ }
6300
+ });
6061
6301
  return component;
6062
6302
  };
6063
6303
 
@@ -6128,6 +6368,12 @@ var createObjectComponent = (props) => {
6128
6368
  },
6129
6369
  validate() {
6130
6370
  return hidden ? true : validateComponents(component.getChildren());
6371
+ },
6372
+ start() {
6373
+ component.getChildren().forEach((child) => child.start());
6374
+ },
6375
+ stop() {
6376
+ component.getChildren().forEach((child) => child.stop());
6131
6377
  }
6132
6378
  };
6133
6379
  return component;
@@ -6394,6 +6640,12 @@ var createSelectInputComponent = (props, onComponentUpdate) => {
6394
6640
  draft.errors = errors;
6395
6641
  });
6396
6642
  return errors.length === 0 && validChild;
6643
+ },
6644
+ start() {
6645
+ component.getChildren().forEach((child) => child.start());
6646
+ },
6647
+ stop() {
6648
+ component.getChildren().forEach((child) => child.stop());
6397
6649
  }
6398
6650
  });
6399
6651
  return component;
@@ -6581,6 +6833,10 @@ var createPersistAsyncComponent = (props, performPersistAsync, schemaOnChange, o
6581
6833
  draft.status = "persisting";
6582
6834
  });
6583
6835
  return newSubmission;
6836
+ },
6837
+ start() {
6838
+ },
6839
+ stop() {
6584
6840
  }
6585
6841
  };
6586
6842
  return component;
@@ -6681,7 +6937,7 @@ var createTextInputComponent = (props, onComponentUpdate) => {
6681
6937
  const getValidationErrors = getLocalValueValidator(checks);
6682
6938
  const performOnChange = getDebouncedSchemaOnChange(schemaOnChange, getValidationErrors);
6683
6939
  const validateAsync = performValidationAsync ? getDebouncedComponentValidationAsync(update, performValidationAsync) : void 0;
6684
- const component = __spreadValues({
6940
+ const component = __spreadProps(__spreadValues({
6685
6941
  type: "text",
6686
6942
  kind: "input",
6687
6943
  uid,
@@ -6736,7 +6992,12 @@ var createTextInputComponent = (props, onComponentUpdate) => {
6736
6992
  });
6737
6993
  return errors.length === 0;
6738
6994
  }
6739
- }, rest);
6995
+ }, rest), {
6996
+ start() {
6997
+ },
6998
+ stop() {
6999
+ }
7000
+ });
6740
7001
  return component;
6741
7002
  };
6742
7003
 
@@ -7408,20 +7669,30 @@ var createSubflowComponent = (props, onComponentUpdate) => {
7408
7669
  };
7409
7670
  var createDynamicSubflowComponent = (props, onComponentUpdate) => {
7410
7671
  const update = getInputUpdateFunction(onComponentUpdate);
7411
- return __spreadValues({
7672
+ return __spreadProps(__spreadValues({
7412
7673
  uid: `subflow-dynamic-${getRandomId()}`,
7413
7674
  type: "subflow",
7414
7675
  subflowType: "dynamic",
7415
7676
  kind: "layout"
7416
- }, props);
7677
+ }, props), {
7678
+ start() {
7679
+ },
7680
+ stop() {
7681
+ }
7682
+ });
7417
7683
  };
7418
7684
  var createNativeSubflowComponent = (props) => {
7419
- return __spreadValues({
7685
+ return __spreadProps(__spreadValues({
7420
7686
  uid: `subflow-native-${getRandomId()}`,
7421
7687
  type: "subflow",
7422
7688
  subflowType: "native",
7423
7689
  kind: "layout"
7424
- }, props);
7690
+ }, props), {
7691
+ start() {
7692
+ },
7693
+ stop() {
7694
+ }
7695
+ });
7425
7696
  };
7426
7697
 
7427
7698
  // src/controller/executeSubflow.ts