@zohodesk/library-platform 1.1.2 → 1.1.3

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 (147) 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/zlist/Properties.js +15 -0
  10. package/es/cc/fields/field/Properties.js +10 -1
  11. package/es/cc/fields/index.js +1 -1
  12. package/es/cc/table-column-chooser/Constants.js +6 -0
  13. package/es/cc/table-column-chooser/Events.js +69 -0
  14. package/es/cc/table-column-chooser/Properties.js +122 -0
  15. package/es/cc/table-column-chooser/index.js +3 -0
  16. package/es/cc/table-connected/Properties.js +16 -0
  17. package/es/cc/table-connected/constants/Events.js +4 -1
  18. package/es/cc/table-list/Properties.js +27 -1
  19. package/es/cc/table-list/data-types/KeyboardControlsConfig.js +1 -0
  20. package/es/cc/table-list/row/Properties.js +18 -0
  21. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +36 -0
  22. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserUpdateController.js +25 -0
  23. package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +8 -2
  24. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +5 -2
  25. package/es/desk-frameworks/table-connected/frameworks/TableConnectedView.js +9 -6
  26. package/es/library/behaviours/keyboard-controls/adapters/controllers/AbstractController.js +9 -0
  27. package/es/library/behaviours/keyboard-controls/adapters/controllers/DestructController.js +20 -0
  28. package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js +20 -0
  29. package/es/library/behaviours/keyboard-controls/adapters/controllers/EnterPressController.js +24 -0
  30. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusNextController.js +20 -0
  31. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js +20 -0
  32. package/es/library/behaviours/keyboard-controls/adapters/controllers/InitializeController.js +20 -0
  33. package/es/library/behaviours/keyboard-controls/adapters/controllers/SpacePressController.js +24 -0
  34. package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js +20 -0
  35. package/es/library/behaviours/keyboard-controls/adapters/gateways/KeyboardHandler.js +81 -0
  36. package/es/library/behaviours/keyboard-controls/adapters/gateways/Repository.js +47 -0
  37. package/es/library/behaviours/keyboard-controls/adapters/gateways/Service.js +40 -0
  38. package/es/library/behaviours/keyboard-controls/adapters/presenters/Presenter.js +39 -0
  39. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCase.js +0 -0
  40. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js +1 -0
  41. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js +1 -0
  42. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js +1 -0
  43. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IService.js +1 -0
  44. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js +1 -0
  45. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DownArrowPressInputModel.js +1 -0
  46. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/EnterPressInputModel.js +1 -0
  47. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js +1 -0
  48. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusPreviousInputModel.js +1 -0
  49. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/InitializeInputModel.js +1 -0
  50. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js +1 -0
  51. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js +1 -0
  52. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SpacePressInputModel.js +1 -0
  53. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/UpArrowPressInputModel.js +1 -0
  54. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/IPresenter.js +1 -0
  55. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/OutputModel.js +1 -0
  56. package/es/library/behaviours/keyboard-controls/applications/usecases/AbstractUseCase.js +19 -0
  57. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +17 -0
  58. package/es/library/behaviours/keyboard-controls/applications/usecases/DownArrowPress.js +16 -0
  59. package/es/library/behaviours/keyboard-controls/applications/usecases/EnterPress.js +19 -0
  60. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusNextUsecase.js +16 -0
  61. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusPreviousUsecase.js +16 -0
  62. package/es/library/behaviours/keyboard-controls/applications/usecases/InitializeUsecase.js +20 -0
  63. package/es/library/behaviours/keyboard-controls/applications/usecases/SpacePress.js +19 -0
  64. package/es/library/behaviours/keyboard-controls/applications/usecases/UpArrowPress.js +16 -0
  65. package/es/library/behaviours/keyboard-controls/domain/entities/KeyboardControls.js +87 -0
  66. package/es/library/behaviours/keyboard-controls/domain/entities/interface/IKeyboardControls.js +1 -0
  67. package/es/library/behaviours/keyboard-controls/domain/entities/interface/KeyboardControlModel.js +1 -0
  68. package/es/library/behaviours/keyboard-controls/frameworks/EventHandlerFactory.js +48 -0
  69. package/es/library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory.js +23 -0
  70. package/es/library/custom-component/frameworks/ui/ComponentRegistry.js +8 -0
  71. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +4 -0
  72. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowClickController.js +36 -0
  73. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowSelectController.js +31 -0
  74. package/es/library/dot/components/table-list/adapters/controllers/index.js +3 -1
  75. package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +5 -3
  76. package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +4 -1
  77. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +10 -3
  78. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +3 -0
  79. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -10
  80. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +7 -3
  81. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +7 -2
  82. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +28 -0
  83. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +5 -0
  84. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +7 -2
  85. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser.js +11 -0
  86. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooserView.js +79 -0
  87. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +6 -8
  88. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -6
  89. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +1 -1
  90. package/es/platform/column-chooser/adapters/controllers/AbstractController.js +10 -0
  91. package/es/platform/column-chooser/adapters/controllers/ColumnChooserCloseController.js +21 -0
  92. package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +26 -0
  93. package/es/platform/column-chooser/adapters/controllers/ColumnChooserReorderController.js +26 -0
  94. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSaveController.js +21 -0
  95. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSearchController.js +24 -0
  96. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSelectController.js +26 -0
  97. package/es/platform/column-chooser/adapters/gateways/Repository.js +38 -0
  98. package/es/platform/column-chooser/adapters/gateways/Service.js +34 -0
  99. package/es/platform/column-chooser/adapters/gateways/State.js +1 -0
  100. package/es/platform/column-chooser/adapters/presenters/Presenter.js +25 -0
  101. package/es/platform/column-chooser/applications/interfaces/UsecaseDependencies.js +1 -0
  102. package/es/platform/column-chooser/applications/interfaces/gateways/IRepository.js +1 -0
  103. package/es/platform/column-chooser/applications/interfaces/gateways/IService.js +1 -0
  104. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserCloseInput.js +1 -0
  105. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserOpenInput.js +1 -0
  106. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserReorderInput.js +1 -0
  107. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSaveInput.js +1 -0
  108. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSearchInput.js +1 -0
  109. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSelectInput.js +1 -0
  110. package/es/platform/column-chooser/applications/interfaces/output/BehaviourState.js +1 -0
  111. package/es/platform/column-chooser/applications/interfaces/output/IPresenter.js +1 -0
  112. package/es/platform/column-chooser/applications/usecases/AbstractUseCase.js +18 -0
  113. package/es/platform/column-chooser/applications/usecases/ColumnChooserCloseUseCase.js +34 -0
  114. package/es/platform/column-chooser/applications/usecases/ColumnChooserOpenUseCase.js +20 -0
  115. package/es/platform/column-chooser/applications/usecases/ColumnChooserReorderUseCase.js +20 -0
  116. package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +31 -0
  117. package/es/platform/column-chooser/applications/usecases/ColumnChooserSearchUseCase.js +19 -0
  118. package/es/platform/column-chooser/applications/usecases/ColumnChooserSelectUseCase.js +26 -0
  119. package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +95 -0
  120. package/es/platform/column-chooser/domain/entities/ReorderEntityImp.js +35 -0
  121. package/es/platform/column-chooser/domain/entities/SearchEntityImp.js +28 -0
  122. package/es/platform/column-chooser/domain/entities/SelectEntityImp.js +58 -0
  123. package/es/platform/column-chooser/domain/entities/interfaces/ColumnChooser.js +1 -0
  124. package/es/platform/column-chooser/domain/entities/interfaces/ReorderEntity.js +1 -0
  125. package/es/platform/column-chooser/domain/entities/interfaces/SearchEntity.js +1 -0
  126. package/es/platform/column-chooser/domain/entities/interfaces/SelectEntity.js +1 -0
  127. package/es/platform/column-chooser/frameworks/ColumnChooserBehaviourFactory.js +19 -0
  128. package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +30 -0
  129. package/es/platform/data-source/http-template/updateSelectedFields.js +28 -0
  130. package/es/platform/data-source/index.js +2 -0
  131. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +3 -1
  132. package/es/platform/zfield/domain/entities/interfaces/FieldApiName.js +1 -0
  133. package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +6 -1
  134. package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
  135. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +92 -0
  136. package/es/platform/zlist/adapters/presenters/TableTranslator.js +32 -19
  137. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +63 -4
  138. package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
  139. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
  140. package/es/platform/zlist/adapters/presenters/translators/interfaces/State.js +2 -1
  141. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +78 -6
  142. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  143. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
  144. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
  145. package/es/platform/zlist/domain/entities/List.js +14 -2
  146. package/package.json +6 -4
  147. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/SelectAll.js +0 -26
