@legalplace/wizardx-core 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/App.d.ts +5 -5
  3. package/dist/App.js +22 -35
  4. package/dist/App.test.js +2 -2
  5. package/dist/Globals.d.ts +4 -0
  6. package/dist/Globals.js +9 -6
  7. package/dist/Loader.d.ts +1 -0
  8. package/dist/Loader.js +2 -0
  9. package/dist/PluginLoader.d.ts +3 -3
  10. package/dist/PluginLoader.js +22 -26
  11. package/dist/PluginLoader.test.js +6 -6
  12. package/dist/Shimmer.d.ts +1 -1
  13. package/dist/Shimmer.js +45 -47
  14. package/dist/ThemeLoader.d.ts +6 -5
  15. package/dist/ThemeLoader.js +21 -25
  16. package/dist/ThemeLoader.test.js +4 -3
  17. package/dist/components/PluginRoute.d.ts +3 -3
  18. package/dist/components/PluginRoute.js +8 -7
  19. package/dist/components/SmartScript.d.ts +7 -8
  20. package/dist/components/SmartScript.js +22 -21
  21. package/dist/components/UserLocked/UserLockedComponent.d.ts +1 -1
  22. package/dist/components/UserLocked/UserLockedComponent.js +5 -6
  23. package/dist/components/View.d.ts +8 -4
  24. package/dist/components/View.js +46 -55
  25. package/dist/components/View.test.js +6 -5
  26. package/dist/componentsConnectors/connectBox.d.ts +2 -3
  27. package/dist/componentsConnectors/connectBox.js +4 -4
  28. package/dist/componentsConnectors/connectBox.test.js +7 -7
  29. package/dist/componentsConnectors/connectDocument.d.ts +0 -1
  30. package/dist/componentsConnectors/connectDocument.js +6 -6
  31. package/dist/componentsConnectors/connectDocument.test.js +5 -5
  32. package/dist/componentsConnectors/connectHeader.d.ts +0 -1
  33. package/dist/componentsConnectors/connectHeader.js +2 -2
  34. package/dist/componentsConnectors/connectMetaTitle.d.ts +0 -1
  35. package/dist/componentsConnectors/connectMetaTitle.js +2 -2
  36. package/dist/componentsConnectors/connectMetaTitle.test.js +3 -3
  37. package/dist/componentsConnectors/connectOption.d.ts +2 -3
  38. package/dist/componentsConnectors/connectOption.js +9 -9
  39. package/dist/componentsConnectors/connectPagination.d.ts +0 -1
  40. package/dist/componentsConnectors/connectPagination.js +3 -3
  41. package/dist/componentsConnectors/connectPreview.d.ts +0 -1
  42. package/dist/componentsConnectors/connectPreview.js +2 -2
  43. package/dist/componentsConnectors/connectProgress.d.ts +0 -1
  44. package/dist/componentsConnectors/connectProgress.js +3 -3
  45. package/dist/componentsConnectors/connectRootOption.d.ts +2 -3
  46. package/dist/componentsConnectors/connectRootOption.js +2 -2
  47. package/dist/componentsConnectors/connectSection.d.ts +0 -1
  48. package/dist/componentsConnectors/connectSection.js +4 -4
  49. package/dist/componentsConnectors/connectSummary.d.ts +0 -1
  50. package/dist/componentsConnectors/connectSummary.js +2 -2
  51. package/dist/componentsConnectors/connectSummaryItem.d.ts +0 -1
  52. package/dist/componentsConnectors/connectSummaryItem.js +6 -6
  53. package/dist/componentsConnectors/connectTermsheet.d.ts +2 -2
  54. package/dist/componentsConnectors/connectTermsheet.js +43 -46
  55. package/dist/componentsConnectors/connectVariable.d.ts +1 -2
  56. package/dist/componentsConnectors/connectVariable.js +10 -10
  57. package/dist/componentsConnectors/connectWizardWrapper.d.ts +0 -1
  58. package/dist/componentsConnectors/connectWizardWrapper.js +4 -4
  59. package/dist/componentsConnectors/connector/componentConnector.d.ts +8 -8
  60. package/dist/componentsConnectors/connector/componentConnector.js +16 -19
  61. package/dist/componentsConnectors/library.d.ts +61 -0
  62. package/dist/componentsConnectors/library.js +34 -0
  63. package/dist/config.d.ts +1 -1
  64. package/dist/constants/phoneValidation.d.ts +3 -0
  65. package/dist/constants/phoneValidation.js +3 -0
  66. package/dist/helpers/outputsParsing.d.ts +1 -1
  67. package/dist/helpers/outputsParsing.js +25 -25
  68. package/dist/helpers/preloadTheme.js +1 -1
  69. package/dist/helpers/scriptsLoader.d.ts +1 -0
  70. package/dist/helpers/scriptsLoader.js +24 -0
  71. package/dist/helpers/sendinblueHelper.d.ts +3 -3
  72. package/dist/helpers/sendinblueHelper.js +29 -18
  73. package/dist/hooks/usePrevious.js +1 -1
  74. package/dist/libs/ConditionsInitiator.d.ts +1 -1
  75. package/dist/libs/ConditionsInitiator.js +2 -2
  76. package/dist/libs/ConditionsRunner/DataPopulator.js +7 -7
  77. package/dist/libs/ConditionsRunner.d.ts +3 -3
  78. package/dist/libs/ConditionsRunner.js +43 -43
  79. package/dist/libs/DocumentsOutputs.d.ts +2 -2
  80. package/dist/libs/DocumentsOutputs.js +5 -5
  81. package/dist/libs/Eval/EvalBase.js +17 -17
  82. package/dist/libs/Eval/EvalFunctions.d.ts +1 -1
  83. package/dist/libs/Eval/EvalFunctions.js +100 -100
  84. package/dist/libs/Eval/NumbersToLetters.js +46 -46
  85. package/dist/libs/EvalVariable.d.ts +2 -2
  86. package/dist/libs/EvalVariable.js +30 -29
  87. package/dist/libs/EventsTracking.d.ts +1 -0
  88. package/dist/libs/EventsTracking.js +38 -32
  89. package/dist/libs/Extracts.js +20 -20
  90. package/dist/libs/InputsInitiator.d.ts +1 -1
  91. package/dist/libs/InputsInitiator.js +15 -15
  92. package/dist/libs/NumAuto.js +1 -1
  93. package/dist/libs/OvcConverter.d.ts +1 -1
  94. package/dist/libs/OvcConverter.js +23 -23
  95. package/dist/libs/PathReader.d.ts +1 -1
  96. package/dist/libs/PathReader.js +22 -22
  97. package/dist/libs/SectionValidity.js +3 -3
  98. package/dist/libs/SmartScriptStore.d.ts +6 -6
  99. package/dist/libs/SmartScriptStore.js +33 -33
  100. package/dist/misc/test_model.d.ts +2 -2
  101. package/dist/misc/test_model.js +3807 -3807
  102. package/dist/polyfills/index.d.ts +5 -0
  103. package/dist/polyfills/index.js +5 -0
  104. package/dist/polyfills/prepend.js +2 -2
  105. package/dist/polyfills/stringRepeat.js +4 -4
  106. package/dist/redux/actions/app.d.ts +12 -12
  107. package/dist/redux/actions/app.js +1 -1
  108. package/dist/redux/actions/conditions.d.ts +2 -2
  109. package/dist/redux/actions/conditions.js +1 -1
  110. package/dist/redux/actions/inputs.d.ts +1 -1
  111. package/dist/redux/actions/inputs.js +1 -1
  112. package/dist/redux/actions/library.d.ts +73 -0
  113. package/dist/redux/actions/library.js +11 -0
  114. package/dist/redux/actions/mandatories.d.ts +1 -1
  115. package/dist/redux/actions/mandatories.js +1 -1
  116. package/dist/redux/actions/references.d.ts +4 -4
  117. package/dist/redux/actions/references.js +1 -1
  118. package/dist/redux/actions/sagas/data.d.ts +1 -1
  119. package/dist/redux/actions/sagas/data.js +1 -1
  120. package/dist/redux/actions/sagas/model.d.ts +3 -3
  121. package/dist/redux/actions/sagas/model.js +3 -3
  122. package/dist/redux/actions/sagas/user.d.ts +1 -1
  123. package/dist/redux/actions/sagas/user.js +1 -1
  124. package/dist/redux/actions/smartscript.d.ts +3 -3
  125. package/dist/redux/actions/smartscript.js +1 -1
  126. package/dist/redux/actions/user.d.ts +4 -4
  127. package/dist/redux/actions/user.js +1 -1
  128. package/dist/redux/constants/app.js +22 -22
  129. package/dist/redux/constants/conditions.js +8 -8
  130. package/dist/redux/constants/inputs.js +6 -6
  131. package/dist/redux/constants/mandatories.js +6 -6
  132. package/dist/redux/constants/references.js +3 -3
  133. package/dist/redux/constants/sagas/data.js +1 -1
  134. package/dist/redux/constants/sagas/model.js +2 -2
  135. package/dist/redux/constants/sagas/user.js +2 -2
  136. package/dist/redux/constants/smartscript.js +4 -4
  137. package/dist/redux/constants/user.js +3 -3
  138. package/dist/redux/listeners/subscriber.d.ts +2 -2
  139. package/dist/redux/middlewares/conditionsWatcherMiddleware.d.ts +2 -2
  140. package/dist/redux/middlewares/conditionsWatcherMiddleware.js +28 -28
  141. package/dist/redux/middlewares/evaluationsWatcherMiddleware.d.ts +4 -2
  142. package/dist/redux/middlewares/evaluationsWatcherMiddleware.js +10 -10
  143. package/dist/redux/middlewares/mandatoriesWatcherMiddleware.d.ts +2 -2
  144. package/dist/redux/middlewares/mandatoriesWatcherMiddleware.js +13 -13
  145. package/dist/redux/middlewares/multiplesActionsMiddleware.d.ts +2 -2
  146. package/dist/redux/middlewares/multiplesActionsMiddleware.js +2 -2
  147. package/dist/redux/middlewares/paginationWatcherMiddleware.d.ts +3 -3
  148. package/dist/redux/middlewares/paginationWatcherMiddleware.js +24 -24
  149. package/dist/redux/middlewares/pluginsHookMiddleware.d.ts +1 -1
  150. package/dist/redux/middlewares/pluginsHookMiddleware.js +1 -1
  151. package/dist/redux/middlewares/prefillerWatcherMiddleware.d.ts +2 -2
  152. package/dist/redux/middlewares/prefillerWatcherMiddleware.js +28 -28
  153. package/dist/redux/middlewares/smartscriptMiddleware.d.ts +2 -2
  154. package/dist/redux/middlewares/smartscriptMiddleware.js +15 -15
  155. package/dist/redux/middlewares/thirdpartyScriptsMiddleware.d.ts +5 -0
  156. package/dist/redux/middlewares/thirdpartyScriptsMiddleware.js +16 -0
  157. package/dist/redux/reducers/app/customizations/initCustomizationAutoDefault.d.ts +2 -2
  158. package/dist/redux/reducers/app/customizations/initCustomizationMeta.d.ts +2 -2
  159. package/dist/redux/reducers/app/instance/initInstance.d.ts +2 -2
  160. package/dist/redux/reducers/app/instance/setDataStatus.d.ts +2 -2
  161. package/dist/redux/reducers/app/instance/updateInstance.d.ts +2 -2
  162. package/dist/redux/reducers/app/instance/updateInstancePaid.d.ts +2 -2
  163. package/dist/redux/reducers/app/meta/fetchModelFailed.d.ts +1 -1
  164. package/dist/redux/reducers/app/meta/fetchModelFailed.js +1 -1
  165. package/dist/redux/reducers/app/meta/fetchModelNonBlocking.d.ts +1 -1
  166. package/dist/redux/reducers/app/meta/fetchModelNonBlocking.js +1 -1
  167. package/dist/redux/reducers/app/meta/fetchModelSucceeded.d.ts +1 -1
  168. package/dist/redux/reducers/app/meta/fetchModelSucceeded.js +1 -1
  169. package/dist/redux/reducers/app/meta/fetchModelUnhealthy.d.ts +2 -2
  170. package/dist/redux/reducers/app/meta/fetchModelUnhealthy.js +1 -1
  171. package/dist/redux/reducers/app/meta/fetchModelUserLocked.d.ts +1 -1
  172. package/dist/redux/reducers/app/meta/fetchModelUserLocked.js +1 -1
  173. package/dist/redux/reducers/app/meta/initMeta.d.ts +2 -2
  174. package/dist/redux/reducers/app/meta/setModelUuid.d.ts +2 -2
  175. package/dist/redux/reducers/app/pagination/goNextPage.d.ts +1 -1
  176. package/dist/redux/reducers/app/pagination/goNextPage.js +1 -1
  177. package/dist/redux/reducers/app/pagination/goPage.d.ts +2 -2
  178. package/dist/redux/reducers/app/pagination/goPage.js +2 -2
  179. package/dist/redux/reducers/app/pagination/goPreviousPage.d.ts +1 -1
  180. package/dist/redux/reducers/app/pagination/goPreviousPage.js +1 -1
  181. package/dist/redux/reducers/app/pagination/initPagination.d.ts +2 -2
  182. package/dist/redux/reducers/app/pagination/initPagination.js +1 -1
  183. package/dist/redux/reducers/app/pagination/updateAvailableAppStates.d.ts +2 -2
  184. package/dist/redux/reducers/app/pagination/updateAvailableAppStates.js +5 -5
  185. package/dist/redux/reducers/app/wizard/updateAvailableSections.d.ts +2 -2
  186. package/dist/redux/reducers/app/wizard/updateAvailableSections.js +2 -2
  187. package/dist/redux/reducers/app.d.ts +2 -2
  188. package/dist/redux/reducers/app.js +30 -30
  189. package/dist/redux/reducers/conditions/addMultipleOccurency.d.ts +2 -2
  190. package/dist/redux/reducers/conditions/addMultipleOccurency.js +3 -3
  191. package/dist/redux/reducers/conditions/deleteMultipleOccurency.d.ts +2 -2
  192. package/dist/redux/reducers/conditions/deleteMultipleOccurency.js +2 -2
  193. package/dist/redux/reducers/conditions/initConditions.d.ts +2 -2
  194. package/dist/redux/reducers/conditions/updateDocumentConditions.d.ts +2 -2
  195. package/dist/redux/reducers/conditions/updateOptionConditions.d.ts +2 -2
  196. package/dist/redux/reducers/conditions/updateOptionValidatorCondition.d.ts +2 -2
  197. package/dist/redux/reducers/conditions/updatePrefillerConditions.d.ts +2 -2
  198. package/dist/redux/reducers/conditions/updatePrefillerConditions.js +2 -2
  199. package/dist/redux/reducers/conditions/updateSectionConditions.d.ts +2 -2
  200. package/dist/redux/reducers/conditions/updateVariableConditions.d.ts +2 -2
  201. package/dist/redux/reducers/conditions/updateVariableValidatorCondition.d.ts +2 -2
  202. package/dist/redux/reducers/conditions.d.ts +2 -2
  203. package/dist/redux/reducers/conditions.js +13 -13
  204. package/dist/redux/reducers/inputs/addMultipleOccurency.d.ts +2 -2
  205. package/dist/redux/reducers/inputs/addMultipleOccurency.js +4 -4
  206. package/dist/redux/reducers/inputs/deleteMultipleOccurency.d.ts +2 -2
  207. package/dist/redux/reducers/inputs/deleteMultipleOccurency.js +2 -2
  208. package/dist/redux/reducers/inputs/initOption.d.ts +2 -2
  209. package/dist/redux/reducers/inputs/initVariable.d.ts +2 -2
  210. package/dist/redux/reducers/inputs/updateOptionInput.d.ts +2 -2
  211. package/dist/redux/reducers/inputs/updateVariableInput.d.ts +2 -2
  212. package/dist/redux/reducers/inputs.d.ts +2 -2
  213. package/dist/redux/reducers/inputs.js +8 -8
  214. package/dist/redux/reducers/mandatories/addMultipleOccurency.d.ts +2 -2
  215. package/dist/redux/reducers/mandatories/addMultipleOccurency.js +2 -2
  216. package/dist/redux/reducers/mandatories/deleteMultipleOccurency.d.ts +2 -2
  217. package/dist/redux/reducers/mandatories/deleteMultipleOccurency.js +2 -2
  218. package/dist/redux/reducers/mandatories/initMandatoryOption.d.ts +2 -2
  219. package/dist/redux/reducers/mandatories/initMandatoryVariable.d.ts +2 -2
  220. package/dist/redux/reducers/mandatories/setMandatoryIgnore.d.ts +2 -2
  221. package/dist/redux/reducers/mandatories/setMandatoryOption.d.ts +2 -2
  222. package/dist/redux/reducers/mandatories/setMandatorySection.d.ts +2 -2
  223. package/dist/redux/reducers/mandatories/setMandatoryVariable.d.ts +2 -2
  224. package/dist/redux/reducers/mandatories.d.ts +2 -2
  225. package/dist/redux/reducers/mandatories.js +11 -11
  226. package/dist/redux/reducers/references/initReferences.d.ts +2 -2
  227. package/dist/redux/reducers/references/updateOptionMeta.d.ts +2 -2
  228. package/dist/redux/reducers/references/updateOptionMeta.js +2 -2
  229. package/dist/redux/reducers/references/updateVariableMeta.d.ts +2 -2
  230. package/dist/redux/reducers/references/updateVariableMeta.js +2 -2
  231. package/dist/redux/reducers/references.d.ts +2 -2
  232. package/dist/redux/reducers/references.js +5 -5
  233. package/dist/redux/reducers/smartscript/enableSmartScript.d.ts +1 -1
  234. package/dist/redux/reducers/smartscript/initSmartScriptTriggers.d.ts +2 -2
  235. package/dist/redux/reducers/smartscript/updateSmartscriptOptionHidden.d.ts +2 -2
  236. package/dist/redux/reducers/smartscript/updateSmartscriptVariableHidden.d.ts +2 -2
  237. package/dist/redux/reducers/smartscript.d.ts +2 -2
  238. package/dist/redux/reducers/smartscript.js +6 -6
  239. package/dist/redux/reducers/user/initUser.d.ts +2 -2
  240. package/dist/redux/reducers/user/setUserStatus.d.ts +2 -2
  241. package/dist/redux/reducers/user/setUserValidToken.d.ts +2 -2
  242. package/dist/redux/reducers/user.d.ts +2 -2
  243. package/dist/redux/reducers/user.js +9 -9
  244. package/dist/redux/routerHistory.d.ts +2 -2
  245. package/dist/redux/routerHistory.js +5 -5
  246. package/dist/redux/sagas/fetchModel.d.ts +4 -4
  247. package/dist/redux/sagas/fetchModel.js +84 -88
  248. package/dist/redux/sagas/fetchModel.test.js +2 -3
  249. package/dist/redux/sagas/homogeneousRadioInputsSaga.js +5 -5
  250. package/dist/redux/sagas/runner.d.ts +1 -1
  251. package/dist/redux/sagas/runner.js +5 -5
  252. package/dist/redux/sagas/saveData.js +34 -25
  253. package/dist/redux/sagas/setDefaults.js +8 -8
  254. package/dist/redux/sagas/setUserEmail.js +43 -43
  255. package/dist/redux/selectors/app.d.ts +1 -0
  256. package/dist/redux/selectors/app.js +26 -25
  257. package/dist/redux/selectors/conditions.js +34 -34
  258. package/dist/redux/selectors/inputs.d.ts +1 -1
  259. package/dist/redux/selectors/inputs.js +8 -8
  260. package/dist/{componentsConnectors/connector/connectorSelectors.d.ts → redux/selectors/library.d.ts} +16 -16
  261. package/dist/redux/selectors/library.js +8 -0
  262. package/dist/redux/selectors/mandatories.js +10 -10
  263. package/dist/redux/selectors/references.js +19 -19
  264. package/dist/redux/selectors/selectors.d.ts +2 -2
  265. package/dist/redux/selectors/selectors.js +2 -2
  266. package/dist/redux/selectors/smartscript.js +5 -5
  267. package/dist/redux/selectors/user.js +5 -5
  268. package/dist/redux/store.d.ts +6 -2
  269. package/dist/redux/store.js +31 -31
  270. package/dist/service/api.manager.d.ts +2 -2
  271. package/dist/service/api.manager.js +46 -46
  272. package/dist/service/auth.service.js +2 -2
  273. package/dist/service/pardot.service.js +2 -2
  274. package/dist/tests-misc/plugins/jestTestPlugin/after.d.ts +1 -1
  275. package/dist/tests-misc/plugins/jestTestPlugin/after.js +2 -2
  276. package/dist/tests-misc/plugins/jestTestPlugin/before.d.ts +1 -1
  277. package/dist/tests-misc/plugins/jestTestPlugin/before.js +2 -5
  278. package/dist/tests-misc/plugins/jestTestPlugin/index.js +4 -4
  279. package/dist/tests-misc/plugins/jestTestPlugin/title.d.ts +1 -1
  280. package/dist/tests-misc/plugins/jestTestPlugin/title.js +2 -2
  281. package/dist/tests-misc/themes/jestTestTheme/components/EmailComponent.d.ts +0 -1
  282. package/dist/tests-misc/themes/jestTestTheme/components/EmailComponent.js +2 -2
  283. package/dist/tests-misc/themes/jestTestTheme/components/TermsheetComponent.d.ts +0 -1
  284. package/dist/tests-misc/themes/jestTestTheme/components/TermsheetComponent.js +2 -2
  285. package/dist/tests-misc/themes/jestTestTheme/components/WizardComponent.d.ts +0 -1
  286. package/dist/tests-misc/themes/jestTestTheme/components/WizardComponent.js +2 -2
  287. package/dist/tests-misc/themes/jestTestTheme/faltyIndex.js +1 -1
  288. package/dist/tests-misc/themes/jestTestTheme/faltyIndexLoader.js +1 -1
  289. package/dist/tests-misc/themes/jestTestTheme/index.js +4 -4
  290. package/dist/types/Actions.type.d.ts +37 -37
  291. package/dist/types/Components.type.d.ts +4 -5
  292. package/dist/types/State.type.d.ts +9 -9
  293. package/dist/types/Termsheet.type.d.ts +4 -4
  294. package/dist/types/api.type.d.ts +4 -4
  295. package/dist/types/config.type.d.ts +2 -3
  296. package/dist/types/getActions.type.d.ts +2 -2
  297. package/dist/types/getConnectors.type.d.ts +2 -3
  298. package/dist/types/getSelectors.type.d.ts +2 -2
  299. package/dist/wizard-params.d.ts +1 -1
  300. package/dist/wizard-params.js +16 -16
  301. package/jest.config.ts +1 -1
  302. package/package.json +16 -8
  303. package/setupJest.ts +8 -0
  304. package/src/App.tsx +22 -25
  305. package/src/Globals.ts +12 -8
  306. package/src/Loader.tsx +8 -0
  307. package/src/PluginLoader.tsx +20 -37
  308. package/src/Shimmer.tsx +58 -45
  309. package/src/ThemeLoader.test.tsx +1 -0
  310. package/src/ThemeLoader.tsx +27 -42
  311. package/src/components/PluginRoute.tsx +8 -6
  312. package/src/components/SmartScript.tsx +29 -28
  313. package/src/components/UserLocked/UserLockedComponent.tsx +3 -3
  314. package/src/components/View.test.tsx +3 -0
  315. package/src/components/View.tsx +52 -54
  316. package/src/componentsConnectors/connectBox.tsx +6 -6
  317. package/src/componentsConnectors/connectDocument.tsx +6 -6
  318. package/src/componentsConnectors/connectHeader.tsx +2 -2
  319. package/src/componentsConnectors/connectMetaTitle.tsx +2 -2
  320. package/src/componentsConnectors/connectOption.tsx +11 -11
  321. package/src/componentsConnectors/connectPagination.tsx +3 -3
  322. package/src/componentsConnectors/connectPreview.tsx +2 -2
  323. package/src/componentsConnectors/connectProgress.tsx +3 -3
  324. package/src/componentsConnectors/connectRootOption.tsx +4 -4
  325. package/src/componentsConnectors/connectSection.tsx +4 -4
  326. package/src/componentsConnectors/connectSummary.tsx +2 -2
  327. package/src/componentsConnectors/connectSummaryItem.tsx +6 -6
  328. package/src/componentsConnectors/connectTermsheet.tsx +46 -46
  329. package/src/componentsConnectors/connectVariable.tsx +11 -11
  330. package/src/componentsConnectors/connectWizardWrapper.tsx +4 -4
  331. package/src/componentsConnectors/connector/componentConnector.tsx +22 -20
  332. package/src/componentsConnectors/library.ts +35 -0
  333. package/src/config.test.ts +2 -1
  334. package/src/config.ts +1 -1
  335. package/src/constants/phoneValidation.ts +6 -0
  336. package/src/definitions/path.join.d.ts +1 -1
  337. package/src/helpers/outputsParsing.ts +26 -26
  338. package/src/helpers/preloadTheme.ts +2 -2
  339. package/src/helpers/scriptsLoader.ts +20 -0
  340. package/src/helpers/sendinblueHelper.ts +23 -17
  341. package/src/hooks/usePrevious.ts +1 -1
  342. package/src/libs/ConditionsInitiator.ts +3 -3
  343. package/src/libs/ConditionsRunner/DataPopulator.ts +7 -7
  344. package/src/libs/ConditionsRunner.ts +53 -53
  345. package/src/libs/DocumentsOutputs.ts +7 -7
  346. package/src/libs/Eval/EvalBase.ts +17 -17
  347. package/src/libs/Eval/EvalFunctions.ts +100 -100
  348. package/src/libs/Eval/NumbersToLetters.ts +48 -48
  349. package/src/libs/EvalVariable.ts +34 -31
  350. package/src/libs/EventsTracking.ts +48 -34
  351. package/src/libs/Extracts.ts +21 -21
  352. package/src/libs/InputsInitiator.ts +16 -16
  353. package/src/libs/NumAuto.ts +1 -1
  354. package/src/libs/OvcConverter.ts +25 -25
  355. package/src/libs/PathReader.ts +23 -23
  356. package/src/libs/SectionValidity.ts +3 -3
  357. package/src/libs/SmartScriptStore.ts +40 -40
  358. package/src/misc/test_model.ts +3809 -3809
  359. package/src/polyfills/index.ts +5 -0
  360. package/src/polyfills/prepend.ts +2 -2
  361. package/src/polyfills/stringRepeat.ts +4 -4
  362. package/src/redux/actions/app.ts +13 -13
  363. package/src/redux/actions/conditions.ts +3 -3
  364. package/src/redux/actions/inputs.ts +2 -2
  365. package/src/redux/actions/library.ts +23 -0
  366. package/src/redux/actions/mandatories.ts +2 -2
  367. package/src/redux/actions/references.ts +5 -5
  368. package/src/redux/actions/sagas/data.ts +2 -2
  369. package/src/redux/actions/sagas/model.ts +6 -6
  370. package/src/redux/actions/sagas/user.ts +2 -2
  371. package/src/redux/actions/smartscript.ts +4 -4
  372. package/src/redux/actions/user.ts +5 -5
  373. package/src/redux/constants/app.ts +22 -22
  374. package/src/redux/constants/conditions.ts +8 -8
  375. package/src/redux/constants/inputs.ts +6 -6
  376. package/src/redux/constants/mandatories.ts +6 -6
  377. package/src/redux/constants/references.ts +3 -3
  378. package/src/redux/constants/sagas/data.ts +1 -1
  379. package/src/redux/constants/sagas/model.ts +2 -2
  380. package/src/redux/constants/sagas/user.ts +2 -2
  381. package/src/redux/constants/smartscript.ts +4 -4
  382. package/src/redux/constants/user.ts +3 -3
  383. package/src/redux/listeners/subscriber.ts +2 -2
  384. package/src/redux/middlewares/conditionsWatcherMiddleware.ts +31 -31
  385. package/src/redux/middlewares/evaluationsWatcherMiddleware.test.ts +1 -1
  386. package/src/redux/middlewares/evaluationsWatcherMiddleware.ts +13 -13
  387. package/src/redux/middlewares/mandatoriesWatcherMiddleware.ts +16 -16
  388. package/src/redux/middlewares/multiplesActionsMiddleware.ts +6 -6
  389. package/src/redux/middlewares/paginationWatcherMiddleware.ts +27 -27
  390. package/src/redux/middlewares/pluginsHookMiddleware.ts +2 -2
  391. package/src/redux/middlewares/prefillerWatcherMiddleware.ts +31 -31
  392. package/src/redux/middlewares/smartscriptMiddleware.ts +20 -20
  393. package/src/redux/middlewares/thirdpartyScriptsMiddleware.ts +41 -0
  394. package/src/redux/reducers/app/customizations/initCustomizationAutoDefault.ts +2 -2
  395. package/src/redux/reducers/app/customizations/initCustomizationMeta.ts +2 -2
  396. package/src/redux/reducers/app/instance/initInstance.ts +2 -2
  397. package/src/redux/reducers/app/instance/setDataStatus.ts +2 -2
  398. package/src/redux/reducers/app/instance/updateInstance.ts +2 -2
  399. package/src/redux/reducers/app/instance/updateInstancePaid.ts +2 -2
  400. package/src/redux/reducers/app/meta/fetchModelFailed.ts +2 -2
  401. package/src/redux/reducers/app/meta/fetchModelNonBlocking.ts +2 -2
  402. package/src/redux/reducers/app/meta/fetchModelSucceeded.ts +2 -2
  403. package/src/redux/reducers/app/meta/fetchModelUnhealthy.ts +3 -3
  404. package/src/redux/reducers/app/meta/fetchModelUserLocked.ts +2 -2
  405. package/src/redux/reducers/app/meta/initMeta.ts +2 -2
  406. package/src/redux/reducers/app/meta/setModelUuid.ts +2 -2
  407. package/src/redux/reducers/app/pagination/goNextPage.ts +2 -2
  408. package/src/redux/reducers/app/pagination/goPage.ts +4 -4
  409. package/src/redux/reducers/app/pagination/goPreviousPage.ts +2 -2
  410. package/src/redux/reducers/app/pagination/initPagination.ts +3 -3
  411. package/src/redux/reducers/app/pagination/updateAvailableAppStates.ts +7 -7
  412. package/src/redux/reducers/app/wizard/updateAvailableSections.ts +4 -4
  413. package/src/redux/reducers/app.ts +32 -32
  414. package/src/redux/reducers/conditions/addMultipleOccurency.ts +5 -5
  415. package/src/redux/reducers/conditions/deleteMultipleOccurency.ts +4 -4
  416. package/src/redux/reducers/conditions/initConditions.ts +2 -2
  417. package/src/redux/reducers/conditions/updateDocumentConditions.ts +2 -2
  418. package/src/redux/reducers/conditions/updateOptionConditions.ts +2 -2
  419. package/src/redux/reducers/conditions/updateOptionValidatorCondition.ts +2 -2
  420. package/src/redux/reducers/conditions/updatePrefillerConditions.ts +4 -4
  421. package/src/redux/reducers/conditions/updateSectionConditions.ts +2 -2
  422. package/src/redux/reducers/conditions/updateVariableConditions.ts +2 -2
  423. package/src/redux/reducers/conditions/updateVariableValidatorCondition.ts +2 -2
  424. package/src/redux/reducers/conditions.ts +15 -15
  425. package/src/redux/reducers/inputs/addMultipleOccurency.ts +6 -6
  426. package/src/redux/reducers/inputs/deleteMultipleOccurency.ts +4 -4
  427. package/src/redux/reducers/inputs/initOption.ts +2 -2
  428. package/src/redux/reducers/inputs/initVariable.ts +2 -2
  429. package/src/redux/reducers/inputs/updateOptionInput.ts +2 -2
  430. package/src/redux/reducers/inputs/updateVariableInput.ts +2 -2
  431. package/src/redux/reducers/inputs.ts +10 -10
  432. package/src/redux/reducers/mandatories/addMultipleOccurency.ts +4 -4
  433. package/src/redux/reducers/mandatories/deleteMultipleOccurency.ts +4 -4
  434. package/src/redux/reducers/mandatories/initMandatoryOption.ts +2 -2
  435. package/src/redux/reducers/mandatories/initMandatoryVariable.ts +2 -2
  436. package/src/redux/reducers/mandatories/setMandatoryIgnore.ts +2 -2
  437. package/src/redux/reducers/mandatories/setMandatoryOption.ts +2 -2
  438. package/src/redux/reducers/mandatories/setMandatorySection.ts +2 -2
  439. package/src/redux/reducers/mandatories/setMandatoryVariable.ts +2 -2
  440. package/src/redux/reducers/mandatories.ts +13 -13
  441. package/src/redux/reducers/references/initReferences.ts +2 -2
  442. package/src/redux/reducers/references/updateOptionMeta.ts +4 -4
  443. package/src/redux/reducers/references/updateVariableMeta.ts +4 -4
  444. package/src/redux/reducers/references.ts +7 -7
  445. package/src/redux/reducers/smartscript/enableSmartScript.ts +1 -1
  446. package/src/redux/reducers/smartscript/initSmartScriptTriggers.ts +2 -2
  447. package/src/redux/reducers/smartscript/updateSmartscriptOptionHidden.ts +2 -2
  448. package/src/redux/reducers/smartscript/updateSmartscriptVariableHidden.ts +2 -2
  449. package/src/redux/reducers/smartscript.ts +8 -8
  450. package/src/redux/reducers/user/initUser.ts +2 -2
  451. package/src/redux/reducers/user/setUserStatus.ts +2 -2
  452. package/src/redux/reducers/user/setUserValidToken.ts +2 -2
  453. package/src/redux/reducers/user.ts +11 -11
  454. package/src/redux/routerHistory.ts +6 -6
  455. package/src/redux/sagas/fetchModel.test.ts +2 -5
  456. package/src/redux/sagas/fetchModel.ts +91 -100
  457. package/src/redux/sagas/homogeneousRadioInputsSaga.ts +6 -6
  458. package/src/redux/sagas/runner.ts +6 -6
  459. package/src/redux/sagas/saveData.ts +32 -28
  460. package/src/redux/sagas/setDefaults.ts +8 -8
  461. package/src/redux/sagas/setUserEmail.ts +46 -45
  462. package/src/redux/selectors/app.ts +34 -28
  463. package/src/redux/selectors/conditions.ts +41 -41
  464. package/src/redux/selectors/inputs.ts +10 -10
  465. package/src/redux/selectors/library.ts +17 -0
  466. package/src/redux/selectors/mandatories.ts +10 -10
  467. package/src/redux/selectors/references.ts +21 -21
  468. package/src/redux/selectors/selectors.ts +4 -4
  469. package/src/redux/selectors/smartscript.ts +6 -6
  470. package/src/redux/selectors/user.ts +8 -8
  471. package/src/redux/store.ts +42 -32
  472. package/src/service/api.manager.ts +53 -53
  473. package/src/service/auth.service.ts +2 -2
  474. package/src/service/pardot.service.ts +2 -2
  475. package/src/tests-misc/plugins/jestTestPlugin/after.tsx +1 -1
  476. package/src/tests-misc/plugins/jestTestPlugin/before.tsx +1 -1
  477. package/src/tests-misc/plugins/jestTestPlugin/index.ts +4 -4
  478. package/src/tests-misc/plugins/jestTestPlugin/title.tsx +2 -2
  479. package/src/tests-misc/themes/jestTestTheme/components/EmailComponent.tsx +1 -1
  480. package/src/tests-misc/themes/jestTestTheme/components/TermsheetComponent.tsx +1 -1
  481. package/src/tests-misc/themes/jestTestTheme/components/WizardComponent.tsx +1 -1
  482. package/src/tests-misc/themes/jestTestTheme/faltyIndex.ts +1 -1
  483. package/src/tests-misc/themes/jestTestTheme/faltyIndexLoader.ts +1 -1
  484. package/src/tests-misc/themes/jestTestTheme/index.ts +4 -4
  485. package/src/types/Actions.type.ts +55 -55
  486. package/src/types/Components.type.ts +4 -4
  487. package/src/types/State.type.ts +14 -14
  488. package/src/types/Termsheet.type.ts +4 -4
  489. package/src/types/api.type.ts +4 -4
  490. package/src/types/config.type.ts +3 -3
  491. package/src/types/getActions.type.ts +2 -2
  492. package/src/types/getConnectors.type.ts +2 -2
  493. package/src/types/getSelectors.type.ts +2 -2
  494. package/src/wizard-params.ts +17 -17
  495. package/tsconfig.json +1 -1
  496. package/dist/componentsConnectors/connector/connectorSelectors.js +0 -9
  497. package/dist/componentsConnectors/index.d.ts +0 -16
  498. package/dist/componentsConnectors/index.js +0 -16
  499. package/dist/constants/index.d.ts +0 -1
  500. package/dist/constants/index.js +0 -1
  501. package/dist/helpers/index.d.ts +0 -2
  502. package/dist/helpers/index.js +0 -2
  503. package/dist/hooks/index.d.ts +0 -1
  504. package/dist/hooks/index.js +0 -1
  505. package/dist/index.d.ts +0 -23
  506. package/dist/index.js +0 -23
  507. package/dist/libs/index.d.ts +0 -12
  508. package/dist/libs/index.js +0 -12
  509. package/dist/redux/actions/index.d.ts +0 -8
  510. package/dist/redux/actions/index.js +0 -8
  511. package/dist/redux/actions/sagas/index.d.ts +0 -3
  512. package/dist/redux/actions/sagas/index.js +0 -3
  513. package/dist/redux/constants/index.d.ts +0 -8
  514. package/dist/redux/constants/index.js +0 -8
  515. package/dist/redux/constants/sagas/index.d.ts +0 -3
  516. package/dist/redux/constants/sagas/index.js +0 -3
  517. package/dist/redux/index.d.ts +0 -4
  518. package/dist/redux/index.js +0 -4
  519. package/dist/redux/selectors/index.d.ts +0 -7
  520. package/dist/redux/selectors/index.js +0 -7
  521. package/dist/service/index.d.ts +0 -3
  522. package/dist/service/index.js +0 -3
  523. package/dist/types/index.d.ts +0 -10
  524. package/dist/types/index.js +0 -10
  525. package/src/componentsConnectors/connector/connectorSelectors.ts +0 -19
  526. package/src/componentsConnectors/index.ts +0 -16
  527. package/src/constants/index.ts +0 -1
  528. package/src/helpers/index.ts +0 -2
  529. package/src/hooks/index.ts +0 -1
  530. package/src/index.ts +0 -47
  531. package/src/libs/index.ts +0 -12
  532. package/src/redux/actions/index.ts +0 -8
  533. package/src/redux/actions/sagas/index.ts +0 -3
  534. package/src/redux/constants/index.ts +0 -8
  535. package/src/redux/constants/sagas/index.ts +0 -3
  536. package/src/redux/index.ts +0 -4
  537. package/src/redux/selectors/index.ts +0 -7
  538. package/src/service/index.ts +0 -3
  539. package/src/types/index.ts +0 -10
