@legalplace/wizardx-core 2.6.3 → 2.7.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 (357) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/App.js +13 -4
  3. package/dist/PluginLoader.d.ts +3 -1
  4. package/dist/PluginLoader.js +12 -0
  5. package/dist/ThemeLoader.d.ts +2 -2
  6. package/dist/componentsConnectors/connectBox.d.ts +3 -1
  7. package/dist/componentsConnectors/connectDocument.d.ts +3 -1
  8. package/dist/componentsConnectors/connectHeader.d.ts +3 -1
  9. package/dist/componentsConnectors/connectMetaTitle.d.ts +3 -1
  10. package/dist/componentsConnectors/connectOption.d.ts +6 -2
  11. package/dist/componentsConnectors/connectOption.js +1 -1
  12. package/dist/componentsConnectors/connectPagination.d.ts +3 -1
  13. package/dist/componentsConnectors/connectPreview.d.ts +3 -1
  14. package/dist/componentsConnectors/connectProgress.d.ts +3 -1
  15. package/dist/componentsConnectors/connectRootOption.d.ts +3 -1
  16. package/dist/componentsConnectors/connectSection.d.ts +3 -1
  17. package/dist/componentsConnectors/connectSection.js +7 -10
  18. package/dist/componentsConnectors/connectSummary.d.ts +3 -1
  19. package/dist/componentsConnectors/connectSummaryItem.d.ts +3 -1
  20. package/dist/componentsConnectors/connectVariable.d.ts +6 -2
  21. package/dist/componentsConnectors/connectVariable.js +1 -1
  22. package/dist/componentsConnectors/connectWizardWrapper.d.ts +3 -1
  23. package/dist/componentsConnectors/connector/componentConnector.d.ts +5 -1
  24. package/dist/componentsConnectors/connector/componentConnector.js +44 -4
  25. package/dist/componentsConnectors/connector/index.d.ts +1 -0
  26. package/dist/componentsConnectors/connector/index.js +1 -0
  27. package/dist/componentsConnectors/index.d.ts +17 -0
  28. package/dist/componentsConnectors/index.js +17 -0
  29. package/dist/componentsConnectors/library.d.ts +43 -15
  30. package/dist/constants/phoneValidation.d.ts +0 -1
  31. package/dist/constants/phoneValidation.js +0 -1
  32. package/dist/helpers/apiEndpoint.d.ts +1 -0
  33. package/dist/helpers/apiEndpoint.js +4 -0
  34. package/dist/helpers/index.d.ts +4 -0
  35. package/dist/helpers/index.js +4 -0
  36. package/dist/helpers/propsEqualityCheck.d.ts +1 -0
  37. package/dist/helpers/propsEqualityCheck.js +9 -0
  38. package/dist/hooks/index.d.ts +4 -0
  39. package/dist/hooks/index.js +4 -0
  40. package/dist/hooks/useActions.d.ts +2 -0
  41. package/dist/hooks/useActions.js +4 -0
  42. package/dist/hooks/useDispatch.d.ts +1 -0
  43. package/dist/hooks/useDispatch.js +4 -0
  44. package/dist/hooks/useSelectors.d.ts +2 -0
  45. package/dist/hooks/useSelectors.js +4 -0
  46. package/dist/index.d.ts +13 -0
  47. package/dist/index.js +13 -0
  48. package/dist/libs/EventsTracking.d.ts +0 -1
  49. package/dist/libs/EventsTracking.js +0 -18
  50. package/dist/libs/PathReader.d.ts +10 -6
  51. package/dist/libs/PathReader.js +47 -28
  52. package/dist/libs/index.d.ts +5 -0
  53. package/dist/libs/index.js +5 -0
  54. package/dist/redux/actions/index.d.ts +9 -0
  55. package/dist/redux/actions/index.js +9 -0
  56. package/dist/redux/actions/library.d.ts +59 -63
  57. package/dist/redux/actions/sagas/index.d.ts +3 -0
  58. package/dist/redux/actions/sagas/index.js +3 -0
  59. package/dist/redux/actions/sagas/model.d.ts +1 -5
  60. package/dist/redux/constants/app.d.ts +2 -0
  61. package/dist/redux/constants/app.js +2 -0
  62. package/dist/redux/constants/index.d.ts +8 -0
  63. package/dist/redux/constants/index.js +8 -0
  64. package/dist/redux/constants/sagas/index.d.ts +3 -0
  65. package/dist/redux/constants/sagas/index.js +3 -0
  66. package/dist/redux/index.d.ts +5 -0
  67. package/dist/redux/index.js +5 -0
  68. package/dist/redux/middlewares/conditionsWatcherMiddleware.js +11 -5
  69. package/dist/redux/middlewares/conditionsWatcherMiddleware.test.js +120 -113
  70. package/dist/redux/middlewares/paginationWatcherMiddleware.js +2 -2
  71. package/dist/redux/middlewares/smartscriptMiddleware.js +8 -0
  72. package/dist/redux/reducers/pluginsStore.d.ts +3 -0
  73. package/dist/redux/reducers/pluginsStore.js +12 -0
  74. package/dist/redux/routerHistory.js +2 -2
  75. package/dist/redux/sagas/fetchModel.js +22 -6
  76. package/dist/redux/sagas/initInputs.js +6 -7
  77. package/dist/redux/sagas/saveData.js +3 -46
  78. package/dist/redux/sagas/setUserEmail.js +1 -28
  79. package/dist/redux/selectors/app.js +13 -18
  80. package/dist/redux/selectors/cache.d.ts +17 -0
  81. package/dist/redux/selectors/cache.js +35 -0
  82. package/dist/redux/selectors/conditions.js +7 -7
  83. package/dist/redux/selectors/index.d.ts +8 -0
  84. package/dist/redux/selectors/index.js +8 -0
  85. package/dist/redux/selectors/inputs.js +3 -3
  86. package/dist/redux/selectors/library.d.ts +2 -2
  87. package/dist/redux/selectors/references.js +26 -26
  88. package/dist/redux/selectors/selectors.d.ts +2 -2
  89. package/dist/redux/selectors/selectors.js +19 -8
  90. package/dist/redux/selectors/selectors.test.js +6 -6
  91. package/dist/redux/selectors/user.js +5 -5
  92. package/dist/redux/store.d.ts +1 -1
  93. package/dist/redux/store.js +12 -4
  94. package/dist/service/api.manager.d.ts +1 -6
  95. package/dist/service/index.d.ts +3 -0
  96. package/dist/service/index.js +3 -0
  97. package/dist/types/PluginConfig.type.d.ts +57 -0
  98. package/dist/types/PluginConfig.type.js +1 -0
  99. package/dist/types/State.type.d.ts +6 -0
  100. package/dist/types/config.type.d.ts +3 -1
  101. package/dist/types/index.d.ts +11 -0
  102. package/dist/types/index.js +11 -0
  103. package/package.json +11 -12
  104. package/.depcheckrc +0 -1
  105. package/.eslintignore +0 -2
  106. package/.eslintrc +0 -5
  107. package/__mocks__/fileMock.js +0 -1
  108. package/babel.config.json +0 -3
  109. package/dist/helpers/sendinblueHelper.d.ts +0 -4
  110. package/dist/helpers/sendinblueHelper.js +0 -46
  111. package/dist/libs/Extracts.d.ts +0 -20
  112. package/dist/libs/Extracts.js +0 -110
  113. package/jest.config.ts +0 -193
  114. package/setupJest.ts +0 -8
  115. package/src/App.test.tsx +0 -41
  116. package/src/App.tsx +0 -152
  117. package/src/Globals.ts +0 -69
  118. package/src/Loader.tsx +0 -8
  119. package/src/PluginLoader.test.tsx +0 -70
  120. package/src/PluginLoader.tsx +0 -407
  121. package/src/Shimmer.tsx +0 -108
  122. package/src/ThemeLoader.test.tsx +0 -82
  123. package/src/ThemeLoader.tsx +0 -95
  124. package/src/components/PluginRoute.tsx +0 -48
  125. package/src/components/SmartScript.tsx +0 -166
  126. package/src/components/UserLocked/UserLockedComponent.tsx +0 -33
  127. package/src/components/View.test.tsx +0 -110
  128. package/src/components/View.tsx +0 -114
  129. package/src/componentsConnectors/connectBox.test.tsx +0 -226
  130. package/src/componentsConnectors/connectBox.tsx +0 -70
  131. package/src/componentsConnectors/connectDocument.test.tsx +0 -108
  132. package/src/componentsConnectors/connectDocument.tsx +0 -64
  133. package/src/componentsConnectors/connectHeader.tsx +0 -21
  134. package/src/componentsConnectors/connectMetaTitle.test.tsx +0 -40
  135. package/src/componentsConnectors/connectMetaTitle.tsx +0 -8
  136. package/src/componentsConnectors/connectOption.tsx +0 -222
  137. package/src/componentsConnectors/connectPagination.tsx +0 -102
  138. package/src/componentsConnectors/connectPreview.tsx +0 -5
  139. package/src/componentsConnectors/connectProgress.tsx +0 -59
  140. package/src/componentsConnectors/connectRootOption.tsx +0 -95
  141. package/src/componentsConnectors/connectSection.tsx +0 -79
  142. package/src/componentsConnectors/connectSummary.tsx +0 -21
  143. package/src/componentsConnectors/connectSummaryItem.tsx +0 -102
  144. package/src/componentsConnectors/connectTermsheet.tsx +0 -359
  145. package/src/componentsConnectors/connectVariable.tsx +0 -191
  146. package/src/componentsConnectors/connectWizardWrapper.tsx +0 -30
  147. package/src/componentsConnectors/connector/componentConnector.tsx +0 -219
  148. package/src/componentsConnectors/library.ts +0 -35
  149. package/src/config.test.ts +0 -63
  150. package/src/config.ts +0 -11
  151. package/src/constants/emailValidation.ts +0 -2
  152. package/src/constants/phoneValidation.ts +0 -6
  153. package/src/definitions/path.join.d.ts +0 -4
  154. package/src/helpers/outputsParsing.ts +0 -412
  155. package/src/helpers/preloadTheme.ts +0 -17
  156. package/src/helpers/scriptsLoader.ts +0 -20
  157. package/src/helpers/sendinblueHelper.ts +0 -65
  158. package/src/hooks/usePrevious.ts +0 -9
  159. package/src/libs/ConditionsInitiator.ts +0 -164
  160. package/src/libs/ConditionsRunner/DataPopulator.ts +0 -266
  161. package/src/libs/ConditionsRunner.ts +0 -454
  162. package/src/libs/DocumentsOutputs.ts +0 -171
  163. package/src/libs/Eval/EvalBase.ts +0 -116
  164. package/src/libs/Eval/EvalFunctions.ts +0 -724
  165. package/src/libs/Eval/NumbersToLetters.ts +0 -185
  166. package/src/libs/EvalVariable.ts +0 -265
  167. package/src/libs/EventsTracking.ts +0 -276
  168. package/src/libs/Extracts.ts +0 -159
  169. package/src/libs/InputsInitiator.ts +0 -136
  170. package/src/libs/NumAuto.test.ts +0 -55
  171. package/src/libs/NumAuto.ts +0 -56
  172. package/src/libs/OvcConverter.ts +0 -285
  173. package/src/libs/PathReader.ts +0 -272
  174. package/src/libs/SectionValidity.test.ts +0 -146
  175. package/src/libs/SectionValidity.ts +0 -110
  176. package/src/libs/SmartScriptStore.ts +0 -492
  177. package/src/misc/test_model.ts +0 -14603
  178. package/src/misc/test_models/connectDocumen.testmodel.json +0 -178
  179. package/src/misc/test_models/setDefaults.testmodel.json +0 -279
  180. package/src/misc/test_models/testmodel.json +0 -1
  181. package/src/polyfills/index.ts +0 -5
  182. package/src/polyfills/objectValues.ts +0 -4
  183. package/src/polyfills/prepend.ts +0 -31
  184. package/src/polyfills/stringRepeat.ts +0 -44
  185. package/src/redux/actions/app.test.ts +0 -123
  186. package/src/redux/actions/app.ts +0 -249
  187. package/src/redux/actions/conditions.test.ts +0 -84
  188. package/src/redux/actions/conditions.ts +0 -135
  189. package/src/redux/actions/inputs.test.ts +0 -85
  190. package/src/redux/actions/inputs.ts +0 -111
  191. package/src/redux/actions/library.ts +0 -23
  192. package/src/redux/actions/mandatories.ts +0 -98
  193. package/src/redux/actions/references.test.ts +0 -48
  194. package/src/redux/actions/references.ts +0 -37
  195. package/src/redux/actions/sagas/data.test.ts +0 -11
  196. package/src/redux/actions/sagas/data.ts +0 -18
  197. package/src/redux/actions/sagas/model.test.ts +0 -14
  198. package/src/redux/actions/sagas/model.ts +0 -48
  199. package/src/redux/actions/sagas/user.ts +0 -25
  200. package/src/redux/actions/smartscript.ts +0 -55
  201. package/src/redux/actions/user.test.ts +0 -18
  202. package/src/redux/actions/user.ts +0 -41
  203. package/src/redux/constants/app.ts +0 -36
  204. package/src/redux/constants/conditions.ts +0 -25
  205. package/src/redux/constants/inputs.ts +0 -15
  206. package/src/redux/constants/mandatories.ts +0 -11
  207. package/src/redux/constants/references.ts +0 -7
  208. package/src/redux/constants/sagas/data.ts +0 -1
  209. package/src/redux/constants/sagas/model.ts +0 -2
  210. package/src/redux/constants/sagas/user.ts +0 -2
  211. package/src/redux/constants/smartscript.ts +0 -9
  212. package/src/redux/constants/user.ts +0 -6
  213. package/src/redux/listeners/subscriber.test.ts +0 -45
  214. package/src/redux/listeners/subscriber.ts +0 -29
  215. package/src/redux/middlewares/conditionsWatcherMiddleware.test.ts +0 -370
  216. package/src/redux/middlewares/conditionsWatcherMiddleware.ts +0 -321
  217. package/src/redux/middlewares/evaluationsWatcherMiddleware.test.ts +0 -323
  218. package/src/redux/middlewares/evaluationsWatcherMiddleware.ts +0 -250
  219. package/src/redux/middlewares/mandatoriesWatcherMiddleware.ts +0 -473
  220. package/src/redux/middlewares/multiplesActionsMiddleware.test.ts +0 -230
  221. package/src/redux/middlewares/multiplesActionsMiddleware.ts +0 -121
  222. package/src/redux/middlewares/paginationWatcherMiddleware.ts +0 -251
  223. package/src/redux/middlewares/pluginsHookMiddleware.ts +0 -24
  224. package/src/redux/middlewares/prefillerWatcherMiddleware.test.ts +0 -118
  225. package/src/redux/middlewares/prefillerWatcherMiddleware.ts +0 -462
  226. package/src/redux/middlewares/smartscriptMiddleware.ts +0 -228
  227. package/src/redux/middlewares/thirdpartyScriptsMiddleware.ts +0 -41
  228. package/src/redux/reducers/app/customizations/initCustomizationAutoDefault.ts +0 -16
  229. package/src/redux/reducers/app/customizations/initCustomizationMeta.ts +0 -16
  230. package/src/redux/reducers/app/instance/initInstance.ts +0 -29
  231. package/src/redux/reducers/app/instance/setDataStatus.ts +0 -16
  232. package/src/redux/reducers/app/instance/updateInstance.ts +0 -30
  233. package/src/redux/reducers/app/instance/updateInstancePaid.ts +0 -20
  234. package/src/redux/reducers/app/instance.test.ts +0 -106
  235. package/src/redux/reducers/app/meta/fetchModelFailed.ts +0 -11
  236. package/src/redux/reducers/app/meta/fetchModelNonBlocking.ts +0 -11
  237. package/src/redux/reducers/app/meta/fetchModelSucceeded.ts +0 -11
  238. package/src/redux/reducers/app/meta/fetchModelUnhealthy.ts +0 -18
  239. package/src/redux/reducers/app/meta/fetchModelUserLocked.ts +0 -11
  240. package/src/redux/reducers/app/meta/initMeta.ts +0 -22
  241. package/src/redux/reducers/app/meta/setModelUuid.ts +0 -17
  242. package/src/redux/reducers/app/meta.test.ts +0 -90
  243. package/src/redux/reducers/app/pagination/goNextPage.ts +0 -69
  244. package/src/redux/reducers/app/pagination/goPage.ts +0 -81
  245. package/src/redux/reducers/app/pagination/goPreviousPage.ts +0 -60
  246. package/src/redux/reducers/app/pagination/initPagination.ts +0 -46
  247. package/src/redux/reducers/app/pagination/updateAvailableAppStates.ts +0 -77
  248. package/src/redux/reducers/app/pagination.test.ts +0 -363
  249. package/src/redux/reducers/app/wizard/updateAvailableSections.ts +0 -40
  250. package/src/redux/reducers/app/wizard.test.ts +0 -84
  251. package/src/redux/reducers/app.test.ts +0 -336
  252. package/src/redux/reducers/app.ts +0 -150
  253. package/src/redux/reducers/conditions/addMultipleOccurency.test.ts +0 -131
  254. package/src/redux/reducers/conditions/addMultipleOccurency.ts +0 -155
  255. package/src/redux/reducers/conditions/deleteMultipleOccurency.test.ts +0 -95
  256. package/src/redux/reducers/conditions/deleteMultipleOccurency.ts +0 -141
  257. package/src/redux/reducers/conditions/initConditions.ts +0 -18
  258. package/src/redux/reducers/conditions/updateDocumentConditions.test.ts +0 -47
  259. package/src/redux/reducers/conditions/updateDocumentConditions.ts +0 -21
  260. package/src/redux/reducers/conditions/updateOptionConditions.ts +0 -24
  261. package/src/redux/reducers/conditions/updateOptionValidatorCondition.test.ts +0 -50
  262. package/src/redux/reducers/conditions/updateOptionValidatorCondition.ts +0 -28
  263. package/src/redux/reducers/conditions/updatePrefillerConditions.ts +0 -29
  264. package/src/redux/reducers/conditions/updateSectionConditions.ts +0 -28
  265. package/src/redux/reducers/conditions/updateVariableConditions.ts +0 -25
  266. package/src/redux/reducers/conditions/updateVariableValidatorCondition.test.ts +0 -50
  267. package/src/redux/reducers/conditions/updateVariableValidatorCondition.ts +0 -28
  268. package/src/redux/reducers/conditions.test.ts +0 -241
  269. package/src/redux/reducers/conditions.ts +0 -68
  270. package/src/redux/reducers/inputs/addMultipleOccurency.test.ts +0 -117
  271. package/src/redux/reducers/inputs/addMultipleOccurency.ts +0 -50
  272. package/src/redux/reducers/inputs/deleteMultipleOccurency.test.ts +0 -70
  273. package/src/redux/reducers/inputs/deleteMultipleOccurency.ts +0 -50
  274. package/src/redux/reducers/inputs/initOption.ts +0 -16
  275. package/src/redux/reducers/inputs/initVariable.ts +0 -16
  276. package/src/redux/reducers/inputs/updateOptionInput.ts +0 -24
  277. package/src/redux/reducers/inputs/updateVariableInput.ts +0 -24
  278. package/src/redux/reducers/inputs.test.ts +0 -221
  279. package/src/redux/reducers/inputs.ts +0 -51
  280. package/src/redux/reducers/mandatories/addMultipleOccurency.ts +0 -52
  281. package/src/redux/reducers/mandatories/deleteMultipleOccurency.ts +0 -55
  282. package/src/redux/reducers/mandatories/initMandatoryOption.ts +0 -17
  283. package/src/redux/reducers/mandatories/initMandatoryVariable.ts +0 -17
  284. package/src/redux/reducers/mandatories/setMandatoryIgnore.ts +0 -17
  285. package/src/redux/reducers/mandatories/setMandatoryOption.ts +0 -25
  286. package/src/redux/reducers/mandatories/setMandatorySection.ts +0 -20
  287. package/src/redux/reducers/mandatories/setMandatoryVariable.ts +0 -24
  288. package/src/redux/reducers/mandatories.ts +0 -56
  289. package/src/redux/reducers/references/initReferences.ts +0 -37
  290. package/src/redux/reducers/references/updateOptionMeta.ts +0 -73
  291. package/src/redux/reducers/references/updateVariableMeta.ts +0 -72
  292. package/src/redux/reducers/references.ts +0 -59
  293. package/src/redux/reducers/smartscript/enableSmartScript.ts +0 -13
  294. package/src/redux/reducers/smartscript/initSmartScriptTriggers.ts +0 -14
  295. package/src/redux/reducers/smartscript/updateSmartscriptOptionHidden.ts +0 -30
  296. package/src/redux/reducers/smartscript/updateSmartscriptVariableHidden.ts +0 -30
  297. package/src/redux/reducers/smartscript.ts +0 -47
  298. package/src/redux/reducers/user/initUser.ts +0 -15
  299. package/src/redux/reducers/user/setUserStatus.ts +0 -13
  300. package/src/redux/reducers/user/setUserValidToken.ts +0 -13
  301. package/src/redux/reducers/user.test.ts +0 -51
  302. package/src/redux/reducers/user.ts +0 -40
  303. package/src/redux/routerHistore.test.ts +0 -19
  304. package/src/redux/routerHistory.ts +0 -26
  305. package/src/redux/sagas/fetchModel.test.ts +0 -76
  306. package/src/redux/sagas/fetchModel.ts +0 -683
  307. package/src/redux/sagas/homogeneousRadioInputsSaga.ts +0 -42
  308. package/src/redux/sagas/initInputs.ts +0 -110
  309. package/src/redux/sagas/runner.test.ts +0 -12
  310. package/src/redux/sagas/runner.ts +0 -26
  311. package/src/redux/sagas/saveData.test.ts +0 -125
  312. package/src/redux/sagas/saveData.ts +0 -116
  313. package/src/redux/sagas/setDefaults.test.ts +0 -100
  314. package/src/redux/sagas/setDefaults.ts +0 -167
  315. package/src/redux/sagas/setUserEmail.ts +0 -221
  316. package/src/redux/selectors/app.test.ts +0 -162
  317. package/src/redux/selectors/app.ts +0 -331
  318. package/src/redux/selectors/conditions.test.ts +0 -92
  319. package/src/redux/selectors/conditions.ts +0 -293
  320. package/src/redux/selectors/inputs.test.ts +0 -72
  321. package/src/redux/selectors/inputs.ts +0 -76
  322. package/src/redux/selectors/library.ts +0 -17
  323. package/src/redux/selectors/mandatories.ts +0 -83
  324. package/src/redux/selectors/references.test.ts +0 -660
  325. package/src/redux/selectors/references.ts +0 -413
  326. package/src/redux/selectors/selectors.test.ts +0 -21
  327. package/src/redux/selectors/selectors.ts +0 -87
  328. package/src/redux/selectors/smartscript.ts +0 -30
  329. package/src/redux/selectors/user.test.ts +0 -39
  330. package/src/redux/selectors/user.ts +0 -45
  331. package/src/redux/store.test.ts +0 -22
  332. package/src/redux/store.ts +0 -100
  333. package/src/service/api.manager.ts +0 -261
  334. package/src/service/auth.service.ts +0 -5
  335. package/src/service/pardot.service.ts +0 -10
  336. package/src/tests-misc/plugins/jestTestPlugin/after.tsx +0 -5
  337. package/src/tests-misc/plugins/jestTestPlugin/before.tsx +0 -11
  338. package/src/tests-misc/plugins/jestTestPlugin/index.ts +0 -11
  339. package/src/tests-misc/plugins/jestTestPlugin/title.tsx +0 -8
  340. package/src/tests-misc/themes/jestTestTheme/components/EmailComponent.tsx +0 -5
  341. package/src/tests-misc/themes/jestTestTheme/components/TermsheetComponent.tsx +0 -5
  342. package/src/tests-misc/themes/jestTestTheme/components/WizardComponent.tsx +0 -5
  343. package/src/tests-misc/themes/jestTestTheme/faltyIndex.ts +0 -3
  344. package/src/tests-misc/themes/jestTestTheme/faltyIndexLoader.ts +0 -1
  345. package/src/tests-misc/themes/jestTestTheme/index.ts +0 -13
  346. package/src/types/Actions.type.ts +0 -612
  347. package/src/types/Components.type.ts +0 -181
  348. package/src/types/State.type.ts +0 -323
  349. package/src/types/Termsheet.type.ts +0 -28
  350. package/src/types/api.type.ts +0 -37
  351. package/src/types/config.type.ts +0 -55
  352. package/src/types/env.type.ts +0 -5
  353. package/src/types/getActions.type.ts +0 -3
  354. package/src/types/getConnectors.type.ts +0 -5
  355. package/src/types/getSelectors.type.ts +0 -3
  356. package/src/wizard-params.ts +0 -56
  357. package/tsconfig.json +0 -43
