@zohodesk/library-platform 1.1.2 → 1.1.3-exp.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/es/bc/column-chooser/Constants.js +4 -0
  2. package/es/bc/column-chooser/EventHandlers.js +2 -0
  3. package/es/bc/column-chooser/Events.js +59 -0
  4. package/es/bc/column-chooser/Properties.js +18 -0
  5. package/es/bc/keyboard-controls/Constants.js +5 -0
  6. package/es/bc/keyboard-controls/Events.js +51 -0
  7. package/es/bc/keyboard-controls/Properties.js +11 -0
  8. package/es/bc/keyboard-controls/types/KeyboardControlBehaviourState.js +1 -0
  9. package/es/bc/sdk/EventHandlers.js +1 -0
  10. package/es/bc/sdk/Properties.js +10 -0
  11. package/es/bc/sdk/ResourceNamesEnum.js +6 -0
  12. package/es/bc/zlist/Properties.js +15 -0
  13. package/es/cc/action-location/Constants.js +5 -3
  14. package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
  15. package/es/cc/component/LifeCycleEventsEnum.js +9 -0
  16. package/es/cc/fields/field/Properties.js +10 -1
  17. package/es/cc/fields/index.js +1 -1
  18. package/es/cc/table-column-chooser/Constants.js +6 -0
  19. package/es/cc/table-column-chooser/Events.js +69 -0
  20. package/es/cc/table-column-chooser/Properties.js +122 -0
  21. package/es/cc/table-column-chooser/index.js +3 -0
  22. package/es/cc/table-connected/Properties.js +16 -0
  23. package/es/cc/table-connected/constants/Events.js +4 -1
  24. package/es/cc/table-list/Properties.js +27 -1
  25. package/es/cc/table-list/data-types/KeyboardControlsConfig.js +1 -0
  26. package/es/cc/table-list/row/Properties.js +18 -0
  27. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +36 -0
  28. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserUpdateController.js +25 -0
  29. package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +18 -7
  30. package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +15 -130
  31. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +13 -2
  32. package/es/desk-frameworks/table-connected/frameworks/TableConnectedView.js +9 -6
  33. package/es/desk-frameworks/table-connected/frameworks/resources/ISmartTableResource.js +1 -0
  34. package/es/desk-frameworks/table-connected/frameworks/resources/SmartTableResource.js +233 -0
  35. package/es/index.js +3 -1
  36. package/es/library/behaviours/keyboard-controls/adapters/controllers/AbstractController.js +9 -0
  37. package/es/library/behaviours/keyboard-controls/adapters/controllers/DestructController.js +20 -0
  38. package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js +20 -0
  39. package/es/library/behaviours/keyboard-controls/adapters/controllers/EnterPressController.js +24 -0
  40. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusNextController.js +20 -0
  41. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js +20 -0
  42. package/es/library/behaviours/keyboard-controls/adapters/controllers/InitializeController.js +20 -0
  43. package/es/library/behaviours/keyboard-controls/adapters/controllers/SpacePressController.js +24 -0
  44. package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js +20 -0
  45. package/es/library/behaviours/keyboard-controls/adapters/gateways/KeyboardHandler.js +81 -0
  46. package/es/library/behaviours/keyboard-controls/adapters/gateways/Repository.js +47 -0
  47. package/es/library/behaviours/keyboard-controls/adapters/gateways/Service.js +40 -0
  48. package/es/library/behaviours/keyboard-controls/adapters/presenters/Presenter.js +39 -0
  49. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCase.js +0 -0
  50. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js +1 -0
  51. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js +1 -0
  52. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js +1 -0
  53. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IService.js +1 -0
  54. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js +1 -0
  55. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DownArrowPressInputModel.js +1 -0
  56. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/EnterPressInputModel.js +1 -0
  57. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js +1 -0
  58. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusPreviousInputModel.js +1 -0
  59. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/InitializeInputModel.js +1 -0
  60. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js +1 -0
  61. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js +1 -0
  62. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SpacePressInputModel.js +1 -0
  63. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/UpArrowPressInputModel.js +1 -0
  64. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/IPresenter.js +1 -0
  65. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/OutputModel.js +1 -0
  66. package/es/library/behaviours/keyboard-controls/applications/usecases/AbstractUseCase.js +19 -0
  67. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +20 -0
  68. package/es/library/behaviours/keyboard-controls/applications/usecases/DownArrowPress.js +16 -0
  69. package/es/library/behaviours/keyboard-controls/applications/usecases/EnterPress.js +19 -0
  70. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusNextUsecase.js +16 -0
  71. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusPreviousUsecase.js +16 -0
  72. package/es/library/behaviours/keyboard-controls/applications/usecases/InitializeUsecase.js +20 -0
  73. package/es/library/behaviours/keyboard-controls/applications/usecases/SpacePress.js +19 -0
  74. package/es/library/behaviours/keyboard-controls/applications/usecases/UpArrowPress.js +16 -0
  75. package/es/library/behaviours/keyboard-controls/domain/entities/KeyboardControls.js +87 -0
  76. package/es/library/behaviours/keyboard-controls/domain/entities/interface/IKeyboardControls.js +1 -0
  77. package/es/library/behaviours/keyboard-controls/domain/entities/interface/KeyboardControlModel.js +1 -0
  78. package/es/library/behaviours/keyboard-controls/frameworks/EventHandlerFactory.js +48 -0
  79. package/es/library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory.js +23 -0
  80. package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
  81. package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
  82. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +3 -0
  83. package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
  84. package/es/library/custom-component/domain/entities/Component.js +4 -0
  85. package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
  86. package/es/library/custom-component/frameworks/ui/ComponentRegistry.js +8 -0
  87. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +4 -0
  88. package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
  89. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowClickController.js +36 -0
  90. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowSelectController.js +31 -0
  91. package/es/library/dot/components/table-list/adapters/controllers/index.js +3 -1
  92. package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +5 -3
  93. package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +4 -1
  94. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +10 -3
  95. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +3 -0
  96. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -10
  97. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +7 -3
  98. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +7 -2
  99. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +28 -0
  100. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +5 -0
  101. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +7 -2
  102. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +1 -0
  103. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser.js +11 -0
  104. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooserView.js +79 -0
  105. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
  106. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +6 -8
  107. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +4 -3
  108. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -6
  109. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +1 -1
  110. package/es/platform/column-chooser/adapters/controllers/AbstractController.js +10 -0
  111. package/es/platform/column-chooser/adapters/controllers/ColumnChooserCloseController.js +21 -0
  112. package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +26 -0
  113. package/es/platform/column-chooser/adapters/controllers/ColumnChooserReorderController.js +26 -0
  114. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSaveController.js +21 -0
  115. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSearchController.js +24 -0
  116. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSelectController.js +26 -0
  117. package/es/platform/column-chooser/adapters/gateways/Repository.js +38 -0
  118. package/es/platform/column-chooser/adapters/gateways/Service.js +34 -0
  119. package/es/platform/column-chooser/adapters/gateways/State.js +1 -0
  120. package/es/platform/column-chooser/adapters/presenters/Presenter.js +25 -0
  121. package/es/platform/column-chooser/applications/interfaces/UsecaseDependencies.js +1 -0
  122. package/es/platform/column-chooser/applications/interfaces/gateways/IRepository.js +1 -0
  123. package/es/platform/column-chooser/applications/interfaces/gateways/IService.js +1 -0
  124. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserCloseInput.js +1 -0
  125. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserOpenInput.js +1 -0
  126. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserReorderInput.js +1 -0
  127. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSaveInput.js +1 -0
  128. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSearchInput.js +1 -0
  129. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSelectInput.js +1 -0
  130. package/es/platform/column-chooser/applications/interfaces/output/BehaviourState.js +1 -0
  131. package/es/platform/column-chooser/applications/interfaces/output/IPresenter.js +1 -0
  132. package/es/platform/column-chooser/applications/usecases/AbstractUseCase.js +18 -0
  133. package/es/platform/column-chooser/applications/usecases/ColumnChooserCloseUseCase.js +34 -0
  134. package/es/platform/column-chooser/applications/usecases/ColumnChooserOpenUseCase.js +20 -0
  135. package/es/platform/column-chooser/applications/usecases/ColumnChooserReorderUseCase.js +20 -0
  136. package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +31 -0
  137. package/es/platform/column-chooser/applications/usecases/ColumnChooserSearchUseCase.js +19 -0
  138. package/es/platform/column-chooser/applications/usecases/ColumnChooserSelectUseCase.js +26 -0
  139. package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +95 -0
  140. package/es/platform/column-chooser/domain/entities/ReorderEntityImp.js +35 -0
  141. package/es/platform/column-chooser/domain/entities/SearchEntityImp.js +28 -0
  142. package/es/platform/column-chooser/domain/entities/SelectEntityImp.js +58 -0
  143. package/es/platform/column-chooser/domain/entities/interfaces/ColumnChooser.js +1 -0
  144. package/es/platform/column-chooser/domain/entities/interfaces/ReorderEntity.js +1 -0
  145. package/es/platform/column-chooser/domain/entities/interfaces/SearchEntity.js +1 -0
  146. package/es/platform/column-chooser/domain/entities/interfaces/SelectEntity.js +1 -0
  147. package/es/platform/column-chooser/frameworks/ColumnChooserBehaviourFactory.js +19 -0
  148. package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +30 -0
  149. package/es/platform/data-source/http-template/updateSelectedFields.js +28 -0
  150. package/es/platform/data-source/index.js +2 -0
  151. package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
  152. package/es/platform/sdk/adapters/gateways/Service.js +27 -0
  153. package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
  154. package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
  155. package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
  156. package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
  157. package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
  158. package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  159. package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  160. package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
  161. package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
  162. package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
  163. package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
  164. package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
  165. package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
  166. package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
  167. package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
  168. package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
  169. package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
  170. package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
  171. package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
  172. package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
  173. package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
  174. package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
  175. package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
  176. package/es/platform/sdk/frameworks/AbstractResource.js +16 -0
  177. package/es/platform/sdk/frameworks/Sdk.js +11 -0
  178. package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
  179. package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
  180. package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
  181. package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
  182. package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
  183. package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
  184. package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
  185. package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
  186. package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
  187. package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
  188. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
  189. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
  190. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
  191. package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  192. package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  193. package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
  194. package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
  195. package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
  196. package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
  197. package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
  198. package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
  199. package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
  200. package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
  201. package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
  202. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +3 -1
  203. package/es/platform/zfield/domain/entities/interfaces/FieldApiName.js +1 -0
  204. package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +6 -1
  205. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +2 -2
  206. package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
  207. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +94 -0
  208. package/es/platform/zlist/adapters/presenters/TableTranslator.js +35 -19
  209. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +63 -4
  210. package/es/platform/zlist/adapters/presenters/translators/Header.js +5 -2
  211. package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
  212. package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
  213. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
  214. package/es/platform/zlist/adapters/presenters/translators/interfaces/State.js +2 -1
  215. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +78 -6
  216. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  217. package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
  218. package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
  219. package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
  220. package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
  221. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
  222. package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
  223. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
  224. package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
  225. package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
  226. package/es/platform/zlist/domain/entities/List.js +26 -2
  227. package/es/platform/zlist/frameworks/EventHandlersFactory.js +3 -3
  228. package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
  229. package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
  230. package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
  231. package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
  232. package/es/platform/zrecord/domain/entities/Records.js +9 -4
  233. package/es/platform/zrecord/domain/entities/RecordsManager.js +8 -0
  234. package/package.json +10 -8
  235. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/SelectAll.js +0 -26