@@ -1,17 +1,12 @@
1
- import React, { Props } from 'react';
2
- import { Action } from 'redux';
3
- import PropTypes from 'prop-types';
4
- import { LoadableComponent } from '@loadable/component';
5
- import { getConfig } from './config';
6
- import * as connectorActions from './redux/actions';
7
- import { getStore } from './redux/store';
8
- import { getHistory } from './redux/routerHistory';
9
- import { EventsTracking } from './libs/EventsTracking';
10
- import { ComponentsConnectors } from './types/getConnectors.type';
11
- import { SelectorsType } from './types/getSelectors.type';
12
- import Globals from './Globals';
13
- import * as selectorsList from './redux/selectors';
14
- import * as connectorsList from './componentsConnectors';
1
+ import React, { Props } from "react";
2
+ import { Action } from "redux";
3
+ import PropTypes from "prop-types";
4
+ import { LoadableComponent } from "@loadable/component";
5
+ import { getConfig } from "./config";
6
+ import { getStore } from "./redux/store";
7
+ import { getHistory } from "./redux/routerHistory";
8
+ import { EventsTracking } from "./libs/EventsTracking";
9
+ import Globals from "./Globals";
15
10
 
16
11
  // This object will be used to contain all anchors
17
12
  let globalAnchors: Record<string, React.FC[]> = {};
