@legalplace/wizardx-core 2.6.4 → 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 (346) hide show
  1. package/CHANGELOG.md +35 -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/helpers/apiEndpoint.d.ts +1 -0
  31. package/dist/helpers/apiEndpoint.js +4 -0
  32. package/dist/helpers/index.d.ts +4 -0
  33. package/dist/helpers/index.js +4 -0
  34. package/dist/helpers/propsEqualityCheck.d.ts +1 -0
  35. package/dist/helpers/propsEqualityCheck.js +9 -0
  36. package/dist/hooks/index.d.ts +4 -0
  37. package/dist/hooks/index.js +4 -0
  38. package/dist/hooks/useActions.d.ts +2 -0
  39. package/dist/hooks/useActions.js +4 -0
  40. package/dist/hooks/useDispatch.d.ts +1 -0
  41. package/dist/hooks/useDispatch.js +4 -0
  42. package/dist/hooks/useSelectors.d.ts +2 -0
  43. package/dist/hooks/useSelectors.js +4 -0
  44. package/dist/index.d.ts +13 -0
  45. package/dist/index.js +13 -0
  46. package/dist/libs/PathReader.d.ts +10 -6
  47. package/dist/libs/PathReader.js +47 -28
  48. package/dist/libs/index.d.ts +5 -0
  49. package/dist/libs/index.js +5 -0
  50. package/dist/redux/actions/index.d.ts +9 -0
  51. package/dist/redux/actions/index.js +9 -0
  52. package/dist/redux/actions/library.d.ts +59 -63
  53. package/dist/redux/actions/sagas/index.d.ts +3 -0
  54. package/dist/redux/actions/sagas/index.js +3 -0
  55. package/dist/redux/actions/sagas/model.d.ts +1 -5
  56. package/dist/redux/constants/app.d.ts +2 -0
  57. package/dist/redux/constants/app.js +2 -0
  58. package/dist/redux/constants/index.d.ts +8 -0
  59. package/dist/redux/constants/index.js +8 -0
  60. package/dist/redux/constants/sagas/index.d.ts +3 -0
  61. package/dist/redux/constants/sagas/index.js +3 -0
  62. package/dist/redux/index.d.ts +5 -0
  63. package/dist/redux/index.js +5 -0
  64. package/dist/redux/middlewares/conditionsWatcherMiddleware.js +11 -5
  65. package/dist/redux/middlewares/conditionsWatcherMiddleware.test.js +120 -113
  66. package/dist/redux/middlewares/paginationWatcherMiddleware.js +2 -2
  67. package/dist/redux/middlewares/smartscriptMiddleware.js +8 -0
  68. package/dist/redux/reducers/pluginsStore.d.ts +3 -0
  69. package/dist/redux/reducers/pluginsStore.js +12 -0
  70. package/dist/redux/routerHistory.js +2 -2
  71. package/dist/redux/sagas/fetchModel.js +22 -6
  72. package/dist/redux/sagas/initInputs.js +6 -7
  73. package/dist/redux/sagas/saveData.js +2 -0
  74. package/dist/redux/selectors/app.js +13 -18
  75. package/dist/redux/selectors/cache.d.ts +17 -0
  76. package/dist/redux/selectors/cache.js +35 -0
  77. package/dist/redux/selectors/conditions.js +7 -7
  78. package/dist/redux/selectors/index.d.ts +8 -0
  79. package/dist/redux/selectors/index.js +8 -0
  80. package/dist/redux/selectors/inputs.js +3 -3
  81. package/dist/redux/selectors/library.d.ts +2 -2
  82. package/dist/redux/selectors/references.js +26 -26
  83. package/dist/redux/selectors/selectors.d.ts +2 -2
  84. package/dist/redux/selectors/selectors.js +19 -8
  85. package/dist/redux/selectors/selectors.test.js +6 -6
  86. package/dist/redux/selectors/user.js +5 -5
  87. package/dist/redux/store.d.ts +1 -1
  88. package/dist/redux/store.js +12 -4
  89. package/dist/service/api.manager.d.ts +1 -6
  90. package/dist/service/index.d.ts +3 -0
  91. package/dist/service/index.js +3 -0
  92. package/dist/types/PluginConfig.type.d.ts +57 -0
  93. package/dist/types/PluginConfig.type.js +1 -0
  94. package/dist/types/State.type.d.ts +6 -0
  95. package/dist/types/config.type.d.ts +3 -1
  96. package/dist/types/index.d.ts +11 -0
  97. package/dist/types/index.js +11 -0
  98. package/package.json +11 -11
  99. package/.depcheckrc +0 -1
  100. package/.eslintignore +0 -2
  101. package/.eslintrc +0 -5
  102. package/__mocks__/fileMock.js +0 -1
  103. package/babel.config.json +0 -3
  104. package/jest.config.ts +0 -193
  105. package/setupJest.ts +0 -8
  106. package/src/App.test.tsx +0 -41
  107. package/src/App.tsx +0 -152
  108. package/src/Globals.ts +0 -69
  109. package/src/Loader.tsx +0 -8
  110. package/src/PluginLoader.test.tsx +0 -70
  111. package/src/PluginLoader.tsx +0 -407
  112. package/src/Shimmer.tsx +0 -108
  113. package/src/ThemeLoader.test.tsx +0 -82
  114. package/src/ThemeLoader.tsx +0 -95
  115. package/src/components/PluginRoute.tsx +0 -48
  116. package/src/components/SmartScript.tsx +0 -166
  117. package/src/components/UserLocked/UserLockedComponent.tsx +0 -33
  118. package/src/components/View.test.tsx +0 -110
  119. package/src/components/View.tsx +0 -114
  120. package/src/componentsConnectors/connectBox.test.tsx +0 -226
  121. package/src/componentsConnectors/connectBox.tsx +0 -70
  122. package/src/componentsConnectors/connectDocument.test.tsx +0 -108
  123. package/src/componentsConnectors/connectDocument.tsx +0 -64
  124. package/src/componentsConnectors/connectHeader.tsx +0 -21
  125. package/src/componentsConnectors/connectMetaTitle.test.tsx +0 -40
  126. package/src/componentsConnectors/connectMetaTitle.tsx +0 -8
  127. package/src/componentsConnectors/connectOption.tsx +0 -222
  128. package/src/componentsConnectors/connectPagination.tsx +0 -102
  129. package/src/componentsConnectors/connectPreview.tsx +0 -5
  130. package/src/componentsConnectors/connectProgress.tsx +0 -59
  131. package/src/componentsConnectors/connectRootOption.tsx +0 -95
  132. package/src/componentsConnectors/connectSection.tsx +0 -79
  133. package/src/componentsConnectors/connectSummary.tsx +0 -21
  134. package/src/componentsConnectors/connectSummaryItem.tsx +0 -102
  135. package/src/componentsConnectors/connectTermsheet.tsx +0 -359
  136. package/src/componentsConnectors/connectVariable.tsx +0 -191
  137. package/src/componentsConnectors/connectWizardWrapper.tsx +0 -30
  138. package/src/componentsConnectors/connector/componentConnector.tsx +0 -219
  139. package/src/componentsConnectors/library.ts +0 -35
  140. package/src/config.test.ts +0 -63
  141. package/src/config.ts +0 -11
  142. package/src/constants/emailValidation.ts +0 -2
  143. package/src/constants/phoneValidation.ts +0 -4
  144. package/src/definitions/path.join.d.ts +0 -4
  145. package/src/helpers/outputsParsing.ts +0 -412
  146. package/src/helpers/preloadTheme.ts +0 -17
  147. package/src/helpers/scriptsLoader.ts +0 -20
  148. package/src/hooks/usePrevious.ts +0 -9
  149. package/src/libs/ConditionsInitiator.ts +0 -164
  150. package/src/libs/ConditionsRunner/DataPopulator.ts +0 -266
  151. package/src/libs/ConditionsRunner.ts +0 -454
  152. package/src/libs/DocumentsOutputs.ts +0 -171
  153. package/src/libs/Eval/EvalBase.ts +0 -116
  154. package/src/libs/Eval/EvalFunctions.ts +0 -724
  155. package/src/libs/Eval/NumbersToLetters.ts +0 -185
  156. package/src/libs/EvalVariable.ts +0 -265
  157. package/src/libs/EventsTracking.ts +0 -250
  158. package/src/libs/InputsInitiator.ts +0 -136
  159. package/src/libs/NumAuto.test.ts +0 -55
  160. package/src/libs/NumAuto.ts +0 -56
  161. package/src/libs/OvcConverter.ts +0 -285
  162. package/src/libs/PathReader.ts +0 -272
  163. package/src/libs/SectionValidity.test.ts +0 -146
  164. package/src/libs/SectionValidity.ts +0 -110
  165. package/src/libs/SmartScriptStore.ts +0 -492
  166. package/src/misc/test_model.ts +0 -14603
  167. package/src/misc/test_models/connectDocumen.testmodel.json +0 -178
  168. package/src/misc/test_models/setDefaults.testmodel.json +0 -279
  169. package/src/misc/test_models/testmodel.json +0 -1
  170. package/src/polyfills/index.ts +0 -5
  171. package/src/polyfills/objectValues.ts +0 -4
  172. package/src/polyfills/prepend.ts +0 -31
  173. package/src/polyfills/stringRepeat.ts +0 -44
  174. package/src/redux/actions/app.test.ts +0 -123
  175. package/src/redux/actions/app.ts +0 -249
  176. package/src/redux/actions/conditions.test.ts +0 -84
  177. package/src/redux/actions/conditions.ts +0 -135
  178. package/src/redux/actions/inputs.test.ts +0 -85
  179. package/src/redux/actions/inputs.ts +0 -111
  180. package/src/redux/actions/library.ts +0 -23
  181. package/src/redux/actions/mandatories.ts +0 -98
  182. package/src/redux/actions/references.test.ts +0 -48
  183. package/src/redux/actions/references.ts +0 -37
  184. package/src/redux/actions/sagas/data.test.ts +0 -11
  185. package/src/redux/actions/sagas/data.ts +0 -18
  186. package/src/redux/actions/sagas/model.test.ts +0 -14
  187. package/src/redux/actions/sagas/model.ts +0 -48
  188. package/src/redux/actions/sagas/user.ts +0 -25
  189. package/src/redux/actions/smartscript.ts +0 -55
  190. package/src/redux/actions/user.test.ts +0 -18
  191. package/src/redux/actions/user.ts +0 -41
  192. package/src/redux/constants/app.ts +0 -36
  193. package/src/redux/constants/conditions.ts +0 -25
  194. package/src/redux/constants/inputs.ts +0 -15
  195. package/src/redux/constants/mandatories.ts +0 -11
  196. package/src/redux/constants/references.ts +0 -7
  197. package/src/redux/constants/sagas/data.ts +0 -1
  198. package/src/redux/constants/sagas/model.ts +0 -2
  199. package/src/redux/constants/sagas/user.ts +0 -2
  200. package/src/redux/constants/smartscript.ts +0 -9
  201. package/src/redux/constants/user.ts +0 -6
  202. package/src/redux/listeners/subscriber.test.ts +0 -45
  203. package/src/redux/listeners/subscriber.ts +0 -29
  204. package/src/redux/middlewares/conditionsWatcherMiddleware.test.ts +0 -370
  205. package/src/redux/middlewares/conditionsWatcherMiddleware.ts +0 -321
  206. package/src/redux/middlewares/evaluationsWatcherMiddleware.test.ts +0 -323
  207. package/src/redux/middlewares/evaluationsWatcherMiddleware.ts +0 -250
  208. package/src/redux/middlewares/mandatoriesWatcherMiddleware.ts +0 -473
  209. package/src/redux/middlewares/multiplesActionsMiddleware.test.ts +0 -230
  210. package/src/redux/middlewares/multiplesActionsMiddleware.ts +0 -121
  211. package/src/redux/middlewares/paginationWatcherMiddleware.ts +0 -251
  212. package/src/redux/middlewares/pluginsHookMiddleware.ts +0 -24
  213. package/src/redux/middlewares/prefillerWatcherMiddleware.test.ts +0 -118
  214. package/src/redux/middlewares/prefillerWatcherMiddleware.ts +0 -462
  215. package/src/redux/middlewares/smartscriptMiddleware.ts +0 -228
  216. package/src/redux/middlewares/thirdpartyScriptsMiddleware.ts +0 -41
  217. package/src/redux/reducers/app/customizations/initCustomizationAutoDefault.ts +0 -16
  218. package/src/redux/reducers/app/customizations/initCustomizationMeta.ts +0 -16
  219. package/src/redux/reducers/app/instance/initInstance.ts +0 -29
  220. package/src/redux/reducers/app/instance/setDataStatus.ts +0 -16
  221. package/src/redux/reducers/app/instance/updateInstance.ts +0 -30
  222. package/src/redux/reducers/app/instance/updateInstancePaid.ts +0 -20
  223. package/src/redux/reducers/app/instance.test.ts +0 -106
  224. package/src/redux/reducers/app/meta/fetchModelFailed.ts +0 -11
  225. package/src/redux/reducers/app/meta/fetchModelNonBlocking.ts +0 -11
  226. package/src/redux/reducers/app/meta/fetchModelSucceeded.ts +0 -11
  227. package/src/redux/reducers/app/meta/fetchModelUnhealthy.ts +0 -18
  228. package/src/redux/reducers/app/meta/fetchModelUserLocked.ts +0 -11
  229. package/src/redux/reducers/app/meta/initMeta.ts +0 -22
  230. package/src/redux/reducers/app/meta/setModelUuid.ts +0 -17
  231. package/src/redux/reducers/app/meta.test.ts +0 -90
  232. package/src/redux/reducers/app/pagination/goNextPage.ts +0 -69
  233. package/src/redux/reducers/app/pagination/goPage.ts +0 -81
  234. package/src/redux/reducers/app/pagination/goPreviousPage.ts +0 -60
  235. package/src/redux/reducers/app/pagination/initPagination.ts +0 -46
  236. package/src/redux/reducers/app/pagination/updateAvailableAppStates.ts +0 -77
  237. package/src/redux/reducers/app/pagination.test.ts +0 -363
  238. package/src/redux/reducers/app/wizard/updateAvailableSections.ts +0 -40
  239. package/src/redux/reducers/app/wizard.test.ts +0 -84
  240. package/src/redux/reducers/app.test.ts +0 -336
  241. package/src/redux/reducers/app.ts +0 -150
  242. package/src/redux/reducers/conditions/addMultipleOccurency.test.ts +0 -131
  243. package/src/redux/reducers/conditions/addMultipleOccurency.ts +0 -155
  244. package/src/redux/reducers/conditions/deleteMultipleOccurency.test.ts +0 -95
  245. package/src/redux/reducers/conditions/deleteMultipleOccurency.ts +0 -141
  246. package/src/redux/reducers/conditions/initConditions.ts +0 -18
  247. package/src/redux/reducers/conditions/updateDocumentConditions.test.ts +0 -47
  248. package/src/redux/reducers/conditions/updateDocumentConditions.ts +0 -21
  249. package/src/redux/reducers/conditions/updateOptionConditions.ts +0 -24
  250. package/src/redux/reducers/conditions/updateOptionValidatorCondition.test.ts +0 -50
  251. package/src/redux/reducers/conditions/updateOptionValidatorCondition.ts +0 -28
  252. package/src/redux/reducers/conditions/updatePrefillerConditions.ts +0 -29
  253. package/src/redux/reducers/conditions/updateSectionConditions.ts +0 -28
  254. package/src/redux/reducers/conditions/updateVariableConditions.ts +0 -25
  255. package/src/redux/reducers/conditions/updateVariableValidatorCondition.test.ts +0 -50
  256. package/src/redux/reducers/conditions/updateVariableValidatorCondition.ts +0 -28
  257. package/src/redux/reducers/conditions.test.ts +0 -241
  258. package/src/redux/reducers/conditions.ts +0 -68
  259. package/src/redux/reducers/inputs/addMultipleOccurency.test.ts +0 -117
  260. package/src/redux/reducers/inputs/addMultipleOccurency.ts +0 -50
  261. package/src/redux/reducers/inputs/deleteMultipleOccurency.test.ts +0 -70
  262. package/src/redux/reducers/inputs/deleteMultipleOccurency.ts +0 -50
  263. package/src/redux/reducers/inputs/initOption.ts +0 -16
  264. package/src/redux/reducers/inputs/initVariable.ts +0 -16
  265. package/src/redux/reducers/inputs/updateOptionInput.ts +0 -24
  266. package/src/redux/reducers/inputs/updateVariableInput.ts +0 -24
  267. package/src/redux/reducers/inputs.test.ts +0 -221
  268. package/src/redux/reducers/inputs.ts +0 -51
  269. package/src/redux/reducers/mandatories/addMultipleOccurency.ts +0 -52
  270. package/src/redux/reducers/mandatories/deleteMultipleOccurency.ts +0 -55
  271. package/src/redux/reducers/mandatories/initMandatoryOption.ts +0 -17
  272. package/src/redux/reducers/mandatories/initMandatoryVariable.ts +0 -17
  273. package/src/redux/reducers/mandatories/setMandatoryIgnore.ts +0 -17
  274. package/src/redux/reducers/mandatories/setMandatoryOption.ts +0 -25
  275. package/src/redux/reducers/mandatories/setMandatorySection.ts +0 -20
  276. package/src/redux/reducers/mandatories/setMandatoryVariable.ts +0 -24
  277. package/src/redux/reducers/mandatories.ts +0 -56
  278. package/src/redux/reducers/references/initReferences.ts +0 -37
  279. package/src/redux/reducers/references/updateOptionMeta.ts +0 -73
  280. package/src/redux/reducers/references/updateVariableMeta.ts +0 -72
  281. package/src/redux/reducers/references.ts +0 -59
  282. package/src/redux/reducers/smartscript/enableSmartScript.ts +0 -13
  283. package/src/redux/reducers/smartscript/initSmartScriptTriggers.ts +0 -14
  284. package/src/redux/reducers/smartscript/updateSmartscriptOptionHidden.ts +0 -30
  285. package/src/redux/reducers/smartscript/updateSmartscriptVariableHidden.ts +0 -30
  286. package/src/redux/reducers/smartscript.ts +0 -47
  287. package/src/redux/reducers/user/initUser.ts +0 -15
  288. package/src/redux/reducers/user/setUserStatus.ts +0 -13
  289. package/src/redux/reducers/user/setUserValidToken.ts +0 -13
  290. package/src/redux/reducers/user.test.ts +0 -51
  291. package/src/redux/reducers/user.ts +0 -40
  292. package/src/redux/routerHistore.test.ts +0 -19
  293. package/src/redux/routerHistory.ts +0 -26
  294. package/src/redux/sagas/fetchModel.test.ts +0 -76
  295. package/src/redux/sagas/fetchModel.ts +0 -683
  296. package/src/redux/sagas/homogeneousRadioInputsSaga.ts +0 -42
  297. package/src/redux/sagas/initInputs.ts +0 -110
  298. package/src/redux/sagas/runner.test.ts +0 -12
  299. package/src/redux/sagas/runner.ts +0 -26
  300. package/src/redux/sagas/saveData.test.ts +0 -125
  301. package/src/redux/sagas/saveData.ts +0 -55
  302. package/src/redux/sagas/setDefaults.test.ts +0 -100
  303. package/src/redux/sagas/setDefaults.ts +0 -167
  304. package/src/redux/sagas/setUserEmail.ts +0 -175
  305. package/src/redux/selectors/app.test.ts +0 -162
  306. package/src/redux/selectors/app.ts +0 -331
  307. package/src/redux/selectors/conditions.test.ts +0 -92
  308. package/src/redux/selectors/conditions.ts +0 -293
  309. package/src/redux/selectors/inputs.test.ts +0 -72
  310. package/src/redux/selectors/inputs.ts +0 -76
  311. package/src/redux/selectors/library.ts +0 -17
  312. package/src/redux/selectors/mandatories.ts +0 -83
  313. package/src/redux/selectors/references.test.ts +0 -660
  314. package/src/redux/selectors/references.ts +0 -413
  315. package/src/redux/selectors/selectors.test.ts +0 -21
  316. package/src/redux/selectors/selectors.ts +0 -87
  317. package/src/redux/selectors/smartscript.ts +0 -30
  318. package/src/redux/selectors/user.test.ts +0 -39
  319. package/src/redux/selectors/user.ts +0 -45
  320. package/src/redux/store.test.ts +0 -22
  321. package/src/redux/store.ts +0 -100
  322. package/src/service/api.manager.ts +0 -261
  323. package/src/service/auth.service.ts +0 -5
  324. package/src/service/pardot.service.ts +0 -10
  325. package/src/tests-misc/plugins/jestTestPlugin/after.tsx +0 -5
  326. package/src/tests-misc/plugins/jestTestPlugin/before.tsx +0 -11
  327. package/src/tests-misc/plugins/jestTestPlugin/index.ts +0 -11
  328. package/src/tests-misc/plugins/jestTestPlugin/title.tsx +0 -8
  329. package/src/tests-misc/themes/jestTestTheme/components/EmailComponent.tsx +0 -5
  330. package/src/tests-misc/themes/jestTestTheme/components/TermsheetComponent.tsx +0 -5
  331. package/src/tests-misc/themes/jestTestTheme/components/WizardComponent.tsx +0 -5
  332. package/src/tests-misc/themes/jestTestTheme/faltyIndex.ts +0 -3
  333. package/src/tests-misc/themes/jestTestTheme/faltyIndexLoader.ts +0 -1
  334. package/src/tests-misc/themes/jestTestTheme/index.ts +0 -13
  335. package/src/types/Actions.type.ts +0 -612
  336. package/src/types/Components.type.ts +0 -181
  337. package/src/types/State.type.ts +0 -323
  338. package/src/types/Termsheet.type.ts +0 -28
  339. package/src/types/api.type.ts +0 -37
  340. package/src/types/config.type.ts +0 -55
  341. package/src/types/env.type.ts +0 -5
  342. package/src/types/getActions.type.ts +0 -3
  343. package/src/types/getConnectors.type.ts +0 -5
  344. package/src/types/getSelectors.type.ts +0 -3
  345. package/src/wizard-params.ts +0 -56
  346. package/tsconfig.json +0 -43
@@ -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();
@@ -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();