@@ -0,0 +1,9 @@
1
+ class AbstractController {
2
+ constructor(service) {
3
+ this.service = service;
4
+ this.handle = this.handle.bind(this);
5
+ }
6
+
7
+ }
8
+
9
+ export default AbstractController;
@@ -0,0 +1,20 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class DestructController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ host
10
+ } = event;
11
+ const {
12
+ DestructUsecase
13
+ } = this.service;
14
+ DestructUsecase.updateDependencies(state, updateState, dispatch, host);
15
+ DestructUsecase.execute(host);
16
+ }
17
+
18
+ }
19
+
20
+ export default DestructController;
@@ -0,0 +1,20 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class DownArrowPressController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ host
10
+ } = event;
11
+ const {
12
+ DownArrowPressUsecase
13
+ } = this.service;
14
+ DownArrowPressUsecase.updateDependencies(state, updateState, dispatch, host);
15
+ DownArrowPressUsecase.execute();
16
+ }
17
+
18
+ }
19
+
20
+ export default DownArrowPressController;
@@ -0,0 +1,24 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class EnterPressController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ action,
10
+ host
11
+ } = event;
12
+ const {
13
+ EnterPressUsecase
14
+ } = this.service;
15
+ EnterPressUsecase.updateDependencies(state, updateState, dispatch, host);
16
+ EnterPressUsecase.execute({
17
+ dispatch,
18
+ event: action.payload.event
19
+ });
20
+ }
21
+
22
+ }
23
+
24
+ export default EnterPressController;
@@ -0,0 +1,20 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class FocusNextController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ host
10
+ } = event;
11
+ const {
12
+ FocusNextUsecase
13
+ } = this.service;
14
+ FocusNextUsecase.updateDependencies(state, updateState, dispatch, host);
15
+ FocusNextUsecase.execute();
16
+ }
17
+
18
+ }
19
+
20
+ export default FocusNextController;
@@ -0,0 +1,20 @@
1
+ import AbstractController from "./AbstractController";
2
+
3
+ class FocusPreviousController extends AbstractController {
4
+ handle(event) {
5
+ const {
6
+ state,
7
+ updateState,
8
+ dispatch,
9
+ host
10
+ } = event;
11
+ const {
12
+ FocusPreviousUsecase
13
+ } = this.service;
14
+ FocusPreviousUsecase.updateDependencies(state, updateState, dispatch, host);
15
+ FocusPreviousUsecase.execute();
16
+ }
17
+
18
+ }
19
+
20
+ export default FocusPreviousController;
@@ -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,17 @@
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
+ keyboardHandler.destruct(host);
12
+ presenter.updateKeyboardControls(keyboardControls.toObject());
13
+ }
14
+
15
+ }
16
+
17
+ 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;