@@ -49,9 +44,9 @@ const pluginAppStates = (declaration: PluginsAppStatesDeclarations) => {
49
44
  PluginsAppStatesRegistrers.push(declaration.register);
50
45
 
51
46
  // Adding page app states
52
- if (typeof declaration.pageAppState === 'object')
47
+ if (typeof declaration.pageAppState === "object")
53
48
  Object.keys(declaration.pageAppState).forEach((appState) => {
54
- if (typeof declaration.pageAppState[appState] === 'string') {
49
+ if (typeof declaration.pageAppState[appState] === "string") {
55
50
  const page = declaration.pageAppState[appState];
56
51
 
57
52
  // Verifying if appState is already declared
@@ -135,11 +130,7 @@ export const getPluginsPageAppStates = (): Readonly<
135
130
  typeof PluginsPageAppStates
136
131
  > => PluginsPageAppStates;
137
132
 
138
- const loadPluginFiles = async (
139
- pluginsList: Record<string, string>,
140
- connectorSelectors: SelectorsType,
141
- connectors: ComponentsConnectors
142
- ) => {
133
+ const loadPluginFiles = async (pluginsList: Record<string, string>) => {
143
134
  const plugins = Object.keys(pluginsList);
144
135
  // We load all needed plugin first to continue in synchronous way
145
136
  const pluginModules = await Promise.all(
@@ -153,20 +144,12 @@ const loadPluginFiles = async (
153
144
 
154
145
  // Loading selectors if module has a loader function
155
146
  if (loader !== undefined) {
156
- loader(
157
- connectorSelectors,
158
- connectors,
159
- getStore().dispatch,
160
- connectorActions,
161
- getHistory(),
162
- getConfig(),
163
- EventsTracking
164
- );
147
+ loader(getStore().dispatch, getHistory(), getConfig(), EventsTracking);
165
148
  }
166
149
 
167
150
  // Looking for anchors inside the plugin
168
151
  Object.keys(anchors).forEach((anchor) => {
169
- if (anchor === 'replace') {
152
+ if (anchor === "replace") {
170
153
  Object.keys(anchors[anchor]).forEach((replacer) => {
171
154
  // Adding current replacer
172
155
  replacers[replacer] = anchors[anchor][replacer];
@@ -177,14 +160,14 @@ const loadPluginFiles = async (
177
160
  /**
178
161
  * App States
179
162
  */
180
- if (anchor === 'appstates') {
163
+ if (anchor === "appstates") {
181
164
  pluginAppStates(anchors.appstates);
182
165
  }
183
166
 
184
167
  /**
185
168
  * Redux Anchors
186
169
  */
187
- if (anchor === 'redux') {
170
+ if (anchor === "redux") {
188
171
  Object.keys(anchors[anchor]).forEach((action) => {
189
172
  if (reduxAnchors[action] === undefined) reduxAnchors[action] = [];
190
173
  // Adding current action
@@ -196,7 +179,7 @@ const loadPluginFiles = async (
196
179
  /**
197
180
  * Action Override
198
181
  */
199
- if (anchor === 'actionOverride') {
182
+ if (anchor === "actionOverride") {
200
183
  Object.keys(anchors[anchor]).forEach((action) => {
201
184
  if (actionOverrideAnchor[action] === undefined)
202
185
  actionOverrideAnchor[action] = [];
@@ -209,7 +192,7 @@ const loadPluginFiles = async (
209
192
  /**
210
193
  * Additional route
211
194
  */
212
- if (anchor === 'additionalRoutes') {
195
+ if (anchor === "additionalRoutes") {
213
196
  Object.keys(anchors[anchor]).forEach((route) => {
214
197
  PluginAdditionRoutes[anchors[anchor][route].path] =
215
198
  anchors[anchor][route].component;
@@ -241,7 +224,7 @@ export const loadPlugins = async (plugins?: Record<string, string>) => {
241
224
  pluginsList = getConfig().plugins;
242
225
  }
243
226
  // We need to make sure all plugins are loaded before going on
244
- await loadPluginFiles(pluginsList, selectorsList, connectorsList);
227
+ await loadPluginFiles(pluginsList);
245
228
 
246
229
  pluginsLoadingDone = true;
247
230
  };
@@ -333,7 +316,7 @@ export function ReplaceComponent<T = {}>(
333
316
  componentName ||
334
317
  OriginalComponent.displayName ||
335
318
  OriginalComponent.name ||
336
- 'Component';
319
+ "Component";
337
320
  const anchorsList = !Array.isArray(replacerName)
338
321
  ? [replacerName]
339
322
  : replacerName;
package/src/Shimmer.tsx CHANGED
@@ -1,75 +1,88 @@
1
- import React, { CSSProperties } from 'react';
2
- import { connect } from 'react-redux';
3
- import { Loader } from '@legalplace/storybook';
4
- import { StateType } from './types/State.type';
5
- import { getThemeShimmer } from './ThemeLoader';
6
- import { PluginLoader } from './PluginLoader';
7
- import UserLockedComponent from './components/UserLocked/UserLockedComponent';
1
+ import React, { CSSProperties, useState } from "react";
2
+ import { connect } from "react-redux";
3
+ import { StateType } from "./types/State.type";
4
+ import { addOnThemeLoadCallback, getThemeShimmer } from "./ThemeLoader";
5
+ import { PluginLoader } from "./PluginLoader";
6
+ import UserLockedComponent from "./components/UserLocked/UserLockedComponent";
8
7
 
9
8
  const Shimmer: React.FC<{
10
- fetchStatus: StateType.App.Meta['fetchStatus'];
11
- report: StateType.App.Meta['report'];
9
+ fetchStatus: StateType.App.Meta["fetchStatus"];
10
+ report: StateType.App.Meta["report"];
12
11
  }> = (props) => {
12
+ const [themeLoaded, setThemeloaded] = useState(false);
13
+
13
14
  if (
14
- props.fetchStatus === 'succeeded' ||
15
- props.fetchStatus === 'nonBlocking'
15
+ props.fetchStatus === "succeeded" ||
16
+ props.fetchStatus === "nonBlocking"
16
17
  ) {
17
18
  return <>{props.children}</>;
18
19
  }
20
+
21
+ addOnThemeLoadCallback(() => {
22
+ if (!themeLoaded) setThemeloaded(true);
23
+ });
24
+
25
+ if (!themeLoaded) return null;
26
+
19
27
  const ThemeShimmer = getThemeShimmer();
20
28
 
21
29
  const style: CSSProperties = {
22
- position: 'absolute',
23
- left: '50%',
24
- top: '50%',
25
- transform: 'translate(-50%, -50%)',
26
- color: '#AAA',
27
- fontWeight: 'bold',
28
- textTransform: 'uppercase',
29
- fontSize: '12px',
30
- userSelect: 'none',
30
+ position: "absolute",
31
+ left: "50%",
32
+ top: "50%",
33
+ transform: "translate(-50%, -50%)",
34
+ color: "#AAA",
35
+ fontWeight: "bold",
36
+ textTransform: "uppercase",
37
+ fontSize: "12px",
38
+ userSelect: "none",
31
39
  };
32
40
 
33
41
  const unhealthyStyle: CSSProperties = {
34
- color: '#AAA',
35
- fontWeight: 'bold',
36
- textTransform: 'uppercase',
37
- fontSize: '24px',
38
- width: '700px',
39
- margin: 'auto',
40
- textAlign: 'center',
41
- padding: '20px',
42
+ color: "#AAA",
43
+ fontWeight: "bold",
44
+ textTransform: "uppercase",
45
+ fontSize: "24px",
46
+ width: "700px",
47
+ margin: "auto",
48
+ textAlign: "center",
49
+ padding: "20px",
42
50
  };
43
51
 
44
52
  const unhealthyStylePre: CSSProperties = {
45
- background: '#FDDCD0',
46
- textAlign: 'left',
47
- fontSize: '12px',
48
- color: '#6B0435',
49
- padding: '10px',
50
- borderRadius: '4px',
53
+ background: "#FDDCD0",
54
+ textAlign: "left",
55
+ fontSize: "12px",
56
+ color: "#6B0435",
57
+ padding: "10px",
58
+ borderRadius: "4px",
51
59
  };
52
- if (ThemeShimmer !== null && props.fetchStatus === 'waiting') {
60
+ if (ThemeShimmer !== null && props.fetchStatus === "waiting") {
53
61
  return <ThemeShimmer />;
54
62
  }
55
63
  return (
56
64
  <>
57
- {['waiting', 'failed'].includes(props.fetchStatus) && (
65
+ {["waiting", "failed"].includes(props.fetchStatus) && (
58
66
  <div style={style}>
59
- {props.fetchStatus === 'waiting' && <Loader />}
60
- {props.fetchStatus === 'failed' &&
61
- 'Une erreur a eu lieu pendant le chargement du questionnaire'}
67
+ {props.fetchStatus === "waiting" && (
68
+ <div className="lds-ripple">
69
+ <div />
70
+ <div />
71
+ </div>
72
+ )}
73
+ {props.fetchStatus === "failed" &&
74
+ "Une erreur a eu lieu pendant le chargement du questionnaire"}
62
75
  </div>
63
76
  )}
64
77
 
65
- {props.fetchStatus === 'userLocked' && (
78
+ {props.fetchStatus === "userLocked" && (
66
79
  <>
67
80
  <PluginLoader anchor={[`userLockedScreen`]} props={props} />
68
81
  <UserLockedComponent unhealthyStyle={unhealthyStyle} />
69
82
  </>
70
83
  )}
71
84
 
72
- {props.fetchStatus === 'unhealthy' && (
85
+ {props.fetchStatus === "unhealthy" && (
73
86
  <div style={unhealthyStyle}>
74
87
  Le modèle semble contenir des erreurs
75
88
  <pre style={unhealthyStylePre}>{props.report?.raw}</pre>
@@ -82,12 +95,12 @@ const Shimmer: React.FC<{
82
95
  const mapStateToProps = (
83
96
  state: StateType
84
97
  ): {
85
- fetchStatus: StateType.App.Meta['fetchStatus'];
86
- report: StateType.App.Meta['report'];
98
+ fetchStatus: StateType.App.Meta["fetchStatus"];
99
+ report: StateType.App.Meta["report"];
87
100
  } => ({
88
101
  fetchStatus:
89
- state.app.meta.fetchStatus === 'succeeded'
90
- ? 'nonBlocking'
102
+ state.app.meta.fetchStatus === "succeeded"
103
+ ? "nonBlocking"
91
104
  : state.app.meta.fetchStatus,
92
105
  report: state.app.meta.report,
93
106
  });
@@ -35,6 +35,7 @@ describe('<ThemeLoader />', () => {
35
35
  });
36
36
 
37
37
  it('Loads WizardComponent properly', async () => {
38
+ await loadTheme();
38
39
  const WizardComponent = loadThemeComponent('WizardComponent');
39
40
  const { container } = render(<WizardComponent />);
40
41
  await waitFor(() =>
@@ -1,20 +1,15 @@
1
- import loadable, { LoadableComponent } from '@loadable/component';
2
- import { getConfig, updateConfig } from './config';
3
- import { IWizardParamsTheme } from './types/config.type';
4
- /**
5
- * Connectors
6
- */
7
- import * as connectorSelectors from './redux/selectors';
8
- import * as connectors from './componentsConnectors';
9
- import { SelectorsType } from './types/getSelectors.type';
10
- import Globals from './Globals';
1
+ import React from "react";
2
+ import { getConfig, updateConfig } from "./config";
3
+ import { IWizardParamsTheme } from "./types/config.type";
4
+ import Globals from "./Globals";
11
5
 
12
6
  // Getting current theme from config
13
7
  let wizardTheme: string;
14
- let themeParams: IWizardParamsTheme['params'];
8
+ let themeParams: IWizardParamsTheme["params"];
9
+ const themeLoadCallbacks: (() => void)[] = [];
15
10
 
16
11
  // This variable will store our theme's index
17
- let themeIndex: Record<string, LoadableComponent<unknown>>;
12
+ let themeIndex: Record<string, React.LazyExoticComponent<React.FC<{}>>>;
18
13
 
19
14
  /**
20
15
  * Theme loading function
@@ -38,58 +33,44 @@ export const loadTheme = async (theme?: string, force?: boolean) => {
38
33
 
39
34
  // Importing theme's loader function
40
35
  let themeLoader: {
41
- loader?:
42
- | ((
43
- p: any,
44
- c: typeof connectors,
45
- s: SelectorsType
46
- ) => Record<string, LoadableComponent<unknown>>)
47
- | undefined;
48
- default?: Record<string, LoadableComponent<unknown>>;
49
- } = {
50
- loader: undefined,
36
+ default?: Record<string, React.LazyExoticComponent<React.FC<{}>>>;
51
37
  };
52
38
 
53
39
  try {
54
40
  themeLoader = await Globals.loadTheme(currentTheme);
55
41
  } catch (e) {
56
42
  throw new Error(
57
- 'We are unable to load the theme, please make sure the theme param is valid'
43
+ "We are unable to load the theme, please make sure the theme param is valid"
58
44
  );
59
45
  }
60
46
 
61
47
  // Extracting loader & default
62
- const { loader, default: themeDefault } = themeLoader;
48
+ const { default: themeDefault } = themeLoader;
63
49
 
64
- // Making sure loader function exists
65
- if (typeof loader !== 'function' && typeof themeDefault === 'undefined')
66
- throw new Error('Theme loader function not found');
67
-
68
- if (typeof loader === 'function')
69
- themeIndex = loader(themeParams, connectors, connectorSelectors);
70
- else if (typeof themeDefault !== 'undefined') themeIndex = themeDefault;
71
- else throw new Error('Unable to retrieve theme index');
50
+ if (typeof themeDefault !== "undefined") themeIndex = themeDefault;
51
+ else throw new Error("Unable to retrieve theme index");
72
52
 
73
53
  // In case the theme still didn't load we throw an error
74
- if (typeof themeIndex !== 'object')
75
- throw new Error('Theme loader function did not return components object');
54
+ if (typeof themeIndex !== "object")
55
+ throw new Error("Theme loader function did not return components object");
56
+
57
+ themeLoadCallbacks.forEach((cb) => {
58
+ cb();
59
+ });
76
60
  };
77
61
 
78
62
  /**
79
63
  * Theme component's loader
80
64
  */
81
- const importThemeComponent = async (
65
+ const importThemeComponent = (
82
66
  name: string
83
- ): Promise<LoadableComponent<any>> => {
84
- if (typeof themeIndex !== 'object') await loadTheme();
85
- return themeIndex[name];
86
- };
67
+ ): React.LazyExoticComponent<React.FC<{}>> => themeIndex[name];
87
68
  /**
88
69
  * Theme component's loader
89
70
  */
90
71
  export const getThemeShimmer = () =>
91
72
  getConfig().theme?.shimmer === true
92
- ? loadable(() => importThemeComponent('ShimmerComponent'))
73
+ ? importThemeComponent("ShimmerComponent")
93
74
  : null;
94
75
 
95
76
  export const setWizardTheme = async (theme: IWizardParamsTheme) => {
@@ -106,5 +87,9 @@ export const setWizardTheme = async (theme: IWizardParamsTheme) => {
106
87
 
107
88
  export const getThemeParams = () => themeParams;
108
89
 
109
- export const loadThemeComponent = (name: string) =>
110
- loadable(() => importThemeComponent(name));
90
+ export const loadThemeComponent = (name: string) => importThemeComponent(name);
91
+
92
+ export const addOnThemeLoadCallback = (cb: () => void) => {
93
+ if (themeIndex !== undefined) cb();
94
+ themeLoadCallbacks.push(cb);
95
+ };
@@ -1,7 +1,7 @@
1
- import React, { Suspense, useCallback, useEffect, useState } from 'react';
2
- import { RouteComponentProps } from 'react-router-dom';
3
- import { getPluginsAdditionalRoutes, loadPlugins } from '../PluginLoader';
4
- import Shimmer from '../Shimmer';
1
+ import React, { Suspense, useCallback, useEffect, useState } from "react";
2
+ import { RouteComponentProps } from "react-router-dom";
3
+ import { getPluginsAdditionalRoutes, loadPlugins } from "../PluginLoader";
4
+ import Shimmer from "../Shimmer";
5
5
 
6
6
  export interface IRouteProps {
7
7
  path: string;
@@ -9,7 +9,7 @@ export interface IRouteProps {
9
9
 
10
10
  export type IProps = RouteComponentProps<IRouteProps>;
11
11
 
12
- export const PluginRoute = ({
12
+ const PluginRoute = ({
13
13
  match: {
14
14
  params: { path },
15
15
  },
@@ -23,7 +23,7 @@ export const PluginRoute = ({
23
23
 
24
24
  if (!routes.length) {
25
25
  /** @TODO load plugin from backend instead of defaulting to authentication plugin */
26
- await loadPlugins({ authentication: '1.0.0' });
26
+ await loadPlugins({ authentication: "1.0.0" });
27
27
  routes = getPluginsAdditionalRoutes();
28
28
  }
29
29
 
@@ -44,3 +44,5 @@ export const PluginRoute = ({
44
44
  </Suspense>
45
45
  );
46
46
  };
47
+
48
+ export default PluginRoute;
@@ -1,14 +1,14 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { useParams } from 'react-router-dom';
3
- import queryString from 'query-string';
4
- import { Action } from 'redux';
5
- import moment from 'moment-business-days';
6
- import { getConfig } from '../config';
7
- import { SmartScriptStore } from '../libs/SmartScriptStore';
8
- import { StateType } from '../types/State.type';
1
+ import React, { useEffect, useState } from "react";
2
+ import { useParams } from "react-router-dom";
3
+ import queryString from "query-string";
4
+ import { Action } from "redux";
5
+ import type { Moment } from "moment-business-days";
6
+ import { getConfig } from "../config";
7
+ import { SmartScriptStore } from "../libs/SmartScriptStore";
8
+ import { StateType } from "../types/State.type";
9
9
 
10
10
  export type TInitTriggersCallback = (
11
- triggers: StateType.SmartScript['triggers'],
11
+ triggers: StateType.SmartScript["triggers"],
12
12
  actions: Action[]
13
13
  ) => void;
14
14
 
@@ -30,9 +30,9 @@ declare global {
30
30
  displayOption: typeof SmartScriptStore.displayOption;
31
31
  hideVariable: typeof SmartScriptStore.hideVariable;
32
32
  displayVariable: typeof SmartScriptStore.displayVariable;
33
- moment: typeof moment;
33
+ moment: Moment;
34
34
  triggerListeners: (
35
- type: 'option' | 'variable',
35
+ type: "option" | "variable",
36
36
  id: number,
37
37
  inputs: StateType.Inputs
38
38
  ) => Action[];
@@ -74,13 +74,12 @@ const SmartScriptComponent = () => {
74
74
  window.displayVariable = SmartScriptStore.displayVariable;
75
75
  window.hideOption = SmartScriptStore.hideOption;
76
76
  window.displayOption = SmartScriptStore.displayOption;
77
- window.moment = moment;
78
77
 
79
78
  // Loading SmartScript
80
79
 
81
80
  // API Endpoint
82
81
  const apiEndpoint =
83
- getConfig().apiEndpoint + (/\/$/.test(getConfig().apiEndpoint) ? '' : '/');
82
+ getConfig().apiEndpoint + (/\/$/.test(getConfig().apiEndpoint) ? "" : "/");
84
83
 
85
84
  // Permalink
86
85
  const { permalink, uniqid } = useParams<{
@@ -97,20 +96,22 @@ const SmartScriptComponent = () => {
97
96
  useEffect(() => {
98
97
  if (!smartScriptLoaded) {
99
98
  const src = `${apiEndpoint}wizard/contractv1/smartscript/${permalink}${
100
- uniqid ? `/${uniqid}` : ''
101
- }${modelVersion ? `?version=${modelVersion}` : ''}`;
102
- const scriptElement = document.createElement('script');
103
- scriptElement.setAttribute('src', src);
99
+ uniqid ? `/${uniqid}` : ""
100
+ }${modelVersion ? `?version=${modelVersion}` : ""}`;
101
+ const scriptElement = document.createElement("script");
102
+ scriptElement.setAttribute("src", src);
104
103
  scriptElement.onload = () => {
105
- if (typeof initTriggersCallback === 'function') {
106
- if (isNewInstance) SmartScriptStore.execOnInit();
107
- SmartScriptStore.execOnLoad();
108
- initTriggersCallback(
109
- SmartScriptStore.triggers,
110
- SmartScriptStore.grabActions()
111
- );
112
- }
113
- setSmartScriptLoaded(true);
104
+ import("moment-business-days").then(() => {
105
+ if (typeof initTriggersCallback === "function") {
106
+ if (isNewInstance) SmartScriptStore.execOnInit();
107
+ SmartScriptStore.execOnLoad();
108
+ initTriggersCallback(
109
+ SmartScriptStore.triggers,
110
+ SmartScriptStore.grabActions()
111
+ );
112
+ }
113
+ setSmartScriptLoaded(true);
114
+ });
114
115
  };
115
116
  document.body.append(scriptElement);
116
117
  }
@@ -142,7 +143,7 @@ const SmartScriptComponent = () => {
142
143
  // Triggering listeners
143
144
  window.triggerListeners = (type, id, inputs) => {
144
145
  const hooks =
145
- SmartScriptStore.hooks[type === 'option' ? 'options' : 'variables'];
146
+ SmartScriptStore.hooks[type === "option" ? "options" : "variables"];
146
147
  const listeners = hooks[id];
147
148
 
148
149
  if (Array.isArray(listeners)) {
@@ -152,7 +153,7 @@ const SmartScriptComponent = () => {
152
153
  listeners.forEach((_cb) => _cb());
153
154
  } catch (e) {
154
155
  // eslint-disable-next-line no-console
155
- console.error('SmartScript (onInit) error: ', e.message);
156
+ console.error("SmartScript (onInit) error: ", e.message);
156
157
  }
157
158
  }
158
159
 
@@ -1,5 +1,5 @@
1
- import React, { CSSProperties } from 'react';
2
- import { ReplaceComponent } from '../../PluginLoader';
1
+ import React, { CSSProperties } from "react";
2
+ import { ReplaceComponent } from "../../PluginLoader";
3
3
 
4
4
  export interface IProps {
5
5
  unhealthyStyle: CSSProperties;
@@ -20,7 +20,7 @@ const UserLockHooc =
20
20
  // eslint-disable-next-line react/display-name
21
21
  (props) => {
22
22
  // Component replace
23
- const replaceAnchors = ['UserLockedComponent'];
23
+ const replaceAnchors = ["UserLockedComponent"];
24
24
  const FinalComponent = ReplaceComponent(replaceAnchors, Component);
25
25
 
26
26
  return (
@@ -12,6 +12,7 @@ import {
12
12
  goPageAction,
13
13
  } from '../redux/actions/app';
14
14
  import View from './View';
15
+ import { loadTheme } from '../ThemeLoader';
15
16
 
16
17
  afterEach(cleanup);
17
18
 
@@ -79,6 +80,7 @@ describe('<View />', () => {
79
80
  });
80
81
 
81
82
  it('Loads WizardComponent properly', async () => {
83
+ await loadTheme();
82
84
  const { container } = render(
83
85
  <Provider store={store}>
84
86
  <View />
@@ -93,6 +95,7 @@ describe('<View />', () => {
93
95
 
94
96
  it('Loads TermsheetComponent properly', async () => {
95
97
  store.dispatch(goPageAction(3));
98
+ await loadTheme();
96
99
  const { container } = render(
97
100
  <Provider store={store}>
98
101
  <View />