package/src/App.tsx DELETED
@@ -1,152 +0,0 @@
1
- import React from "react";
2
- import { Route, Switch, Redirect, generatePath } from "react-router-dom";
3
- import { Provider } from "react-redux";
4
- import { ConnectedRouter } from "connected-react-router";
5
- import type { ModelV3 } from "@legalplace/models-v3-types";
6
- import { getStore, createAppStore } from "./redux/store";
7
- import { getHistory } from "./redux/routerHistory";
8
- import type { StateType } from "./types/State.type";
9
- import Globals, { setGlobals, IGlobalParams } from "./Globals";
10
- import { getConfig, updateConfig } from "./config";
11
- import { fetchModelPrerequisitesAction } from "./redux/actions/sagas/model";
12
- import type { IWizardParams } from "./types/config.type";
13
- import { preloadTheme } from "./helpers/preloadTheme";
14
- import ViewComponent from "./components/View";
15
- import PluginRoute from "./components/PluginRoute";
16
- import SmartScriptComponent from "./components/SmartScript";
17
- import { clearPlugins } from "./PluginLoader";
18
-
19
- // App components props interface
20
- export interface AppProps {
21
- historyType: "browser" | "memory";
22
- model?: ModelV3;
23
- meta?: StateType.App.Meta;
24
- instance?: StateType.App.Instance;
25
- user?: StateType.User;
26
- wizardParams?: IWizardParams;
27
- preloadTheme?: boolean;
28
- loadPlugin: (plugin: string) => Promise<any>;
29
- loadTheme: (theme: string) => Promise<any>;
30
- }
31
-
32
- class WizardXCore extends React.Component<AppProps, { loaded: boolean }> {
33
- constructor(props: AppProps) {
34
- super(props);
35
-
36
- // Clearing Plugins
37
- clearPlugins();
38
-
39
- // Creating the history
40
- const historyType =
41
- typeof props.historyType === "string" ? props.historyType : "browser";
42
-
43
- const params: IGlobalParams = {
44
- ...Globals,
45
- loadTheme: props.loadTheme,
46
- loadPlugin: props.loadPlugin,
47
- };
48
-
49
- // Checking model
50
- if (props.model) {
51
- params.model = props.model;
52
- }
53
-
54
- // Checking meta
55
- if (props.meta) {
56
- params.meta = props.meta;
57
- }
58
-
59
- // Checking instance
60
- if (props.instance) {
61
- params.instance = props.instance;
62
- }
63
-
64
- // Checking user
65
- if (props.user) {
66
- params.user = props.user;
67
- }
68
-
69
- // Setting Global params
70
- setGlobals(params);
71
-
72
- // Setting Wizard params
73
- if (props.wizardParams) updateConfig(props.wizardParams);
74
-
75
- // Preloading theme
76
- if (props.preloadTheme && props.wizardParams?.theme.name)
77
- preloadTheme(props.wizardParams.theme.name);
78
-
79
- // Creating the store
80
- createAppStore(historyType);
81
- }
82
-
83
- componentDidMount(): void {
84
- if (getConfig().permalink) {
85
- const { permalink, prefix, uniqid } = getConfig();
86
- if (uniqid?.trim().length) {
87
- getHistory().push(
88
- generatePath(getConfig().router.wizardInstancePath, {
89
- prefix: prefix?.trim().length ? prefix : undefined,
90
- permalink,
91
- uniqid,
92
- })
93
- );
94
- } else {
95
- getHistory().push(
96
- generatePath(getConfig().router.wizardPath, {
97
- prefix: prefix?.trim().length ? prefix : undefined,
98
- permalink,
99
- })
100
- );
101
- }
102
- }
103
-
104
- // Fetching model
105
- const { dispatch, getState } = getStore();
106
- const state = getState();
107
- dispatch(
108
- fetchModelPrerequisitesAction(
109
- getConfig().permalink || state.app.meta.permalink,
110
- getConfig().prefix || state.app.meta.prefix || ""
111
- )
112
- );
113
- }
114
-
115
- render(): JSX.Element {
116
- return (
117
- <Provider store={getStore()}>
118
- <ConnectedRouter history={getHistory()}>
119
- <Switch>
120
- {/* Plugins additional routes */}
121
- <Route path="/p/:path" component={PluginRoute} />
122
- <Route
123
- path={getConfig().router.wizardInstancePath}
124
- component={ViewComponent}
125
- />
126
- <Route
127
- path={getConfig().router.wizardPath}
128
- component={ViewComponent}
129
- />
130
-
131
- {/* SmartScript Frame */}
132
- <Route
133
- path={
134
- getConfig().router.smartscriptPath ||
135
- "/contrats/:permalink/smartscript/:uniqid?"
136
- }
137
- component={SmartScriptComponent}
138
- />
139
-
140
- <Redirect
141
- to={{
142
- pathname: getConfig().router.notFoundPath,
143
- }}
144
- />
145
- </Switch>
146
- </ConnectedRouter>
147
- </Provider>
148
- );
149
- }
150
- }
151
-
152
- export default WizardXCore;
package/src/Globals.ts DELETED
@@ -1,69 +0,0 @@
1
- declare global {
2
- interface Window {
3
- dataLayer: any;
4
- // eslint-disable-next-line camelcase
5
- google_trackConversion: (...args: any[]) => any;
6
- uetq: any;
7
- fbq: (...args: any[]) => any;
8
- mixpanel: any;
9
- sendinblue: any;
10
- ga: any;
11
- hj: any;
12
- wizardxLoadAfterLcp: ({ src: string } | Function)[];
13
- }
14
- }
15
-
16
- export interface IGlobalParams {
17
- [key: string]: any;
18
- metadata?: Record<string, any>;
19
- appEnv: string;
20
- loadPlugin: (plugin: string) => Promise<any>;
21
- loadTheme: (theme: string) => Promise<any>;
22
- }
23
-
24
- const globalParams: IGlobalParams = {
25
- model: null,
26
- instance: null,
27
- meta: null,
28
- user: null,
29
- appEnv: "production",
30
- version: null,
31
- loadPlugin: async () => {},
32
- loadTheme: async () => {},
33
- };
34
-
35
- export const setGlobals = (params: typeof globalParams) => {
36
- Object.keys(globalParams).forEach((currentParam) => {
37
- if (params[currentParam]) globalParams[currentParam] = params[currentParam];
38
- });
39
-
40
- // Setting env
41
- globalParams.appEnv =
42
- process.env.REACT_APP_ENV?.toString() ||
43
- process.env.NODE_ENV?.toString() ||
44
- "production";
45
-
46
- // Setting version
47
- globalParams.version = process.env.REACT_APP_VERSION || "0.0.0";
48
-
49
- if (
50
- globalParams.appEnv !== "production" &&
51
- process.env.JEST_WORKER_ID === undefined
52
- ) {
53
- // eslint-disable-next-line no-console
54
- console.log(
55
- `%c[WZIARDX]: Current Environment: %c${globalParams.appEnv} (${globalParams.version})`,
56
- "font-weight:bold",
57
- "font-weight: bold; color: red"
58
- );
59
- }
60
- };
61
-
62
- /**
63
- * Wrapping global params object into a proxy
64
- * to avoid adding properties to it outside
65
- * this file
66
- */
67
- const Globals: Readonly<typeof globalParams> = globalParams;
68
-
69
- export default Globals;
package/src/Loader.tsx DELETED
@@ -1,8 +0,0 @@
1
- export const Loader = () => (
2
- <div className="lps-container">
3
- <div className="lds-ripple">
4
- <div />
5
- <div />
6
- </div>
7
- </div>
8
- );
@@ -1,70 +0,0 @@
1
- import React from 'react';
2
- // @ts-ignore
3
- import ReactDOMServer from 'react-async-ssr';
4
- import '@testing-library/jest-dom/extend-expect';
5
- import { render, cleanup, waitFor } from '@testing-library/react';
6
- import loadable from '@loadable/component';
7
- import { ReplaceComponent } from './PluginLoader';
8
-
9
- jest.mock('react', () => {
10
- const rct = jest.requireActual('react');
11
- const Loadable = jest.requireActual('@loadable/component');
12
- rct.lazy = Loadable.lazy;
13
- return rct;
14
- });
15
-
16
- // Mocking config
17
- jest.mock('./config', () => ({
18
- getConfig: () => ({
19
- plugins: {
20
- jestTestPlugin: '1.0.0',
21
- },
22
- }),
23
- }));
24
-
25
- jest.mock('./Globals', () => ({
26
- loadPlugin: (plugin: string) => import(`./tests-misc/plugins/${plugin}`),
27
- }));
28
-
29
- const { loadPlugins, PluginLoader } = require('./PluginLoader');
30
-
31
- loadPlugins();
32
-
33
- describe('<PluginLoader />', () => {
34
- it('Loads "after" hook', async () => {
35
- const { container } = render(<PluginLoader anchor={['after']} />);
36
- await waitFor(() =>
37
- expect(container).toContainHTML(
38
- '<div><div class="title">Hello world - AFTER</div></div>'
39
- )
40
- );
41
- });
42
-
43
- it('Loads "before" hook', async () => {
44
- const { container } = render(<PluginLoader anchor={['before']} />);
45
- await waitFor(() =>
46
- expect(container).toContainHTML(
47
- '<div><h1>Hello<b>world</b>!!!</h1></div>'
48
- )
49
- );
50
- });
51
-
52
- it('Tries to load non existing plugin', async () => {
53
- const { container } = render(
54
- <PluginLoader anchor={['myNonExistingPlugin']} />
55
- );
56
- await waitFor(() => expect(container).toContainHTML('<div></div>'));
57
- });
58
-
59
- it('Loads replacement module', async () => {
60
- const Component = ReplaceComponent('TitleComponent', () => {
61
- return <span>Original</span>;
62
- });
63
- const { container } = render(<Component>Replaced</Component>);
64
- await waitFor(() =>
65
- expect(container).toContainHTML(
66
- '<div><h1 style="color: red;">Replaced</h1></div>'
67
- )
68
- );
69
- });
70
- });
@@ -1,407 +0,0 @@
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";
10
-
11
- // This object will be used to contain all anchors
12
- let globalAnchors: Record<string, React.FC[]> = {};
13
- let reduxAnchors: Record<string, ((...args: any) => void)[]> = {};
14
- let actionOverrideAnchor: Record<string, actionOverrideFunction[]> = {};
15
- let replacers: Record<string, React.FC> = {};
16
-
17
- export type PluginAppStatesRegisterFunction = (
18
- currentAppStates: string[]
19
- ) => string[];
20
- export type PluginsPageAppStatesType = Record<string, string>;
21
- export type actionOverrideFunction = (action: Action) => Action;
22
-
23
- export interface IPluginsAppStatesComponents {
24
- [key: string]: LoadableComponent<any>;
25
- }
26
- export interface PluginsAppStatesDeclarations {
27
- register: PluginAppStatesRegisterFunction;
28
- pageAppState: PluginsPageAppStatesType;
29
- components: IPluginsAppStatesComponents;
30
- additionalRoutes?: Record<string, ReactComponent<any>>[];
31
- }
32
-
33
- let PluginsAppStatesRegistrers: PluginAppStatesRegisterFunction[] = [];
34
- let PluginsPageAppStates: PluginsPageAppStatesType = {};
35
- let PluginsAppStatesComponents: IPluginsAppStatesComponents = {};
36
- let PluginAdditionRoutes: Record<string, ReactComponent<any>> = {};
37
-
38
- /**
39
- * Declares plugins app state on plugin loading
40
- * @param declaration Plugin app states declaration
41
- */
42
- const pluginAppStates = (declaration: PluginsAppStatesDeclarations) => {
43
- // Adding registration function
44
- PluginsAppStatesRegistrers.push(declaration.register);
45
-
46
- // Adding page app states
47
- if (typeof declaration.pageAppState === "object")
48
- Object.keys(declaration.pageAppState).forEach((appState) => {
49
- if (typeof declaration.pageAppState[appState] === "string") {
50
- const page = declaration.pageAppState[appState];
51
-
52
- // Verifying if appState is already declared
53
- if (
54
- Object.prototype.hasOwnProperty.call(PluginsPageAppStates, appState)
55
- ) {
56
- throw new Error(`Plugins AppState "${appState}" already declared.`);
57
- }
58
-
59
- // Veryfing if page is already declared
60
- const samePageAppStates = Object.keys(PluginsPageAppStates).filter(
61
- (currentAppState) => PluginsPageAppStates[currentAppState] === page
62
- );
63
- if (samePageAppStates.length > 0)
64
- throw new Error(`Plugins AppState page "${page}" already declared.`);
65
-
66
- PluginsPageAppStates[appState] = page;
67
- }
68
- });
69
-
70
- // Saving App States components
71
- Object.keys(declaration.components).forEach((appState) => {
72
- if (Object.prototype.hasOwnProperty.call(declaration, appState) === true)
73
- throw new Error(
74
- `Plugin's appState ${appState} already declared previously`
75
- );
76
-
77
- PluginsAppStatesComponents[appState] = declaration.components[appState];
78
- });
79
- };
80
-
81
- /**
82
- * Registers plugins app states
83
- * @param currentAppStates Current app states
84
- */
85
- export const registerPluginsAppStates: PluginAppStatesRegisterFunction = (
86
- currentAppStates
87
- ) => {
88
- let appStates = [...currentAppStates];
89
- PluginsAppStatesRegistrers.forEach((register) => {
90
- appStates = register(appStates);
91
- });
92
- return appStates;
93
- };
94
-
95
- /**
96
- * Loads plugin app states component
97
- * @param name AppState Name
98
- */
99
- export const loadPluginComponent = (name: string) => {
100
- if (
101
- Object.prototype.hasOwnProperty.call(PluginsAppStatesComponents, name) ===
102
- false
103
- ) {
104
- return undefined;
105
- }
106
-
107
- return PluginsAppStatesComponents[name];
108
- };
109
-
110
- /**
111
- * Checks page app states for plugins
112
- * @param page Page
113
- */
114
- export const pluginPageAppState = (page: string) => {
115
- const appStates = Object.keys(PluginsPageAppStates).filter(
116
- (appState) => PluginsPageAppStates[appState] === page
117
- );
118
- if (appStates.length === 1) return appStates[0];
119
- if (appStates.length > 1)
120
- throw new Error(
121
- `Found multipled appStates when checking for plugins page name`
122
- );
123
- return false;
124
- };
125
-
126
- /**
127
- * Returns a readyonly copy of PluginsPageAppStates
128
- */
129
- export const getPluginsPageAppStates = (): Readonly<
130
- typeof PluginsPageAppStates
131
- > => PluginsPageAppStates;
132
-
133
- const loadPluginFiles = async (pluginsList: Record<string, string>) => {
134
- const plugins = Object.keys(pluginsList);
135
- // We load all needed plugin first to continue in synchronous way
136
- const pluginModules = await Promise.all(
137
- plugins.map((plugin) => Globals.loadPlugin(plugin))
138
- );
139
-
140
- plugins.forEach((plugin, index) => {
141
- const pluginModule = pluginModules[index];
142
- const anchors = pluginModule.default;
143
- const { loader } = pluginModule;
144
-
145
- // Loading selectors if module has a loader function
146
- if (loader !== undefined) {
147
- loader(getStore().dispatch, getHistory(), getConfig(), EventsTracking);
148
- }
149
-
150
- // Looking for anchors inside the plugin
151
- Object.keys(anchors).forEach((anchor) => {
152
- if (anchor === "replace") {
153
- Object.keys(anchors[anchor]).forEach((replacer) => {
154
- // Adding current replacer
155
- replacers[replacer] = anchors[anchor][replacer];
156
- });
157
- return;
158
- }
159
-
160
- /**
161
- * App States
162
- */
163
- if (anchor === "appstates") {
164
- pluginAppStates(anchors.appstates);
165
- }
166
-
167
- /**
168
- * Redux Anchors
169
- */
170
- if (anchor === "redux") {
171
- Object.keys(anchors[anchor]).forEach((action) => {
172
- if (reduxAnchors[action] === undefined) reduxAnchors[action] = [];
173
- // Adding current action
174
- reduxAnchors[action].push(anchors[anchor][action]);
175
- });
176
- return;
177
- }
178
-
179
- /**
180
- * Action Override
181
- */
182
- if (anchor === "actionOverride") {
183
- Object.keys(anchors[anchor]).forEach((action) => {
184
- if (actionOverrideAnchor[action] === undefined)
185
- actionOverrideAnchor[action] = [];
186
- // Adding current action
187
- actionOverrideAnchor[action].push(anchors[anchor][action]);
188
- });
189
- return;
190
- }
191
-
192
- /**
193
- * Additional route
194
- */
195
- if (anchor === "additionalRoutes") {
196
- Object.keys(anchors[anchor]).forEach((route) => {
197
- PluginAdditionRoutes[anchors[anchor][route].path] =
198
- anchors[anchor][route].component;
199
- });
200
- return;
201
- }
202
-
203
- // In case no plugin has yet plugged to the anchor
204
- // we create the anchor
205
- if (!Object.prototype.hasOwnProperty.call(globalAnchors, anchor))
206
- globalAnchors[anchor] = [];
207
-
208
- // Adding current anchor
209
- globalAnchors[anchor].push(anchors[anchor]);
210
- });
211
- });
212
- };
213
-
214
- /**
215
- * Getting the plugins list from the config file
216
- */
217
- let pluginsLoadingDone = false;
218
- export const loadPlugins = async (plugins?: Record<string, string>) => {
219
- let pluginsList;
220
- if (!plugins) pluginsList = getConfig().plugins;
221
- else pluginsList = plugins;
222
-
223
- if (pluginsList === undefined) {
224
- pluginsList = getConfig().plugins;
225
- }
226
- // We need to make sure all plugins are loaded before going on
227
- await loadPluginFiles(pluginsList);
228
-
229
- pluginsLoadingDone = true;
230
- };
231
-
232
- /**
233
- * Returns whether plugins are loaded or not
234
- */
235
- export const pluginsLoaded = () => pluginsLoadingDone;
236
-
237
- // Plugin Loader props
238
- export interface PluginLoaderProps {
239
- anchor: string[];
240
- props?: Props<null>;
241
- }
242
-
243
- export type ReactComponent<T> = React.ComponentClass<T> | React.FC<T>;
244
-
245
- /**
246
- * PluginLoader component
247
- */
248
- export type TPluginLoader<T = {}> = React.FC<T & PluginLoaderProps>;
249
- export const PluginLoader: TPluginLoader = (props) => {
250
- const { anchor } = props;
251
- const anchorsList = !Array.isArray(anchor) ? [anchor] : anchor;
252
- let Plugins: React.ReactNodeArray = [];
253
-
254
- /**
255
- * Looking for anchor
256
- */
257
- for (let i = 0; i < anchorsList.length; i += 1) {
258
- const currentAnchor = anchorsList[i];
259
- if (
260
- Object.prototype.hasOwnProperty.call(globalAnchors, currentAnchor) &&
261
- globalAnchors[currentAnchor].length > 0
262
- ) {
263
- const currentPlugins = globalAnchors[currentAnchor];
264
-
265
- Plugins = [
266
- ...Plugins,
267
- ...currentPlugins.map((Plugin: React.FC) => (
268
- <React.Suspense
269
- key={`lpwp-${currentAnchor}-${Math.random()}`}
270
- fallback={null}
271
- >
272
- <Plugin {...props.props} />
273
- </React.Suspense>
274
- )),
275
- ];
276
- }
277
- }
278
-
279
- /**
280
- * Looking for the anchor
281
- */
282
- if (Plugins.length > 0) {
283
- /**
284
- * Maping plugins hooked to the anchor inside a Fragment
285
- */
286
- return <>{Plugins}</>;
287
- }
288
-
289
- // Returning null incase the anchor doesn't have any hooks
290
- // or it doesn't exist
291
- return null;
292
- };
293
-
294
- PluginLoader.propTypes = {
295
- anchor: PropTypes.arrayOf<string>(PropTypes.string.isRequired).isRequired,
296
- // eslint-disable-next-line react/forbid-prop-types
297
- props: PropTypes.object,
298
- };
299
-
300
- PluginLoader.defaultProps = {
301
- props: {},
302
- };
303
-
304
- /**
305
- *
306
- * @param replacerName Replacer name
307
- * @param OriginalComponent Original component name
308
- */
309
- let cache: Record<string, React.MemoExoticComponent<any>> = {};
310
- export function ReplaceComponent<T = {}>(
311
- replacerName: string | string[],
312
- OriginalComponent: ReactComponent<T>,
313
- componentName?: string
314
- ) {
315
- const displayName =
316
- componentName ||
317
- OriginalComponent.displayName ||
318
- OriginalComponent.name ||
319
- "Component";
320
- const anchorsList = !Array.isArray(replacerName)
321
- ? [replacerName]
322
- : replacerName;
323
- let Replacer: string | null = null;
324
-
325
- const cacheKey =
326
- anchorsList.reduce((a, b) => a + b) + OriginalComponent.toString();
327
- if (Object.prototype.hasOwnProperty.call(cache, cacheKey)) {
328
- return cache[cacheKey];
329
- }
330
-
331
- /**
332
- * Looking for anchor
333
- */
334
- for (let i = 0; i < anchorsList.length; i += 1) {
335
- const currentAnchor = anchorsList[i];
336
- if (Object.prototype.hasOwnProperty.call(replacers, currentAnchor)) {
337
- Replacer = currentAnchor;
338
- break;
339
- }
340
- }
341
-
342
- let FinalComponent: React.ComponentType<T>;
343
- if (Replacer !== null) {
344
- const ReplacerComponent: React.FC = replacers[Replacer];
345
- const FinalReplacedComponent: React.FC<T> = (props) => (
346
- <React.Suspense fallback={null}>
347
- <ReplacerComponent {...props} OriginalComponent={OriginalComponent}>
348
- {props.children}
349
- </ReplacerComponent>
350
- </React.Suspense>
351
- );
352
- FinalComponent = FinalReplacedComponent;
353
- FinalComponent.displayName = `replacedComponent(${displayName})`;
354
- } else {
355
- FinalComponent = OriginalComponent;
356
- FinalComponent.displayName = `originalComponent(${displayName})`;
357
- }
358
-
359
- cache[cacheKey] = React.memo(FinalComponent);
360
- return cache[cacheKey];
361
- }
362
-
363
- export function RunActionAnchor(anchor: string, ...args: any[]) {
364
- if (
365
- Object.prototype.hasOwnProperty.call(reduxAnchors, anchor) &&
366
- reduxAnchors[anchor].length > 0
367
- ) {
368
- reduxAnchors[anchor].forEach((currentFn) => {
369
- currentFn.call(null, ...args);
370
- });
371
- }
372
- }
373
-
374
- export function RunOverrideActionAnchor(action: Action) {
375
- let overridedAction = action;
376
- if (
377
- Object.prototype.hasOwnProperty.call(actionOverrideAnchor, action.type) &&
378
- actionOverrideAnchor[action.type].length > 0
379
- ) {
380
- actionOverrideAnchor[action.type].forEach((currentFn) => {
381
- overridedAction = currentFn.call(null, overridedAction);
382
- });
383
- }
384
-
385
- return overridedAction;
386
- }
387
-
388
- /**
389
- * Get PluginAdditional route object
390
- */
391
- export const getPluginsAdditionalRoutes = () => PluginAdditionRoutes;
392
-
393
- /**
394
- * Clears plugins
395
- */
396
- export const clearPlugins = () => {
397
- globalAnchors = {};
398
- reduxAnchors = {};
399
- actionOverrideAnchor = {};
400
- replacers = {};
401
- PluginsAppStatesRegistrers = [];
402
- PluginsPageAppStates = {};
403
- PluginsAppStatesComponents = {};
404
- PluginAdditionRoutes = {};
405
- cache = {};
406
- pluginsLoadingDone = false;
407
- };