@@ -0,0 +1,20 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class InitializeController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ host
10
+ } = event;
11
+ const {
12
+ InitializeUsecase
13
+ } = this.service;
14
+ InitializeUsecase.updateDependencies(state, updateState, dispatch, host);
15
+ InitializeUsecase.execute(host);
16
+ }
17
+
18
+ }
19
+
20
+ export default InitializeController;
@@ -0,0 +1,24 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class SpacePressController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ action,
10
+ host
11
+ } = event;
12
+ const {
13
+ SpacePressUsecase
14
+ } = this.service;
15
+ SpacePressUsecase.updateDependencies(state, updateState, dispatch, host);
16
+ SpacePressUsecase.execute({
17
+ dispatch,
18
+ event: action.payload.event
19
+ });
20
+ }
21
+
22
+ }
23
+
24
+ export default SpacePressController;
@@ -0,0 +1,20 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class UpArrowPressController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ host
10
+ } = event;
11
+ const {
12
+ UpArrowPressUsecase
13
+ } = this.service;
14
+ UpArrowPressUsecase.updateDependencies(state, updateState, dispatch, host);
15
+ UpArrowPressUsecase.execute();
16
+ }
17
+
18
+ }
19
+
20
+ export default UpArrowPressController;
@@ -0,0 +1,81 @@
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
+
3
+ import { KEYBOARD_CONTROL_DOWN_ARROW_PRESSED, KEYBOARD_CONTROL_ENTER_PRESSED, KEYBOARD_CONTROL_SPACE_PRESSED, KEYBOARD_CONTROL_UP_ARROW_PRESSED } from "../../../../../bc/keyboard-controls/Constants";
4
+
5
+ class KeyboardHandler {
6
+ constructor() {
7
+ _defineProperty(this, "dispatch", void 0);
8
+
9
+ this.handleKeypress = this.handleKeypress.bind(this);
10
+ this.initialize = this.initialize.bind(this);
11
+ this.destruct = this.destruct.bind(this);
12
+ }
13
+
14
+ setDispatch(dispatch) {
15
+ this.dispatch = dispatch;
16
+ }
17
+
18
+ handleKeypress(event) {
19
+ if (['ArrowUp', 'ArrowDown', 'Space', 'Enter'].includes(event.code)) {
20
+ event.preventDefault();
21
+ event.stopPropagation();
22
+ }
23
+
24
+ switch (event.code) {
25
+ case 'ArrowUp':
26
+ this.dispatch({
27
+ type: KEYBOARD_CONTROL_UP_ARROW_PRESSED,
28
+ payload: {
29
+ event
30
+ }
31
+ });
32
+ break;
33
+
34
+ case 'ArrowDown':
35
+ this.dispatch({
36
+ type: KEYBOARD_CONTROL_DOWN_ARROW_PRESSED,
37
+ payload: {
38
+ event
39
+ }
40
+ });
41
+ break;
42
+
43
+ case 'Space':
44
+ this.dispatch({
45
+ type: KEYBOARD_CONTROL_SPACE_PRESSED,
46
+ payload: {
47
+ event
48
+ }
49
+ });
50
+ break;
51
+
52
+ case 'Enter':
53
+ this.dispatch({
54
+ type: KEYBOARD_CONTROL_ENTER_PRESSED,
55
+ payload: {
56
+ event
57
+ }
58
+ });
59
+ break;
60
+ }
61
+ }
62
+
63
+ initialize(host) {
64
+ if (host) {
65
+ host.addEventListener('keydown', this.handleKeypress);
66
+ } else {
67
+ document.addEventListener('keydown', this.handleKeypress);
68
+ }
69
+ }
70
+
71
+ destruct(host) {
72
+ if (host) {
73
+ host.removeEventListener('keydown', this.handleKeypress);
74
+ } else {
75
+ document.removeEventListener('keydown', this.handleKeypress);
76
+ }
77
+ }
78
+
79
+ }
80
+
81
+ export default KeyboardHandler;
@@ -0,0 +1,47 @@
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
+
3
+ import KeyboardControls from "../../domain/entities/KeyboardControls";
4
+
5
+ class Repository {
6
+ constructor() {
7
+ _defineProperty(this, "state", void 0);
8
+ }
9
+
10
+ init(state) {
11
+ this.state = state;
12
+ }
13
+
14
+ getKeyboardControls() {
15
+ var _zrecord$records;
16
+
17
+ const {
18
+ behaviours,
19
+ properties
20
+ } = this.state;
21
+ const {
22
+ keyboardControlsConfig
23
+ } = properties;
24
+ let isKeyboardControlEnabled = keyboardControlsConfig === null || keyboardControlsConfig === void 0 ? void 0 : keyboardControlsConfig.isEnabled;
25
+
26
+ if (!isKeyboardControlEnabled) {
27
+ return null;
28
+ }
29
+ /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
30
+
31
+
32
+ const {
33
+ zrecord,
34
+ keyboardControls
35
+ } = behaviours;
36
+ const {
37
+ focussedIndex
38
+ } = keyboardControls;
39
+ /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
40
+
41
+ const totalRows = (zrecord === null || zrecord === void 0 ? void 0 : (_zrecord$records = zrecord.records) === null || _zrecord$records === void 0 ? void 0 : _zrecord$records.length) || 0;
42
+ return new KeyboardControls(focussedIndex, totalRows);
43
+ }
44
+
45
+ }
46
+
47
+ export default Repository;
@@ -0,0 +1,40 @@
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
+
3
+ import DestructUsecase from "../../applications/usecases/DestructUsecase";
4
+ import DownArrowPress from "../../applications/usecases/DownArrowPress";
5
+ import EnterPress from "../../applications/usecases/EnterPress"; // import FocusNextUsecase from "../../applications/usecases/FocusNextUsecase";
6
+ // import FocusPreviousUsecase from "../../applications/usecases/FocusPreviousUsecase";
7
+
8
+ import InitializeUsecase from "../../applications/usecases/InitializeUsecase";
9
+ import SpacePress from "../../applications/usecases/SpacePress";
10
+ import UpArrowPress from "../../applications/usecases/UpArrowPress";
11
+
12
+ class Service {
13
+ // FocusPreviousUsecase: FocusPreviousUsecase;
14
+ // FocusNextUsecase: FocusNextUsecase;
15
+ constructor(dependencies) {
16
+ _defineProperty(this, "UpArrowPressUsecase", void 0);
17
+
18
+ _defineProperty(this, "DownArrowPressUsecase", void 0);
19
+
20
+ _defineProperty(this, "SpacePressUsecase", void 0);
21
+
22
+ _defineProperty(this, "EnterPressUsecase", void 0);
23
+
24
+ _defineProperty(this, "InitializeUsecase", void 0);
25
+
26
+ _defineProperty(this, "DestructUsecase", void 0);
27
+
28
+ this.UpArrowPressUsecase = new UpArrowPress(dependencies);
29
+ this.DownArrowPressUsecase = new DownArrowPress(dependencies);
30
+ this.SpacePressUsecase = new SpacePress(dependencies);
31
+ this.EnterPressUsecase = new EnterPress(dependencies); // this.FocusPreviousUsecase = new FocusPreviousUsecase(dependencies);
32
+ // this.FocusNextUsecase = new FocusNextUsecase(dependencies);
33
+
34
+ this.InitializeUsecase = new InitializeUsecase(dependencies);
35
+ this.DestructUsecase = new DestructUsecase(dependencies);
36
+ }
37
+
38
+ }
39
+
40
+ export default Service;
@@ -0,0 +1,39 @@
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
+
3
+ class Presenter {
4
+ constructor() {
5
+ _defineProperty(this, "state", void 0);
6
+
7
+ _defineProperty(this, "updateState", void 0);
8
+
9
+ _defineProperty(this, "host", document.createElement('div'));
10
+
11
+ _defineProperty(this, "listItemSelector", 'tbody tr');
12
+ }
13
+
14
+ updateDependencies(state, updateState, host) {
15
+ this.state = state;
16
+ this.updateState = updateState;
17
+ this.host = host;
18
+ }
19
+
20
+ updateKeyboardControls(keyboardControls) {
21
+ this.updateState({ ...this.state,
22
+ behaviours: { ...this.state.behaviours,
23
+ keyboardControls
24
+ }
25
+ });
26
+ this.focusListItem(keyboardControls.focussedIndex);
27
+ }
28
+
29
+ focusListItem(index) {
30
+ const listItems = this.host.querySelectorAll(this.listItemSelector);
31
+
32
+ if (listItems.length !== 0) {
33
+ listItems[index].focus();
34
+ }
35
+ }
36
+
37
+ }
38
+
39
+ export default Presenter;
@@ -0,0 +1,19 @@
1
+ class AbstractUseCase {
2
+ constructor(dependencies) {
3
+ this.dependencies = dependencies;
4
+ }
5
+
6
+ updateDependencies(state, updateState, dispatch, host) {
7
+ const {
8
+ repository,
9
+ presenter,
10
+ keyboardHandler
11
+ } = this.dependencies;
12
+ repository.init(state);
13
+ presenter.updateDependencies(state, updateState, host);
14
+ keyboardHandler.setDispatch(dispatch);
15
+ }
16
+
17
+ }
18
+
19
+ export default AbstractUseCase;
@@ -0,0 +1,20 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class DestructUsecase extends AbstractUseCase {
4
+ execute(host) {
5
+ const {
6
+ repository,
7
+ presenter,
8
+ keyboardHandler
9
+ } = this.dependencies;
10
+ const keyboardControls = repository.getKeyboardControls();
11
+
12
+ if (keyboardControls !== null) {
13
+ keyboardHandler.destruct(host);
14
+ presenter.updateKeyboardControls(keyboardControls.toObject());
15
+ }
16
+ }
17
+
18
+ }
19
+
20
+ export default DestructUsecase;
@@ -0,0 +1,16 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class DownArrowPress extends AbstractUseCase {
4
+ execute() {
5
+ const {
6
+ repository,
7
+ presenter
8
+ } = this.dependencies;
9
+ const keyboardControls = repository.getKeyboardControls();
10
+ keyboardControls.focusNext();
11
+ presenter.updateKeyboardControls(keyboardControls.toObject());
12
+ }
13
+
14
+ }
15
+
16
+ export default DownArrowPress;
@@ -0,0 +1,19 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class EnterPress extends AbstractUseCase {
4
+ execute(inputModel) {
5
+ const {
6
+ repository
7
+ } = this.dependencies;
8
+ const keyboardControls = repository.getKeyboardControls();
9
+ const {
10
+ dispatch,
11
+ event
12
+ } = inputModel;
13
+ const data = keyboardControls.getClickActionEvent(event);
14
+ dispatch(data);
15
+ }
16
+
17
+ }
18
+
19
+ export default EnterPress;
@@ -0,0 +1,16 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class FocusNextUsecase extends AbstractUseCase {
4
+ execute() {
5
+ const {
6
+ repository,
7
+ presenter
8
+ } = this.dependencies;
9
+ const keyboardControls = repository.getKeyboardControls();
10
+ keyboardControls.focusNext();
11
+ presenter.updateKeyboardControls(keyboardControls.toObject());
12
+ }
13
+
14
+ }
15
+
16
+ export default FocusNextUsecase;
@@ -0,0 +1,16 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class FocusPreviousUsecase extends AbstractUseCase {
4
+ execute() {
5
+ const {
6
+ repository,
7
+ presenter
8
+ } = this.dependencies;
9
+ const keyboardControls = repository.getKeyboardControls();
10
+ keyboardControls.focusPrevious();
11
+ presenter.updateKeyboardControls(keyboardControls.toObject());
12
+ }
13
+
14
+ }
15
+
16
+ export default FocusPreviousUsecase;
@@ -0,0 +1,20 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class InitializeUsecase extends AbstractUseCase {
4
+ execute(host) {
5
+ const {
6
+ repository,
7
+ presenter,
8
+ keyboardHandler
9
+ } = this.dependencies;
10
+ const keyboardControls = repository.getKeyboardControls();
11
+
12
+ if (keyboardControls !== null) {
13
+ keyboardHandler.initialize(host);
14
+ presenter.updateKeyboardControls(keyboardControls.toObject());
15
+ }
16
+ }
17
+
18
+ }
19
+
20
+ export default InitializeUsecase;
@@ -0,0 +1,19 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class SpacePress extends AbstractUseCase {
4
+ execute(inputModel) {
5
+ const {
6
+ repository
7
+ } = this.dependencies;
8
+ const keyboardControls = repository.getKeyboardControls();
9
+ const {
10
+ dispatch,
11
+ event
12
+ } = inputModel;
13
+ const data = keyboardControls.getSelectionEvent(event);
14
+ dispatch(data);
15
+ }
16
+
17
+ }
18
+
19
+ export default SpacePress;
@@ -0,0 +1,16 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class UpArrowPress extends AbstractUseCase {
4
+ execute() {
5
+ const {
6
+ repository,
7
+ presenter
8
+ } = this.dependencies;
9
+ const keyboardControls = repository.getKeyboardControls();
10
+ keyboardControls.focusPrevious();
11
+ presenter.updateKeyboardControls(keyboardControls.toObject());
12
+ }
13
+
14
+ }
15
+
16
+ export default UpArrowPress;
@@ -0,0 +1,87 @@
1
+ import { SMART_TABLE_ACTION_TRIGGERED, SMART_TABLE_SELECTION_TOGGLED } from "../../../../../cc/table-connected/constants/Events";
2
+
3
+ class KeyboardControls {
4
+ constructor(focussedIndex, totalLists) {
5
+ this.focussedIndex = focussedIndex;
6
+ this.totalLists = totalLists;
7
+ }
8
+
9
+ setFocussedIndex(index) {
10
+ this.focussedIndex = index;
11
+ }
12
+
13
+ getFocussedIndex() {
14
+ return this.focussedIndex;
15
+ }
16
+
17
+ focusPrevious() {
18
+ if (this.focussedIndex > 0) {
19
+ this.focussedIndex -= 1;
20
+ }
21
+ }
22
+
23
+ focusNext() {
24
+ if (this.totalLists > 1 && this.focussedIndex < this.totalLists - 1) {
25
+ this.focussedIndex += 1;
26
+ }
27
+ } // focusPrevious(): void {
28
+ // if (this.focussedIndex > 0) {
29
+ // this.focussedIndex -= 1;
30
+ // } else if (this.focussedIndex === 0 && this.totalLists > 1) {
31
+ // this.focussedIndex = this.totalLists - 1;
32
+ // }
33
+ // }
34
+ // focusNext(): void {
35
+ // if ((this.totalLists > 1) && (this.focussedIndex <= this.totalLists - 1)) {
36
+ // if (this.focussedIndex >= this.totalLists - 1) {
37
+ // this.focussedIndex = 0;
38
+ // } else {
39
+ // this.focussedIndex += 1;
40
+ // }
41
+ // }
42
+ // }
43
+ // getPreviousFocusEvent(event: KeyboardEvent): EventModel {
44
+ // return {
45
+ // type: SMART_TABLE_PREVIOUS_FOCUS,
46
+ // payload: {
47
+ // event
48
+ // }
49
+ // }
50
+ // }
51
+ // getNextFocusEvent(event: KeyboardEvent): EventModel {
52
+ // return {
53
+ // type: SMART_TABLE_NEXT_FOCUS,
54
+ // payload: {
55
+ // event
56
+ // }
57
+ // }
58
+ // }
59
+
60
+
61
+ getSelectionEvent(event) {
62
+ return {
63
+ type: SMART_TABLE_SELECTION_TOGGLED,
64
+ payload: {
65
+ event
66
+ }
67
+ };
68
+ }
69
+
70
+ getClickActionEvent(event) {
71
+ return {
72
+ type: SMART_TABLE_ACTION_TRIGGERED,
73
+ payload: {
74
+ event
75
+ }
76
+ };
77
+ }
78
+
79
+ toObject() {
80
+ return {
81
+ focussedIndex: this.focussedIndex
82
+ };
83
+ }
84
+
85
+ }
86
+
87
+ export default KeyboardControls;
@@ -0,0 +1,48 @@
1
+ import { KEYBOARD_CONTROL_DOWN_ARROW_PRESSED, KEYBOARD_CONTROL_ENTER_PRESSED, KEYBOARD_CONTROL_SPACE_PRESSED, KEYBOARD_CONTROL_UP_ARROW_PRESSED } from "../../../../bc/keyboard-controls/Constants";
2
+ import UpArrowPressController from "../adapters/controllers/UpArrowPressController";
3
+ import DownArrowPressController from "../adapters/controllers/DownArrowPressController";
4
+ import SpacePressController from "../adapters/controllers/SpacePressController";
5
+ import EnterPressController from "../adapters/controllers/EnterPressController";
6
+ import Service from "../adapters/gateways/Service";
7
+ import Repository from "../adapters/gateways/Repository";
8
+ import Presenter from "../adapters/presenters/Presenter";
9
+ import KeyboardHandler from "../adapters/gateways/KeyboardHandler"; // import FocusPreviousController from "../adapters/controllers/FocusPreviousController";
10
+ // import FocusNextController from "../adapters/controllers/FocusNextController";
11
+
12
+ import LifeCycleAction from "../../../../cc/architecture/LifeCycleActionEnum";
13
+ import InitializeController from "../adapters/controllers/InitializeController";
14
+ import DestructController from "../adapters/controllers/DestructController";
15
+
16
+ class EventHandlerFactory {
17
+ static create() {
18
+ const service = this.createService();
19
+ return this.createHandlers(service);
20
+ }
21
+
22
+ static createService() {
23
+ const repository = new Repository();
24
+ const presenter = new Presenter();
25
+ const keyboardHandler = new KeyboardHandler();
26
+ return new Service({
27
+ repository: repository,
28
+ presenter,
29
+ keyboardHandler
30
+ });
31
+ }
32
+
33
+ static createHandlers(service) {
34
+ return {
35
+ [LifeCycleAction.MOUNT]: new InitializeController(service).handle,
36
+ [LifeCycleAction.UN_MOUNT]: new DestructController(service).handle,
37
+ // [SMART_TABLE_PREVIOUS_FOCUS]: new FocusPreviousController(service).handle,
38
+ // [SMART_TABLE_NEXT_FOCUS]: new FocusNextController(service).handle,
39
+ [KEYBOARD_CONTROL_UP_ARROW_PRESSED]: new UpArrowPressController(service).handle,
40
+ [KEYBOARD_CONTROL_DOWN_ARROW_PRESSED]: new DownArrowPressController(service).handle,
41
+ [KEYBOARD_CONTROL_SPACE_PRESSED]: new SpacePressController(service).handle,
42
+ [KEYBOARD_CONTROL_ENTER_PRESSED]: new EnterPressController(service).handle
43
+ };
44
+ }
45
+
46
+ }
47
+
48
+ export default EventHandlerFactory;