@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,276 +0,0 @@
1
- import Cookies from "universal-cookie";
2
- import Globals from "../Globals";
3
-
4
- export type EventsPropsType = Record<
5
- string,
6
- string | number | boolean | Record<string, string | number | boolean>
7
- >;
8
-
9
- const cookie = new Cookies();
10
-
11
- class _EventsTracking {
12
- private initiated = false;
13
-
14
- private queue: [string, any[]][] = [];
15
-
16
- private queueTimer: ReturnType<typeof setTimeout> | null = null;
17
-
18
- public track(eventName: string, eventProps?: EventsPropsType) {
19
- if (!this.initiated) this.init();
20
-
21
- // Mixpanel
22
- this.trackMix(eventName, { ...eventProps });
23
-
24
- // Facebook Pixel
25
- this.trackFB(eventName, { ...eventProps });
26
-
27
- // Google Analytics
28
- this.trackGA(eventName, { ...eventProps });
29
-
30
- // Sendinblue
31
- this.trackSIB(eventName, { ...eventProps });
32
- }
33
-
34
- public register(props: EventsPropsType) {
35
- if (!this.initiated) this.init();
36
-
37
- // Mixpanel
38
- this.registerMix(props);
39
-
40
- // Facebook Pixel
41
- this.registerFB(props);
42
- }
43
-
44
- public trigger(name: string) {
45
- if (!this.initiated) this.init();
46
-
47
- // Hotjar
48
- this.triggerHj(name);
49
- }
50
-
51
- private init() {
52
- this.initiated = true;
53
- this.register({
54
- "WizardX Build Commit":
55
- process.env.REACT_APP_COMMIT || "Unkown build commit",
56
- Environement: Globals.appEnv,
57
- "Powered By": "WizardX",
58
- ...this.getXSource(),
59
- ...this.getXAbTests(),
60
- });
61
- this.trigger("wizardx");
62
- }
63
-
64
- private getXSource(): Record<string, string> {
65
- const xSource = cookie.get("X-Source");
66
-
67
- return typeof xSource === "string" && xSource.trim().length > 0
68
- ? {
69
- "X-Source": xSource,
70
- }
71
- : {};
72
- }
73
-
74
- private getXAbTests(): Record<string, string> {
75
- const xAbTests = cookie.get("X-AbTests");
76
-
77
- if (typeof xAbTests === "object") {
78
- const xAbTestsFlattened: Record<string, string> = {};
79
-
80
- Object.keys(xAbTests).forEach((abTestName) => {
81
- xAbTestsFlattened[`X-AbTests[${abTestName}]`] = xAbTests[abTestName];
82
- });
83
-
84
- return xAbTestsFlattened;
85
- }
86
-
87
- return typeof xAbTests === "string" && xAbTests.trim().length > 0
88
- ? {
89
- "X-AbTests": xAbTests,
90
- }
91
- : {};
92
- }
93
-
94
- /**
95
- * Executes events tracking queue
96
- */
97
- private executeQueue() {
98
- for (let i = 0; i < this.queue.length; i += 1) {
99
- const currentEvent = this.queue[i];
100
- const args = [];
101
- const [fnName] = currentEvent;
102
- if (currentEvent.length > 1) {
103
- for (let x = 0; x < currentEvent[1].length; x += 1)
104
- args.push(currentEvent[1][x]);
105
-
106
- args.push(true);
107
-
108
- let fn: (...a: any) => any;
109
-
110
- switch (fnName) {
111
- case "trackMix":
112
- fn = this.trackMix.bind(this);
113
- break;
114
- case "trackFB":
115
- fn = this.trackFB.bind(this);
116
- break;
117
- case "trackGA":
118
- fn = this.trackGA.bind(this);
119
- break;
120
- case "trackSIB":
121
- fn = this.trackSIB.bind(this);
122
- break;
123
- case "registerMix":
124
- fn = this.registerMix.bind(this);
125
- break;
126
- case "registerFB":
127
- fn = this.registerFB.bind(this);
128
- break;
129
- case "triggerHj":
130
- fn = this.triggerHj.bind(this);
131
- break;
132
- default:
133
- throw new Error(
134
- `Unkown function "${fnName}" found on events tracking queue`
135
- );
136
- }
137
-
138
- // Getting function
139
- const result = fn(...args);
140
- if (result === true) {
141
- this.queue.splice(i, 1);
142
- }
143
- }
144
- }
145
- }
146
-
147
- private queueTimeout() {
148
- if (this.queueTimer !== null) clearTimeout(this.queueTimer);
149
-
150
- this.queueTimer = setTimeout(() => {
151
- this.executeQueue();
152
- }, 50);
153
- }
154
-
155
- public trackMix(
156
- eventName: string,
157
- eventProps?: EventsPropsType,
158
- doNotPushToQueue = false
159
- ) {
160
- if (!this.initiated) this.init();
161
-
162
- if (typeof window.mixpanel !== "undefined") {
163
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
164
- window.mixpanel.track(eventName, eventProps);
165
- return true;
166
- }
167
-
168
- if (doNotPushToQueue === false)
169
- this.queue.push(["trackMix", [eventName, eventProps]]);
170
-
171
- this.queueTimeout();
172
- return false;
173
- }
174
-
175
- public trackSIB(
176
- eventName: string,
177
- eventProps?: EventsPropsType,
178
- doNotPushToQueue = false
179
- ) {
180
- if (!this.initiated) this.init();
181
-
182
- if (typeof window.sendinblue !== "undefined") {
183
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
184
- window.sendinblue.track(eventName, eventProps);
185
- return true;
186
- }
187
-
188
- if (doNotPushToQueue === false)
189
- this.queue.push(["trackSIB", [eventName, eventProps]]);
190
-
191
- this.queueTimeout();
192
- return false;
193
- }
194
-
195
- private trackFB(
196
- eventName: string,
197
- eventProps?: EventsPropsType,
198
- doNotPushToQueue = false
199
- ) {
200
- if (typeof window.fbq !== "undefined") {
201
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
202
- window.fbq("trackCustom", eventName, eventProps);
203
- return true;
204
- }
205
-
206
- if (doNotPushToQueue === false)
207
- this.queue.push(["trackFB", [eventName, eventProps]]);
208
-
209
- this.queueTimeout();
210
- return false;
211
- }
212
-
213
- private trackGA(
214
- eventName: string,
215
- eventProps?: EventsPropsType,
216
- doNotPushToQueue = false
217
- ) {
218
- if (typeof window.ga !== "undefined") {
219
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
220
- window.ga(
221
- "send",
222
- "event",
223
- "lpTracking",
224
- "track",
225
- eventName,
226
- 1,
227
- eventProps
228
- );
229
- return true;
230
- }
231
-
232
- if (doNotPushToQueue === false)
233
- this.queue.push(["trackGA", [eventName, eventProps]]);
234
-
235
- this.queueTimeout();
236
- return false;
237
- }
238
-
239
- private registerMix(props: EventsPropsType, doNotPushToQueue = false) {
240
- if (typeof window.mixpanel !== "undefined") {
241
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
242
- window.mixpanel.register(props);
243
- return true;
244
- }
245
- if (doNotPushToQueue === false) this.queue.push(["registerMix", [props]]);
246
-
247
- this.queueTimeout();
248
- return false;
249
- }
250
-
251
- private registerFB(props: EventsPropsType, doNotPushToQueue = false) {
252
- if (typeof window.fbq !== "undefined") {
253
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
254
- window.fbq("trackCustom", "GeneralProps", props);
255
- return true;
256
- }
257
- if (doNotPushToQueue === false) this.queue.push(["registerFB", [props]]);
258
-
259
- this.queueTimeout();
260
- return false;
261
- }
262
-
263
- private triggerHj(name: string, doNotPushToQueue = false) {
264
- if (typeof window.hj !== "undefined") {
265
- if (this.queue.length > 0 && !doNotPushToQueue) this.executeQueue();
266
- window.hj("trigger", name);
267
- return true;
268
- }
269
- if (doNotPushToQueue === false) this.queue.push(["triggerHj", [name]]);
270
-
271
- this.queueTimeout();
272
- return false;
273
- }
274
- }
275
-
276
- export const EventsTracking = new _EventsTracking();
@@ -1,159 +0,0 @@
1
- import type { ExtractV3 } from "@legalplace/models-v3-types";
2
- import { selectCustomizationMeta } from "../redux/selectors/app";
3
- import { selectUserEmail } from "../redux/selectors/user";
4
- import {
5
- selectOptionInput,
6
- selectVariableInput,
7
- } from "../redux/selectors/inputs";
8
- import {
9
- selectOptionReference,
10
- selectVariableReference,
11
- } from "../redux/selectors/references";
12
- import { EventsTracking } from "./EventsTracking";
13
-
14
- export interface ExtractObject {
15
- name: string;
16
- value: string;
17
- }
18
-
19
- class Extracts {
20
- private extracts: Readonly<ExtractV3[]> = [];
21
-
22
- private slackExtracts: {
23
- [k: string]: ExtractObject[];
24
- } = {};
25
-
26
- private sendinblueExtracts: { [k: string]: string } = {};
27
-
28
- private mixpanelExtracts: { [k: string]: string } = {};
29
-
30
- extractData() {
31
- const customizationMeta = selectCustomizationMeta();
32
- if (
33
- !(
34
- typeof customizationMeta === "object" &&
35
- Array.isArray(customizationMeta.extracts) &&
36
- customizationMeta.extracts.length > 0
37
- )
38
- )
39
- return;
40
- this.extracts = customizationMeta.extracts;
41
- this.prepareExtracts();
42
- this.sendSlackMessages();
43
- // this.sendSendinblue(); Remove SIB data sent there we send all in the identify
44
- this.sendMixpanel();
45
- }
46
-
47
- getSibExtractedData() {
48
- return this.sendinblueExtracts;
49
- }
50
-
51
- private prepareExtracts() {
52
- this.extracts.forEach((extract) => {
53
- const { id, type, destination } = extract;
54
- let inputs: Readonly<string[]>;
55
- let defaultName: string;
56
-
57
- // Getting inputs
58
- if (type === "option") {
59
- inputs = selectOptionInput(id).map((value) =>
60
- value === true ? "True" : "False"
61
- );
62
- defaultName = selectOptionReference(id).meta.label;
63
- } else if (type === "variable") {
64
- inputs = selectVariableInput(id).map((value) => value.toString());
65
- defaultName = selectVariableReference(id, true).label;
66
- } else {
67
- throw new Error(`Unkown extract type ${type}`);
68
- }
69
-
70
- // Making sure default name is never empty
71
- defaultName =
72
- defaultName.trim().length > 0 ? defaultName : `${type} ${id}`;
73
-
74
- // Joining inputs
75
- const value =
76
- inputs.length > 1 ? inputs.join(", ").slice(0, -2) : inputs[0];
77
-
78
- // Slack
79
- if (
80
- typeof destination.slack === "object" &&
81
- typeof destination.slack.channel === "string" &&
82
- destination.slack.channel.trim().length > 0
83
- ) {
84
- const { name, channel } = destination.slack;
85
-
86
- if (this.slackExtracts[channel] === undefined)
87
- this.slackExtracts[channel] = [];
88
-
89
- this.slackExtracts[channel].push({
90
- name: name || defaultName,
91
- value,
92
- });
93
- }
94
-
95
- // Sendinblue
96
- if (typeof destination.sendinblue === "object" && value && value.trim()) {
97
- const name = destination.sendinblue.name || defaultName;
98
-
99
- this.sendinblueExtracts = {
100
- ...this.sendinblueExtracts,
101
- [name]: value,
102
- };
103
- }
104
-
105
- // Mixpanel
106
- if (typeof destination.mixpanel === "object") {
107
- const name = destination.mixpanel.name || defaultName;
108
-
109
- this.mixpanelExtracts = {
110
- ...this.mixpanelExtracts,
111
- [name]: value,
112
- };
113
- }
114
- });
115
- }
116
-
117
- private sendSlackMessages() {
118
- const channels = Object.keys(this.slackExtracts);
119
- channels.forEach((currentChannel) => {
120
- const text = this.formatSlackMessage(currentChannel);
121
- const json = {
122
- username: "WizardX Extract Bot",
123
- icon_emoji: ":robot_face:",
124
- channel: currentChannel,
125
- attachments: [
126
- {
127
- text,
128
- },
129
- ],
130
- };
131
-
132
- // Sending Slack Message
133
- fetch(
134
- "https://hooks.slack.com/services/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",
135
- {
136
- body: JSON.stringify(json),
137
- method: "POST",
138
- }
139
- ).catch(async (err) => {
140
- throw new Error(err);
141
- });
142
- });
143
- }
144
-
145
- private sendMixpanel() {
146
- EventsTracking.trackMix("Variable Extraction", this.mixpanelExtracts);
147
- }
148
-
149
- private formatSlackMessage(channel: string) {
150
- const lines = [`Email: ${selectUserEmail()}`];
151
- this.slackExtracts[channel].forEach((extract) => {
152
- const { name, value } = extract;
153
- lines.push(`*${name}:* ${value}`);
154
- });
155
- return lines.join("\n");
156
- }
157
- }
158
-
159
- export default new Extracts();
@@ -1,136 +0,0 @@
1
- import { StateType } from "../types/State.type";
2
-
3
- export type OVC_TYPE = {
4
- options: {
5
- [key: string]: boolean[];
6
- };
7
- variables: {
8
- [key: string]: (number | string)[];
9
- };
10
- };
11
- export class IntputsInitiator {
12
- private inputs: StateType.Inputs = {
13
- options: {},
14
- variables: {},
15
- };
16
-
17
- private references: StateType.References;
18
-
19
- private ovc: OVC_TYPE | null;
20
-
21
- /**
22
- * InitalConditions Constructor
23
- * @param references References object
24
- */
25
- constructor(references: StateType.References, ovc: OVC_TYPE | null) {
26
- this.references = references;
27
- this.ovc = ovc;
28
-
29
- // Setting multiples
30
- this.setMultiples();
31
-
32
- // Initiating inputs
33
- this.initOptionsInputs();
34
- this.initVariablesInputs();
35
- }
36
-
37
- public getInputs() {
38
- return this.inputs;
39
- }
40
-
41
- private setMultiples() {
42
- if (this.ovc === null) return;
43
- Object.keys(this.ovc.options).forEach((id) => {
44
- if (this.ovc === null) return;
45
- const inputs = this.ovc.options[id];
46
-
47
- if (inputs.length > 1) {
48
- // Getting parents
49
- const parentsTree = this.references.relations.options[id].parents;
50
-
51
- // root parent
52
- const rootOptionId =
53
- parentsTree.length > 0 ? parentsTree[parentsTree.length - 1] : id;
54
-
55
- if (!this.ovc.options[rootOptionId]) {
56
- // root Option reference
57
- const rootReference = this.references.options[rootOptionId];
58
- if (rootReference.meta.type === "static") {
59
- this.ovc.options[rootOptionId] = new Array(inputs.length).fill(
60
- true
61
- );
62
- }
63
- }
64
- }
65
- });
66
- }
67
-
68
- /**
69
- * Initates options inputs
70
- */
71
- private initOptionsInputs() {
72
- // Options
73
- const optionsIds = Object.keys(this.references.options);
74
- for (let i = 0; i < optionsIds.length; i += 1) {
75
- const optionId = optionsIds[i];
76
- const option = this.references.options[optionId];
77
-
78
- let values = [false];
79
- if (
80
- this.ovc &&
81
- Object.prototype.hasOwnProperty.call(this.ovc.options, optionId)
82
- ) {
83
- if (
84
- [
85
- "static",
86
- "hidden",
87
- "brut-text",
88
- "repeated",
89
- "box",
90
- "separator",
91
- ].includes(option.meta.type)
92
- ) {
93
- values = new Array(this.ovc.options[optionId].length).fill(true);
94
- } else {
95
- values = this.ovc.options[optionId];
96
- }
97
- } else if (
98
- [
99
- "static",
100
- "hidden",
101
- "brut-text",
102
- "repeated",
103
- "box",
104
- "separator",
105
- ].includes(option.meta.type)
106
- ) {
107
- values = [true];
108
- }
109
-
110
- this.inputs.options[optionId] = values;
111
- }
112
- }
113
-
114
- /**
115
- * Initates variables inputs
116
- */
117
- private initVariablesInputs() {
118
- const variablesIds = Object.keys(this.references.variables);
119
- for (let i = 0; i < variablesIds.length; i += 1) {
120
- const variableId = variablesIds[i];
121
-
122
- let values: (string | number)[] = [""];
123
- if (
124
- this.ovc &&
125
- Object.prototype.hasOwnProperty.call(this.ovc.variables, variableId)
126
- ) {
127
- values = this.ovc.variables[variableId];
128
- } else {
129
- const defaultValue = "";
130
- values = [defaultValue];
131
- }
132
-
133
- this.inputs.variables[variableId] = values;
134
- }
135
- }
136
- }
@@ -1,55 +0,0 @@
1
- import { NumAuto } from './NumAuto';
2
-
3
- describe('NumAuto Test Suit', () => {
4
- it('Resets properly', () => {
5
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(1);
6
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(2);
7
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(3);
8
- NumAuto.resetNums();
9
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(1);
10
- NumAuto.resetNums();
11
- });
12
-
13
- it('It increments indexes correctly', () => {
14
- NumAuto.resetNums();
15
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(1);
16
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(2);
17
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(1);
18
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(3);
19
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(2);
20
- });
21
-
22
- it('It tags properly', () => {
23
- NumAuto.resetNums();
24
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(1);
25
- expect(NumAuto.getNum('myTestIndex', 'myTestTag')).toEqual(2);
26
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(3);
27
-
28
- // Getting tag
29
- expect(NumAuto.getNumPre('myTestTag', 0, 0)).toEqual(2);
30
- expect(NumAuto.getNum('myTestTag', null)).toEqual(2);
31
- });
32
-
33
- it('It returns previous indexes correctly', () => {
34
- NumAuto.resetNums();
35
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(1);
36
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(2);
37
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(1);
38
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(3);
39
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(2);
40
-
41
- // NumPre
42
- expect(NumAuto.getNumPre('myTestIndex', 0, 1)).toEqual(3);
43
- expect(NumAuto.getNumPre('myOtherTestIndex', 0, 0)).toEqual(2);
44
-
45
- // Incrementing again
46
- expect(NumAuto.getNum('myTestIndex', null)).toEqual(4);
47
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(3);
48
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(4);
49
- expect(NumAuto.getNum('myOtherTestIndex', null)).toEqual(5);
50
-
51
- // NumPre
52
- expect(NumAuto.getNumPre('myTestIndex', 0, 0)).toEqual(4);
53
- expect(NumAuto.getNumPre('myOtherTestIndex', 0, 1)).toEqual(5);
54
- });
55
- });
@@ -1,56 +0,0 @@
1
- class _NumAuto {
2
- numsList: Record<string, any> = {};
3
-
4
- tagsCatalog: Record<string, number> = {};
5
-
6
- /**
7
- * Increments the given catalog by 1 and
8
- * returns the count
9
- * @param catalog Catalog name
10
- */
11
- getNum = (catalog: string, tag: string | null): number => {
12
- // In case the catalog doesn't exist
13
- if (!Object.prototype.hasOwnProperty.call(this.numsList, catalog)) {
14
- // Let's first make sure it's not a tag and return it if it is
15
- if (Object.prototype.hasOwnProperty.call(this.tagsCatalog, catalog))
16
- return this.tagsCatalog[catalog];
17
-
18
- // Otherwise we set a new catalog
19
- this.numsList[catalog] = 0;
20
- }
21
-
22
- this.numsList[catalog] += 1;
23
-
24
- if (typeof tag === "string") this.tagsCatalog[tag] = this.numsList[catalog];
25
-
26
- return this.numsList[catalog];
27
- };
28
-
29
- /**
30
- * Returns the current count of the given catalog
31
- * @param catalog Catalog name
32
- */
33
- getNumPre = (
34
- catalog: string,
35
- index: number,
36
- siblingsCount: number
37
- ): number => {
38
- // In case the catalog doesn't exist
39
- if (!Object.prototype.hasOwnProperty.call(this.numsList, catalog)) {
40
- // Let's first make sure it's not a tag and return it if it is
41
- if (Object.prototype.hasOwnProperty.call(this.tagsCatalog, catalog))
42
- return siblingsCount > 0
43
- ? this.tagsCatalog[catalog] - (siblingsCount - (index + 1))
44
- : this.tagsCatalog[catalog];
45
- }
46
- return siblingsCount > 0
47
- ? this.numsList[catalog] - (siblingsCount - (index + 1))
48
- : this.numsList[catalog];
49
- };
50
-
51
- resetNums = () => {
52
- this.numsList = {};
53
- };
54
- }
55
-
56
- export const NumAuto = new _NumAuto();