@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.
Files changed (261) hide show
  1. package/README.md +3 -3
  2. package/es/bc/sdk/EventHandlers.js +1 -0
  3. package/es/bc/sdk/Properties.js +10 -0
  4. package/es/bc/sdk/ResourceNamesEnum.js +6 -0
  5. package/es/bc/zform/Symbol.js +1 -0
  6. package/es/bc/zhttp/Errors.js +14 -0
  7. package/es/bc/zhttp/index.js +3 -1
  8. package/es/bc/zlist/Constants.js +8 -1
  9. package/es/bc/zlist/Events.js +140 -0
  10. package/es/bc/zlist/index.js +2 -1
  11. package/es/bc/zrecord/Constants.js +3 -1
  12. package/es/cc/action-icon/Properties.js +19 -1
  13. package/es/cc/action-location/Constants.js +5 -3
  14. package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
  15. package/es/cc/button/Constants.js +7 -0
  16. package/es/cc/button/Events.js +5 -0
  17. package/es/cc/button/Properties.js +77 -0
  18. package/es/cc/button/index.js +3 -0
  19. package/es/cc/component/FallbackView.js +1 -0
  20. package/es/cc/component/LifeCycleEventsEnum.js +9 -0
  21. package/es/cc/fields/currency/Model.js +2 -0
  22. package/es/cc/fields/field/Properties.js +1 -1
  23. package/es/cc/fields/formula/Model.js +5 -0
  24. package/es/cc/form/Constants.js +2 -0
  25. package/es/cc/form/Events.js +20 -0
  26. package/es/cc/form-connected/Constants.js +13 -0
  27. package/es/cc/index.js +3 -0
  28. package/es/cc/link/Properties.js +0 -1
  29. package/es/cc/list-item/Constants.js +7 -0
  30. package/es/cc/list-item/Events.js +14 -0
  31. package/es/cc/list-item/Properties.js +131 -0
  32. package/es/cc/list-item/index.js +3 -0
  33. package/es/cc/more-dropdown/Constants.js +7 -0
  34. package/es/cc/more-dropdown/Events.js +14 -0
  35. package/es/cc/more-dropdown/Properties.js +66 -0
  36. package/es/cc/more-dropdown/index.js +3 -0
  37. package/es/cc/section/Constants.js +2 -0
  38. package/es/cc/section/Events.js +20 -0
  39. package/es/cc/table-connected/ErrorEventType.js +32 -0
  40. package/es/cc/table-connected/Events.js +96 -0
  41. package/es/cc/table-connected/Properties.js +16 -0
  42. package/es/cc/table-connected/SdkContract.js +132 -0
  43. package/es/cc/table-connected/constants/Events.js +2 -0
  44. package/es/cc/table-connected/index.js +3 -1
  45. package/es/cc/table-list/Constants.js +4 -0
  46. package/es/cc/table-list/Properties.js +25 -0
  47. package/es/cc/table-list/row/Properties.js +44 -0
  48. package/es/index.js +6 -2
  49. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +5 -2
  50. package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
  51. package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +116 -4
  52. package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
  53. package/es/library/custom-component/applications/interfaces/gateways/ISchemaValidator.js +1 -0
  54. package/es/library/custom-component/applications/usecases/InitializeUseCase.js +3 -2
  55. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +6 -2
  56. package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
  57. package/es/library/custom-component/domain/entities/Component.js +20 -3
  58. package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
  59. package/es/library/custom-component/domain/entities/Properties.js +19 -1
  60. package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +36 -1
  61. package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +23 -11
  62. package/es/library/custom-component/frameworks/ui/DependencyFactory.js +4 -3
  63. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +6 -0
  64. package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
  65. package/es/library/dot/components/form/frameworks/ui/EventHandlerFactory.js +23 -3
  66. package/es/library/dot/components/form/frameworks/ui/FormView.js +6 -3
  67. package/es/library/dot/components/form/frameworks/ui/css/Form.module.css +4 -0
  68. package/es/library/dot/components/form-fields/checkbox/frameworks/ui/CheckboxView.js +1 -0
  69. package/es/library/dot/components/form-fields/currency/frameworks/ui/CurrencyView.js +1 -0
  70. package/es/library/dot/components/form-fields/date/frameworks/ui/DateView.js +1 -0
  71. package/es/library/dot/components/form-fields/datetime/frameworks/ui/DateTimeView.js +1 -0
  72. package/es/library/dot/components/form-fields/decimal/frameworks/ui/DecimalView.js +1 -0
  73. package/es/library/dot/components/form-fields/email/frameworks/ui/EmailView.js +1 -0
  74. package/es/library/dot/components/form-fields/multi-select/frameworks/ui/MultiSelectView.js +1 -0
  75. package/es/library/dot/components/form-fields/number/frameworks/ui/NumberView.js +1 -0
  76. package/es/library/dot/components/form-fields/percentage/frameworks/ui/PercentageView.js +1 -0
  77. package/es/library/dot/components/form-fields/phone/frameworks/ui/PhoneView.js +1 -0
  78. package/es/library/dot/components/form-fields/pick-list/frameworks/ui/PickListView.js +1 -0
  79. package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextAreaView.js +1 -0
  80. package/es/library/dot/components/form-fields/textbox/frameworks/ui/TextBoxView.js +1 -0
  81. package/es/library/dot/components/form-fields/url/frameworks/ui/UrlView.js +1 -0
  82. package/es/library/dot/components/section/frameworks/ui/EventHandlerFactory.js +26 -3
  83. package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
  84. package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +15 -0
  85. package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +105 -0
  86. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +85 -15
  87. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +240 -1
  88. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +28 -4
  89. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +25 -9
  90. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +11 -2
  91. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +50 -8
  92. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +7 -1
  93. package/es/library/dot/components/table-list/frameworks/utils/getHeaderClasses.js +37 -0
  94. package/es/library/dot/components/table-list/frameworks/utils/getTableListClassName.js +37 -0
  95. package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +90 -0
  96. package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/ActionIconView.js +10 -1
  97. package/es/library/dot/legacy-to-new-arch/action-icon/frameworks/ui/css/ActionIconView.module.css +3 -0
  98. package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/Button.js +12 -0
  99. package/es/library/dot/legacy-to-new-arch/button/frameworks/ui/ButtonView.js +41 -0
  100. package/es/library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItem.js +12 -0
  101. package/es/library/dot/legacy-to-new-arch/list-item/frameworks/ui/ListItemView.js +122 -0
  102. package/es/library/dot/legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdown.js +12 -0
  103. package/es/library/dot/legacy-to-new-arch/more-dropdown/frameworks/ui/MoreDropdownView.js +43 -0
  104. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
  105. package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +1 -1
  106. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +96 -0
  107. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +12 -3
  108. package/es/platform/client-actions/template-resolver/index.js +1 -0
  109. package/es/platform/client-actions/translators/client-actions-translator/index.js +5 -2
  110. package/es/platform/client-actions/translators/condition-resolver/field-evaluators/GetResolvedContextFieldValue.js +3 -2
  111. package/es/platform/client-actions/translators/context-resolver/index.js +7 -10
  112. package/es/platform/components/form-connected/frameworks/EventHandlersFactory.js +91 -0
  113. package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +33 -0
  114. package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnectedView.js +1 -1
  115. package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormSdkFactory.js +3 -14
  116. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +28 -0
  117. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ColumnChooserUpdateController.js +5 -5
  118. package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
  119. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeByMouseController.js +1 -1
  120. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeEndController.js +1 -1
  121. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeFinishController.js +1 -1
  122. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeStartController.js +2 -2
  123. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ScrollController.js +1 -1
  124. package/es/platform/components/table-connected/adapters/resources/ErrorPrinter.js +20 -0
  125. package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +326 -0
  126. package/es/platform/components/table-connected/application/interfaces/ISmartTableResource.js +1 -0
  127. package/es/platform/components/table-connected/frameworks/ErrorEventHandlersFactory.js +126 -0
  128. package/es/{desk-frameworks → platform/components}/table-connected/frameworks/EventHandlersFactory.js +58 -17
  129. package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +57 -0
  130. package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +78 -0
  131. package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnectedView.js +10 -4
  132. package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
  133. package/es/platform/data-source/index.js +2 -0
  134. package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
  135. package/es/platform/sdk/adapters/gateways/Service.js +27 -0
  136. package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
  137. package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
  138. package/es/platform/sdk/application/interfaces/gateways/AbstractResource.js +13 -0
  139. package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
  140. package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
  141. package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
  142. package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  143. package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  144. package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
  145. package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
  146. package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
  147. package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
  148. package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
  149. package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
  150. package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
  151. package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
  152. package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
  153. package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
  154. package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
  155. package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
  156. package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
  157. package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
  158. package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
  159. package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
  160. package/es/platform/sdk/frameworks/Sdk.js +11 -0
  161. package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
  162. package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
  163. package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
  164. package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
  165. package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
  166. package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
  167. package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
  168. package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
  169. package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
  170. package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
  171. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
  172. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
  173. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
  174. package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  175. package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  176. package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
  177. package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
  178. package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
  179. package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
  180. package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
  181. package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
  182. package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
  183. package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
  184. package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
  185. package/es/platform/zdata-source/domain/entities/DataSource.js +18 -12
  186. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +7 -1
  187. package/es/platform/zform/adapters/controllers/FieldValueChangeController.js +10 -3
  188. package/es/platform/zform/adapters/presenter/FormTranslator.js +6 -127
  189. package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +32 -0
  190. package/es/platform/zform/adapters/presenter/translators/fields/BooleanFieldTranslator.js +20 -0
  191. package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +29 -0
  192. package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +20 -0
  193. package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +21 -0
  194. package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +29 -0
  195. package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +30 -0
  196. package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +30 -0
  197. package/es/platform/zform/adapters/presenter/translators/fields/MultiselectFieldTranslator.js +29 -0
  198. package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +30 -0
  199. package/es/platform/zform/adapters/presenter/translators/fields/PercentageFieldTranslator.js +30 -0
  200. package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +29 -0
  201. package/es/platform/zform/adapters/presenter/translators/fields/PicklistFieldTranslator.js +29 -0
  202. package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +30 -0
  203. package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +27 -0
  204. package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +30 -0
  205. package/es/platform/zform/adapters/presenter/translators/fields/index.js +15 -0
  206. package/es/platform/zform/applications/usecases/FieldValueChangeRequestUseCase.js +13 -1
  207. package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +3 -1
  208. package/es/platform/zform/domain/ZField.js +61 -16
  209. package/es/platform/zform/domain/ZSection.js +20 -7
  210. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +10 -4
  211. package/es/platform/zhttp/applications/usecases/FetchUseCase.js +111 -66
  212. package/es/platform/zlist/adapters/controllers/FieldExecuteFailedController.js +25 -0
  213. package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
  214. package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
  215. package/es/platform/zlist/adapters/gateways/Repository.js +12 -2
  216. package/es/platform/zlist/adapters/gateways/Service.js +8 -0
  217. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +3 -1
  218. package/es/platform/zlist/adapters/presenters/TableTranslator.js +19 -5
  219. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +11 -12
  220. package/es/platform/zlist/adapters/presenters/translators/EmptyViewModel.js +2 -1
  221. package/es/platform/zlist/adapters/presenters/translators/Header.js +8 -4
  222. package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +3 -2
  223. package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
  224. package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +1 -0
  225. package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +3 -0
  226. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
  227. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  228. package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
  229. package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
  230. package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
  231. package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
  232. package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
  233. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +1 -1
  234. package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
  235. package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
  236. package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
  237. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -2
  238. package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
  239. package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
  240. package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
  241. package/es/platform/zlist/domain/entities/List.js +73 -48
  242. package/es/platform/zlist/domain/entities/ListErrorState.js +167 -0
  243. package/es/platform/zlist/frameworks/EventHandlersFactory.js +16 -6
  244. package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +6 -0
  245. package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
  246. package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
  247. package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
  248. package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
  249. package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
  250. package/es/platform/zrecord/domain/entities/Records.js +9 -4
  251. package/es/platform/zrecord/domain/entities/RecordsManager.js +11 -1
  252. package/package.json +10 -8
  253. package/es/desk-frameworks/form-connected/frameworks/EventHandlersFactory.js +0 -24
  254. package/es/desk-frameworks/form-connected/frameworks/FormConnectedFactory.js +0 -33
  255. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +0 -36
  256. package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +0 -172
  257. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +0 -56
  258. /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnected.js +0 -0
  259. /package/es/{desk-frameworks → platform/components}/index.js +0 -0
  260. /package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/AbstractController.js +0 -0
  261. /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
