@zohodesk/library-platform 1.1.10-exp.1 → 1.1.10-exp.2
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/es/bc/app-context/Properties.js +12 -2
- package/es/bc/sdk/ResourceNamesEnum.js +1 -0
- package/es/bc/zform/Constants.js +11 -1
- package/es/bc/zform/Properties.js +29 -33
- package/es/bc/zform/Symbol.js +1 -3
- package/es/bc/zlist/Properties.js +0 -51
- package/es/bc/zrecord/Constants.js +1 -0
- package/es/cc/fields/currency/Properties.js +2 -1
- package/es/cc/fields/field/Properties.js +14 -8
- package/es/cc/fields/lookup/Properties.js +34 -1
- package/es/cc/fields/text/Properties.js +0 -9
- package/es/cc/form/Properties.js +8 -0
- package/es/cc/form-connected/ExternalConstants.js +3 -0
- package/es/cc/form-connected/Properties.js +19 -11
- package/es/cc/table-connected/SdkContract.js +14 -0
- package/es/cc/table-connected/constants/Events.js +2 -1
- package/es/cc/table-list/row/Properties.js +8 -0
- package/es/index.js +13 -3
- package/es/library/analytics/Analytics.js +36 -0
- package/es/library/analytics/AnalyticsContract.js +13 -0
- package/es/library/analytics/index.js +2 -0
- package/es/library/custom-component/adapters/controllers/Controller.js +9 -0
- package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +4 -0
- package/es/library/custom-component/adapters/gateways/service/Service.js +2 -0
- package/es/library/custom-component/applications/entities-factory/ComponentFactory.js +12 -9
- package/es/library/custom-component/applications/usecases/DispatchUseCase.js +28 -5
- package/es/library/custom-component/applications/usecases/InitializeUseCase.js +5 -4
- package/es/library/custom-component/applications/usecases/MountUseCase.js +10 -6
- package/es/library/custom-component/applications/usecases/UnmountUseCase.js +6 -5
- package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +23 -18
- package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +4 -3
- package/es/library/custom-component/domain/entities/Behaviour.js +4 -0
- package/es/library/custom-component/domain/entities/Component.js +89 -83
- package/es/library/custom-component/domain/entities/Properties.js +10 -137
- package/es/library/custom-component/domain/entities/Property.js +29 -0
- package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +65 -28
- package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +26 -13
- package/es/library/custom-component/frameworks/ui/DependencyFactory.js +1 -2
- package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +2 -1
- package/es/library/dot/components/form/adapters/presenter/TransformState.js +3 -1
- package/es/library/dot/components/form/frameworks/ui/DefaultComponentRegister.js +10 -2
- package/es/library/dot/components/form/frameworks/ui/Form.js +2 -0
- package/es/library/dot/components/form/frameworks/ui/FormView.js +8 -4
- package/es/library/dot/components/form/frameworks/ui/css/Form.module.css +13 -13
- package/es/library/dot/components/form/frameworks/ui/sub-components/Footer.js +7 -4
- package/es/library/dot/components/form/frameworks/ui/sub-components/Header.js +7 -4
- package/es/library/dot/components/form-fields/currency/frameworks/ui/Currency.js +3 -3
- package/es/library/dot/components/form-fields/field/css/FieldItem.module.css +2 -2
- package/es/library/dot/components/form-fields/lookup/frameworks/ui/Lookup.js +1 -1
- package/es/library/dot/components/section/frameworks/ui/SectionView.js +12 -4
- package/es/library/dot/components/section/frameworks/ui/css/Section.module.css +3 -0
- package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +14 -7
- package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +15 -15
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/ErrorState.js +4 -7
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -6
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +6 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +6 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/Headers.js +4 -2
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +6 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Columns.js +4 -2
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +14 -7
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowActions.js +5 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +5 -3
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +32 -7
- package/es/library/dot/legacy-to-new-arch/breadcrumb/frameworks/ui/css/Breadcrumb.module.css +4 -4
- package/es/library/dot/legacy-to-new-arch/breadcrumb/frameworks/ui/sub-components/BreadcrumbItem.js +1 -1
- package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/ButtonView.js +2 -2
- package/es/library/dot/legacy-to-new-arch/date/frameworks/ui/DateView.js +4 -4
- package/es/library/dot/legacy-to-new-arch/date/frameworks/ui/css/DateView.module.css +1 -1
- package/es/library/dot/legacy-to-new-arch/label/frameworks/ui/LabelView.js +2 -2
- package/es/library/dot/legacy-to-new-arch/label/frameworks/ui/css/Label.module.css +4 -4
- package/es/library/dot/legacy-to-new-arch/multi-select/frameworks/ui/MultiSelectView.js +2 -2
- package/es/library/dot/legacy-to-new-arch/multi-select/frameworks/ui/css/MultiSelectView.module.css +9 -9
- package/es/library/dot/legacy-to-new-arch/select/frameworks/ui/SelectView.js +2 -2
- package/es/library/dot/legacy-to-new-arch/table-field-components/index.js +1 -0
- package/es/library/dot/legacy-to-new-arch/text/frameworks/ui/TextView.js +1 -1
- package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +2 -2
- package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/css/TextAreaView.module.css +9 -9
- package/es/library/dot/legacy-to-new-arch/textbox/frameworks/ui/TextBoxView.js +2 -2
- package/es/platform/client-actions/behaviour/zclient-actions/applications/usecases/SetClientActionsUseCase.js +6 -1
- package/es/platform/client-actions/behaviour/zclient-actions/domain/entities/ClientActionManager.js +58 -19
- package/es/platform/client-actions/behaviour/zclient-actions/domain/entities/ClientActions.js +8 -8
- package/es/platform/client-actions/behaviour/zclient-actions/domain/entities/interfaces/IClientActionFetchResponse.js +0 -0
- package/es/platform/client-actions/cc/action-event-mediator/Properties.js +75 -3
- package/es/platform/client-actions/components/action-event-mediator/adapters/controllers/MountController.js +1 -1
- package/es/platform/client-actions/components/action-event-mediator/adapters/controllers/PropertiesChangeController.js +2 -2
- package/es/platform/client-actions/components/action-event-mediator/adapters/gateway/Repository.js +2 -2
- package/es/platform/client-actions/components/action-event-mediator/applications/usecases/InitializeUseCase.js +15 -1
- package/es/platform/client-actions/components/action-event-mediator/applications/usecases/PropertiesChangeUseCase.js +3 -3
- package/es/platform/client-actions/components/action-event-mediator/domain/entities/ActionEventMediatorEntity.js +41 -24
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ActionEventMediator.js +3 -1
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ActionEventMediatorView.js +31 -14
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +2 -48
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +3 -11
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/AdaptiveRowActions/AdaptiveRowActionsRenderer.js +12 -0
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/AdaptiveRowActions/AdaptiveRowActionsRendererView.js +42 -0
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/MoreActions/MoreActionsRenderer.js +10 -0
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/MoreActions/MoreActionsRendererView.js +79 -0
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/{RowActionsRenderer.js → RowActions/RowActionsRenderer.js} +3 -3
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActions/RowActionsRenderer.module.css +19 -0
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActions/RowActionsRendererView.js +37 -0
- package/es/platform/client-actions/translators/client-actions-translator/index.js +14 -2
- package/es/platform/client-actions/translators/condition-resolver/index.js +6 -1
- package/es/platform/client-scripts/bc/zclient-scripts-execution/Constants.js +11 -0
- package/es/platform/client-scripts/bc/zclient-scripts-execution/EventHandlers.js +1 -0
- package/es/platform/client-scripts/bc/zclient-scripts-fetch/Constants.js +11 -0
- package/es/platform/client-scripts/bc/zclient-scripts-fetch/EventHandlers.js +1 -0
- package/es/platform/{app-context-behaviour → client-scripts/behaviour/zclient-scripts-execution}/adapters/controllers/AbstractController.js +2 -1
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/controllers/ClientScriptExecutionController.js +10 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/controllers/SetClientScriptsMappingController.js +10 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/gateways/Repository.js +24 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/gateways/Service.js +9 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/adapters/presenters/Presenter.js +21 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/interfaces/gateways/IService.js +0 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/usecases/AbstractUseCase.js +15 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/usecases/ExecuteClientScriptsUseCase.js +23 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/applications/usecases/SetClientScriptsMappingUseCase.js +16 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/domain/entities/ClientScriptExecutor.js +142 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/domain/entities/types/ClientScriptExectionTypeDefintions.js +7 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsExecutionBehaviourFactory.js +12 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsExecutionHandlersFactory.js +30 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-execution/frameworks/ClientScriptsUtils.js +25 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/AbstractController.js +8 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsController.js +27 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsFailureController.js +28 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsNoContentController.js +23 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsStopController.js +21 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/FetchClientScriptsSuccessController.js +28 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/MountController.js +22 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/controllers/SetClientScriptsController.js +24 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/gateways/Repository.js +22 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/gateways/Service.js +19 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/presenters/Presenter.js +16 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/entities-factory/ClientScriptsFactory.js +11 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/entities-factory/ClientScriptsManagerFactory.js +10 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/gateways/IService.js +0 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/AbstractUseCase.js +17 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptUseCase.js +33 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsFailureUseCase.js +22 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsNoContentUseCase.js +27 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsStopUseCase.js +25 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/FetchClientScriptsSuccessUseCase.js +22 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/InitializeUseCase.js +17 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/usecases/SetClientScriptsUseCase.js +21 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/ClientScript.js +24 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/ClientScripts.js +41 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/GetClientScriptsStrategy.js +44 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/ClientScriptEventMappingState.js +1 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/ClientScriptModel.js +1 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/ClientScriptsModel.js +1 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/IClientScript.js +0 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/IClientScripts.js +0 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/domain/entities/interfaces/IEvent.js +1 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/frameworks/ClientScriptsBehaviourFactory.js +12 -0
- package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/frameworks/ClientScriptsHandlersFactory.js +47 -0
- package/es/platform/client-scripts/cc/zclient-scripts-execution/clientScriptsSchema.js +15 -0
- package/es/platform/components/app/adapters/resources/AppResource.js +13 -3
- package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +7 -1
- package/es/platform/components/form-connected/frameworks/FormConnectedView.js +4 -2
- package/es/platform/components/table-connected/adapters/controllers/ColumnChooserUpdateController.js +7 -1
- package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +50 -0
- package/es/platform/components/table-connected/frameworks/EventHandlersFactory.js +216 -2
- package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +4 -2
- package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +6 -2
- package/es/platform/data-source/http-template/getClientScripts.js +23 -0
- package/es/platform/data-source/http-template/updateSelectedFields.js +1 -1
- package/es/platform/data-source/index.js +14 -11
- package/es/platform/data-source/utils/validation-rules/TransFormValidationRules.js +1 -0
- package/es/platform/sdk/frameworks/Sdk.js +1 -1
- package/es/platform/zdata-source/domain/entities/APITemplate.js +2 -1
- package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +6 -1
- package/es/platform/zform/adapters/controllers/IntializeController.js +4 -2
- package/es/platform/zform/adapters/controllers/MyLayoutSuccessController.js +4 -2
- package/es/platform/zform/adapters/controllers/SubmitValidationCompletedController.js +5 -1
- package/es/platform/zform/adapters/gateway/FormRepository.js +4 -2
- package/es/platform/zform/adapters/gateway/Service.js +2 -0
- package/es/platform/zform/adapters/presenter/FormTranslator.js +21 -15
- package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +5 -3
- package/es/platform/zform/applications/usecases/InitializeUseCase.js +54 -26
- package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +7 -7
- package/es/platform/zform/applications/usecases/MyLayoutSuccessUseCase.js +60 -36
- package/es/platform/zform/applications/usecases/SubmitValidationCompletedUseCase.js +12 -8
- package/es/platform/zform/domain/ZForm.js +65 -0
- package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +11 -2
- package/es/platform/zhttp/adapters/controllers/FetchController.js +5 -1
- package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
- package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +6 -3
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +15 -6
- package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +30 -19
- package/es/platform/zlist/adapters/presenters/translators/Header.js +5 -6
- package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +4 -2
- package/es/platform/zlist/adapters/presenters/translators/Row.js +5 -3
- package/es/platform/zlist/adapters/presenters/translators/RowsTranslator.js +6 -2
- package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
- package/es/platform/zlist/domain/entities/List.js +17 -2
- package/package.json +3 -3
- package/es/cc/form-connected/Constants.js +0 -12
- package/es/library/custom-component/applications/usecases/MountUseCase copy.js +0 -28
- package/es/platform/app-context-behaviour/adapters/controllers/InitializeController.js +0 -19
- package/es/platform/app-context-behaviour/adapters/gateways/Service.js +0 -7
- package/es/platform/app-context-behaviour/adapters/presenters/Presenter.js +0 -18
- package/es/platform/app-context-behaviour/adapters/resources/AppResource.js +0 -25
- package/es/platform/app-context-behaviour/applications/AbstractUseCase.js +0 -6
- package/es/platform/app-context-behaviour/applications/usecases/InitializeUseCase.js +0 -15
- package/es/platform/app-context-behaviour/frameworks/EventHandlerFactory.js +0 -25
- package/es/platform/client-actions/cc/dynamic-action-component/Properties.js +0 -51
- package/es/platform/client-actions/components/dynamic-component/frameworks/ui/DynamicActionComponent.js +0 -9
- package/es/platform/client-actions/components/dynamic-component/frameworks/ui/DynamicActionComponentView.js +0 -38
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -19
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +0 -33
- package/es/platform/components/form-connected/frameworks/FallbackView.js +0 -23
- package/es/platform/components/form-connected/frameworks/FormFallbackView.js +0 -23
- package/es/platform/data-source/http-template/fetchDependencyMappings.js +0 -18
- package/es/platform/data-source/http-template/fetchLayoutRules.js +0 -29
- package/es/platform/data-source/http-template/fetchMyForm.js +0 -19
- package/es/platform/data-source/http-template/fetchMyFormLayout.js +0 -43
- package/es/platform/data-source/http-template/fetchValidationRules.js +0 -30
- package/es/platform/zlist/adapters/presenters/translators/ColumnAlignmentTranslator.js +0 -11
- /package/es/platform/{app-context-behaviour/applications/interfaces/UsecaseDependencies.js → client-actions/behaviour/zclient-actions/domain/entities/interfaces/ClientActionResponse.js} +0 -0
- /package/es/platform/{app-context-behaviour/applications/interfaces/gateways/IService.js → client-scripts/behaviour/zclient-scripts-execution/applications/interfaces/InputDependencies.js} +0 -0
- /package/es/platform/{app-context-behaviour/applications/interfaces/input/InitializeUseCaseInputModel.js → client-scripts/behaviour/zclient-scripts-execution/applications/interfaces/gateways/IRepository.js} +0 -0
- /package/es/platform/{app-context-behaviour → client-scripts/behaviour/zclient-scripts-execution}/applications/interfaces/output/IPresenter.js +0 -0
- /package/es/platform/{app-context-behaviour/applications/interfaces/output/BehaviourState.js → client-scripts/behaviour/zclient-scripts-execution/domain/entities/State.js} +0 -0
- /package/es/platform/{app-context-behaviour/applications/interfaces/resources/ApiHeaderContract.js → client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/InputDependencies.js} +0 -0
- /package/es/platform/{app-context-behaviour/applications/interfaces/resources/ContextContract.js → client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/gateways/IRepository.js} +0 -0
- /package/es/platform/{app-context-behaviour/applications/interfaces/resources/IAppResource.js → client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/output/IPresenter.js} +0 -0
- /package/es/platform/{client-actions/components/dynamic-component/domain/entities/interfaces/IState.js → client-scripts/behaviour/zclient-scripts-fetch/domain/entities/State.js} +0 -0
|
@@ -1,19 +1,42 @@
|
|
|
1
|
+
/* eslint-disable max-lines-per-function */
|
|
2
|
+
|
|
3
|
+
/* eslint-disable complexity */
|
|
4
|
+
import { ACA_ERROR_OCCURRED } from "../../../../cc/component/ErrorStructure";
|
|
1
5
|
import AbstractUseCase from "./AbstractUseCase";
|
|
2
6
|
|
|
3
7
|
class DispatchUseCase extends AbstractUseCase {
|
|
4
8
|
execute(input) {
|
|
5
|
-
|
|
9
|
+
const {
|
|
6
10
|
repository,
|
|
7
11
|
presenter,
|
|
8
12
|
eventManager
|
|
9
13
|
} = this.dependencies;
|
|
10
|
-
|
|
14
|
+
const component = repository.getComponent();
|
|
15
|
+
|
|
16
|
+
if (component.canSkipDispatchingEvent(input.type)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
11
19
|
|
|
12
20
|
try {
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
if (input.type === ACA_ERROR_OCCURRED) {
|
|
22
|
+
const {
|
|
23
|
+
payload
|
|
24
|
+
} = input;
|
|
25
|
+
|
|
26
|
+
if (payload.errorDetails?.isBreaking) {
|
|
27
|
+
component.setError(payload);
|
|
28
|
+
presenter.setError(payload);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const action = component.getPublicErrorEvent(payload);
|
|
32
|
+
eventManager.dispatch(action);
|
|
33
|
+
} else {
|
|
34
|
+
const action = component.constructAction(input);
|
|
35
|
+
eventManager.dispatch(action);
|
|
36
|
+
}
|
|
15
37
|
} catch (e) {
|
|
16
|
-
|
|
38
|
+
component.setError(e);
|
|
39
|
+
presenter.setError(e);
|
|
17
40
|
}
|
|
18
41
|
}
|
|
19
42
|
|
|
@@ -6,17 +6,18 @@ class InitializeUseCase extends AbstractUseCase {
|
|
|
6
6
|
let {
|
|
7
7
|
presenter,
|
|
8
8
|
jsonValidator,
|
|
9
|
-
repository
|
|
10
|
-
schemaValidator
|
|
9
|
+
repository
|
|
11
10
|
} = this.dependencies;
|
|
12
11
|
let component = createComponent(input, input.helpers);
|
|
13
12
|
|
|
14
13
|
try {
|
|
15
|
-
component.init(jsonValidator, input.newProps
|
|
14
|
+
component.init(jsonValidator, input.newProps);
|
|
16
15
|
let state = component.getState();
|
|
17
16
|
presenter.render(state);
|
|
18
17
|
} catch (e) {
|
|
19
|
-
|
|
18
|
+
const error = component.getClassifiedErrorStructure(e);
|
|
19
|
+
component.setError(error);
|
|
20
|
+
presenter.setError(error);
|
|
20
21
|
} finally {
|
|
21
22
|
repository.save(component);
|
|
22
23
|
}
|
|
@@ -2,20 +2,24 @@ import AbstractUseCase from "./AbstractUseCase";
|
|
|
2
2
|
|
|
3
3
|
class MountUsecase extends AbstractUseCase {
|
|
4
4
|
execute() {
|
|
5
|
-
|
|
5
|
+
const {
|
|
6
6
|
repository,
|
|
7
7
|
presenter,
|
|
8
8
|
eventManager
|
|
9
9
|
} = this.dependencies;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const component = repository.getComponent();
|
|
11
|
+
const mountAction = component.getMountAction();
|
|
12
|
+
const eventHandlers = component.getEventHandlersWrapper();
|
|
13
13
|
|
|
14
14
|
try {
|
|
15
15
|
eventManager.subscribe(eventHandlers);
|
|
16
|
-
|
|
16
|
+
|
|
17
|
+
if (!component.hasBreakingError()) {
|
|
18
|
+
eventManager.dispatch(mountAction);
|
|
19
|
+
}
|
|
17
20
|
} catch (e) {
|
|
18
|
-
|
|
21
|
+
component.setError(e);
|
|
22
|
+
presenter.setError(e);
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
25
|
|
|
@@ -2,21 +2,22 @@ import AbstractUseCase from "./AbstractUseCase";
|
|
|
2
2
|
|
|
3
3
|
class UnmountUsecase extends AbstractUseCase {
|
|
4
4
|
execute() {
|
|
5
|
-
|
|
5
|
+
const {
|
|
6
6
|
repository,
|
|
7
7
|
presenter,
|
|
8
8
|
eventManager
|
|
9
9
|
} = this.dependencies;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const component = repository.getComponent();
|
|
11
|
+
const eventHanlders = component.getEventHandlers();
|
|
12
|
+
const unmountAction = component.getUnmountAction();
|
|
13
13
|
|
|
14
14
|
try {
|
|
15
15
|
eventManager.dispatch(unmountAction);
|
|
16
16
|
eventManager.unSubscribe(eventHanlders);
|
|
17
17
|
repository.clear();
|
|
18
18
|
} catch (e) {
|
|
19
|
-
|
|
19
|
+
component.setError(null);
|
|
20
|
+
presenter.setError(null);
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
|
|
@@ -2,29 +2,34 @@ import AbstractUseCase from "./AbstractUseCase";
|
|
|
2
2
|
|
|
3
3
|
class UpdatePropertyUseCase extends AbstractUseCase {
|
|
4
4
|
execute(newProps) {
|
|
5
|
-
|
|
5
|
+
const {
|
|
6
6
|
repository,
|
|
7
7
|
jsonValidator,
|
|
8
8
|
eventManager,
|
|
9
|
-
presenter
|
|
10
|
-
schemaValidator
|
|
9
|
+
presenter
|
|
11
10
|
} = this.dependencies;
|
|
12
|
-
|
|
13
|
-
let properties = component.getProperties();
|
|
14
|
-
let isUpdated = component.updateProperties(jsonValidator, newProps, schemaValidator);
|
|
11
|
+
const component = repository.getComponent();
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
try {
|
|
14
|
+
const properties = component.getProperties();
|
|
15
|
+
const isUpdated = component.updateProperties(jsonValidator, newProps);
|
|
16
|
+
|
|
17
|
+
if (isUpdated) {
|
|
18
|
+
const updatedProperties = component.getProperties();
|
|
19
|
+
const state = component.getState();
|
|
20
|
+
presenter.render(state);
|
|
21
|
+
const updatePropertyAction = component.getPropertyUpdateAction({
|
|
22
|
+
currentProperties: updatedProperties,
|
|
23
|
+
previousProperties: properties
|
|
24
|
+
});
|
|
25
|
+
eventManager.dispatch(updatePropertyAction);
|
|
26
|
+
eventManager.dispatch(component.getStateUpdatedAction({
|
|
27
|
+
state
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
} catch (error) {
|
|
31
|
+
component.setError(error);
|
|
32
|
+
presenter.setError(error);
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
|
|
@@ -7,15 +7,16 @@ class UpdateStateUseCase extends AbstractUseCase {
|
|
|
7
7
|
presenter,
|
|
8
8
|
eventManager
|
|
9
9
|
} = this.dependencies;
|
|
10
|
-
let component = repository.getComponent();
|
|
11
|
-
// console.log(`preState ${component.getName()}`,preState)
|
|
10
|
+
let component = repository.getComponent();
|
|
11
|
+
let preState = component.getState(); // console.log(`preState ${component.getName()}`,preState)
|
|
12
12
|
|
|
13
13
|
component.updateState(newState);
|
|
14
14
|
let state = component.getState(); // console.log(`newState ${component.getName()}`,state)
|
|
15
15
|
|
|
16
16
|
presenter.render(state);
|
|
17
17
|
eventManager.dispatch(component.getStateUpdatedAction({
|
|
18
|
-
state
|
|
18
|
+
state,
|
|
19
|
+
preState
|
|
19
20
|
}));
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -1,25 +1,75 @@
|
|
|
1
|
+
/* eslint-disable complexity */
|
|
1
2
|
import EventHandler from "./EventHandler";
|
|
3
|
+
import { ERROR_OCCURRED_SUFFIX, ErrorCodes } from "../../../../cc/component/ErrorStructure";
|
|
2
4
|
export default class Component {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
currentError = null;
|
|
6
|
+
|
|
7
|
+
constructor(componentProperties) {
|
|
8
|
+
this.componentProperties = componentProperties;
|
|
5
9
|
}
|
|
6
10
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Object.keys(this._behavioursProperties).forEach((value, key) => {
|
|
10
|
-
output[value] = this._behavioursProperties[value].getValue();
|
|
11
|
-
});
|
|
12
|
-
return output;
|
|
11
|
+
setLogger(logger) {
|
|
12
|
+
this.logger = logger;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
mergeStateAndProps() {
|
|
16
16
|
return { ...this._state.getState(),
|
|
17
|
-
properties:
|
|
18
|
-
...this.getAllBehavioursPropertiesWithValue()
|
|
19
|
-
}
|
|
17
|
+
properties: this.componentProperties.getAllPropertiesValue()
|
|
20
18
|
};
|
|
21
19
|
}
|
|
22
20
|
|
|
21
|
+
hasBreakingError() {
|
|
22
|
+
return !!this.currentError?.errorDetails?.isBreaking;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
canSkipDispatchingEvent(eventName) {
|
|
26
|
+
if (!this.hasBreakingError()) {
|
|
27
|
+
return false;
|
|
28
|
+
} // TODO: eventName.endsWith('UPDATE_PROPERTIES')
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
if (eventName.endsWith(ERROR_OCCURRED_SUFFIX)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
setError(error) {
|
|
39
|
+
error && this.logger.logError(error);
|
|
40
|
+
|
|
41
|
+
if (this.hasBreakingError()) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
this.currentError = error;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
getClassifiedErrorStructure(error) {
|
|
49
|
+
if (error instanceof Error) {
|
|
50
|
+
return {
|
|
51
|
+
code: ErrorCodes.UNKNOWN_ERROR,
|
|
52
|
+
message: error.message,
|
|
53
|
+
errorDetails: {
|
|
54
|
+
isBreaking: true,
|
|
55
|
+
originalError: error
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
} // if ((error as ErrorStructure).code) {
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
return error; // }
|
|
62
|
+
// return this.currentError;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
getPublicErrorEvent(error) {
|
|
66
|
+
const payload = this.getClassifiedErrorStructure(error);
|
|
67
|
+
return this.constructAction({
|
|
68
|
+
type: `${this._name}${ERROR_OCCURRED_SUFFIX}`,
|
|
69
|
+
payload
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
23
73
|
getName() {
|
|
24
74
|
return this._name;
|
|
25
75
|
}
|
|
@@ -55,10 +105,6 @@ export default class Component {
|
|
|
55
105
|
return state;
|
|
56
106
|
}
|
|
57
107
|
|
|
58
|
-
setProperties(properties) {
|
|
59
|
-
this._properties = properties;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
108
|
setEvents(_events) {
|
|
63
109
|
this._events = _events;
|
|
64
110
|
}
|
|
@@ -89,57 +135,10 @@ export default class Component {
|
|
|
89
135
|
|
|
90
136
|
setBehaviours(behaviours) {
|
|
91
137
|
this._behaviours = behaviours;
|
|
92
|
-
/* store behaviour properties */
|
|
93
|
-
|
|
94
|
-
this._behaviours.forEach(behaviour => {
|
|
95
|
-
behaviour.getProperties().data && behaviour.getProperties().data.forEach(obj => {
|
|
96
|
-
this._behavioursProperties[obj.getName()] = obj.clone();
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
138
|
}
|
|
100
139
|
|
|
101
|
-
updateProperties(jsonValidator, newProps
|
|
102
|
-
|
|
103
|
-
let property = entries === undefined ? {} : entries;
|
|
104
|
-
let propertyValue = newProps === undefined ? {} : newProps;
|
|
105
|
-
|
|
106
|
-
let isBhvrErrorVisible = this._properties.validateRequiredProperty(schemaValidator, this._behavioursProperties, propertyValue);
|
|
107
|
-
|
|
108
|
-
let isCompErrorVisible = this._properties.validateRequiredProperty(schemaValidator, property, propertyValue);
|
|
109
|
-
|
|
110
|
-
let isChanged = false;
|
|
111
|
-
Object.keys(newProps).forEach(key => {
|
|
112
|
-
let property = null;
|
|
113
|
-
|
|
114
|
-
if (this._behavioursProperties[key]) {
|
|
115
|
-
property = this._behavioursProperties[key];
|
|
116
|
-
} else if (this._properties.findProperty(key)) {
|
|
117
|
-
property = this._properties.findProperty(key);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (property) {
|
|
121
|
-
const optionalSchema = property.getTypeMetadata().schema;
|
|
122
|
-
const propertyValue = newProps[key] === undefined ? property.getDefaultValue() : newProps[key];
|
|
123
|
-
|
|
124
|
-
const isValid = this._properties.validateSingleProperty(jsonValidator, key, propertyValue, optionalSchema);
|
|
125
|
-
|
|
126
|
-
if (isValid) {
|
|
127
|
-
isChanged = property.updateValue(newProps[key]) || isChanged;
|
|
128
|
-
}
|
|
129
|
-
/* return isValid */
|
|
130
|
-
|
|
131
|
-
} else {
|
|
132
|
-
throw new Error(`props '${key}' not exist `);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
if (isBhvrErrorVisible && isCompErrorVisible) {
|
|
137
|
-
throw "";
|
|
138
|
-
}
|
|
139
|
-
/* return this._properties.updateAllPropertiesValue(jsonValidator, newProps); */
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return isChanged;
|
|
140
|
+
updateProperties(jsonValidator, newProps) {
|
|
141
|
+
return this.componentProperties.validateAndUpdateProperties(jsonValidator, newProps);
|
|
143
142
|
}
|
|
144
143
|
|
|
145
144
|
updateState(state) {
|
|
@@ -158,15 +157,9 @@ export default class Component {
|
|
|
158
157
|
return allBehavioursInitialState;
|
|
159
158
|
}
|
|
160
159
|
|
|
161
|
-
init(jsonValidator, newProps
|
|
162
|
-
this.updateProperties(jsonValidator, newProps
|
|
163
|
-
|
|
164
|
-
const properties = this._properties.getAllPropertiesValue();
|
|
165
|
-
|
|
166
|
-
const behavioursProperties = this.getAllBehavioursPropertiesWithValue();
|
|
167
|
-
let allProperties = { ...properties,
|
|
168
|
-
...behavioursProperties
|
|
169
|
-
};
|
|
160
|
+
init(jsonValidator, newProps) {
|
|
161
|
+
this.updateProperties(jsonValidator, newProps);
|
|
162
|
+
const allProperties = this.componentProperties.getAllPropertiesValue();
|
|
170
163
|
const behaviours = this.getAllBehavioursInitialState(allProperties);
|
|
171
164
|
|
|
172
165
|
const initialState = this._stateInitializer({
|
|
@@ -179,9 +172,7 @@ export default class Component {
|
|
|
179
172
|
}
|
|
180
173
|
|
|
181
174
|
getProperties() {
|
|
182
|
-
return
|
|
183
|
-
...this.getAllBehavioursPropertiesWithValue()
|
|
184
|
-
};
|
|
175
|
+
return this.componentProperties.getAllPropertiesValue();
|
|
185
176
|
}
|
|
186
177
|
|
|
187
178
|
getEventHandlersWrapper() {
|
|
@@ -210,12 +201,27 @@ export default class Component {
|
|
|
210
201
|
let eventHandler = new EventHandler(key, event => {
|
|
211
202
|
let state = this.getHandlerState();
|
|
212
203
|
let action = event.detail;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
204
|
+
|
|
205
|
+
try {
|
|
206
|
+
actionHandler({
|
|
207
|
+
action,
|
|
208
|
+
host: event.currentTarget,
|
|
209
|
+
state,
|
|
210
|
+
...helpers
|
|
211
|
+
});
|
|
212
|
+
} catch (e) {
|
|
213
|
+
const error = {
|
|
214
|
+
code: ErrorCodes.EVENT_HANDLER_FAILED,
|
|
215
|
+
message: 'Error occurred in event handler for event ' + key,
|
|
216
|
+
errorDetails: {
|
|
217
|
+
isBreaking: false,
|
|
218
|
+
eventName: key,
|
|
219
|
+
event: action,
|
|
220
|
+
originalError: e instanceof Error ? e : undefined
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
helpers.dispatch(this.getPublicErrorEvent(error));
|
|
224
|
+
}
|
|
219
225
|
});
|
|
220
226
|
|
|
221
227
|
if (!eventHandlerMap.has(key)) {
|
|
@@ -241,7 +247,7 @@ export default class Component {
|
|
|
241
247
|
constructAction(input) {
|
|
242
248
|
let action = { ...input,
|
|
243
249
|
payload: { ...input.payload,
|
|
244
|
-
...this.
|
|
250
|
+
...this.componentProperties.getAppendToActionPayloadProperty()
|
|
245
251
|
}
|
|
246
252
|
};
|
|
247
253
|
return action;
|
|
@@ -8,7 +8,7 @@ export default class Properties {
|
|
|
8
8
|
this.data = properties;
|
|
9
9
|
this.data.set('appendToActionPayload', new Property(defaultAppendToActionPayload));
|
|
10
10
|
this.data.set('getRef', new Property(getRefPropertySchema));
|
|
11
|
-
typeof properties.get(
|
|
11
|
+
typeof properties.get('slotName') === 'undefined' && this.data.set('slotName', new Property(defaultSlotNameAppend));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
getAllPropertiesValue() {
|
|
@@ -20,152 +20,25 @@ export default class Properties {
|
|
|
20
20
|
|
|
21
21
|
return convertedObject;
|
|
22
22
|
}
|
|
23
|
-
/* break value object*/
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// this.validateProperties(validator, propertyValue);
|
|
28
|
-
if (!this.isEqual(propertyValue)) {
|
|
29
|
-
let isChanged = false;
|
|
30
|
-
Object.keys(propertyValue).forEach(key => {
|
|
31
|
-
let property = this.findProperty(key);
|
|
32
|
-
|
|
33
|
-
if (property.getValue() == null || property.getValue() == undefined) {
|
|
34
|
-
// property.updateValue(propertyValue[key]);
|
|
35
|
-
isChanged = true;
|
|
36
|
-
} else if (property.getValue() != propertyValue[key]) {
|
|
37
|
-
// property.updateValue(propertyValue[key]);
|
|
38
|
-
isChanged = true;
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
return isChanged;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return false;
|
|
24
|
+
getAllPropertiesKeys() {
|
|
25
|
+
return Array.from(this.data.keys());
|
|
45
26
|
}
|
|
46
27
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (isShallow) {
|
|
51
|
-
return this.shallowCompareWithNewObject(newProps);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return false;
|
|
28
|
+
findProperty(key) {
|
|
29
|
+
return this.data.get(key);
|
|
55
30
|
}
|
|
56
31
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
32
|
+
getPropertiesClone() {
|
|
33
|
+
const clonedMap = {};
|
|
34
|
+
this.data.forEach(obj => {
|
|
35
|
+
clonedMap[obj.getName()] = obj.clone();
|
|
61
36
|
});
|
|
62
|
-
|
|
63
|
-
if (errors.length > 0) {
|
|
64
|
-
this.handleValidationErrors(errors);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
validate(validator, key, value, errors) {
|
|
71
|
-
if (!this.data.has(key)) {
|
|
72
|
-
throw new Error(this.componentName + ` props '${key}' not exist `);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
let property = this.data.get(key);
|
|
76
|
-
let schema = property.getTypeMetadata().schema;
|
|
77
|
-
let isValid;
|
|
78
|
-
|
|
79
|
-
try {
|
|
80
|
-
isValid = validator(schema, value);
|
|
81
|
-
} catch (error) {
|
|
82
|
-
isValid = false;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (!isValid) {
|
|
86
|
-
const error = {
|
|
87
|
-
key: key,
|
|
88
|
-
componentName: this.componentName,
|
|
89
|
-
value: value,
|
|
90
|
-
schema: schema
|
|
91
|
-
};
|
|
92
|
-
errors.push(error);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
handleValidationErrors(errors) {
|
|
97
|
-
console.log('Property validation failed', this.componentName, errors);
|
|
98
|
-
throw new Error('Property validation failed');
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
getSchema(key, optionalSchema) {
|
|
102
|
-
if (optionalSchema) {
|
|
103
|
-
return optionalSchema;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return this.data.get(key).getTypeMetadata().schema;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
validateRequiredProperty(validator, properties, newProps) {
|
|
110
|
-
let errorWarn = validator(properties, newProps);
|
|
111
|
-
let isErrorVisible = false;
|
|
112
|
-
|
|
113
|
-
if (errorWarn.warnings && errorWarn.warnings.length > 0) {
|
|
114
|
-
errorWarn.warnings.forEach(warning => {
|
|
115
|
-
console.warn(`%c Property Validation Warnings in %c ${this.componentName}%c :\n${warning}`, 'font-weight: initial', 'color: #FF6F61;font-weight: bold', 'color: #FFA500;font-weight: initial');
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (errorWarn.errors && errorWarn.errors.length > 0) {
|
|
120
|
-
console.error(`%c Property Validation Errors in %c ${this.componentName}%c :\n${errorWarn.errors.join('\n')}`, 'font-weight: initial', 'color: #FF6F61;font-weight: bold', 'color: #FFF;font-weight: initial');
|
|
121
|
-
isErrorVisible = true;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return isErrorVisible;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
validateSingleProperty(validator, onePropKey, onePropValue, optionalSchema) {
|
|
128
|
-
let schema = this.getSchema(onePropKey, optionalSchema); // INFO: Validate the property adheres to its schema
|
|
129
|
-
|
|
130
|
-
const {
|
|
131
|
-
isValid,
|
|
132
|
-
errors
|
|
133
|
-
} = validator(schema, onePropValue);
|
|
134
|
-
|
|
135
|
-
if (!isValid) {
|
|
136
|
-
const error = {
|
|
137
|
-
key: onePropKey,
|
|
138
|
-
componentName: this.componentName,
|
|
139
|
-
value: onePropValue,
|
|
140
|
-
isValid,
|
|
141
|
-
errors,
|
|
142
|
-
schema: schema
|
|
143
|
-
};
|
|
144
|
-
console.error('Property validation failed', error);
|
|
145
|
-
throw new Error('Property validation failed');
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
findProperty(key) {
|
|
152
|
-
return this.data.get(key);
|
|
37
|
+
return clonedMap;
|
|
153
38
|
}
|
|
154
39
|
|
|
155
40
|
getAppendToActionPayloadProperty() {
|
|
156
41
|
return this.data.get('appendToActionPayload').getValue();
|
|
157
42
|
}
|
|
158
43
|
|
|
159
|
-
shallowCompareWithNewObject(obj1) {
|
|
160
|
-
const keys1 = Object.keys(obj1);
|
|
161
|
-
|
|
162
|
-
for (let key of keys1) {
|
|
163
|
-
if (!this.data.has(key) || obj1[key] !== this.data.get(key).getValue()) {
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return true;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
44
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable complexity */
|
|
1
2
|
export default class Property {
|
|
2
3
|
constructor(_ref) {
|
|
3
4
|
let {
|
|
@@ -40,6 +41,34 @@ export default class Property {
|
|
|
40
41
|
return isChanged;
|
|
41
42
|
}
|
|
42
43
|
|
|
44
|
+
getSchemaForValidation(value) {
|
|
45
|
+
return {
|
|
46
|
+
required: this.required,
|
|
47
|
+
isValueProvided: value !== undefined,
|
|
48
|
+
defaultValue: this.defaultValue,
|
|
49
|
+
name: this.name,
|
|
50
|
+
schema: this.getTypeMetadata().schema
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
validateProperty(validator, value) {
|
|
55
|
+
const propertySchema = this.getSchemaForValidation(value);
|
|
56
|
+
const propertyValue = !propertySchema.isValueProvided ? this.getDefaultValue() : value;
|
|
57
|
+
const {
|
|
58
|
+
isValid,
|
|
59
|
+
errors,
|
|
60
|
+
warnings
|
|
61
|
+
} = validator(propertySchema, propertyValue);
|
|
62
|
+
return {
|
|
63
|
+
key: this.name,
|
|
64
|
+
isValid,
|
|
65
|
+
errors,
|
|
66
|
+
warnings,
|
|
67
|
+
schema: propertySchema,
|
|
68
|
+
value: propertyValue
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
43
72
|
clone() {
|
|
44
73
|
return new Property({
|
|
45
74
|
name: this.name,
|