@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
@@ -1,285 +0,0 @@
1
- import { StateType } from "../types/State.type";
2
- import {
3
- selectOptionParents,
4
- selectOptionReference,
5
- selectVariableParents,
6
- } from "../redux/selectors/references";
7
- import { selectOptionInput } from "../redux/selectors/inputs";
8
-
9
- export interface OvcType {
10
- o: {
11
- [k: string]: string | number | (string | number)[];
12
- };
13
- v: {
14
- [k: string]: string | number | (string | number)[];
15
- };
16
- c: {
17
- [k: string]: boolean | boolean[];
18
- };
19
- }
20
-
21
- class _OvcConverter {
22
- public convertToOptionsVariables(
23
- ovc: OvcType,
24
- references: StateType.References
25
- ) {
26
- const inputs: StateType.Inputs = {
27
- options: {},
28
- variables: {},
29
- };
30
-
31
- if (typeof ovc !== "object") return inputs;
32
-
33
- // Reading options
34
- if (typeof ovc.o === "object") {
35
- Object.keys(ovc.o).forEach((id) => {
36
- const currentOption = ovc.o[id];
37
-
38
- // If it's a multiple
39
- if (Array.isArray(currentOption)) {
40
- const occurences = currentOption.length;
41
- // Adding static childrens
42
- inputs.options = {
43
- ...inputs.options,
44
- ...this.pushStaticChildren(
45
- inputs.options,
46
- id,
47
- occurences,
48
- references
49
- ),
50
- };
51
- currentOption.forEach((childId, index) => {
52
- const sanitizedId =
53
- typeof childId === "string" && childId.split("_").length > 0
54
- ? childId.split("_")[0]
55
- : childId;
56
-
57
- // Making sure the input exist
58
- if (!Object.prototype.hasOwnProperty.call(inputs.options, id)) {
59
- inputs.options[id] = new Array(occurences).fill(false);
60
- }
61
-
62
- // Making sure the childId is not empty
63
- if (
64
- typeof sanitizedId === "string" &&
65
- sanitizedId.trim().length === 0
66
- ) {
67
- return;
68
- }
69
-
70
- // Creating input if it doesn't exist
71
- if (
72
- !Object.prototype.hasOwnProperty.call(inputs.options, sanitizedId)
73
- ) {
74
- inputs.options[sanitizedId] = new Array(occurences).fill(false);
75
- }
76
-
77
- // Adding static childrens
78
- inputs.options = {
79
- ...inputs.options,
80
- ...this.pushStaticChildren(
81
- inputs.options,
82
- sanitizedId,
83
- occurences,
84
- references
85
- ),
86
- };
87
-
88
- // Setting current index to true
89
- inputs.options[sanitizedId][index] = true;
90
- });
91
- } else {
92
- if (
93
- typeof currentOption === "string" &&
94
- currentOption.trim().length === 0
95
- )
96
- return;
97
- inputs.options[currentOption] = [true];
98
- }
99
- });
100
- }
101
-
102
- // Reading checkboxes
103
- if (typeof ovc.c === "object") {
104
- Object.keys(ovc.c).forEach((id) => {
105
- const currentCheckbox = ovc.c[id];
106
- if (typeof id === "string" && id.trim().length === 0) return;
107
- // If it's a multiple
108
- if (Array.isArray(currentCheckbox)) {
109
- inputs.options[id] = currentCheckbox;
110
- } else {
111
- inputs.options[id] = [currentCheckbox];
112
- }
113
- });
114
- }
115
-
116
- // Reading variables
117
- if (typeof ovc.v === "object") {
118
- Object.keys(ovc.v).forEach((id) => {
119
- const currentVariable = ovc.v[id];
120
-
121
- // If it's a multiple
122
- if (Array.isArray(currentVariable)) {
123
- inputs.variables[id] = currentVariable;
124
- // Getting parentsTree & parent id
125
- const parentsTree = references.relations.variables[id].parents;
126
- const parentOption =
127
- inputs.options[`${parentsTree[parentsTree.length - 1]}`];
128
- if (Array.isArray(parentOption)) {
129
- const occurences = parentOption.length;
130
- if (currentVariable.length < occurences) {
131
- inputs.variables[id] = [
132
- ...currentVariable,
133
- ...Array(occurences - currentVariable.length).fill(""),
134
- ];
135
- }
136
- }
137
- } else {
138
- inputs.variables[id] = [currentVariable];
139
- }
140
- });
141
- }
142
-
143
- return inputs;
144
- }
145
-
146
- public convertToOvc(inputs: StateType.Inputs) {
147
- const ovc: OvcType = {
148
- o: {},
149
- v: {},
150
- c: {},
151
- };
152
-
153
- // Reading options
154
- Object.keys(inputs.options).forEach((stringId) => {
155
- const id = parseInt(stringId, 10);
156
- const values = inputs.options[id];
157
-
158
- // Getting parentsTree & parent id
159
- const parentsTree = selectOptionParents(id);
160
- const parentId = parentsTree[0];
161
-
162
- // Getting references
163
- const optionReference = selectOptionReference(id);
164
- // Checking if it's a multiple
165
- const rootOptionId =
166
- parentsTree.length > 0 ? parentsTree[parentsTree.length - 1] : id;
167
- const isMultiple =
168
- parentsTree.length > 0 &&
169
- selectOptionReference(rootOptionId).meta.multiple?.enabled === true;
170
- const occurences = selectOptionInput(rootOptionId).length;
171
-
172
- // If it's not a radio nor a checkbox we stop here
173
- if (!["radio", "checkbox"].includes(optionReference.meta.type)) {
174
- if (values.length > 1 && rootOptionId === id) {
175
- ovc.o[id] = new Array(values.length).fill("");
176
- }
177
- return;
178
- }
179
-
180
- // Getting true indexes
181
- const trueIndexes = values
182
- .map((value, index) => (value === true ? index : null))
183
- .filter(<T>(value: T | null): value is T => value !== null);
184
-
185
- // Checking whether it's a radio or a checkbox
186
- const isCheckbox = optionReference.meta.type === "checkbox";
187
-
188
- if (isCheckbox === true) {
189
- if (isMultiple === true) {
190
- ovc.c[id] = values;
191
- } else {
192
- [ovc.c[id]] = values;
193
- }
194
- } else if (isMultiple === true) {
195
- if (!Object.prototype.hasOwnProperty.call(ovc.o, parentId)) {
196
- ovc.o[parentId] = new Array(occurences).fill("");
197
- }
198
- trueIndexes.forEach((index) => {
199
- const currentOption = ovc.o[parentId];
200
- if (Array.isArray(currentOption)) {
201
- currentOption[index] = id;
202
- }
203
- });
204
- } else if (values[0] === true) {
205
- ovc.o[parentId] = id;
206
- }
207
- });
208
-
209
- // Reading variables
210
- Object.keys(inputs.variables).forEach((stringId) => {
211
- const id = parseInt(stringId, 10);
212
- const values = inputs.variables[id];
213
-
214
- // Getting parentsTree & parent id
215
- const parentsTree = selectVariableParents(id);
216
-
217
- // Checking if it's a multiple
218
- const isMultiple =
219
- selectOptionReference(parentsTree[parentsTree.length - 1]).meta.multiple
220
- ?.enabled === true;
221
- const occurences = selectOptionInput(
222
- parentsTree[parentsTree.length - 1]
223
- ).length;
224
-
225
- if (isMultiple === true) {
226
- if (!Object.prototype.hasOwnProperty.call(ovc.o, id)) {
227
- ovc.v[id] = new Array(occurences).fill("");
228
- }
229
- ovc.v[id] = values;
230
- } else {
231
- [ovc.v[id]] = values;
232
- }
233
- });
234
-
235
- return ovc;
236
- }
237
-
238
- public isOvc(_obj: StateType.Inputs | OvcType) {
239
- if (typeof _obj !== "object" || _obj === null) return false;
240
- const ovcKeys = ["o", "v", "c"];
241
- const foundKeys = Object.keys(_obj)
242
- .map((key): number => (ovcKeys.includes(key) ? 1 : 0))
243
- .reduce((a, b) => a + b, 0);
244
-
245
- return foundKeys > 1;
246
- }
247
-
248
- public isOptionsVariables(_obj: StateType.Inputs | OvcType) {
249
- if (typeof _obj !== "object" || _obj === null) return false;
250
- const optionsVariablesKeys = ["options", "variables"];
251
- const foundKeys = Object.keys(_obj)
252
- .map((key): number => (optionsVariablesKeys.includes(key) ? 1 : 0))
253
- .reduce((a, b) => a + b, 0);
254
- return foundKeys === 2;
255
- }
256
-
257
- private pushStaticChildren(
258
- inputOptions: StateType.Inputs["options"],
259
- id: number | string,
260
- occurences: number,
261
- references: StateType.References
262
- ) {
263
- const result = { ...inputOptions };
264
- const intId = typeof id === "number" ? id : parseInt(id, 10);
265
-
266
- // Getting children options and variables
267
- const { options } = references.relations.options[intId].children;
268
-
269
- // Getting static children
270
- const staticOptions = options.filter(
271
- (childId) => references.options[childId].meta.type === "static"
272
- );
273
-
274
- staticOptions.forEach((childId) => {
275
- // Creating input if it doesn't exist
276
- if (!Object.prototype.hasOwnProperty.call(result, childId)) {
277
- result[childId] = new Array(occurences).fill(false);
278
- }
279
- });
280
-
281
- return result;
282
- }
283
- }
284
-
285
- export const OvcConverter = new _OvcConverter();
@@ -1,272 +0,0 @@
1
- import { createMatchSelector, RouterState } from "connected-react-router";
2
- import queryString from "query-string";
3
- import { getConfig } from "../config";
4
- import { StateType } from "../types/State.type";
5
- import { getPluginsPageAppStates } from "../PluginLoader";
6
- import {
7
- selectAvailableSections,
8
- selectAvailableAppStates,
9
- } from "../redux/selectors/app";
10
- import Globals from "../Globals";
11
-
12
- export class PathReader {
13
- currentPage = 1;
14
-
15
- currentSectionId = 1;
16
-
17
- currentAppState = "";
18
-
19
- currentPermalink = "";
20
-
21
- currentView = "";
22
-
23
- prefix = "";
24
-
25
- currentUniqid: string | undefined = undefined;
26
-
27
- modelVersion: string | undefined = undefined;
28
-
29
- constructor(state: StateType) {
30
- this.matchWithUniqId(state);
31
- this.matchWithoutUniqId(state);
32
-
33
- // Setting current id from state
34
- if (state.app.instance.uniqid !== "") {
35
- this.currentUniqid = state.app.instance.uniqid;
36
- }
37
- }
38
-
39
- /**
40
- * Matches paths without uniqid
41
- *
42
- * @param state Redux State
43
- */
44
- matchWithoutUniqId(state: StateType): void {
45
- type RouteType = {
46
- permalink: string;
47
- page: string;
48
- view: string;
49
- prefix: string;
50
- modelVersion: string;
51
- };
52
- const matchSelector = createMatchSelector<
53
- { router: RouterState },
54
- RouteType
55
- >(getConfig().router.wizardPath);
56
- const match = matchSelector(state);
57
-
58
- if (match) {
59
- const { permalink, page, view, prefix } = match.params;
60
- const modelVersion = queryString.parse(window.location.search).version;
61
- this.prefix = prefix || "";
62
- this.currentPermalink = Globals.permalink || permalink;
63
- this.currentPage = this.getPageNumber(page);
64
- this.currentSectionId = this.getSectionId();
65
- this.currentAppState = this.getAppState(page);
66
- this.currentView = view;
67
- this.modelVersion =
68
- typeof modelVersion === "string" ? modelVersion : undefined;
69
- }
70
- }
71
-
72
- /**
73
- * Matches paths with uniqid
74
- *
75
- * @param state Redux State
76
- */
77
- matchWithUniqId(state: StateType): void {
78
- type RouteType = {
79
- permalink: string;
80
- prefix: string;
81
- page: string;
82
- uniqid: string;
83
- view: string;
84
- modelVersion: string;
85
- };
86
- const matchSelector = createMatchSelector<
87
- { router: RouterState },
88
- RouteType
89
- >(getConfig().router.wizardInstancePath);
90
- const match = matchSelector(state);
91
-
92
- if (match) {
93
- const { permalink, page, uniqid, view, prefix } = match.params;
94
- const modelVersion = queryString.parse(window.location.search).version;
95
- this.currentPermalink = Globals.permalink || permalink;
96
- this.prefix = prefix || "";
97
- this.currentPage = this.getPageNumber(page);
98
- this.currentSectionId = this.getSectionId();
99
- this.currentUniqid = uniqid;
100
- this.currentAppState = this.getAppState(page);
101
- this.currentView = view;
102
- this.modelVersion =
103
- typeof modelVersion === "string" ? modelVersion : undefined;
104
- }
105
- }
106
-
107
- /**
108
- * Returns given pages app state name
109
- * @param page Page
110
- */
111
- getAppState(page: string) {
112
- const appStatesPages = this.getAppStatesPages();
113
-
114
- // Initiating current app State with wizard
115
- // so that we always fall back to it in case
116
- // we don't find the app state
117
- let currentAppState = "wizard";
118
-
119
- // Looking for the app state
120
- Object.keys(appStatesPages).forEach((appState) => {
121
- if (appStatesPages[appState] === page) currentAppState = appState;
122
- });
123
-
124
- return currentAppState;
125
- }
126
-
127
- /**
128
- * Recieves a page number and returns its according page name
129
- * Example: email, termsheet etc...
130
- * @param page
131
- */
132
- getPageUrlName(page: number): string {
133
- const pagesArray = this.getPagination().pages;
134
- if (page > pagesArray.length) return `${pagesArray[pagesArray.length - 1]}`;
135
- return `${pagesArray[page - 1]}`;
136
- }
137
-
138
- /**
139
- * Returns current page number from page slug
140
- * @param page Page
141
- */
142
- getPageNumber(page: string) {
143
- const { pages } = this.getPagination();
144
- const parsedPage = Number.isNaN(parseInt(page, 10))
145
- ? page
146
- : parseInt(page, 10);
147
-
148
- return pages.indexOf(parsedPage) + 1 || 1;
149
- }
150
-
151
- /**
152
- * Returns currentSectionId
153
- * @param page Page number
154
- */
155
- getSectionId(page: number = this.currentPage) {
156
- const availableSections = selectAvailableSections();
157
- const { appStates } = this.getPagination();
158
- const pageIndex = page - 1;
159
-
160
- let availableSectionsIndex = 0;
161
-
162
- if (appStates[pageIndex] === "wizard")
163
- availableSectionsIndex = pageIndex - appStates.indexOf("wizard");
164
-
165
- return availableSections[availableSectionsIndex];
166
- }
167
-
168
- /**
169
- * Returns an array containing pages names in
170
- * the correct order of pagination
171
- */
172
- getPagination() {
173
- const availableAppStates = selectAvailableAppStates();
174
-
175
- let pages: (string | number)[] = [];
176
- let appStates: string[] = [];
177
- availableAppStates.forEach((currentAppState) => {
178
- if (currentAppState === "wizard")
179
- selectAvailableSections().forEach(() => {
180
- pages = [...pages, pages.length + 1];
181
- appStates = [...appStates, "wizard"];
182
- });
183
- else if (
184
- Object.prototype.hasOwnProperty.call(
185
- this.getAppStatesPages(),
186
- currentAppState
187
- )
188
- ) {
189
- pages = [...pages, this.getAppStatesPages()[currentAppState]];
190
- appStates = [...appStates, currentAppState];
191
- } else {
192
- pages = [...pages, pages.length + 1];
193
- appStates = [...appStates, currentAppState];
194
- }
195
- });
196
-
197
- return {
198
- pages,
199
- appStates,
200
- };
201
- }
202
-
203
- /**
204
- * Returns all liste of appStates with their
205
- * corresponding page name
206
- */
207
- getAppStatesPages() {
208
- // Default Global AppStates pages
209
- const globalAppStates: Record<string, string> =
210
- getConfig().router.appStatesPages || {};
211
-
212
- // Plugins AppStates pages
213
- const pluginsAppStates = getPluginsPageAppStates();
214
-
215
- return {
216
- ...globalAppStates,
217
- ...pluginsAppStates,
218
- };
219
- }
220
-
221
- /**
222
- * Recieves page number, uniqid & modelVersion & parses the right path
223
- * according to those
224
- * @param page Page Number
225
- * @param uniqid Document's uniqid
226
- * @param modelVersion Model's version
227
- */
228
- parsePath(
229
- page: number = this.currentPage,
230
- uniqid = this.currentUniqid,
231
- modelVersion = this.modelVersion
232
- ): string {
233
- let path =
234
- uniqid === undefined
235
- ? getConfig().router.wizardPath
236
- : getConfig().router.wizardInstancePath;
237
-
238
- // Replacing Permalink
239
- path = path.replace(/:permalink(\(([^/]*)\))?/gi, this.currentPermalink);
240
-
241
- // Replacing Permalink
242
- if (this.prefix)
243
- path = path.replace(/:prefix\?(\(([^/]*)\))?/gi, this.prefix);
244
- else path = path.replace(/\/:prefix\?(\(([^/]*)\))?/gi, "");
245
- // Replacing page
246
- path = path.replace(/:page(\(([^/]*)\))?\??/gi, this.getPageUrlName(page));
247
-
248
- if (uniqid !== undefined) {
249
- // Replacing Uniqid
250
- path = path.replace(/:uniqid(\(([^/]*)\))?/gi, uniqid);
251
- }
252
-
253
- if (modelVersion !== undefined) {
254
- // Replacing Uniqid
255
- path += `?version=${modelVersion}`;
256
- }
257
-
258
- // Replacing view
259
- path = path.replace(/:view(\(([^/]*)\))?/gi, this.currentView);
260
-
261
- // Adding other additionnal query params
262
- const queryParams = queryString.parse(window.location.search);
263
- if (queryParams.version !== undefined) delete queryParams.version;
264
- const cleanQueryString = queryString.stringify(queryParams);
265
- if (cleanQueryString.length > 0) {
266
- path += modelVersion === undefined ? "?" : "&";
267
- path += cleanQueryString;
268
- }
269
-
270
- return path;
271
- }
272
- }
@@ -1,146 +0,0 @@
1
- import { SectionValidity } from './SectionValidity';
2
- import { StateType } from '../types/State.type';
3
-
4
- const mockInputs: StateType.Inputs = {
5
- options: {
6
- 1: [true],
7
- 2: [true],
8
- 3: [true],
9
- 1032: [true],
10
- },
11
- variables: {},
12
- };
13
-
14
- const mockReferences: {
15
- sections: StateType.References.Sections;
16
- options: StateType.References.Options;
17
- } = {
18
- sections: {
19
- main: {
20
- 1: {
21
- id: 1,
22
- label: 'Section 1 - Valid Section',
23
- options: [1],
24
- },
25
- 2: {
26
- id: 2,
27
- label: 'Section 2 - Unvalid Section',
28
- options: [2],
29
- },
30
- 3: {
31
- id: 3,
32
- label: 'Section 3 - Has inexistant child',
33
- options: [1032],
34
- },
35
- },
36
- },
37
- options: {
38
- 1: {
39
- meta: {
40
- type: 'checkbox',
41
- id: 1,
42
- label: 'Option 1',
43
- step: '*',
44
- },
45
- options: [],
46
- variables: [1],
47
- },
48
- 2: {
49
- meta: {
50
- type: 'checkbox',
51
- id: 2,
52
- label: 'Option 2',
53
- step: '*',
54
- },
55
- options: [3],
56
- variables: [2],
57
- },
58
- 3: {
59
- meta: {
60
- type: 'checkbox',
61
- id: 3,
62
- label: 'Option 3',
63
- step: '*',
64
- },
65
- options: [],
66
- variables: [],
67
- },
68
- },
69
- };
70
-
71
- const mockConditions: {
72
- options: StateType.Conditions.Options;
73
- variables: StateType.Conditions.Variables;
74
- validators: StateType.Conditions.Validators;
75
- } = {
76
- options: {
77
- 1: [true],
78
- 2: [true],
79
- 3: [true],
80
- },
81
- variables: {
82
- 1: [true],
83
- 2: [true],
84
- },
85
- validators: {
86
- options: {
87
- 1: [true],
88
- 2: [true],
89
- 3: [false],
90
- },
91
- variables: {
92
- 1: [true],
93
- 2: [false],
94
- },
95
- },
96
- };
97
-
98
- // ../redux/selectors/inputs.ts
99
- jest.mock('../redux/selectors/inputs', () => ({
100
- __esModule: true,
101
- selectOptionInput: (id: number) => mockInputs.options[id],
102
- selectOptionInputByIndex: (id: number, index: number) =>
103
- mockInputs.options[id][index],
104
- }));
105
-
106
- // ../redux/selectors/references.ts
107
- jest.mock('../redux/selectors/references', () => ({
108
- __esModule: true,
109
- selectSectionReference: (id: number) => mockReferences.sections.main[id],
110
- selectOptionReference: (id: number) => mockReferences.options[id],
111
- }));
112
-
113
- // ../redux/selectors/conditions.ts
114
- jest.mock('../redux/selectors/conditions', () => ({
115
- __esModule: true,
116
- selectOptionConditionValue: (id: number, index: number) =>
117
- mockConditions.options[id][index],
118
- selectOptionValidatorConditionValue: (id: number, index: number) =>
119
- mockConditions.validators.options[id][index],
120
- selectVariableConditionValue: (id: number, index: number) =>
121
- mockConditions.variables[id][index],
122
- selectVariableValidatorConditionValue: (id: number, index: number) =>
123
- mockConditions.validators.variables[id][index],
124
- }));
125
-
126
- describe('SectionValidity library test suit', () => {
127
- it('Checks valid section', () => {
128
- expect(new SectionValidity(1).validity).toBeTruthy();
129
- });
130
-
131
- it('Checks unvalid section', () => {
132
- expect(new SectionValidity(2).validity).toBeFalsy();
133
- });
134
-
135
- it('Should throw an error if option reference does not exist', () => {
136
- expect(() => new SectionValidity(3).validity).toThrowError(
137
- 'Option 1032 does not exist'
138
- );
139
- });
140
-
141
- it('Should throw an error if section does not exist', () => {
142
- expect(() => new SectionValidity(4).validity).toThrowError(
143
- 'Section 4 does not exist'
144
- );
145
- });
146
- });