- keyboardHandler.destruct(host);
12
- presenter.updateKeyboardControls(keyboardControls.toObject());
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
- ['MOUNT']: new InitializeController(service).handle,
32
- ['UPDATE_PROPERTIES']: new UpdateController(service).handle,
33
- ['UNMOUNT']: new DestructController(service).handle,
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 index = type.indexOf('#');
79
- console.log('%cEvent %c' + type.slice(0, index) + '%c' + type.slice(index), 'font-weight: bold', 'color: #FF6F61;font-weight: bold', 'color: #FFA500;font-weight: bold', {
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
- /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
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;
@@ -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}#MOUNT`
16
+ type: `${name}#${LifeCycleEvents.MOUNT}`
13
17
  };
14
18
  this.unmount = {
15
- type: `${name}#UN_MOUNT`
19
+ type: `${name}#${LifeCycleEvents.UN_MOUNT}`
16
20
  };
17
21
 
18
22
  this.contructUpdatePropertiesAction = payload => {
19
23
  return {
20
- type: `${name}#UPDATE_PROPERTIES`,
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.log('Property validation failed', error);
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: setElement
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
- setElement.bind(this.eventManager)(element);
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.UNMOUNT]: unmountController.handle
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 handleSectionFieldBlurred(_ref) {
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.FORM_FIELD_BLURRED,
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 handleSectionFieldChanged(_ref2) {
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,