@zohodesk/library-platform 1.1.3 → 1.1.6
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/README.md +3 -3
- package/es/bc/sdk/EventHandlers.js +1 -0
- package/es/bc/sdk/Properties.js +10 -0
- package/es/bc/sdk/ResourceNamesEnum.js +6 -0
- package/es/bc/zform/Symbol.js +1 -0
- package/es/bc/zhttp/Errors.js +14 -0
- package/es/bc/zhttp/index.js +3 -1
- package/es/bc/zlist/Constants.js +8 -1
- package/es/bc/zlist/Events.js +140 -0
- package/es/bc/zlist/index.js +2 -1
- package/es/bc/zrecord/Constants.js +3 -1
- package/es/cc/action-icon/Properties.js +19 -1
- package/es/cc/action-location/Constants.js +5 -3
- package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
- package/es/cc/button/Constants.js +7 -0
- package/es/cc/button/Events.js +5 -0
- package/es/cc/button/Properties.js +77 -0
- package/es/cc/button/index.js +3 -0
- package/es/cc/component/FallbackView.js +1 -0
- package/es/cc/component/LifeCycleEventsEnum.js +9 -0
- package/es/cc/fields/currency/Model.js +2 -0
- package/es/cc/fields/field/Properties.js +1 -1
- package/es/cc/fields/formula/Model.js +5 -0
- package/es/cc/form/Constants.js +2 -0
- package/es/cc/form/Events.js +20 -0
- package/es/cc/form-connected/Constants.js +13 -0
- package/es/cc/index.js +3 -0
- package/es/cc/link/Properties.js +0 -1
- package/es/cc/list-item/Constants.js +7 -0
- package/es/cc/list-item/Events.js +14 -0
- package/es/cc/list-item/Properties.js +131 -0
- package/es/cc/list-item/index.js +3 -0
- package/es/cc/more-dropdown/Constants.js +7 -0
- package/es/cc/more-dropdown/Events.js +14 -0
- package/es/cc/more-dropdown/Properties.js +66 -0
- package/es/cc/more-dropdown/index.js +3 -0
- package/es/cc/section/Constants.js +2 -0
- package/es/cc/section/Events.js +20 -0
- package/es/cc/table-connected/ErrorEventType.js +32 -0
- package/es/cc/table-connected/Events.js +96 -0
- package/es/cc/table-connected/Properties.js +16 -0
- package/es/cc/table-connected/SdkContract.js +132 -0
- package/es/cc/table-connected/constants/Events.js +2 -0
- package/es/cc/table-connected/index.js +3 -1
- package/es/cc/table-list/Constants.js +4 -0
- package/es/cc/table-list/Properties.js +25 -0
- package/es/cc/table-list/row/Properties.js +44 -0
- package/es/index.js +6 -2
- package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +5 -2
- package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
- package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +116 -4
- package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
- package/es/library/custom-component/applications/interfaces/gateways/ISchemaValidator.js +1 -0
- package/es/library/custom-component/applications/usecases/InitializeUseCase.js +3 -2
- package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +6 -2
- package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
- package/es/library/custom-component/domain/entities/Component.js +20 -3
- package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
- package/es/library/custom-component/domain/entities/Properties.js +19 -1
- package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +36 -1
- package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +23 -11
- package/es/library/custom-component/frameworks/ui/DependencyFactory.js +4 -3
- package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +6 -0
- package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
- package/es/library/dot/components/form/frameworks/ui/EventHandlerFactory.js +23 -3
- package/es/library/dot/components/form/frameworks/ui/FormView.js +6 -3
- package/es/library/dot/components/form/frameworks/ui/css/Form.module.css +4 -0
- package/es/library/dot/components/form-fields/checkbox/frameworks/ui/CheckboxView.js +1 -0
- package/es/library/dot/components/form-fields/currency/frameworks/ui/CurrencyView.js +1 -0
- package/es/library/dot/components/form-fields/date/frameworks/ui/DateView.js +1 -0
- package/es/library/dot/components/form-fields/datetime/frameworks/ui/DateTimeView.js +1 -0
- package/es/library/dot/components/form-fields/decimal/frameworks/ui/DecimalView.js +1 -0
- package/es/library/dot/components/form-fields/email/frameworks/ui/EmailView.js +1 -0
- package/es/library/dot/components/form-fields/multi-select/frameworks/ui/MultiSelectView.js +1 -0
- package/es/library/dot/components/form-fields/number/frameworks/ui/NumberView.js +1 -0
- package/es/library/dot/components/form-fields/percentage/frameworks/ui/PercentageView.js +1 -0
- package/es/library/dot/components/form-fields/phone/frameworks/ui/PhoneView.js +1 -0
- package/es/library/dot/components/form-fields/pick-list/frameworks/ui/PickListView.js +1 -0
- package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextAreaView.js +1 -0
- package/es/library/dot/components/form-fields/textbox/frameworks/ui/TextBoxView.js +1 -0
- package/es/library/dot/components/form-fields/url/frameworks/ui/UrlView.js +1 -0
- package/es/library/dot/components/section/frameworks/ui/EventHandlerFactory.js +26 -3
- package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +15 -0
- package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +105 -0
- package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +85 -15
- package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +240 -1
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +28 -4
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +25 -9
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +11 -2
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +50 -8
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +7 -1
- package/es/library/dot/components/table-list/frameworks/utils/getHeaderClasses.js +37 -0
- package/es/library/dot/components/table-list/frameworks/utils/getTableListClassName.js +37 -0
- package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +90 -0
- package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/ActionIconView.js +10 -1
- package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/css/ActionIconView.module.css +3 -0
- package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/Button.js +12 -0
- package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/ButtonView.js +41 -0
- package/es/library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItem.js +12 -0
- package/es/library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItemView.js +122 -0
- package/es/library/dot/legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdown.js +12 -0
- package/es/library/dot/legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdownView.js +43 -0
- package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
- package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +1 -1
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +96 -0
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +12 -3
- package/es/platform/client-actions/template-resolver/index.js +1 -0
- package/es/platform/client-actions/translators/client-actions-translator/index.js +5 -2
- package/es/platform/client-actions/translators/condition-resolver/field-evaluators/GetResolvedContextFieldValue.js +3 -2
- package/es/platform/client-actions/translators/context-resolver/index.js +7 -10
- package/es/platform/components/form-connected/frameworks/EventHandlersFactory.js +91 -0
- package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +33 -0
- package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnectedView.js +1 -1
- package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormSdkFactory.js +3 -14
- package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +28 -0
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ColumnChooserUpdateController.js +5 -5
- package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeByMouseController.js +1 -1
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeEndController.js +1 -1
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeFinishController.js +1 -1
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeStartController.js +2 -2
- package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ScrollController.js +1 -1
- package/es/platform/components/table-connected/adapters/resources/ErrorPrinter.js +20 -0
- package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +326 -0
- package/es/platform/components/table-connected/application/interfaces/ISmartTableResource.js +1 -0
- package/es/platform/components/table-connected/frameworks/ErrorEventHandlersFactory.js +126 -0
- package/es/{desk-frameworks → platform/components}/table-connected/frameworks/EventHandlersFactory.js +58 -17
- package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +57 -0
- package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +78 -0
- package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnectedView.js +10 -4
- package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
- package/es/platform/data-source/index.js +2 -0
- package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
- package/es/platform/sdk/adapters/gateways/Service.js +27 -0
- package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
- package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/AbstractResource.js +13 -0
- package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
- package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
- package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
- package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
- package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
- package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
- package/es/platform/sdk/frameworks/Sdk.js +11 -0
- package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
- package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
- package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
- package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
- package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
- package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
- package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
- package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
- package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
- package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
- package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
- package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
- package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
- package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
- package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
- package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
- package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
- package/es/platform/zdata-source/domain/entities/DataSource.js +18 -12
- package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +7 -1
- package/es/platform/zform/adapters/controllers/FieldValueChangeController.js +10 -3
- package/es/platform/zform/adapters/presenter/FormTranslator.js +6 -127
- package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +32 -0
- package/es/platform/zform/adapters/presenter/translators/fields/BooleanFieldTranslator.js +20 -0
- package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +20 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +21 -0
- package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/MultiselectFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PercentageFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/PicklistFieldTranslator.js +29 -0
- package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +27 -0
- package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +30 -0
- package/es/platform/zform/adapters/presenter/translators/fields/index.js +15 -0
- package/es/platform/zform/applications/usecases/FieldValueChangeRequestUseCase.js +13 -1
- package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +3 -1
- package/es/platform/zform/domain/ZField.js +61 -16
- package/es/platform/zform/domain/ZSection.js +20 -7
- package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +10 -4
- package/es/platform/zhttp/applications/usecases/FetchUseCase.js +111 -66
- package/es/platform/zlist/adapters/controllers/FieldExecuteFailedController.js +25 -0
- package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
- package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
- package/es/platform/zlist/adapters/gateways/Repository.js +12 -2
- package/es/platform/zlist/adapters/gateways/Service.js +8 -0
- package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +3 -1
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +19 -5
- package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +11 -12
- package/es/platform/zlist/adapters/presenters/translators/EmptyViewModel.js +2 -1
- package/es/platform/zlist/adapters/presenters/translators/Header.js +8 -4
- package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +3 -2
- package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
- package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +1 -0
- package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +3 -0
- package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
- package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
- package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
- package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
- package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +1 -1
- package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
- package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
- package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
- package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -2
- package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
- package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
- package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
- package/es/platform/zlist/domain/entities/List.js +73 -48
- package/es/platform/zlist/domain/entities/ListErrorState.js +167 -0
- package/es/platform/zlist/frameworks/EventHandlersFactory.js +16 -6
- package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +6 -0
- package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
- package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
- package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
- package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
- package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
- package/es/platform/zrecord/domain/entities/Records.js +9 -4
- package/es/platform/zrecord/domain/entities/RecordsManager.js +11 -1
- package/package.json +10 -8
- package/es/desk-frameworks/form-connected/frameworks/EventHandlersFactory.js +0 -24
- package/es/desk-frameworks/form-connected/frameworks/FormConnectedFactory.js +0 -33
- package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +0 -36
- package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +0 -172
- package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +0 -56
- /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnected.js +0 -0
- /package/es/{desk-frameworks → platform/components}/index.js +0 -0
- /package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/AbstractController.js +0 -0
- /package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnected.js +0 -0
|
@@ -8,8 +8,11 @@ class DestructUsecase extends AbstractUseCase {
|
|
|
8
8
|
keyboardHandler
|
|
9
9
|
} = this.dependencies;
|
|
10
10
|
const keyboardControls = repository.getKeyboardControls();
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
|
|
12
|
+
if (keyboardControls !== null) {
|
|
13
|
+
keyboardHandler.destruct(host);
|
|
14
|
+
presenter.updateKeyboardControls(keyboardControls.toObject());
|
|
15
|
+
}
|
|
13
16
|
}
|
|
14
17
|
|
|
15
18
|
}
|
|
@@ -10,6 +10,7 @@ import UpdateController from "../adapters/controllers/UpdateController";
|
|
|
10
10
|
import DestructController from "../adapters/controllers/DestructController";
|
|
11
11
|
import SelectController from "../adapters/controllers/SelectController";
|
|
12
12
|
import DeselectController from "../adapters/controllers/DeselectController";
|
|
13
|
+
import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
|
|
13
14
|
|
|
14
15
|
class ActionHandlerFactory {
|
|
15
16
|
static create() {
|
|
@@ -28,9 +29,9 @@ class ActionHandlerFactory {
|
|
|
28
29
|
|
|
29
30
|
static createHandlers(service) {
|
|
30
31
|
return {
|
|
31
|
-
[
|
|
32
|
-
[
|
|
33
|
-
[
|
|
32
|
+
[LifeCycleEvents.MOUNT]: new InitializeController(service).handle,
|
|
33
|
+
[LifeCycleEvents.UPDATE_PROPERTIES]: new UpdateController(service).handle,
|
|
34
|
+
[LifeCycleEvents.UN_MOUNT]: new DestructController(service).handle,
|
|
34
35
|
[LIST_SELECTION_SELECT_ITEM]: new SelectController(service).handle,
|
|
35
36
|
[LIST_SELECTION_DESELECT_ITEM]: new DeselectController(service).handle,
|
|
36
37
|
[LIST_SELECTION_TOGGLE_ITEMS]: new SelectionController(service).handle,
|
|
@@ -3,11 +3,27 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
3
3
|
// @ts-ignore
|
|
4
4
|
if (__DEVELOPMENT__) {
|
|
5
5
|
globalThis.enableEventLogging = false;
|
|
6
|
+
globalThis.enableEventVerbose = false;
|
|
6
7
|
}
|
|
7
8
|
|
|
9
|
+
var ErrorCode = /*#__PURE__*/function (ErrorCode) {
|
|
10
|
+
ErrorCode["InvalidData"] = "Invalid data";
|
|
11
|
+
ErrorCode["InvalidSchema"] = "Invalid Schema";
|
|
12
|
+
return ErrorCode;
|
|
13
|
+
}(ErrorCode || {});
|
|
14
|
+
|
|
8
15
|
class EventManager {
|
|
9
|
-
constructor() {
|
|
16
|
+
constructor(name, jsonValidator) {
|
|
17
|
+
let events = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
18
|
+
this.name = name;
|
|
19
|
+
this.jsonValidator = jsonValidator;
|
|
20
|
+
this.events = events;
|
|
21
|
+
|
|
10
22
|
_defineProperty(this, "_element", void 0);
|
|
23
|
+
|
|
24
|
+
_defineProperty(this, "alreadyWarnedAboutEventPayloadSchemaNotFound", {});
|
|
25
|
+
|
|
26
|
+
this.alreadyWarnedAboutEventPayloadSchemaNotFound = {};
|
|
11
27
|
}
|
|
12
28
|
|
|
13
29
|
setElement(element) {
|
|
@@ -56,12 +72,96 @@ class EventManager {
|
|
|
56
72
|
});
|
|
57
73
|
}
|
|
58
74
|
|
|
75
|
+
verifySchema(data, schema) {
|
|
76
|
+
let error = null;
|
|
77
|
+
|
|
78
|
+
try {
|
|
79
|
+
const {
|
|
80
|
+
isValid,
|
|
81
|
+
errors
|
|
82
|
+
} = this.jsonValidator(schema, data);
|
|
83
|
+
|
|
84
|
+
if (!isValid) {
|
|
85
|
+
error = {
|
|
86
|
+
code: ErrorCode.InvalidData,
|
|
87
|
+
errors
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
} catch (e) {
|
|
91
|
+
error = {
|
|
92
|
+
code: ErrorCode.InvalidSchema,
|
|
93
|
+
error: e
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return error;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
printEventPayloadSchemaNotFountError(event) {
|
|
101
|
+
const {
|
|
102
|
+
type
|
|
103
|
+
} = event; // @ts-ignore
|
|
104
|
+
|
|
105
|
+
if (!this.alreadyWarnedAboutEventPayloadSchemaNotFound[type] && __DEVELOPMENT__ && global.enableEventVerbose) {
|
|
106
|
+
console.warn(`${this.name}'s Event type "${type}" not found in event metadata.`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
this.alreadyWarnedAboutEventPayloadSchemaNotFound[type] = true;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
printEventPayloadSchemaInvalidError(eventName, error) {
|
|
113
|
+
let dataName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '(root)';
|
|
114
|
+
const {
|
|
115
|
+
msg,
|
|
116
|
+
styles: nameStyles
|
|
117
|
+
} = this.eventNameConsoleStyle(eventName);
|
|
118
|
+
console.group(`${msg}%c's ${dataName} Validation Errors:`, ...nameStyles, 'color: initial; font-weight: initial');
|
|
119
|
+
|
|
120
|
+
if (error.code === ErrorCode.InvalidSchema) {
|
|
121
|
+
console.error(`%cInvalid Schema:`, 'color: #FF6F61; font-weight: bold;', error.error);
|
|
122
|
+
} else if (error.code === ErrorCode.InvalidData) {
|
|
123
|
+
error.errors.forEach((_ref, i) => {
|
|
124
|
+
let {
|
|
125
|
+
dataPath,
|
|
126
|
+
message
|
|
127
|
+
} = _ref;
|
|
128
|
+
console.error(`%c${i + 1}. %c${dataName + dataPath}%c → ${message}`, 'color: initial;', 'color: #FF6F61; font-weight: bold;', 'color: #FFA500;');
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
console.groupEnd(); // }
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
verifyEventPayload(event) {
|
|
136
|
+
const {
|
|
137
|
+
type,
|
|
138
|
+
payload
|
|
139
|
+
} = event;
|
|
140
|
+
const eventMeta = this.events.find(event => event.type === type);
|
|
141
|
+
const payloadMeta = eventMeta ? eventMeta.payload : null;
|
|
142
|
+
|
|
143
|
+
if (this.jsonValidator && payloadMeta) {
|
|
144
|
+
const error = this.verifySchema(payload, payloadMeta);
|
|
145
|
+
error && this.printEventPayloadSchemaInvalidError(event.type, error, 'payload');
|
|
146
|
+
return error ? false : true;
|
|
147
|
+
} else {
|
|
148
|
+
this.printEventPayloadSchemaNotFountError(event);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
59
153
|
dispatchEvent(event) {
|
|
60
154
|
let {
|
|
61
155
|
payload,
|
|
62
156
|
metaData,
|
|
63
157
|
type
|
|
64
158
|
} = event;
|
|
159
|
+
const isValid = this.verifyEventPayload(event);
|
|
160
|
+
|
|
161
|
+
if (!isValid) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
|
|
65
165
|
this._element && this._element.dispatchEvent(new CustomEvent(type, {
|
|
66
166
|
bubbles: true,
|
|
67
167
|
detail: {
|
|
@@ -71,14 +171,26 @@ class EventManager {
|
|
|
71
171
|
}));
|
|
72
172
|
}
|
|
73
173
|
|
|
174
|
+
eventNameConsoleStyle(type) {
|
|
175
|
+
const index = type.indexOf('#');
|
|
176
|
+
return {
|
|
177
|
+
msg: '%c' + type.slice(0, index) + '%c' + type.slice(index),
|
|
178
|
+
styles: ['color: #55c355;font-weight: bold', 'color: #5a9de9;font-weight: bold']
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
74
182
|
log(type, payload, metaData) {
|
|
75
183
|
// @ts-ignore
|
|
76
184
|
if (__DEVELOPMENT__) {
|
|
77
185
|
if (globalThis.enableEventLogging && type) {
|
|
78
|
-
const
|
|
79
|
-
|
|
186
|
+
const {
|
|
187
|
+
msg,
|
|
188
|
+
styles: nameStyles
|
|
189
|
+
} = this.eventNameConsoleStyle(type);
|
|
190
|
+
console.log(`%cEvent ${msg}`, 'font-weight: bold', ...nameStyles, {
|
|
80
191
|
payload,
|
|
81
|
-
metaData
|
|
192
|
+
metaData,
|
|
193
|
+
host: this._element
|
|
82
194
|
});
|
|
83
195
|
}
|
|
84
196
|
}
|
|
@@ -1,31 +1,18 @@
|
|
|
1
|
+
import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
|
|
1
2
|
import Behaviour from "../../domain/entities/Behaviour";
|
|
2
3
|
import EventHandlersFactory from "./EventHandlersFactory";
|
|
3
4
|
import PropertiesFactory from "./PropertiesFactory";
|
|
4
|
-
/* eslint-disable max-lines-per-function, @zohodesk/architecturerules/no-returnStatement-rule */
|
|
5
5
|
|
|
6
6
|
class BehavioursFactory {
|
|
7
7
|
static create(input) {
|
|
8
|
-
|
|
9
|
-
let behaviours = input.behaviours || [];
|
|
8
|
+
const behaviours = input.behaviours ? input.behaviours : [];
|
|
10
9
|
return behaviours.map(behaviour => {
|
|
11
10
|
// DEPRECATED: Remove while refactoring actionHandlers
|
|
12
11
|
if (behaviour.actionHandlers) {
|
|
13
12
|
behaviour.eventHandlers = behaviour.actionHandlers;
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
const
|
|
17
|
-
eventHandlers
|
|
18
|
-
} = behaviour;
|
|
19
|
-
let newEventHandlers = Object.keys(eventHandlers).reduce((res, next) => {
|
|
20
|
-
let key = next;
|
|
21
|
-
|
|
22
|
-
if (['MOUNT', 'UN_MOUNT', 'UPDATE_PROPERTIES'].includes(next)) {
|
|
23
|
-
key = input.name + '#' + next;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
res[key] = eventHandlers[next];
|
|
27
|
-
return res;
|
|
28
|
-
}, {});
|
|
15
|
+
const newEventHandlers = BehavioursFactory.createNamedEventHandlers(behaviour.eventHandlers, input);
|
|
29
16
|
return new Behaviour({
|
|
30
17
|
name: behaviour.name,
|
|
31
18
|
eventHandlers: EventHandlersFactory(newEventHandlers),
|
|
@@ -38,6 +25,21 @@ class BehavioursFactory {
|
|
|
38
25
|
});
|
|
39
26
|
}
|
|
40
27
|
|
|
28
|
+
static createNamedEventHandlers(eventHandlers, input) {
|
|
29
|
+
return Object.keys(eventHandlers).reduce((res, key) => {
|
|
30
|
+
// if (['MOUNT', 'UN_MOUNT', 'UPDATE_PROPERTIES'].includes(eventName)) {
|
|
31
|
+
// if ('MOUNT', LifeCycleEvents.UN_MOUNT, LifeCycleEvents.UPDATE_PROPERTIES, LifeCycleEvents.STATE_UPDATED].includes(eventName)) {
|
|
32
|
+
let eventName = key;
|
|
33
|
+
|
|
34
|
+
if (LifeCycleEvents[key]) {
|
|
35
|
+
eventName = `${input.name}#${key}`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
res[eventName] = eventHandlers[key];
|
|
39
|
+
return res;
|
|
40
|
+
}, {});
|
|
41
|
+
}
|
|
42
|
+
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
export default BehavioursFactory;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -6,12 +6,13 @@ class InitializeUseCase extends AbstractUseCase {
|
|
|
6
6
|
let {
|
|
7
7
|
presenter,
|
|
8
8
|
jsonValidator,
|
|
9
|
-
repository
|
|
9
|
+
repository,
|
|
10
|
+
schemaValidator
|
|
10
11
|
} = this.dependencies;
|
|
11
12
|
let component = createComponent(input, input.helpers);
|
|
12
13
|
|
|
13
14
|
try {
|
|
14
|
-
component.init(jsonValidator, input.newProps);
|
|
15
|
+
component.init(jsonValidator, input.newProps, schemaValidator);
|
|
15
16
|
let state = component.getState();
|
|
16
17
|
presenter.render(state);
|
|
17
18
|
} catch (e) {
|
|
@@ -6,11 +6,12 @@ class UpdatePropertyUseCase extends AbstractUseCase {
|
|
|
6
6
|
repository,
|
|
7
7
|
jsonValidator,
|
|
8
8
|
eventManager,
|
|
9
|
-
presenter
|
|
9
|
+
presenter,
|
|
10
|
+
schemaValidator
|
|
10
11
|
} = this.dependencies;
|
|
11
12
|
let component = repository.getComponent();
|
|
12
13
|
let properties = component.getProperties();
|
|
13
|
-
let isUpdated = component.updateProperties(jsonValidator, newProps);
|
|
14
|
+
let isUpdated = component.updateProperties(jsonValidator, newProps, schemaValidator);
|
|
14
15
|
|
|
15
16
|
if (isUpdated) {
|
|
16
17
|
let updatedProperties = component.getProperties();
|
|
@@ -21,6 +22,9 @@ class UpdatePropertyUseCase extends AbstractUseCase {
|
|
|
21
22
|
previousProperties: properties
|
|
22
23
|
});
|
|
23
24
|
eventManager.dispatch(updatePropertyAction);
|
|
25
|
+
eventManager.dispatch(component.getStateUpdatedAction({
|
|
26
|
+
state
|
|
27
|
+
}));
|
|
24
28
|
}
|
|
25
29
|
}
|
|
26
30
|
|
|
@@ -4,7 +4,8 @@ class UpdateStateUseCase extends AbstractUseCase {
|
|
|
4
4
|
execute(newState) {
|
|
5
5
|
let {
|
|
6
6
|
repository,
|
|
7
|
-
presenter
|
|
7
|
+
presenter,
|
|
8
|
+
eventManager
|
|
8
9
|
} = this.dependencies;
|
|
9
10
|
let component = repository.getComponent(); // let preState=component.getState();
|
|
10
11
|
// console.log(`preState ${component.getName()}`,preState)
|
|
@@ -13,6 +14,9 @@ class UpdateStateUseCase extends AbstractUseCase {
|
|
|
13
14
|
let state = component.getState(); // console.log(`newState ${component.getName()}`,state)
|
|
14
15
|
|
|
15
16
|
presenter.render(state);
|
|
17
|
+
eventManager.dispatch(component.getStateUpdatedAction({
|
|
18
|
+
state
|
|
19
|
+
}));
|
|
16
20
|
}
|
|
17
21
|
|
|
18
22
|
}
|
|
@@ -64,6 +64,10 @@ export default class Component {
|
|
|
64
64
|
return this._lifeCycleAction.getUpdatePropertiesAction(payload);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
getStateUpdatedAction(payload) {
|
|
68
|
+
return this._lifeCycleAction.getStateUpdatedAction(payload);
|
|
69
|
+
}
|
|
70
|
+
|
|
67
71
|
getState() {
|
|
68
72
|
let state = this._tranformer(this.mergeStateAndProps());
|
|
69
73
|
|
|
@@ -118,7 +122,15 @@ export default class Component {
|
|
|
118
122
|
});
|
|
119
123
|
}
|
|
120
124
|
|
|
121
|
-
updateProperties(jsonValidator, newProps) {
|
|
125
|
+
updateProperties(jsonValidator, newProps, schemaValidator) {
|
|
126
|
+
const entries = Object.fromEntries(this._properties.data.entries());
|
|
127
|
+
let property = entries === undefined ? {} : entries;
|
|
128
|
+
let propertyValue = newProps === undefined ? {} : newProps;
|
|
129
|
+
|
|
130
|
+
let isBhvrErrorVisible = this._properties.validateRequiredProperty(schemaValidator, this._behavioursProperties, propertyValue);
|
|
131
|
+
|
|
132
|
+
let isCompErrorVisible = this._properties.validateRequiredProperty(schemaValidator, property, propertyValue);
|
|
133
|
+
|
|
122
134
|
let isChanged = false;
|
|
123
135
|
Object.keys(newProps).forEach(key => {
|
|
124
136
|
let property = null;
|
|
@@ -144,8 +156,13 @@ export default class Component {
|
|
|
144
156
|
throw new Error(`props '${key}' not exist `);
|
|
145
157
|
}
|
|
146
158
|
});
|
|
159
|
+
|
|
160
|
+
if (isBhvrErrorVisible && isCompErrorVisible) {
|
|
161
|
+
throw "";
|
|
162
|
+
}
|
|
147
163
|
/* return this._properties.updateAllPropertiesValue(jsonValidator, newProps); */
|
|
148
164
|
|
|
165
|
+
|
|
149
166
|
return isChanged;
|
|
150
167
|
}
|
|
151
168
|
|
|
@@ -165,8 +182,8 @@ export default class Component {
|
|
|
165
182
|
return allBehavioursInitialState;
|
|
166
183
|
}
|
|
167
184
|
|
|
168
|
-
init(jsonValidator, newProps) {
|
|
169
|
-
this.updateProperties(jsonValidator, newProps);
|
|
185
|
+
init(jsonValidator, newProps, schemaValidator) {
|
|
186
|
+
this.updateProperties(jsonValidator, newProps, schemaValidator);
|
|
170
187
|
|
|
171
188
|
const properties = this._properties.getAllPropertiesValue();
|
|
172
189
|
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
|
+
import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
|
|
3
4
|
export default class LifeCycleAction {
|
|
4
5
|
constructor(name) {
|
|
5
6
|
_defineProperty(this, "mount", void 0);
|
|
6
7
|
|
|
7
8
|
_defineProperty(this, "unmount", void 0);
|
|
8
9
|
|
|
10
|
+
_defineProperty(this, "name", void 0);
|
|
11
|
+
|
|
9
12
|
_defineProperty(this, "contructUpdatePropertiesAction", void 0);
|
|
10
13
|
|
|
14
|
+
this.name = name;
|
|
11
15
|
this.mount = {
|
|
12
|
-
type: `${name}
|
|
16
|
+
type: `${name}#${LifeCycleEvents.MOUNT}`
|
|
13
17
|
};
|
|
14
18
|
this.unmount = {
|
|
15
|
-
type: `${name}
|
|
19
|
+
type: `${name}#${LifeCycleEvents.UN_MOUNT}`
|
|
16
20
|
};
|
|
17
21
|
|
|
18
22
|
this.contructUpdatePropertiesAction = payload => {
|
|
19
23
|
return {
|
|
20
|
-
type: `${name}
|
|
24
|
+
type: `${name}#${LifeCycleEvents.UPDATE_PROPERTIES}`,
|
|
21
25
|
payload
|
|
22
26
|
};
|
|
23
27
|
};
|
|
@@ -31,6 +35,13 @@ export default class LifeCycleAction {
|
|
|
31
35
|
return this.unmount;
|
|
32
36
|
}
|
|
33
37
|
|
|
38
|
+
getStateUpdatedAction(payload) {
|
|
39
|
+
return {
|
|
40
|
+
type: `${this.name}#${LifeCycleEvents.STATE_UPDATED}`,
|
|
41
|
+
payload
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
getUpdatePropertiesAction(payload) {
|
|
35
46
|
return this.contructUpdatePropertiesAction(payload);
|
|
36
47
|
}
|
|
@@ -111,6 +111,24 @@ export default class Properties {
|
|
|
111
111
|
return this.data.get(key).getTypeMetadata().schema;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
validateRequiredProperty(validator, properties, newProps) {
|
|
115
|
+
let errorWarn = validator(properties, newProps);
|
|
116
|
+
let isErrorVisible = false;
|
|
117
|
+
|
|
118
|
+
if (errorWarn.warnings && errorWarn.warnings.length > 0) {
|
|
119
|
+
errorWarn.warnings.forEach(warning => {
|
|
120
|
+
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');
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (errorWarn.errors && errorWarn.errors.length > 0) {
|
|
125
|
+
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');
|
|
126
|
+
isErrorVisible = true;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return isErrorVisible;
|
|
130
|
+
}
|
|
131
|
+
|
|
114
132
|
validateSingleProperty(validator, onePropKey, onePropValue, optionalSchema) {
|
|
115
133
|
let schema = this.getSchema(onePropKey, optionalSchema); // INFO: Validate the property adheres to its schema
|
|
116
134
|
|
|
@@ -128,7 +146,7 @@ export default class Properties {
|
|
|
128
146
|
errors,
|
|
129
147
|
schema: schema
|
|
130
148
|
};
|
|
131
|
-
console.
|
|
149
|
+
console.error('Property validation failed', error);
|
|
132
150
|
throw new Error('Property validation failed');
|
|
133
151
|
}
|
|
134
152
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import Ajv from 'ajv';
|
|
2
|
-
let jsonValidator = new Ajv(
|
|
2
|
+
let jsonValidator = new Ajv({
|
|
3
|
+
useDefaults: true
|
|
4
|
+
});
|
|
3
5
|
|
|
4
6
|
class Validator {
|
|
5
7
|
static validate(schema, value) {
|
|
@@ -26,6 +28,39 @@ class Validator {
|
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
30
|
|
|
31
|
+
static validatePropsAgainstSchema(schemaProps, props) {
|
|
32
|
+
const warnings = [];
|
|
33
|
+
const errors = [];
|
|
34
|
+
|
|
35
|
+
for (const key in schemaProps) {
|
|
36
|
+
const schemaDef = schemaProps[key];
|
|
37
|
+
const isRequired = schemaDef.required === true;
|
|
38
|
+
const hasDefault = Object.prototype.hasOwnProperty.call(schemaDef, 'defaultValue');
|
|
39
|
+
const isProvided = Object.prototype.hasOwnProperty.call(props, key); // Handle missing required top-level properties
|
|
40
|
+
|
|
41
|
+
if (!isProvided) {
|
|
42
|
+
if (isRequired) {
|
|
43
|
+
if (hasDefault) {
|
|
44
|
+
if (schemaDef.defaultValue === undefined) {
|
|
45
|
+
errors.push(`Required property '${key}' is missing — default value is undefined.`);
|
|
46
|
+
} else {
|
|
47
|
+
warnings.push(`Required property '${key}' is missing. Default value will be used.`);
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
errors.push(`Required property '${key}' is missing — neither a value nor a default value is present.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
warnings,
|
|
60
|
+
errors
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
29
64
|
}
|
|
30
65
|
|
|
31
66
|
export default Validator;
|
|
@@ -34,6 +34,15 @@ const createCustomComponent = input => {
|
|
|
34
34
|
|
|
35
35
|
_defineProperty(this, "helpers", void 0);
|
|
36
36
|
|
|
37
|
+
_defineProperty(this, "setRef", element => {
|
|
38
|
+
const {
|
|
39
|
+
setElement
|
|
40
|
+
} = this.eventManager;
|
|
41
|
+
setElement.bind(this.eventManager)(element);
|
|
42
|
+
this.eventManager.setElement(element);
|
|
43
|
+
this.props.getRef && this.props.getRef(element);
|
|
44
|
+
});
|
|
45
|
+
|
|
37
46
|
this.state = null;
|
|
38
47
|
let {
|
|
39
48
|
controller,
|
|
@@ -48,11 +57,10 @@ const createCustomComponent = input => {
|
|
|
48
57
|
this.setState(() => state);
|
|
49
58
|
}
|
|
50
59
|
}
|
|
51
|
-
});
|
|
60
|
+
}, input);
|
|
52
61
|
this.presenter = presenter;
|
|
53
62
|
this.controller = controller;
|
|
54
63
|
this.eventManager = eventManager;
|
|
55
|
-
eventManager.name = input.name;
|
|
56
64
|
const {
|
|
57
65
|
updateState,
|
|
58
66
|
updateProperties,
|
|
@@ -109,21 +117,25 @@ const createCustomComponent = input => {
|
|
|
109
117
|
throw this.state.error;
|
|
110
118
|
}
|
|
111
119
|
|
|
112
|
-
const {
|
|
113
|
-
setElement
|
|
114
|
-
} = this.eventManager;
|
|
115
120
|
console.log(this.state.error);
|
|
121
|
+
const {
|
|
122
|
+
FallbackView
|
|
123
|
+
} = input;
|
|
124
|
+
|
|
125
|
+
if (FallbackView) {
|
|
126
|
+
return /*#__PURE__*/React.createElement(FallbackView, {
|
|
127
|
+
ref: this.setRef,
|
|
128
|
+
error: this.state.error
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
116
132
|
return /*#__PURE__*/React.createElement("div", {
|
|
117
|
-
ref:
|
|
133
|
+
ref: element => this.setRef(element)
|
|
118
134
|
}, "error");
|
|
119
135
|
} else {
|
|
120
|
-
const {
|
|
121
|
-
setElement
|
|
122
|
-
} = this.eventManager;
|
|
123
136
|
return /*#__PURE__*/React.createElement(View, {
|
|
124
137
|
ref: element => {
|
|
125
|
-
|
|
126
|
-
this.props.getRef && this.props.getRef(element);
|
|
138
|
+
this.setRef(element);
|
|
127
139
|
},
|
|
128
140
|
helpers: this.helpers,
|
|
129
141
|
state: this.state,
|
|
@@ -6,7 +6,7 @@ import Validator from "../json-schema-validator/Validator";
|
|
|
6
6
|
import EventManager from "../../adapters/gateways/event-manager/EventManager";
|
|
7
7
|
|
|
8
8
|
class DependencyFactory {
|
|
9
|
-
static create(_ref) {
|
|
9
|
+
static create(_ref, input) {
|
|
10
10
|
let {
|
|
11
11
|
updateState
|
|
12
12
|
} = _ref;
|
|
@@ -14,12 +14,13 @@ class DependencyFactory {
|
|
|
14
14
|
const presenter = new Presenter({
|
|
15
15
|
updateState
|
|
16
16
|
});
|
|
17
|
-
const eventManager = new EventManager();
|
|
17
|
+
const eventManager = new EventManager(input.name, Validator.validate, input.events);
|
|
18
18
|
const service = new Service({
|
|
19
19
|
repository,
|
|
20
20
|
presenter,
|
|
21
21
|
eventManager,
|
|
22
|
-
jsonValidator: Validator.validate
|
|
22
|
+
jsonValidator: Validator.validate,
|
|
23
|
+
schemaValidator: Validator.validatePropsAgainstSchema
|
|
23
24
|
});
|
|
24
25
|
const controller = new Controller(service);
|
|
25
26
|
return {
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import ActionIcon from "../../../../legacy-to-new-arch/action-icon/frameworks/ui/ActionIcon";
|
|
2
|
+
import Button from "../../../../legacy-to-new-arch/button/frameworks/ui/Button"; // import ListItem from '@library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItem';
|
|
3
|
+
|
|
2
4
|
import TableColumnSort from "../../../../legacy-to-new-arch/table-column-sort/frameworks/ui/TableColumnSort";
|
|
3
5
|
import TableColumnChooser from "../../../../legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser";
|
|
4
6
|
import Checkbox from "../../../../legacy-to-new-arch/checkbox/frameworks/ui/Checkbox";
|
|
5
7
|
import TableColumnFilter from "../../../../legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilter";
|
|
8
|
+
import MoreDropdown from "../../../../legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdown";
|
|
6
9
|
const ActionComponentMapping = {
|
|
7
10
|
['ActionIcon']: ActionIcon,
|
|
11
|
+
['Button']: Button,
|
|
12
|
+
// ['ListItem']: ListItem,
|
|
13
|
+
['MoreDropdown']: MoreDropdown,
|
|
8
14
|
['TableColumnSort']: TableColumnSort,
|
|
9
15
|
['TableColumnChooser']: TableColumnChooser,
|
|
10
16
|
['TableSelectAll']: Checkbox,
|
|
@@ -24,7 +24,7 @@ export default class EventHandlersFactory {
|
|
|
24
24
|
return {
|
|
25
25
|
[ActionLocationConstants.MOUNT]: initializeController.handle,
|
|
26
26
|
[ActionLocationConstants.UPDATE_PROPERTIES]: propertiesChangeController.handle,
|
|
27
|
-
[ActionLocationConstants.
|
|
27
|
+
[ActionLocationConstants.UN_MOUNT]: unmountController.handle
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -4,12 +4,13 @@ import FormConstants from "../../../../../../cc/form/Constants";
|
|
|
4
4
|
class EventHandlersFactory {
|
|
5
5
|
static create() {
|
|
6
6
|
return {
|
|
7
|
+
[SectionConstants.SECTION_FIELD_FOCUSED]: this.handleSectionFieldFocused,
|
|
7
8
|
[SectionConstants.SECTION_FIELD_BLURRED]: this.handleSectionFieldBlurred,
|
|
8
9
|
[SectionConstants.SECTION_FIELD_CHANGED]: this.handleSectionFieldChanged
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
static
|
|
13
|
+
static handleSectionFieldFocused(_ref) {
|
|
13
14
|
let {
|
|
14
15
|
action,
|
|
15
16
|
dispatch
|
|
@@ -19,7 +20,7 @@ class EventHandlersFactory {
|
|
|
19
20
|
fieldName
|
|
20
21
|
} = action.payload;
|
|
21
22
|
dispatch({
|
|
22
|
-
type: FormConstants.
|
|
23
|
+
type: FormConstants.FORM_FIELD_FOCUSED,
|
|
23
24
|
payload: {
|
|
24
25
|
sectionId,
|
|
25
26
|
fieldName
|
|
@@ -28,11 +29,30 @@ class EventHandlersFactory {
|
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
static
|
|
32
|
+
static handleSectionFieldBlurred(_ref2) {
|
|
32
33
|
let {
|
|
33
34
|
action,
|
|
34
35
|
dispatch
|
|
35
36
|
} = _ref2;
|
|
37
|
+
const {
|
|
38
|
+
id: sectionId,
|
|
39
|
+
fieldName
|
|
40
|
+
} = action.payload;
|
|
41
|
+
dispatch({
|
|
42
|
+
type: FormConstants.FORM_FIELD_BLURRED,
|
|
43
|
+
payload: {
|
|
44
|
+
sectionId,
|
|
45
|
+
fieldName
|
|
46
|
+
},
|
|
47
|
+
metaData: {}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static handleSectionFieldChanged(_ref3) {
|
|
52
|
+
let {
|
|
53
|
+
action,
|
|
54
|
+
dispatch
|
|
55
|
+
} = _ref3;
|
|
36
56
|
const {
|
|
37
57
|
id: sectionId,
|
|
38
58
|
fieldName,
|