@legalplace/wizardx-core 2.6.4 → 2.7.1
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 +49 -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/components/SmartScript.d.ts +2 -2
- package/dist/components/SmartScript.js +2 -0
- 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 +43 -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/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 +10 -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/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 +2 -0
- 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 +13 -13
- 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/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 -4
- 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/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 -250
- 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 -55
- package/src/redux/sagas/setDefaults.test.ts +0 -100
- package/src/redux/sagas/setDefaults.ts +0 -167
- package/src/redux/sagas/setUserEmail.ts +0 -175
- 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
|
@@ -20,3 +20,5 @@ export const UPDATE_CURRENT_SECTION_ID = "UPDATE_CURRENT_SECTION_ID";
|
|
|
20
20
|
export const UPDATE_AVAILABLE_SECTIONS = "UPDATE_AVAILABLE_SECTIONS";
|
|
21
21
|
export const INIT_CUSTOMIZATION_META = "INIT_CUSTOMIZATION_META";
|
|
22
22
|
export const INIT_CUSTOMIZATION_AUTO_DEFAULT = "INIT_CUSTOMIZATION_AUTO_DEFAULT";
|
|
23
|
+
export const DANGEROUS_DESTORY_STORE = "DANGEROUS_DESTORY_STORE";
|
|
24
|
+
export const INIT_PLUGINS = "@@INIT_PLUGINS";
|
|
@@ -5,12 +5,14 @@ import { INIT_CONDITIONS, UPDATE_SECTION_CONDITION, UPDATE_OPTION_CONDITION, UPD
|
|
|
5
5
|
import { selectOptionRelations, selectOptionConditionsObject, selectVariableConditionsObject, } from "../selectors/references";
|
|
6
6
|
import { setDataStatus } from "../actions/app";
|
|
7
7
|
import { selectSectionConditionValue, selectOptionConditionValue, selectVariableConditionValue, } from "../selectors/conditions";
|
|
8
|
+
import { selectDataStatus } from "../selectors/app";
|
|
8
9
|
const watchUpdateOptionInput = (mpi, next, action) => {
|
|
9
10
|
const { id, index, value } = action;
|
|
10
11
|
const oldValue = selectOptionInputByIndex(id, index);
|
|
11
12
|
const nextResult = next(action);
|
|
12
13
|
if (value !== oldValue) {
|
|
13
|
-
|
|
14
|
+
if (selectDataStatus() !== "unsaved")
|
|
15
|
+
mpi.dispatch(setDataStatus("unsaved"));
|
|
14
16
|
const Conditions = new ConditionsRunner(mpi.dispatch);
|
|
15
17
|
Conditions.executeHooks("options", id, index);
|
|
16
18
|
}
|
|
@@ -21,7 +23,8 @@ const watchUpdateOptionCondition = (mpi, next, action) => {
|
|
|
21
23
|
const oldValue = selectOptionConditionValue(id, index);
|
|
22
24
|
const nextResult = next(action);
|
|
23
25
|
if (value !== oldValue) {
|
|
24
|
-
|
|
26
|
+
if (selectDataStatus() !== "unsaved")
|
|
27
|
+
mpi.dispatch(setDataStatus("unsaved"));
|
|
25
28
|
const Conditions = new ConditionsRunner(mpi.dispatch);
|
|
26
29
|
Conditions.executeHooks("options", id, index);
|
|
27
30
|
}
|
|
@@ -32,7 +35,8 @@ const watchUpdateVariableInput = (mpi, next, action) => {
|
|
|
32
35
|
const oldValue = selectVariableInputByIndex(id, index);
|
|
33
36
|
const nextResult = next(action);
|
|
34
37
|
if (value !== oldValue) {
|
|
35
|
-
|
|
38
|
+
if (selectDataStatus() !== "unsaved")
|
|
39
|
+
mpi.dispatch(setDataStatus("unsaved"));
|
|
36
40
|
const Conditions = new ConditionsRunner(mpi.dispatch);
|
|
37
41
|
Conditions.executeHooks("variables", id, index);
|
|
38
42
|
}
|
|
@@ -43,7 +47,8 @@ const watchUpdateVariableCondition = (mpi, next, action) => {
|
|
|
43
47
|
const oldValue = selectVariableConditionValue(id, index);
|
|
44
48
|
const nextResult = next(action);
|
|
45
49
|
if (value !== oldValue) {
|
|
46
|
-
|
|
50
|
+
if (selectDataStatus() !== "unsaved")
|
|
51
|
+
mpi.dispatch(setDataStatus("unsaved"));
|
|
47
52
|
const Conditions = new ConditionsRunner(mpi.dispatch);
|
|
48
53
|
Conditions.executeHooks("variables", id, index);
|
|
49
54
|
}
|
|
@@ -65,7 +70,8 @@ const watchUpdateSectionCondition = (mpi, next, action) => {
|
|
|
65
70
|
const watchMultipleOccurenciesChange = (mpi, next, action) => {
|
|
66
71
|
const nextResult = next(action);
|
|
67
72
|
const Conditions = new ConditionsRunner(mpi.dispatch);
|
|
68
|
-
|
|
73
|
+
if (selectDataStatus() !== "unsaved")
|
|
74
|
+
mpi.dispatch(setDataStatus("unsaved"));
|
|
69
75
|
const { id } = action;
|
|
70
76
|
const optionRelations = selectOptionRelations(id);
|
|
71
77
|
if (optionRelations === undefined)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import conditionsWatcherMiddleware from
|
|
2
|
-
import { addMultipleOccurencyAction, deleteMultipleOccurencyAction, updateOptionAction, updateVariableAction, } from
|
|
3
|
-
import { initConditionsAction } from
|
|
1
|
+
import conditionsWatcherMiddleware from "./conditionsWatcherMiddleware";
|
|
2
|
+
import { addMultipleOccurencyAction, deleteMultipleOccurencyAction, updateOptionAction, updateVariableAction, } from "../actions/inputs";
|
|
3
|
+
import { initConditionsAction } from "../actions/conditions";
|
|
4
|
+
import { selectorsMiddleware } from "../selectors/selectors";
|
|
4
5
|
const mockInputs = {
|
|
5
6
|
variables: {
|
|
6
|
-
1: [
|
|
7
|
+
1: ["Hello"],
|
|
7
8
|
2: [],
|
|
8
9
|
3: [],
|
|
9
10
|
},
|
|
@@ -19,6 +20,11 @@ const mockInputs = {
|
|
|
19
20
|
const mpi = {
|
|
20
21
|
dispatch: jest.fn(),
|
|
21
22
|
getState: () => ({
|
|
23
|
+
app: {
|
|
24
|
+
instance: {
|
|
25
|
+
dataStatus: "saved",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
22
28
|
inputs: mockInputs,
|
|
23
29
|
}),
|
|
24
30
|
};
|
|
@@ -53,21 +59,21 @@ const mockOptionsRelations = {
|
|
|
53
59
|
dependants: [7, 8],
|
|
54
60
|
},
|
|
55
61
|
};
|
|
56
|
-
jest.mock(
|
|
62
|
+
jest.mock("../selectors/inputs", () => ({
|
|
57
63
|
__esModule: true,
|
|
58
64
|
selectOptionInput: (id) => mockInputs.options[id],
|
|
59
65
|
selectOptionInputByIndex: (id, index) => mockInputs.options[id][index],
|
|
60
66
|
selectVariableInput: (id) => mockInputs.variables[id],
|
|
61
67
|
selectVariableInputByIndex: (id, index) => mockInputs.variables[id][index],
|
|
62
68
|
}));
|
|
63
|
-
jest.mock(
|
|
69
|
+
jest.mock("../../libs/ConditionsRunner", () => {
|
|
64
70
|
class ConditionsRunnerMock {
|
|
65
71
|
constructor(dispatch) {
|
|
66
72
|
this.dispatch = dispatch;
|
|
67
73
|
}
|
|
68
74
|
executeHooks(...args) {
|
|
69
75
|
this.dispatch({
|
|
70
|
-
type:
|
|
76
|
+
type: "EXEC_HOOKS_MOCK",
|
|
71
77
|
arguments: args,
|
|
72
78
|
});
|
|
73
79
|
}
|
|
@@ -79,245 +85,246 @@ jest.mock('../../libs/ConditionsRunner', () => {
|
|
|
79
85
|
});
|
|
80
86
|
const mockOptionsConditions = {};
|
|
81
87
|
const mockVariablesConditions = {};
|
|
82
|
-
jest.mock(
|
|
88
|
+
jest.mock("../selectors/references", () => ({
|
|
83
89
|
__esModule: true,
|
|
84
90
|
selectOptionRelations: (id) => mockOptionsRelations[id],
|
|
85
91
|
selectOptionConditionsObject: (id) => mockOptionsConditions[id],
|
|
86
92
|
selectVariableConditionsObject: (id) => mockVariablesConditions[id],
|
|
87
93
|
}));
|
|
88
|
-
describe(
|
|
94
|
+
describe("Conditions Watcher Middleware Test suit", () => {
|
|
89
95
|
beforeEach(() => {
|
|
96
|
+
selectorsMiddleware(mpi)(next)({ type: "@INIT" });
|
|
90
97
|
jest.clearAllMocks();
|
|
91
98
|
});
|
|
92
|
-
it(
|
|
99
|
+
it("Completes INIT_CONDITIONS action correctly", () => {
|
|
93
100
|
conditionsWatcherMiddleware(mpi)(next)(initConditionsAction(initialConditions));
|
|
94
101
|
expect(next.mock.calls.length).toBe(1);
|
|
95
|
-
expect(next.mock.calls[0][0]).toStrictEqual(Object.assign({ type:
|
|
102
|
+
expect(next.mock.calls[0][0]).toStrictEqual(Object.assign({ type: "INIT_CONDITIONS" }, initialConditions));
|
|
96
103
|
expect(mpi.dispatch.mock.calls.length).toBe(12);
|
|
97
104
|
expect(mpi.dispatch.mock.calls[0][0]).toStrictEqual({
|
|
98
|
-
type:
|
|
99
|
-
arguments: [
|
|
105
|
+
type: "EXEC_HOOKS_MOCK",
|
|
106
|
+
arguments: ["options", 1, 0],
|
|
100
107
|
});
|
|
101
108
|
expect(mpi.dispatch.mock.calls[1][0]).toStrictEqual({
|
|
102
|
-
type:
|
|
103
|
-
arguments: [
|
|
109
|
+
type: "EXEC_HOOKS_MOCK",
|
|
110
|
+
arguments: ["options", 2, 0],
|
|
104
111
|
});
|
|
105
112
|
expect(mpi.dispatch.mock.calls[2][0]).toStrictEqual({
|
|
106
|
-
type:
|
|
107
|
-
arguments: [
|
|
113
|
+
type: "EXEC_HOOKS_MOCK",
|
|
114
|
+
arguments: ["options", 2, 1],
|
|
108
115
|
});
|
|
109
116
|
expect(mpi.dispatch.mock.calls[3][0]).toStrictEqual({
|
|
110
|
-
type:
|
|
111
|
-
arguments: [
|
|
117
|
+
type: "EXEC_HOOKS_MOCK",
|
|
118
|
+
arguments: ["options", 3, 0],
|
|
112
119
|
});
|
|
113
120
|
expect(mpi.dispatch.mock.calls[4][0]).toStrictEqual({
|
|
114
|
-
type:
|
|
115
|
-
arguments: [
|
|
121
|
+
type: "EXEC_HOOKS_MOCK",
|
|
122
|
+
arguments: ["options", 3, 1],
|
|
116
123
|
});
|
|
117
124
|
expect(mpi.dispatch.mock.calls[5][0]).toStrictEqual({
|
|
118
|
-
type:
|
|
119
|
-
arguments: [
|
|
125
|
+
type: "EXEC_HOOKS_MOCK",
|
|
126
|
+
arguments: ["options", 4, 0],
|
|
120
127
|
});
|
|
121
128
|
expect(mpi.dispatch.mock.calls[6][0]).toStrictEqual({
|
|
122
|
-
type:
|
|
123
|
-
arguments: [
|
|
129
|
+
type: "EXEC_HOOKS_MOCK",
|
|
130
|
+
arguments: ["options", 4, 1],
|
|
124
131
|
});
|
|
125
132
|
expect(mpi.dispatch.mock.calls[7][0]).toStrictEqual({
|
|
126
|
-
type:
|
|
127
|
-
arguments: [
|
|
133
|
+
type: "EXEC_HOOKS_MOCK",
|
|
134
|
+
arguments: ["options", 7, 0],
|
|
128
135
|
});
|
|
129
136
|
expect(mpi.dispatch.mock.calls[8][0]).toStrictEqual({
|
|
130
|
-
type:
|
|
131
|
-
arguments: [
|
|
137
|
+
type: "EXEC_HOOKS_MOCK",
|
|
138
|
+
arguments: ["options", 7, 1],
|
|
132
139
|
});
|
|
133
140
|
expect(mpi.dispatch.mock.calls[9][0]).toStrictEqual({
|
|
134
|
-
type:
|
|
135
|
-
arguments: [
|
|
141
|
+
type: "EXEC_HOOKS_MOCK",
|
|
142
|
+
arguments: ["options", 8, 0],
|
|
136
143
|
});
|
|
137
144
|
expect(mpi.dispatch.mock.calls[10][0]).toStrictEqual({
|
|
138
|
-
type:
|
|
139
|
-
arguments: [
|
|
145
|
+
type: "EXEC_HOOKS_MOCK",
|
|
146
|
+
arguments: ["options", 8, 1],
|
|
140
147
|
});
|
|
141
148
|
expect(mpi.dispatch.mock.calls[11][0]).toStrictEqual({
|
|
142
|
-
type:
|
|
143
|
-
arguments: [
|
|
149
|
+
type: "EXEC_HOOKS_MOCK",
|
|
150
|
+
arguments: ["variables", 1, 0],
|
|
144
151
|
});
|
|
145
152
|
});
|
|
146
|
-
it(
|
|
153
|
+
it("Completes UPDATE_OPTION_INPUT action correctly", () => {
|
|
147
154
|
conditionsWatcherMiddleware(mpi)(next)(updateOptionAction(3, false, 0));
|
|
148
155
|
expect(next.mock.calls.length).toBe(1);
|
|
149
156
|
expect(next.mock.calls[0][0]).toStrictEqual({
|
|
150
|
-
type:
|
|
157
|
+
type: "UPDATE_OPTION_INPUT",
|
|
151
158
|
id: 3,
|
|
152
159
|
index: 0,
|
|
153
160
|
value: false,
|
|
154
161
|
});
|
|
155
162
|
expect(mpi.dispatch.mock.calls.length).toBe(2);
|
|
156
163
|
expect(mpi.dispatch.mock.calls[0][0]).toStrictEqual({
|
|
157
|
-
type:
|
|
158
|
-
dataStatus:
|
|
164
|
+
type: "SET_DATA_STATUS",
|
|
165
|
+
dataStatus: "unsaved",
|
|
159
166
|
});
|
|
160
167
|
expect(mpi.dispatch.mock.calls[1][0]).toStrictEqual({
|
|
161
|
-
type:
|
|
162
|
-
arguments: [
|
|
168
|
+
type: "EXEC_HOOKS_MOCK",
|
|
169
|
+
arguments: ["options", 3, 0],
|
|
163
170
|
});
|
|
164
171
|
});
|
|
165
|
-
it(
|
|
166
|
-
conditionsWatcherMiddleware(mpi)(next)(updateVariableAction(1,
|
|
172
|
+
it("Completes UPDATE_VARIABLE_INPUT action correctly", () => {
|
|
173
|
+
conditionsWatcherMiddleware(mpi)(next)(updateVariableAction(1, "Hey", 0));
|
|
167
174
|
expect(next.mock.calls.length).toBe(1);
|
|
168
175
|
expect(next.mock.calls[0][0]).toStrictEqual({
|
|
169
|
-
type:
|
|
176
|
+
type: "UPDATE_VARIABLE_INPUT",
|
|
170
177
|
id: 1,
|
|
171
178
|
index: 0,
|
|
172
|
-
value:
|
|
179
|
+
value: "Hey",
|
|
173
180
|
});
|
|
174
181
|
expect(mpi.dispatch.mock.calls.length).toBe(2);
|
|
175
182
|
expect(mpi.dispatch.mock.calls[0][0]).toStrictEqual({
|
|
176
|
-
type:
|
|
177
|
-
dataStatus:
|
|
183
|
+
type: "SET_DATA_STATUS",
|
|
184
|
+
dataStatus: "unsaved",
|
|
178
185
|
});
|
|
179
186
|
expect(mpi.dispatch.mock.calls[1][0]).toStrictEqual({
|
|
180
|
-
type:
|
|
181
|
-
arguments: [
|
|
187
|
+
type: "EXEC_HOOKS_MOCK",
|
|
188
|
+
arguments: ["variables", 1, 0],
|
|
182
189
|
});
|
|
183
190
|
});
|
|
184
|
-
it(
|
|
191
|
+
it("Completes ADD_MULTIPLE_OCCURENCY action correctly", () => {
|
|
185
192
|
conditionsWatcherMiddleware(mpi)(next)(addMultipleOccurencyAction(2));
|
|
186
193
|
expect(next.mock.calls.length).toBe(1);
|
|
187
194
|
expect(next.mock.calls[0][0]).toStrictEqual({
|
|
188
|
-
type:
|
|
195
|
+
type: "ADD_MULTIPLE_OCCURENCY",
|
|
189
196
|
id: 2,
|
|
190
197
|
});
|
|
191
198
|
expect(mpi.dispatch.mock.calls.length).toBe(15);
|
|
192
199
|
expect(mpi.dispatch.mock.calls[0][0]).toStrictEqual({
|
|
193
|
-
type:
|
|
194
|
-
dataStatus:
|
|
200
|
+
type: "SET_DATA_STATUS",
|
|
201
|
+
dataStatus: "unsaved",
|
|
195
202
|
});
|
|
196
203
|
expect(mpi.dispatch.mock.calls[1][0]).toStrictEqual({
|
|
197
|
-
type:
|
|
198
|
-
arguments: [
|
|
204
|
+
type: "EXEC_HOOKS_MOCK",
|
|
205
|
+
arguments: ["options", 2, 0],
|
|
199
206
|
});
|
|
200
207
|
expect(mpi.dispatch.mock.calls[2][0]).toStrictEqual({
|
|
201
|
-
type:
|
|
202
|
-
arguments: [
|
|
208
|
+
type: "EXEC_HOOKS_MOCK",
|
|
209
|
+
arguments: ["options", 2, 1],
|
|
203
210
|
});
|
|
204
211
|
expect(mpi.dispatch.mock.calls[3][0]).toStrictEqual({
|
|
205
|
-
type:
|
|
206
|
-
arguments: [
|
|
212
|
+
type: "EXEC_HOOKS_MOCK",
|
|
213
|
+
arguments: ["options", 3, 0],
|
|
207
214
|
});
|
|
208
215
|
expect(mpi.dispatch.mock.calls[4][0]).toStrictEqual({
|
|
209
|
-
type:
|
|
210
|
-
arguments: [
|
|
216
|
+
type: "EXEC_HOOKS_MOCK",
|
|
217
|
+
arguments: ["options", 3, 1],
|
|
211
218
|
});
|
|
212
219
|
expect(mpi.dispatch.mock.calls[5][0]).toStrictEqual({
|
|
213
|
-
type:
|
|
214
|
-
arguments: [
|
|
220
|
+
type: "EXEC_HOOKS_MOCK",
|
|
221
|
+
arguments: ["options", 4, 0],
|
|
215
222
|
});
|
|
216
223
|
expect(mpi.dispatch.mock.calls[6][0]).toStrictEqual({
|
|
217
|
-
type:
|
|
218
|
-
arguments: [
|
|
224
|
+
type: "EXEC_HOOKS_MOCK",
|
|
225
|
+
arguments: ["options", 4, 1],
|
|
219
226
|
});
|
|
220
227
|
expect(mpi.dispatch.mock.calls[7][0]).toStrictEqual({
|
|
221
|
-
type:
|
|
222
|
-
arguments: [
|
|
228
|
+
type: "EXEC_HOOKS_MOCK",
|
|
229
|
+
arguments: ["options", 7, 0],
|
|
223
230
|
});
|
|
224
231
|
expect(mpi.dispatch.mock.calls[8][0]).toStrictEqual({
|
|
225
|
-
type:
|
|
226
|
-
arguments: [
|
|
232
|
+
type: "EXEC_HOOKS_MOCK",
|
|
233
|
+
arguments: ["options", 7, 1],
|
|
227
234
|
});
|
|
228
235
|
expect(mpi.dispatch.mock.calls[9][0]).toStrictEqual({
|
|
229
|
-
type:
|
|
230
|
-
arguments: [
|
|
236
|
+
type: "EXEC_HOOKS_MOCK",
|
|
237
|
+
arguments: ["options", 8, 0],
|
|
231
238
|
});
|
|
232
239
|
expect(mpi.dispatch.mock.calls[10][0]).toStrictEqual({
|
|
233
|
-
type:
|
|
234
|
-
arguments: [
|
|
240
|
+
type: "EXEC_HOOKS_MOCK",
|
|
241
|
+
arguments: ["options", 8, 1],
|
|
235
242
|
});
|
|
236
243
|
expect(mpi.dispatch.mock.calls[11][0]).toStrictEqual({
|
|
237
|
-
type:
|
|
238
|
-
arguments: [
|
|
244
|
+
type: "EXEC_HOOKS_MOCK",
|
|
245
|
+
arguments: ["variables", 2, 0],
|
|
239
246
|
});
|
|
240
247
|
expect(mpi.dispatch.mock.calls[12][0]).toStrictEqual({
|
|
241
|
-
type:
|
|
242
|
-
arguments: [
|
|
248
|
+
type: "EXEC_HOOKS_MOCK",
|
|
249
|
+
arguments: ["variables", 2, 1],
|
|
243
250
|
});
|
|
244
251
|
expect(mpi.dispatch.mock.calls[13][0]).toStrictEqual({
|
|
245
|
-
type:
|
|
246
|
-
arguments: [
|
|
252
|
+
type: "EXEC_HOOKS_MOCK",
|
|
253
|
+
arguments: ["variables", 3, 0],
|
|
247
254
|
});
|
|
248
255
|
expect(mpi.dispatch.mock.calls[14][0]).toStrictEqual({
|
|
249
|
-
type:
|
|
250
|
-
arguments: [
|
|
256
|
+
type: "EXEC_HOOKS_MOCK",
|
|
257
|
+
arguments: ["variables", 3, 1],
|
|
251
258
|
});
|
|
252
259
|
});
|
|
253
|
-
it(
|
|
260
|
+
it("Completes DELETE_MULTIPLE_OCCURENCY action correctly", () => {
|
|
254
261
|
conditionsWatcherMiddleware(mpi)(next)(deleteMultipleOccurencyAction(2, 1));
|
|
255
262
|
expect(next.mock.calls.length).toBe(1);
|
|
256
263
|
expect(next.mock.calls[0][0]).toStrictEqual({
|
|
257
|
-
type:
|
|
264
|
+
type: "DELETE_MULTIPLE_OCCURENCY",
|
|
258
265
|
id: 2,
|
|
259
266
|
index: 1,
|
|
260
267
|
});
|
|
261
268
|
expect(mpi.dispatch.mock.calls.length).toBe(15);
|
|
262
269
|
expect(mpi.dispatch.mock.calls[0][0]).toStrictEqual({
|
|
263
|
-
type:
|
|
264
|
-
dataStatus:
|
|
270
|
+
type: "SET_DATA_STATUS",
|
|
271
|
+
dataStatus: "unsaved",
|
|
265
272
|
});
|
|
266
273
|
expect(mpi.dispatch.mock.calls[1][0]).toStrictEqual({
|
|
267
|
-
type:
|
|
268
|
-
arguments: [
|
|
274
|
+
type: "EXEC_HOOKS_MOCK",
|
|
275
|
+
arguments: ["options", 2, 0],
|
|
269
276
|
});
|
|
270
277
|
expect(mpi.dispatch.mock.calls[2][0]).toStrictEqual({
|
|
271
|
-
type:
|
|
272
|
-
arguments: [
|
|
278
|
+
type: "EXEC_HOOKS_MOCK",
|
|
279
|
+
arguments: ["options", 2, 1],
|
|
273
280
|
});
|
|
274
281
|
expect(mpi.dispatch.mock.calls[3][0]).toStrictEqual({
|
|
275
|
-
type:
|
|
276
|
-
arguments: [
|
|
282
|
+
type: "EXEC_HOOKS_MOCK",
|
|
283
|
+
arguments: ["options", 3, 0],
|
|
277
284
|
});
|
|
278
285
|
expect(mpi.dispatch.mock.calls[4][0]).toStrictEqual({
|
|
279
|
-
type:
|
|
280
|
-
arguments: [
|
|
286
|
+
type: "EXEC_HOOKS_MOCK",
|
|
287
|
+
arguments: ["options", 3, 1],
|
|
281
288
|
});
|
|
282
289
|
expect(mpi.dispatch.mock.calls[5][0]).toStrictEqual({
|
|
283
|
-
type:
|
|
284
|
-
arguments: [
|
|
290
|
+
type: "EXEC_HOOKS_MOCK",
|
|
291
|
+
arguments: ["options", 4, 0],
|
|
285
292
|
});
|
|
286
293
|
expect(mpi.dispatch.mock.calls[6][0]).toStrictEqual({
|
|
287
|
-
type:
|
|
288
|
-
arguments: [
|
|
294
|
+
type: "EXEC_HOOKS_MOCK",
|
|
295
|
+
arguments: ["options", 4, 1],
|
|
289
296
|
});
|
|
290
297
|
expect(mpi.dispatch.mock.calls[7][0]).toStrictEqual({
|
|
291
|
-
type:
|
|
292
|
-
arguments: [
|
|
298
|
+
type: "EXEC_HOOKS_MOCK",
|
|
299
|
+
arguments: ["options", 7, 0],
|
|
293
300
|
});
|
|
294
301
|
expect(mpi.dispatch.mock.calls[8][0]).toStrictEqual({
|
|
295
|
-
type:
|
|
296
|
-
arguments: [
|
|
302
|
+
type: "EXEC_HOOKS_MOCK",
|
|
303
|
+
arguments: ["options", 7, 1],
|
|
297
304
|
});
|
|
298
305
|
expect(mpi.dispatch.mock.calls[9][0]).toStrictEqual({
|
|
299
|
-
type:
|
|
300
|
-
arguments: [
|
|
306
|
+
type: "EXEC_HOOKS_MOCK",
|
|
307
|
+
arguments: ["options", 8, 0],
|
|
301
308
|
});
|
|
302
309
|
expect(mpi.dispatch.mock.calls[10][0]).toStrictEqual({
|
|
303
|
-
type:
|
|
304
|
-
arguments: [
|
|
310
|
+
type: "EXEC_HOOKS_MOCK",
|
|
311
|
+
arguments: ["options", 8, 1],
|
|
305
312
|
});
|
|
306
313
|
expect(mpi.dispatch.mock.calls[11][0]).toStrictEqual({
|
|
307
|
-
type:
|
|
308
|
-
arguments: [
|
|
314
|
+
type: "EXEC_HOOKS_MOCK",
|
|
315
|
+
arguments: ["variables", 2, 0],
|
|
309
316
|
});
|
|
310
317
|
expect(mpi.dispatch.mock.calls[12][0]).toStrictEqual({
|
|
311
|
-
type:
|
|
312
|
-
arguments: [
|
|
318
|
+
type: "EXEC_HOOKS_MOCK",
|
|
319
|
+
arguments: ["variables", 2, 1],
|
|
313
320
|
});
|
|
314
321
|
expect(mpi.dispatch.mock.calls[13][0]).toStrictEqual({
|
|
315
|
-
type:
|
|
316
|
-
arguments: [
|
|
322
|
+
type: "EXEC_HOOKS_MOCK",
|
|
323
|
+
arguments: ["variables", 3, 0],
|
|
317
324
|
});
|
|
318
325
|
expect(mpi.dispatch.mock.calls[14][0]).toStrictEqual({
|
|
319
|
-
type:
|
|
320
|
-
arguments: [
|
|
326
|
+
type: "EXEC_HOOKS_MOCK",
|
|
327
|
+
arguments: ["variables", 3, 1],
|
|
321
328
|
});
|
|
322
329
|
});
|
|
323
330
|
});
|
|
@@ -21,8 +21,8 @@ const watchLocationChange = (mpi, next, action) => {
|
|
|
21
21
|
const pathReader = new PathReader(mpi.getState());
|
|
22
22
|
if (selectPermalink() === "") {
|
|
23
23
|
mpi.dispatch(initMetaAction({
|
|
24
|
-
permalink: pathReader.currentPermalink,
|
|
25
|
-
prefix: pathReader.
|
|
24
|
+
permalink: pathReader.currentPermalink || "",
|
|
25
|
+
prefix: pathReader.currentPrefix || "",
|
|
26
26
|
id: 0,
|
|
27
27
|
title: "",
|
|
28
28
|
modelVersion: 0,
|
|
@@ -9,6 +9,14 @@ import { updateOptionAction, updateVariableAction } from "../actions/inputs";
|
|
|
9
9
|
let iframe = null;
|
|
10
10
|
const watchEnableSmartScript = (mpi, next, action) => {
|
|
11
11
|
next(action);
|
|
12
|
+
if (PathReader.isSmartScriptPath()) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const iframeElement = document.querySelector("#lp-smartscript");
|
|
16
|
+
if (iframeElement) {
|
|
17
|
+
iframe = iframeElement;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
12
20
|
iframe = document.createElement("iframe");
|
|
13
21
|
iframe.id = "lp-smartscript";
|
|
14
22
|
iframe.setAttribute("style", "position: absolute; width:0; height:0; border:0;");
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { getPluginsStoreReducers } from "../../PluginLoader";
|
|
2
|
+
export const pluginsStoreReducer = (state = {}, action) => {
|
|
3
|
+
const pluginsStoreReducers = getPluginsStoreReducers();
|
|
4
|
+
const plugins = Object.keys(pluginsStoreReducers);
|
|
5
|
+
const newState = Object.assign({}, state);
|
|
6
|
+
for (let i = 0; i < plugins.length; i += 1) {
|
|
7
|
+
const currentPlugin = plugins[i];
|
|
8
|
+
const reducer = pluginsStoreReducers[currentPlugin];
|
|
9
|
+
newState[currentPlugin] = reducer(newState[currentPlugin], action);
|
|
10
|
+
}
|
|
11
|
+
return newState;
|
|
12
|
+
};
|
|
@@ -4,8 +4,8 @@ export const createHistory = (historyType) => {
|
|
|
4
4
|
history =
|
|
5
5
|
historyType === "memory"
|
|
6
6
|
? createMemoryHistory({
|
|
7
|
-
initialEntries: ["/
|
|
8
|
-
initialIndex:
|
|
7
|
+
initialEntries: ["/"],
|
|
8
|
+
initialIndex: 0,
|
|
9
9
|
})
|
|
10
10
|
: createBrowserHistory();
|
|
11
11
|
return history;
|
|
@@ -26,7 +26,7 @@ function* setFetchModelToNonBlocking(firstCurrentAppState) {
|
|
|
26
26
|
currentPage: 1,
|
|
27
27
|
greatestPage: 1,
|
|
28
28
|
currentSectionId: 0,
|
|
29
|
-
availableSections: [],
|
|
29
|
+
availableSections: [0],
|
|
30
30
|
currentAppState: firstCurrentAppState || "wizard",
|
|
31
31
|
availableAppStates: ["wizard"],
|
|
32
32
|
}));
|
|
@@ -42,10 +42,12 @@ function* getClientConfig(permalink, uniqid) {
|
|
|
42
42
|
throw new Error(`Unable to fetch client config, we did not receive any response`);
|
|
43
43
|
}
|
|
44
44
|
clientConfigResponse = yield call([clientConfigResponse, "json"]);
|
|
45
|
-
if ((
|
|
45
|
+
if (!getConfig().disableRemoteConfig &&
|
|
46
|
+
((_a = clientConfigResponse.clientConfig.metadata) === null || _a === void 0 ? void 0 : _a.apiEndpoint)) {
|
|
46
47
|
updateConfig(Object.assign(Object.assign({}, getConfig()), { apiEndpoint: (_b = clientConfigResponse.clientConfig.metadata) === null || _b === void 0 ? void 0 : _b.apiEndpoint }));
|
|
47
48
|
}
|
|
48
|
-
if ((
|
|
49
|
+
if (!getConfig().disableRemoteConfig &&
|
|
50
|
+
((_c = clientConfigResponse.clientConfig.metadata) === null || _c === void 0 ? void 0 : _c.plugins)) {
|
|
49
51
|
yield call(loadPlugins, (_d = clientConfigResponse.clientConfig.metadata) === null || _d === void 0 ? void 0 : _d.plugins);
|
|
50
52
|
}
|
|
51
53
|
else
|
|
@@ -55,7 +57,8 @@ function* getClientConfig(permalink, uniqid) {
|
|
|
55
57
|
if (/compactTheme/.test(window.location.href)) {
|
|
56
58
|
yield call(setWizardTheme, { name: "compact" });
|
|
57
59
|
}
|
|
58
|
-
else if ((
|
|
60
|
+
else if (!getConfig().disableRemoteConfig &&
|
|
61
|
+
((_g = (_f = clientConfigResponse.clientConfig.metadata) === null || _f === void 0 ? void 0 : _f.theme) === null || _g === void 0 ? void 0 : _g.name)) {
|
|
59
62
|
yield call(setWizardTheme, clientConfigResponse.clientConfig.metadata.theme);
|
|
60
63
|
}
|
|
61
64
|
else {
|
|
@@ -87,7 +90,6 @@ function* getWizardConfig(permalink, uniqidParam, prefix, queryParams) {
|
|
|
87
90
|
return { modelUuid: response.modelUuid };
|
|
88
91
|
}
|
|
89
92
|
function* fetchModelInformation(modelUuid, permalink, prefix, queryParams) {
|
|
90
|
-
var _a;
|
|
91
93
|
let response = yield call(fetch, ...getModelInformationArguments(modelUuid, queryParams));
|
|
92
94
|
if (response === undefined) {
|
|
93
95
|
throw new Error(`Unable to fetch wizard config, we did not receive any response`);
|
|
@@ -104,7 +106,14 @@ function* fetchModelInformation(modelUuid, permalink, prefix, queryParams) {
|
|
|
104
106
|
const meta = Object.assign(Object.assign({}, response.meta), { permalink,
|
|
105
107
|
prefix });
|
|
106
108
|
yield put(initMetaAction(meta));
|
|
107
|
-
|
|
109
|
+
const { brand } = getConfig();
|
|
110
|
+
const { name, documentTitle } = brand || {};
|
|
111
|
+
if (documentTitle !== false) {
|
|
112
|
+
document.title =
|
|
113
|
+
typeof documentTitle === "string"
|
|
114
|
+
? documentTitle
|
|
115
|
+
: `${meta.title} - ${name || "LegalPlace"}`;
|
|
116
|
+
}
|
|
108
117
|
const { references, customization, smartScript } = response;
|
|
109
118
|
yield put(initReferencesAction(references));
|
|
110
119
|
if (customization.disableAutoDefault !== undefined)
|
|
@@ -230,6 +239,13 @@ function* fetchModelPrerequisites(action) {
|
|
|
230
239
|
const queryParams = new URLSearchParams(window.location.search);
|
|
231
240
|
if (pathReader.modelVersion)
|
|
232
241
|
queryParams.set("version", pathReader.modelVersion);
|
|
242
|
+
const { apiQueryParams } = getConfig().metadata || {};
|
|
243
|
+
if (apiQueryParams) {
|
|
244
|
+
Object.keys(apiQueryParams).forEach((currentParam) => {
|
|
245
|
+
if (apiQueryParams[currentParam] !== undefined)
|
|
246
|
+
queryParams.set(currentParam, apiQueryParams[currentParam]);
|
|
247
|
+
});
|
|
248
|
+
}
|
|
233
249
|
const clientConfigReturnValue = yield call(getClientConfig, permalink, uniqid || "");
|
|
234
250
|
const wizardConfig = yield call(getWizardConfig, permalink, uniqidParam, prefix, queryParams);
|
|
235
251
|
yield put(fetchModelAction(permalink, prefix, uniqid, uniqidParam, queryParams, pathReader, urlParams, clientConfigReturnValue, wizardConfig));
|