@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.
- package/CHANGELOG.md +43 -0
- package/dist/App.js +13 -4
- package/dist/PluginLoader.d.ts +3 -1
- package/dist/PluginLoader.js +12 -0
- package/dist/ThemeLoader.d.ts +2 -2
- package/dist/componentsConnectors/connectBox.d.ts +3 -1
- package/dist/componentsConnectors/connectDocument.d.ts +3 -1
- package/dist/componentsConnectors/connectHeader.d.ts +3 -1
- package/dist/componentsConnectors/connectMetaTitle.d.ts +3 -1
- package/dist/componentsConnectors/connectOption.d.ts +6 -2
- package/dist/componentsConnectors/connectOption.js +1 -1
- package/dist/componentsConnectors/connectPagination.d.ts +3 -1
- package/dist/componentsConnectors/connectPreview.d.ts +3 -1
- package/dist/componentsConnectors/connectProgress.d.ts +3 -1
- package/dist/componentsConnectors/connectRootOption.d.ts +3 -1
- package/dist/componentsConnectors/connectSection.d.ts +3 -1
- package/dist/componentsConnectors/connectSection.js +7 -10
- package/dist/componentsConnectors/connectSummary.d.ts +3 -1
- package/dist/componentsConnectors/connectSummaryItem.d.ts +3 -1
- package/dist/componentsConnectors/connectVariable.d.ts +6 -2
- package/dist/componentsConnectors/connectVariable.js +1 -1
- package/dist/componentsConnectors/connectWizardWrapper.d.ts +3 -1
- package/dist/componentsConnectors/connector/componentConnector.d.ts +5 -1
- package/dist/componentsConnectors/connector/componentConnector.js +44 -4
- package/dist/componentsConnectors/connector/index.d.ts +1 -0
- package/dist/componentsConnectors/connector/index.js +1 -0
- package/dist/componentsConnectors/index.d.ts +17 -0
- package/dist/componentsConnectors/index.js +17 -0
- package/dist/componentsConnectors/library.d.ts +43 -15
- package/dist/constants/phoneValidation.d.ts +0 -1
- package/dist/constants/phoneValidation.js +0 -1
- package/dist/helpers/apiEndpoint.d.ts +1 -0
- package/dist/helpers/apiEndpoint.js +4 -0
- package/dist/helpers/index.d.ts +4 -0
- package/dist/helpers/index.js +4 -0
- package/dist/helpers/propsEqualityCheck.d.ts +1 -0
- package/dist/helpers/propsEqualityCheck.js +9 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/useActions.d.ts +2 -0
- package/dist/hooks/useActions.js +4 -0
- package/dist/hooks/useDispatch.d.ts +1 -0
- package/dist/hooks/useDispatch.js +4 -0
- package/dist/hooks/useSelectors.d.ts +2 -0
- package/dist/hooks/useSelectors.js +4 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +13 -0
- package/dist/libs/EventsTracking.d.ts +0 -1
- package/dist/libs/EventsTracking.js +0 -18
- package/dist/libs/PathReader.d.ts +10 -6
- package/dist/libs/PathReader.js +47 -28
- package/dist/libs/index.d.ts +5 -0
- package/dist/libs/index.js +5 -0
- package/dist/redux/actions/index.d.ts +9 -0
- package/dist/redux/actions/index.js +9 -0
- package/dist/redux/actions/library.d.ts +59 -63
- package/dist/redux/actions/sagas/index.d.ts +3 -0
- package/dist/redux/actions/sagas/index.js +3 -0
- package/dist/redux/actions/sagas/model.d.ts +1 -5
- package/dist/redux/constants/app.d.ts +2 -0
- package/dist/redux/constants/app.js +2 -0
- package/dist/redux/constants/index.d.ts +8 -0
- package/dist/redux/constants/index.js +8 -0
- package/dist/redux/constants/sagas/index.d.ts +3 -0
- package/dist/redux/constants/sagas/index.js +3 -0
- package/dist/redux/index.d.ts +5 -0
- package/dist/redux/index.js +5 -0
- package/dist/redux/middlewares/conditionsWatcherMiddleware.js +11 -5
- package/dist/redux/middlewares/conditionsWatcherMiddleware.test.js +120 -113
- package/dist/redux/middlewares/paginationWatcherMiddleware.js +2 -2
- package/dist/redux/middlewares/smartscriptMiddleware.js +8 -0
- package/dist/redux/reducers/pluginsStore.d.ts +3 -0
- package/dist/redux/reducers/pluginsStore.js +12 -0
- package/dist/redux/routerHistory.js +2 -2
- package/dist/redux/sagas/fetchModel.js +22 -6
- package/dist/redux/sagas/initInputs.js +6 -7
- package/dist/redux/sagas/saveData.js +3 -46
- package/dist/redux/sagas/setUserEmail.js +1 -28
- package/dist/redux/selectors/app.js +13 -18
- package/dist/redux/selectors/cache.d.ts +17 -0
- package/dist/redux/selectors/cache.js +35 -0
- package/dist/redux/selectors/conditions.js +7 -7
- package/dist/redux/selectors/index.d.ts +8 -0
- package/dist/redux/selectors/index.js +8 -0
- package/dist/redux/selectors/inputs.js +3 -3
- package/dist/redux/selectors/library.d.ts +2 -2
- package/dist/redux/selectors/references.js +26 -26
- package/dist/redux/selectors/selectors.d.ts +2 -2
- package/dist/redux/selectors/selectors.js +19 -8
- package/dist/redux/selectors/selectors.test.js +6 -6
- package/dist/redux/selectors/user.js +5 -5
- package/dist/redux/store.d.ts +1 -1
- package/dist/redux/store.js +12 -4
- package/dist/service/api.manager.d.ts +1 -6
- package/dist/service/index.d.ts +3 -0
- package/dist/service/index.js +3 -0
- package/dist/types/PluginConfig.type.d.ts +57 -0
- package/dist/types/PluginConfig.type.js +1 -0
- package/dist/types/State.type.d.ts +6 -0
- package/dist/types/config.type.d.ts +3 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.js +11 -0
- package/package.json +11 -12
- package/.depcheckrc +0 -1
- package/.eslintignore +0 -2
- package/.eslintrc +0 -5
- package/__mocks__/fileMock.js +0 -1
- package/babel.config.json +0 -3
- package/dist/helpers/sendinblueHelper.d.ts +0 -4
- package/dist/helpers/sendinblueHelper.js +0 -46
- package/dist/libs/Extracts.d.ts +0 -20
- package/dist/libs/Extracts.js +0 -110
- package/jest.config.ts +0 -193
- package/setupJest.ts +0 -8
- package/src/App.test.tsx +0 -41
- package/src/App.tsx +0 -152
- package/src/Globals.ts +0 -69
- package/src/Loader.tsx +0 -8
- package/src/PluginLoader.test.tsx +0 -70
- package/src/PluginLoader.tsx +0 -407
- package/src/Shimmer.tsx +0 -108
- package/src/ThemeLoader.test.tsx +0 -82
- package/src/ThemeLoader.tsx +0 -95
- package/src/components/PluginRoute.tsx +0 -48
- package/src/components/SmartScript.tsx +0 -166
- package/src/components/UserLocked/UserLockedComponent.tsx +0 -33
- package/src/components/View.test.tsx +0 -110
- package/src/components/View.tsx +0 -114
- package/src/componentsConnectors/connectBox.test.tsx +0 -226
- package/src/componentsConnectors/connectBox.tsx +0 -70
- package/src/componentsConnectors/connectDocument.test.tsx +0 -108
- package/src/componentsConnectors/connectDocument.tsx +0 -64
- package/src/componentsConnectors/connectHeader.tsx +0 -21
- package/src/componentsConnectors/connectMetaTitle.test.tsx +0 -40
- package/src/componentsConnectors/connectMetaTitle.tsx +0 -8
- package/src/componentsConnectors/connectOption.tsx +0 -222
- package/src/componentsConnectors/connectPagination.tsx +0 -102
- package/src/componentsConnectors/connectPreview.tsx +0 -5
- package/src/componentsConnectors/connectProgress.tsx +0 -59
- package/src/componentsConnectors/connectRootOption.tsx +0 -95
- package/src/componentsConnectors/connectSection.tsx +0 -79
- package/src/componentsConnectors/connectSummary.tsx +0 -21
- package/src/componentsConnectors/connectSummaryItem.tsx +0 -102
- package/src/componentsConnectors/connectTermsheet.tsx +0 -359
- package/src/componentsConnectors/connectVariable.tsx +0 -191
- package/src/componentsConnectors/connectWizardWrapper.tsx +0 -30
- package/src/componentsConnectors/connector/componentConnector.tsx +0 -219
- package/src/componentsConnectors/library.ts +0 -35
- package/src/config.test.ts +0 -63
- package/src/config.ts +0 -11
- package/src/constants/emailValidation.ts +0 -2
- package/src/constants/phoneValidation.ts +0 -6
- package/src/definitions/path.join.d.ts +0 -4
- package/src/helpers/outputsParsing.ts +0 -412
- package/src/helpers/preloadTheme.ts +0 -17
- package/src/helpers/scriptsLoader.ts +0 -20
- package/src/helpers/sendinblueHelper.ts +0 -65
- package/src/hooks/usePrevious.ts +0 -9
- package/src/libs/ConditionsInitiator.ts +0 -164
- package/src/libs/ConditionsRunner/DataPopulator.ts +0 -266
- package/src/libs/ConditionsRunner.ts +0 -454
- package/src/libs/DocumentsOutputs.ts +0 -171
- package/src/libs/Eval/EvalBase.ts +0 -116
- package/src/libs/Eval/EvalFunctions.ts +0 -724
- package/src/libs/Eval/NumbersToLetters.ts +0 -185
- package/src/libs/EvalVariable.ts +0 -265
- package/src/libs/EventsTracking.ts +0 -276
- package/src/libs/Extracts.ts +0 -159
- package/src/libs/InputsInitiator.ts +0 -136
- package/src/libs/NumAuto.test.ts +0 -55
- package/src/libs/NumAuto.ts +0 -56
- package/src/libs/OvcConverter.ts +0 -285
- package/src/libs/PathReader.ts +0 -272
- package/src/libs/SectionValidity.test.ts +0 -146
- package/src/libs/SectionValidity.ts +0 -110
- package/src/libs/SmartScriptStore.ts +0 -492
- package/src/misc/test_model.ts +0 -14603
- package/src/misc/test_models/connectDocumen.testmodel.json +0 -178
- package/src/misc/test_models/setDefaults.testmodel.json +0 -279
- package/src/misc/test_models/testmodel.json +0 -1
- package/src/polyfills/index.ts +0 -5
- package/src/polyfills/objectValues.ts +0 -4
- package/src/polyfills/prepend.ts +0 -31
- package/src/polyfills/stringRepeat.ts +0 -44
- package/src/redux/actions/app.test.ts +0 -123
- package/src/redux/actions/app.ts +0 -249
- package/src/redux/actions/conditions.test.ts +0 -84
- package/src/redux/actions/conditions.ts +0 -135
- package/src/redux/actions/inputs.test.ts +0 -85
- package/src/redux/actions/inputs.ts +0 -111
- package/src/redux/actions/library.ts +0 -23
- package/src/redux/actions/mandatories.ts +0 -98
- package/src/redux/actions/references.test.ts +0 -48
- package/src/redux/actions/references.ts +0 -37
- package/src/redux/actions/sagas/data.test.ts +0 -11
- package/src/redux/actions/sagas/data.ts +0 -18
- package/src/redux/actions/sagas/model.test.ts +0 -14
- package/src/redux/actions/sagas/model.ts +0 -48
- package/src/redux/actions/sagas/user.ts +0 -25
- package/src/redux/actions/smartscript.ts +0 -55
- package/src/redux/actions/user.test.ts +0 -18
- package/src/redux/actions/user.ts +0 -41
- package/src/redux/constants/app.ts +0 -36
- package/src/redux/constants/conditions.ts +0 -25
- package/src/redux/constants/inputs.ts +0 -15
- package/src/redux/constants/mandatories.ts +0 -11
- package/src/redux/constants/references.ts +0 -7
- package/src/redux/constants/sagas/data.ts +0 -1
- package/src/redux/constants/sagas/model.ts +0 -2
- package/src/redux/constants/sagas/user.ts +0 -2
- package/src/redux/constants/smartscript.ts +0 -9
- package/src/redux/constants/user.ts +0 -6
- package/src/redux/listeners/subscriber.test.ts +0 -45
- package/src/redux/listeners/subscriber.ts +0 -29
- package/src/redux/middlewares/conditionsWatcherMiddleware.test.ts +0 -370
- package/src/redux/middlewares/conditionsWatcherMiddleware.ts +0 -321
- package/src/redux/middlewares/evaluationsWatcherMiddleware.test.ts +0 -323
- package/src/redux/middlewares/evaluationsWatcherMiddleware.ts +0 -250
- package/src/redux/middlewares/mandatoriesWatcherMiddleware.ts +0 -473
- package/src/redux/middlewares/multiplesActionsMiddleware.test.ts +0 -230
- package/src/redux/middlewares/multiplesActionsMiddleware.ts +0 -121
- package/src/redux/middlewares/paginationWatcherMiddleware.ts +0 -251
- package/src/redux/middlewares/pluginsHookMiddleware.ts +0 -24
- package/src/redux/middlewares/prefillerWatcherMiddleware.test.ts +0 -118
- package/src/redux/middlewares/prefillerWatcherMiddleware.ts +0 -462
- package/src/redux/middlewares/smartscriptMiddleware.ts +0 -228
- package/src/redux/middlewares/thirdpartyScriptsMiddleware.ts +0 -41
- package/src/redux/reducers/app/customizations/initCustomizationAutoDefault.ts +0 -16
- package/src/redux/reducers/app/customizations/initCustomizationMeta.ts +0 -16
- package/src/redux/reducers/app/instance/initInstance.ts +0 -29
- package/src/redux/reducers/app/instance/setDataStatus.ts +0 -16
- package/src/redux/reducers/app/instance/updateInstance.ts +0 -30
- package/src/redux/reducers/app/instance/updateInstancePaid.ts +0 -20
- package/src/redux/reducers/app/instance.test.ts +0 -106
- package/src/redux/reducers/app/meta/fetchModelFailed.ts +0 -11
- package/src/redux/reducers/app/meta/fetchModelNonBlocking.ts +0 -11
- package/src/redux/reducers/app/meta/fetchModelSucceeded.ts +0 -11
- package/src/redux/reducers/app/meta/fetchModelUnhealthy.ts +0 -18
- package/src/redux/reducers/app/meta/fetchModelUserLocked.ts +0 -11
- package/src/redux/reducers/app/meta/initMeta.ts +0 -22
- package/src/redux/reducers/app/meta/setModelUuid.ts +0 -17
- package/src/redux/reducers/app/meta.test.ts +0 -90
- package/src/redux/reducers/app/pagination/goNextPage.ts +0 -69
- package/src/redux/reducers/app/pagination/goPage.ts +0 -81
- package/src/redux/reducers/app/pagination/goPreviousPage.ts +0 -60
- package/src/redux/reducers/app/pagination/initPagination.ts +0 -46
- package/src/redux/reducers/app/pagination/updateAvailableAppStates.ts +0 -77
- package/src/redux/reducers/app/pagination.test.ts +0 -363
- package/src/redux/reducers/app/wizard/updateAvailableSections.ts +0 -40
- package/src/redux/reducers/app/wizard.test.ts +0 -84
- package/src/redux/reducers/app.test.ts +0 -336
- package/src/redux/reducers/app.ts +0 -150
- package/src/redux/reducers/conditions/addMultipleOccurency.test.ts +0 -131
- package/src/redux/reducers/conditions/addMultipleOccurency.ts +0 -155
- package/src/redux/reducers/conditions/deleteMultipleOccurency.test.ts +0 -95
- package/src/redux/reducers/conditions/deleteMultipleOccurency.ts +0 -141
- package/src/redux/reducers/conditions/initConditions.ts +0 -18
- package/src/redux/reducers/conditions/updateDocumentConditions.test.ts +0 -47
- package/src/redux/reducers/conditions/updateDocumentConditions.ts +0 -21
- package/src/redux/reducers/conditions/updateOptionConditions.ts +0 -24
- package/src/redux/reducers/conditions/updateOptionValidatorCondition.test.ts +0 -50
- package/src/redux/reducers/conditions/updateOptionValidatorCondition.ts +0 -28
- package/src/redux/reducers/conditions/updatePrefillerConditions.ts +0 -29
- package/src/redux/reducers/conditions/updateSectionConditions.ts +0 -28
- package/src/redux/reducers/conditions/updateVariableConditions.ts +0 -25
- package/src/redux/reducers/conditions/updateVariableValidatorCondition.test.ts +0 -50
- package/src/redux/reducers/conditions/updateVariableValidatorCondition.ts +0 -28
- package/src/redux/reducers/conditions.test.ts +0 -241
- package/src/redux/reducers/conditions.ts +0 -68
- package/src/redux/reducers/inputs/addMultipleOccurency.test.ts +0 -117
- package/src/redux/reducers/inputs/addMultipleOccurency.ts +0 -50
- package/src/redux/reducers/inputs/deleteMultipleOccurency.test.ts +0 -70
- package/src/redux/reducers/inputs/deleteMultipleOccurency.ts +0 -50
- package/src/redux/reducers/inputs/initOption.ts +0 -16
- package/src/redux/reducers/inputs/initVariable.ts +0 -16
- package/src/redux/reducers/inputs/updateOptionInput.ts +0 -24
- package/src/redux/reducers/inputs/updateVariableInput.ts +0 -24
- package/src/redux/reducers/inputs.test.ts +0 -221
- package/src/redux/reducers/inputs.ts +0 -51
- package/src/redux/reducers/mandatories/addMultipleOccurency.ts +0 -52
- package/src/redux/reducers/mandatories/deleteMultipleOccurency.ts +0 -55
- package/src/redux/reducers/mandatories/initMandatoryOption.ts +0 -17
- package/src/redux/reducers/mandatories/initMandatoryVariable.ts +0 -17
- package/src/redux/reducers/mandatories/setMandatoryIgnore.ts +0 -17
- package/src/redux/reducers/mandatories/setMandatoryOption.ts +0 -25
- package/src/redux/reducers/mandatories/setMandatorySection.ts +0 -20
- package/src/redux/reducers/mandatories/setMandatoryVariable.ts +0 -24
- package/src/redux/reducers/mandatories.ts +0 -56
- package/src/redux/reducers/references/initReferences.ts +0 -37
- package/src/redux/reducers/references/updateOptionMeta.ts +0 -73
- package/src/redux/reducers/references/updateVariableMeta.ts +0 -72
- package/src/redux/reducers/references.ts +0 -59
- package/src/redux/reducers/smartscript/enableSmartScript.ts +0 -13
- package/src/redux/reducers/smartscript/initSmartScriptTriggers.ts +0 -14
- package/src/redux/reducers/smartscript/updateSmartscriptOptionHidden.ts +0 -30
- package/src/redux/reducers/smartscript/updateSmartscriptVariableHidden.ts +0 -30
- package/src/redux/reducers/smartscript.ts +0 -47
- package/src/redux/reducers/user/initUser.ts +0 -15
- package/src/redux/reducers/user/setUserStatus.ts +0 -13
- package/src/redux/reducers/user/setUserValidToken.ts +0 -13
- package/src/redux/reducers/user.test.ts +0 -51
- package/src/redux/reducers/user.ts +0 -40
- package/src/redux/routerHistore.test.ts +0 -19
- package/src/redux/routerHistory.ts +0 -26
- package/src/redux/sagas/fetchModel.test.ts +0 -76
- package/src/redux/sagas/fetchModel.ts +0 -683
- package/src/redux/sagas/homogeneousRadioInputsSaga.ts +0 -42
- package/src/redux/sagas/initInputs.ts +0 -110
- package/src/redux/sagas/runner.test.ts +0 -12
- package/src/redux/sagas/runner.ts +0 -26
- package/src/redux/sagas/saveData.test.ts +0 -125
- package/src/redux/sagas/saveData.ts +0 -116
- package/src/redux/sagas/setDefaults.test.ts +0 -100
- package/src/redux/sagas/setDefaults.ts +0 -167
- package/src/redux/sagas/setUserEmail.ts +0 -221
- package/src/redux/selectors/app.test.ts +0 -162
- package/src/redux/selectors/app.ts +0 -331
- package/src/redux/selectors/conditions.test.ts +0 -92
- package/src/redux/selectors/conditions.ts +0 -293
- package/src/redux/selectors/inputs.test.ts +0 -72
- package/src/redux/selectors/inputs.ts +0 -76
- package/src/redux/selectors/library.ts +0 -17
- package/src/redux/selectors/mandatories.ts +0 -83
- package/src/redux/selectors/references.test.ts +0 -660
- package/src/redux/selectors/references.ts +0 -413
- package/src/redux/selectors/selectors.test.ts +0 -21
- package/src/redux/selectors/selectors.ts +0 -87
- package/src/redux/selectors/smartscript.ts +0 -30
- package/src/redux/selectors/user.test.ts +0 -39
- package/src/redux/selectors/user.ts +0 -45
- package/src/redux/store.test.ts +0 -22
- package/src/redux/store.ts +0 -100
- package/src/service/api.manager.ts +0 -261
- package/src/service/auth.service.ts +0 -5
- package/src/service/pardot.service.ts +0 -10
- package/src/tests-misc/plugins/jestTestPlugin/after.tsx +0 -5
- package/src/tests-misc/plugins/jestTestPlugin/before.tsx +0 -11
- package/src/tests-misc/plugins/jestTestPlugin/index.ts +0 -11
- package/src/tests-misc/plugins/jestTestPlugin/title.tsx +0 -8
- package/src/tests-misc/themes/jestTestTheme/components/EmailComponent.tsx +0 -5
- package/src/tests-misc/themes/jestTestTheme/components/TermsheetComponent.tsx +0 -5
- package/src/tests-misc/themes/jestTestTheme/components/WizardComponent.tsx +0 -5
- package/src/tests-misc/themes/jestTestTheme/faltyIndex.ts +0 -3
- package/src/tests-misc/themes/jestTestTheme/faltyIndexLoader.ts +0 -1
- package/src/tests-misc/themes/jestTestTheme/index.ts +0 -13
- package/src/types/Actions.type.ts +0 -612
- package/src/types/Components.type.ts +0 -181
- package/src/types/State.type.ts +0 -323
- package/src/types/Termsheet.type.ts +0 -28
- package/src/types/api.type.ts +0 -37
- package/src/types/config.type.ts +0 -55
- package/src/types/env.type.ts +0 -5
- package/src/types/getActions.type.ts +0 -3
- package/src/types/getConnectors.type.ts +0 -5
- package/src/types/getSelectors.type.ts +0 -3
- package/src/wizard-params.ts +0 -56
- package/tsconfig.json +0 -43
|
@@ -1,412 +0,0 @@
|
|
|
1
|
-
import { filterXSS } from "xss";
|
|
2
|
-
import {
|
|
3
|
-
selectVariableParents,
|
|
4
|
-
selectOptionRelations,
|
|
5
|
-
selectVariableReference,
|
|
6
|
-
selectOptionReference,
|
|
7
|
-
selectVariableRelations,
|
|
8
|
-
} from "../redux/selectors/references";
|
|
9
|
-
import {
|
|
10
|
-
selectVariableInput,
|
|
11
|
-
selectVariableInputByIndex,
|
|
12
|
-
} from "../redux/selectors/inputs";
|
|
13
|
-
import { OVC_TYPE } from "../libs/InputsInitiator";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Parses number to correct french number format ("," instead of ".")
|
|
17
|
-
*/
|
|
18
|
-
const frenchNumber = (value: string | number) => {
|
|
19
|
-
let result = typeof value === "number" ? value.toString() : value;
|
|
20
|
-
if (/^([0-9]+)\.([0-9]+)$/.test(result.trim()))
|
|
21
|
-
result = result.trim().replace(".", ",");
|
|
22
|
-
return result;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Returns option's related variable values
|
|
27
|
-
* @param optionId Option's id
|
|
28
|
-
* @param index Occurency index
|
|
29
|
-
* @param variables Variables ids list
|
|
30
|
-
*/
|
|
31
|
-
export type relVarsValsT = Record<string, string | number>;
|
|
32
|
-
export type getRelatedVarsT = (
|
|
33
|
-
optionId: number,
|
|
34
|
-
index: number,
|
|
35
|
-
variables: number[]
|
|
36
|
-
) => relVarsValsT;
|
|
37
|
-
export const getRelatedVariablesValues: getRelatedVarsT = (
|
|
38
|
-
optionId,
|
|
39
|
-
index,
|
|
40
|
-
variables
|
|
41
|
-
) => {
|
|
42
|
-
// Getting variables values
|
|
43
|
-
const variablesValues: Record<string, string> = {};
|
|
44
|
-
variables.forEach((currentVariableId) => {
|
|
45
|
-
// Getting option value
|
|
46
|
-
let value = selectVariableInput(currentVariableId);
|
|
47
|
-
const variableParents = selectVariableParents(currentVariableId);
|
|
48
|
-
if (variableParents === undefined)
|
|
49
|
-
throw new Error(
|
|
50
|
-
`Variable ${currentVariableId} parents object does not exist`
|
|
51
|
-
);
|
|
52
|
-
const rootVariableParentId = variableParents[variableParents.length - 1];
|
|
53
|
-
const rootVariableParentRelations =
|
|
54
|
-
selectOptionRelations(rootVariableParentId);
|
|
55
|
-
if (rootVariableParentRelations === undefined)
|
|
56
|
-
throw new Error(`Option ${rootVariableParentId} does not exist`);
|
|
57
|
-
|
|
58
|
-
if (typeof variableParents === "undefined") return;
|
|
59
|
-
|
|
60
|
-
// Getting rootOption parent
|
|
61
|
-
|
|
62
|
-
// Checking if current option is related to the option that changed
|
|
63
|
-
if (
|
|
64
|
-
rootVariableParentRelations.children.options.includes(optionId) ||
|
|
65
|
-
rootVariableParentRelations.dependants.includes(optionId) ||
|
|
66
|
-
optionId === rootVariableParentId
|
|
67
|
-
)
|
|
68
|
-
value = [value[index]];
|
|
69
|
-
|
|
70
|
-
// Making sure all values are strings
|
|
71
|
-
const cleanValues = value.map((currentValue) => {
|
|
72
|
-
if (["number", "string"].includes(typeof currentValue))
|
|
73
|
-
return frenchNumber(currentValue);
|
|
74
|
-
return "";
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
// Joining multiple variables if needed
|
|
78
|
-
let currentVariableValue =
|
|
79
|
-
cleanValues.length === 1 ? cleanValues[0] : cleanValues.join(", ");
|
|
80
|
-
|
|
81
|
-
// Replacing \n with <br /> tags
|
|
82
|
-
currentVariableValue = currentVariableValue.replace(/\n/g, "<br />");
|
|
83
|
-
|
|
84
|
-
// Setting variable value
|
|
85
|
-
variablesValues[currentVariableId] = currentVariableValue;
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
return variablesValues;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Parses content with variables
|
|
93
|
-
* @param output Raw content
|
|
94
|
-
* @param id Box id
|
|
95
|
-
* @param index Occurency Index
|
|
96
|
-
* @param variables Variables values list
|
|
97
|
-
*/
|
|
98
|
-
const contentParsingCache: Record<string, string> = {};
|
|
99
|
-
export type parseContentT = (
|
|
100
|
-
output: string,
|
|
101
|
-
id: number,
|
|
102
|
-
index: number,
|
|
103
|
-
variables: relVarsValsT
|
|
104
|
-
) => string;
|
|
105
|
-
export const parseContentWithVariables: parseContentT = (
|
|
106
|
-
content,
|
|
107
|
-
id,
|
|
108
|
-
index,
|
|
109
|
-
variables
|
|
110
|
-
) => {
|
|
111
|
-
const variablesKey = Object.keys(variables).map(
|
|
112
|
-
(variableId) => `${variableId}:${variables[variableId]};`
|
|
113
|
-
);
|
|
114
|
-
const cacheKey = `${id}-${index}-${content}-${variablesKey}`;
|
|
115
|
-
|
|
116
|
-
// Checking cache before sarting anything
|
|
117
|
-
if (Object.prototype.hasOwnProperty.call(contentParsingCache, cacheKey)) {
|
|
118
|
-
return contentParsingCache[cacheKey];
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Inserting values
|
|
122
|
-
let parsedContent = `${content}`;
|
|
123
|
-
Object.keys(variables).forEach((variableId) => {
|
|
124
|
-
let value: string = variables[variableId].toString();
|
|
125
|
-
if (value.trim().length === 0) {
|
|
126
|
-
value = new Array(16).join("_");
|
|
127
|
-
}
|
|
128
|
-
parsedContent = parsedContent.replace(
|
|
129
|
-
new RegExp(`\\[var:${variableId}\\]`, "gi"),
|
|
130
|
-
filterXSS(value, {
|
|
131
|
-
whiteList: {
|
|
132
|
-
a: [],
|
|
133
|
-
},
|
|
134
|
-
})
|
|
135
|
-
);
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
// Refreshing cache result
|
|
139
|
-
contentParsingCache[cacheKey] = parsedContent;
|
|
140
|
-
|
|
141
|
-
return contentParsingCache[cacheKey];
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Parses output with variables
|
|
146
|
-
* @param output Raw output
|
|
147
|
-
* @param id Box id
|
|
148
|
-
* @param index Occurency Index
|
|
149
|
-
* @param variables Variables values list
|
|
150
|
-
* @param autonums Autonums values
|
|
151
|
-
*/
|
|
152
|
-
const outputParsingCache: Record<string, string> = {};
|
|
153
|
-
export type autonumsType = [string, string, number, string | null][];
|
|
154
|
-
export type parseOutputT = (
|
|
155
|
-
output: string,
|
|
156
|
-
id: number,
|
|
157
|
-
index: number,
|
|
158
|
-
variables: relVarsValsT,
|
|
159
|
-
autonums: autonumsType
|
|
160
|
-
) => string;
|
|
161
|
-
export const parseOutputWithVariables: parseOutputT = (
|
|
162
|
-
output,
|
|
163
|
-
id,
|
|
164
|
-
index,
|
|
165
|
-
variables,
|
|
166
|
-
autonums
|
|
167
|
-
) => {
|
|
168
|
-
const variablesKey = Object.keys(variables).map(
|
|
169
|
-
(variableId) => `${variableId}:${variables[variableId]};`
|
|
170
|
-
);
|
|
171
|
-
const autonumsKey = autonums.map((autonum) => `${autonum[1]}:${autonum[2]};`);
|
|
172
|
-
const cacheKey = `${id}-${index}-${variablesKey}-${autonumsKey}`;
|
|
173
|
-
|
|
174
|
-
// Checking cache before sarting anything
|
|
175
|
-
if (Object.prototype.hasOwnProperty.call(outputParsingCache, cacheKey)) {
|
|
176
|
-
return outputParsingCache[cacheKey];
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Inserting values
|
|
180
|
-
let parsedOutput = `${output}`;
|
|
181
|
-
Object.keys(variables).forEach((variableId) => {
|
|
182
|
-
let value: string = variables[variableId].toString();
|
|
183
|
-
if (value.trim().length === 0) {
|
|
184
|
-
value = new Array(16).join("_");
|
|
185
|
-
}
|
|
186
|
-
parsedOutput = parsedOutput.replace(
|
|
187
|
-
new RegExp(`\\[var:${variableId}\\]`, "gi"),
|
|
188
|
-
filterXSS(value)
|
|
189
|
-
);
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
// Inserting page breaks
|
|
193
|
-
parsedOutput = parsedOutput.replace(
|
|
194
|
-
/\[\[PAGE_BREAK\]\]/gi,
|
|
195
|
-
'<p class="pagebreak"><!-- pagebreak --></p>'
|
|
196
|
-
);
|
|
197
|
-
|
|
198
|
-
// Cleaning BLURS
|
|
199
|
-
parsedOutput = parsedOutput.replace(/\[(E|B)_BLUR\]/gi, "");
|
|
200
|
-
|
|
201
|
-
// Removing signature tags
|
|
202
|
-
parsedOutput = parsedOutput.replace(/\[signature:([0-9]+)\]/g, "");
|
|
203
|
-
|
|
204
|
-
// Inserting autonums
|
|
205
|
-
autonums.forEach((currentAn) => {
|
|
206
|
-
if (currentAn[3] === null)
|
|
207
|
-
parsedOutput = parsedOutput.replace(
|
|
208
|
-
`[${currentAn[0]}:${currentAn[1]}]`,
|
|
209
|
-
`<span class="${currentAn[0]}">${currentAn[2]}</span>`
|
|
210
|
-
);
|
|
211
|
-
else
|
|
212
|
-
parsedOutput = parsedOutput.replace(
|
|
213
|
-
`[${currentAn[0]}:${currentAn[1]}](${currentAn[3]})`,
|
|
214
|
-
`<span class="${currentAn[0]}">${currentAn[2]}</span>`
|
|
215
|
-
);
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
// Refreshing cache result
|
|
219
|
-
outputParsingCache[cacheKey] = parsedOutput;
|
|
220
|
-
|
|
221
|
-
return outputParsingCache[cacheKey];
|
|
222
|
-
};
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Parses variable label
|
|
226
|
-
* @param id Variable's ID
|
|
227
|
-
* @param index Variable's index
|
|
228
|
-
*/
|
|
229
|
-
export type parseVariableLabelT = (id: number, index: number) => string;
|
|
230
|
-
export const parseVariableLabel: parseVariableLabelT = (id, index = 0) => {
|
|
231
|
-
// Getting variable reference
|
|
232
|
-
const { label, fallbackLabel } = selectVariableReference(id);
|
|
233
|
-
|
|
234
|
-
// If label has no variables, let's stop here
|
|
235
|
-
// and return it
|
|
236
|
-
if (!/\[var:([0-9]+)\]/gi.test(label)) return label;
|
|
237
|
-
|
|
238
|
-
// Extracting variables ids
|
|
239
|
-
const variablesList: number[] = [];
|
|
240
|
-
const matchs = Array.from(label.matchAll(/\[var:([0-9]+)\]/g));
|
|
241
|
-
matchs.forEach((currentMatch) => {
|
|
242
|
-
variablesList.push(parseInt(currentMatch[1], 10));
|
|
243
|
-
});
|
|
244
|
-
|
|
245
|
-
// Getting parent option
|
|
246
|
-
const parentOptionId = selectVariableRelations(id).parents[0];
|
|
247
|
-
|
|
248
|
-
// Getting related variables
|
|
249
|
-
const relatedVariables = getRelatedVariablesValues(
|
|
250
|
-
parentOptionId,
|
|
251
|
-
index,
|
|
252
|
-
variablesList
|
|
253
|
-
);
|
|
254
|
-
|
|
255
|
-
// Getting values
|
|
256
|
-
const variablesValues: Record<string, string> = {};
|
|
257
|
-
|
|
258
|
-
// Tells wether to use fallbackLabel
|
|
259
|
-
let useFallback: true | null = null;
|
|
260
|
-
|
|
261
|
-
variablesList.forEach((variableId) => {
|
|
262
|
-
const value = relatedVariables[variableId];
|
|
263
|
-
if (
|
|
264
|
-
value === undefined ||
|
|
265
|
-
value === null ||
|
|
266
|
-
(typeof value === "string" && value.trim().length === 0)
|
|
267
|
-
) {
|
|
268
|
-
useFallback = true;
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
variablesValues[variableId] = value.toString();
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
if (useFallback === true && typeof fallbackLabel === "string")
|
|
275
|
-
return fallbackLabel;
|
|
276
|
-
|
|
277
|
-
// Inserting values
|
|
278
|
-
let parsedLabel = `${label}`;
|
|
279
|
-
variablesList.forEach((variableId) => {
|
|
280
|
-
const value: string = variablesValues[variableId];
|
|
281
|
-
parsedLabel = parsedLabel.replace(
|
|
282
|
-
new RegExp(`\\[var:${variableId}\\]`, "gi"),
|
|
283
|
-
filterXSS(value)
|
|
284
|
-
);
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
return parsedLabel;
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Parses option label
|
|
292
|
-
* @param id Option's ID
|
|
293
|
-
* @param index Option's index
|
|
294
|
-
*/
|
|
295
|
-
export type parseOptionLabelT = (id: number, index: number) => string;
|
|
296
|
-
export const parseOptionLabel: parseOptionLabelT = (id, index = 0) => {
|
|
297
|
-
// Getting option's reference
|
|
298
|
-
const { label, fallbackLabel } = selectOptionReference(id).meta;
|
|
299
|
-
|
|
300
|
-
// If label has no variables, let's stop here
|
|
301
|
-
// and return it
|
|
302
|
-
if (!/\[var:([0-9]+)\]/gi.test(label)) return label;
|
|
303
|
-
|
|
304
|
-
// Extracting variables ids
|
|
305
|
-
const variablesList: number[] = [];
|
|
306
|
-
const matchs = Array.from(label.matchAll(/\[var:([0-9]+)\]/g));
|
|
307
|
-
matchs.forEach((currentMatch) => {
|
|
308
|
-
variablesList.push(parseInt(currentMatch[1], 10));
|
|
309
|
-
});
|
|
310
|
-
|
|
311
|
-
// Getting related variables
|
|
312
|
-
const relatedVariables = getRelatedVariablesValues(id, index, variablesList);
|
|
313
|
-
|
|
314
|
-
// Getting values
|
|
315
|
-
const variablesValues: Record<string, string> = {};
|
|
316
|
-
|
|
317
|
-
// Tells wether to use fallbackLabel
|
|
318
|
-
let useFallback: true | null = null;
|
|
319
|
-
|
|
320
|
-
variablesList.forEach((variableId) => {
|
|
321
|
-
const value = relatedVariables[variableId];
|
|
322
|
-
if (
|
|
323
|
-
value === undefined ||
|
|
324
|
-
value === null ||
|
|
325
|
-
(typeof value === "string" && value.trim().length === 0)
|
|
326
|
-
) {
|
|
327
|
-
useFallback = true;
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
variablesValues[variableId] = value.toString();
|
|
331
|
-
});
|
|
332
|
-
|
|
333
|
-
if (useFallback === true && typeof fallbackLabel === "string")
|
|
334
|
-
return fallbackLabel;
|
|
335
|
-
|
|
336
|
-
// Inserting values
|
|
337
|
-
let parsedLabel = `${label}`;
|
|
338
|
-
variablesList.forEach((variableId) => {
|
|
339
|
-
const value: string = variablesValues[variableId];
|
|
340
|
-
parsedLabel = parsedLabel.replace(
|
|
341
|
-
new RegExp(`\\[var:${variableId}\\]`, "gi"),
|
|
342
|
-
filterXSS(value)
|
|
343
|
-
);
|
|
344
|
-
});
|
|
345
|
-
|
|
346
|
-
return parsedLabel;
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
/**
|
|
350
|
-
* Parses raw string with variables
|
|
351
|
-
* @param text String to parse
|
|
352
|
-
*/
|
|
353
|
-
export type parseRawT = (
|
|
354
|
-
text: string,
|
|
355
|
-
inputs?: OVC_TYPE,
|
|
356
|
-
placeholder?: string
|
|
357
|
-
) => string;
|
|
358
|
-
export const parseRawWithVariables: parseRawT = (text, inputs, placeholder) => {
|
|
359
|
-
/**
|
|
360
|
-
* Variables
|
|
361
|
-
*/
|
|
362
|
-
|
|
363
|
-
// Extracting list of variables
|
|
364
|
-
const tagsMatch = text.match(/\[var:([0-9]+)\]/gi);
|
|
365
|
-
let variables: number[] = [];
|
|
366
|
-
if (tagsMatch !== null) {
|
|
367
|
-
// Tranforming tags into integer ids
|
|
368
|
-
const variablesTags: string[] = [...tagsMatch];
|
|
369
|
-
variables = variablesTags.map((current) => {
|
|
370
|
-
const outputVariableMatch = current.match(/([0-9]+)/);
|
|
371
|
-
if (outputVariableMatch === null) return 0;
|
|
372
|
-
return parseInt(outputVariableMatch[0], 10);
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
// Removing duplicated variables
|
|
377
|
-
variables = variables.filter((c, i) => variables.indexOf(c) === i);
|
|
378
|
-
|
|
379
|
-
// Making sure all variables exist
|
|
380
|
-
variables = variables.filter(
|
|
381
|
-
(c) => inputs !== undefined || selectVariableReference(c) !== undefined
|
|
382
|
-
);
|
|
383
|
-
|
|
384
|
-
// Getting values
|
|
385
|
-
const variablesValues: Record<string, string> = {};
|
|
386
|
-
variables.forEach((variableId) => {
|
|
387
|
-
const value = inputs
|
|
388
|
-
? inputs.variables[variableId]?.[0]
|
|
389
|
-
: selectVariableInputByIndex(variableId, 0);
|
|
390
|
-
if (
|
|
391
|
-
value === undefined ||
|
|
392
|
-
value === null ||
|
|
393
|
-
(typeof value === "string" && value.trim().length === 0)
|
|
394
|
-
) {
|
|
395
|
-
variablesValues[variableId] = placeholder || "";
|
|
396
|
-
} else {
|
|
397
|
-
variablesValues[variableId] = value.toString();
|
|
398
|
-
}
|
|
399
|
-
});
|
|
400
|
-
|
|
401
|
-
// Inserting values
|
|
402
|
-
let parsedText = `${text}`;
|
|
403
|
-
variables.forEach((variableId) => {
|
|
404
|
-
const value: string = variablesValues[variableId];
|
|
405
|
-
parsedText = parsedText.replace(
|
|
406
|
-
new RegExp(`\\[var:${variableId}\\]`, "gi"),
|
|
407
|
-
filterXSS(value)
|
|
408
|
-
);
|
|
409
|
-
});
|
|
410
|
-
|
|
411
|
-
return parsedText;
|
|
412
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { LoadableComponent } from "@loadable/component";
|
|
2
|
-
import Globals from "../Globals";
|
|
3
|
-
|
|
4
|
-
export const preloadTheme = async (theme: string) => {
|
|
5
|
-
// Preloading theme
|
|
6
|
-
const { default: components } = (await Globals.loadTheme(theme)) as {
|
|
7
|
-
default: Record<string, LoadableComponent<React.ComponentType>>;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
// Preloading components
|
|
11
|
-
try {
|
|
12
|
-
components.WizardComponent.preload();
|
|
13
|
-
components.TermsheetComponent.preload();
|
|
14
|
-
components.EmailComponent.preload();
|
|
15
|
-
// eslint-disable-next-line no-empty
|
|
16
|
-
} catch (e) {}
|
|
17
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export const loadScripts = () => {
|
|
2
|
-
if (Array.isArray(window.wizardxLoadAfterLcp)) {
|
|
3
|
-
setTimeout(
|
|
4
|
-
() =>
|
|
5
|
-
window.wizardxLoadAfterLcp.forEach(async (script) => {
|
|
6
|
-
if (typeof script === "function") {
|
|
7
|
-
(async () => script())();
|
|
8
|
-
} else if (
|
|
9
|
-
typeof script === "object" &&
|
|
10
|
-
Object.keys(script).length === 1 &&
|
|
11
|
-
typeof script.src === "string"
|
|
12
|
-
) {
|
|
13
|
-
const element = document.createElement("script");
|
|
14
|
-
element.src = script.src;
|
|
15
|
-
}
|
|
16
|
-
}),
|
|
17
|
-
1000
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { FRENCH_OVERSEAS_NUMBERS_REGEX } from "../constants/phoneValidation";
|
|
2
|
-
import Extracts from "../libs/Extracts";
|
|
3
|
-
import { pardotAttributes } from "../service/pardot.service";
|
|
4
|
-
|
|
5
|
-
const formatMobilePhone = async (number: string): Promise<string> => {
|
|
6
|
-
const phoneNumber = new (await (
|
|
7
|
-
await import("awesome-phonenumber")
|
|
8
|
-
).default)(number, "FR");
|
|
9
|
-
const sanitizedNumber = phoneNumber.getNumber();
|
|
10
|
-
|
|
11
|
-
return !sanitizedNumber?.length ||
|
|
12
|
-
(!phoneNumber.isValid() &&
|
|
13
|
-
// Overseas number aren't considerate as valid mobile number by the core library whereas it should
|
|
14
|
-
!FRENCH_OVERSEAS_NUMBERS_REGEX.test(sanitizedNumber))
|
|
15
|
-
? ""
|
|
16
|
-
: sanitizedNumber;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export const getSIBExtract = async () => {
|
|
20
|
-
let sibExtract;
|
|
21
|
-
try {
|
|
22
|
-
Extracts.extractData();
|
|
23
|
-
sibExtract = Extracts.getSibExtractedData();
|
|
24
|
-
if (sibExtract.TEL) {
|
|
25
|
-
try {
|
|
26
|
-
sibExtract.SMS = await formatMobilePhone(sibExtract.TEL);
|
|
27
|
-
} catch (error) {
|
|
28
|
-
// the lib we use to format phone can throw exception
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
} catch (error) {
|
|
32
|
-
// eslint-disable-next-line no-console
|
|
33
|
-
console.error("Error while extracting sendiblue data", error);
|
|
34
|
-
}
|
|
35
|
-
return sibExtract;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export const getSendinblueIdentifyAttributes = async (
|
|
39
|
-
uniqid: string,
|
|
40
|
-
documentTitle: string,
|
|
41
|
-
nbFilledVars: number,
|
|
42
|
-
VALIDATION_Q2 = false,
|
|
43
|
-
domain = "www.legalplace.fr"
|
|
44
|
-
): Promise<Record<string, string | number | undefined | boolean | null>> => {
|
|
45
|
-
// Identifying client into Sendinblue
|
|
46
|
-
const sendinblueVars: {
|
|
47
|
-
[k: string]: string | undefined | boolean | number | null;
|
|
48
|
-
} = {
|
|
49
|
-
// TODO: Client_type: lpApp.getState().contract.client_type ? 'pro' : 'ind',
|
|
50
|
-
UNIQID: uniqid,
|
|
51
|
-
AB: Math.floor(Math.random() * 2),
|
|
52
|
-
TELECHARGEMENT: `${domain}/rt/${uniqid}`,
|
|
53
|
-
DOCUMENT: documentTitle,
|
|
54
|
-
WIZZARD_FILLED_FIELDS: nbFilledVars,
|
|
55
|
-
...(await getSIBExtract()),
|
|
56
|
-
...pardotAttributes(),
|
|
57
|
-
VALIDATION_Q2,
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
if (localStorage && localStorage.getItem("entranceUrl")) {
|
|
61
|
-
sendinblueVars.URL_ENTREE = localStorage.getItem("entranceUrl");
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return sendinblueVars;
|
|
65
|
-
};
|
package/src/hooks/usePrevious.ts
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { StateType } from "../types/State.type";
|
|
2
|
-
|
|
3
|
-
export class ConditionsInitiator {
|
|
4
|
-
private conditions: StateType.Conditions = {
|
|
5
|
-
options: {},
|
|
6
|
-
variables: {},
|
|
7
|
-
sections: {},
|
|
8
|
-
documents: {},
|
|
9
|
-
prefillers: {},
|
|
10
|
-
validators: {
|
|
11
|
-
options: {},
|
|
12
|
-
variables: {},
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
private references: StateType.References;
|
|
17
|
-
|
|
18
|
-
private inputs: StateType.Inputs;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* InitalConditions Constructor
|
|
22
|
-
* @param references References object
|
|
23
|
-
*/
|
|
24
|
-
constructor(references: StateType.References, inputs: StateType.Inputs) {
|
|
25
|
-
this.references = references;
|
|
26
|
-
this.inputs = inputs;
|
|
27
|
-
|
|
28
|
-
// Initiating conditions
|
|
29
|
-
this.initOptionsConditions();
|
|
30
|
-
this.initVariablesConditions();
|
|
31
|
-
this.initDocumentsConditions();
|
|
32
|
-
this.initSectionsConditions();
|
|
33
|
-
this.initPrefilliersConditions();
|
|
34
|
-
this.initValidators();
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Returns the related occurencies length for an option
|
|
39
|
-
*/
|
|
40
|
-
private getOptionOccurencyLength(optionId: string) {
|
|
41
|
-
const { parents } = this.references.relations.options[optionId];
|
|
42
|
-
if (parents === undefined)
|
|
43
|
-
throw new Error(`Cannot find parents for option ${optionId}`);
|
|
44
|
-
const rootParent = parents[parents.length - 1] || optionId;
|
|
45
|
-
const rootReference = this.references.options[rootParent];
|
|
46
|
-
const occurenciesOptionId =
|
|
47
|
-
rootReference.meta.type === "repeated" &&
|
|
48
|
-
rootReference.meta.repeatOption !== undefined
|
|
49
|
-
? rootReference.meta.repeatOption
|
|
50
|
-
: rootParent;
|
|
51
|
-
const inputs = this.inputs.options[occurenciesOptionId];
|
|
52
|
-
return inputs.length;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Returns the related occurencies length for a variable
|
|
57
|
-
*/
|
|
58
|
-
private getVariableOccurencyLength(variableId: string) {
|
|
59
|
-
const { parents } = this.references.relations.variables[variableId];
|
|
60
|
-
if (parents === undefined || parents.length === 0)
|
|
61
|
-
throw new Error(`Cannot find parents for variable ${variableId}`);
|
|
62
|
-
const rootParent = parents[parents.length - 1];
|
|
63
|
-
const rootReference = this.references.options[rootParent];
|
|
64
|
-
const occurenciesOptionId =
|
|
65
|
-
rootReference.meta.type === "repeated" &&
|
|
66
|
-
rootReference.meta.repeatOption !== undefined
|
|
67
|
-
? rootReference.meta.repeatOption
|
|
68
|
-
: rootParent;
|
|
69
|
-
const inputs = this.inputs.options[occurenciesOptionId];
|
|
70
|
-
return inputs.length;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Initiates Options conditions
|
|
75
|
-
*/
|
|
76
|
-
private initOptionsConditions() {
|
|
77
|
-
Object.keys(this.references.conditions.options).forEach((optionId) => {
|
|
78
|
-
this.conditions.options[optionId] = new Array(
|
|
79
|
-
this.getOptionOccurencyLength(optionId)
|
|
80
|
-
).fill(false);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Initiates Variables conditions
|
|
86
|
-
*/
|
|
87
|
-
private initVariablesConditions() {
|
|
88
|
-
Object.keys(this.references.conditions.variables).forEach((variableId) => {
|
|
89
|
-
this.conditions.variables[variableId] = new Array(
|
|
90
|
-
this.getVariableOccurencyLength(variableId)
|
|
91
|
-
).fill(false);
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Initiates Documents conditions
|
|
97
|
-
*/
|
|
98
|
-
private initDocumentsConditions() {
|
|
99
|
-
Object.keys(this.references.conditions.documents).forEach(
|
|
100
|
-
(documentName) => {
|
|
101
|
-
this.conditions.documents[documentName] = false;
|
|
102
|
-
}
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Initiates Sections conditions
|
|
108
|
-
*/
|
|
109
|
-
private initSectionsConditions() {
|
|
110
|
-
Object.keys(this.references.conditions.sections).forEach((documentName) => {
|
|
111
|
-
this.conditions.sections[documentName] = {};
|
|
112
|
-
Object.keys(this.references.conditions.sections[documentName]).forEach(
|
|
113
|
-
(sectionId) => {
|
|
114
|
-
this.conditions.sections[documentName][sectionId] = false;
|
|
115
|
-
}
|
|
116
|
-
);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Initiates Prefillers conditions
|
|
122
|
-
*/
|
|
123
|
-
private initPrefilliersConditions() {
|
|
124
|
-
Object.keys(this.references.conditions.prefillers).forEach(
|
|
125
|
-
(prefillerId) => {
|
|
126
|
-
this.conditions.prefillers[prefillerId] = new Array(
|
|
127
|
-
this.getVariableOccurencyLength(prefillerId)
|
|
128
|
-
).fill(
|
|
129
|
-
this.references.conditions.prefillers[prefillerId].map(() => false)
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Initiates validators
|
|
137
|
-
*/
|
|
138
|
-
private initValidators() {
|
|
139
|
-
// Initiating options validators
|
|
140
|
-
Object.keys(this.references.conditions.validators.options).forEach(
|
|
141
|
-
(optionId) => {
|
|
142
|
-
this.conditions.validators.options[optionId] = new Array(
|
|
143
|
-
this.getOptionOccurencyLength(optionId)
|
|
144
|
-
).fill(false);
|
|
145
|
-
}
|
|
146
|
-
);
|
|
147
|
-
|
|
148
|
-
// Initiating variables validators
|
|
149
|
-
Object.keys(this.references.conditions.validators.variables).forEach(
|
|
150
|
-
(variableId) => {
|
|
151
|
-
this.conditions.validators.variables[variableId] = new Array(
|
|
152
|
-
this.getVariableOccurencyLength(variableId)
|
|
153
|
-
).fill(false);
|
|
154
|
-
}
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Returns resulting conditions object
|
|
160
|
-
*/
|
|
161
|
-
public getConditions() {
|
|
162
|
-
return this.conditions;
|
|
163
|
-
}
|
|
164
|
-
}
|