@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.
- package/es/bc/column-chooser/Constants.js +4 -0
- package/es/bc/column-chooser/EventHandlers.js +2 -0
- package/es/bc/column-chooser/Events.js +59 -0
- package/es/bc/column-chooser/Properties.js +18 -0
- package/es/bc/keyboard-controls/Constants.js +5 -0
- package/es/bc/keyboard-controls/Events.js +51 -0
- package/es/bc/keyboard-controls/Properties.js +11 -0
- package/es/bc/keyboard-controls/types/KeyboardControlBehaviourState.js +1 -0
- package/es/bc/zlist/Properties.js +15 -0
- package/es/cc/fields/field/Properties.js +10 -1
- package/es/cc/fields/index.js +1 -1
- package/es/cc/table-column-chooser/Constants.js +6 -0
- package/es/cc/table-column-chooser/Events.js +69 -0
- package/es/cc/table-column-chooser/Properties.js +122 -0
- package/es/cc/table-column-chooser/index.js +3 -0
- package/es/cc/table-connected/Properties.js +16 -0
- package/es/cc/table-connected/constants/Events.js +4 -1
- package/es/cc/table-list/Properties.js +27 -1
- package/es/cc/table-list/data-types/KeyboardControlsConfig.js +1 -0
- package/es/cc/table-list/row/Properties.js +18 -0
- package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +36 -0
- package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserUpdateController.js +25 -0
- package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +8 -2
- package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +5 -2
- package/es/desk-frameworks/table-connected/frameworks/TableConnectedView.js +9 -6
- package/es/library/behaviours/keyboard-controls/adapters/controllers/AbstractController.js +9 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/DestructController.js +20 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js +20 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/EnterPressController.js +24 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusNextController.js +20 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js +20 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/InitializeController.js +20 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/SpacePressController.js +24 -0
- package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js +20 -0
- package/es/library/behaviours/keyboard-controls/adapters/gateways/KeyboardHandler.js +81 -0
- package/es/library/behaviours/keyboard-controls/adapters/gateways/Repository.js +47 -0
- package/es/library/behaviours/keyboard-controls/adapters/gateways/Service.js +40 -0
- package/es/library/behaviours/keyboard-controls/adapters/presenters/Presenter.js +39 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCase.js +0 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IService.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DownArrowPressInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/EnterPressInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusPreviousInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/InitializeInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SpacePressInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/input/UpArrowPressInputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/output/IPresenter.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/interfaces/output/OutputModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/AbstractUseCase.js +19 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +17 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/DownArrowPress.js +16 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/EnterPress.js +19 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/FocusNextUsecase.js +16 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/FocusPreviousUsecase.js +16 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/InitializeUsecase.js +20 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/SpacePress.js +19 -0
- package/es/library/behaviours/keyboard-controls/applications/usecases/UpArrowPress.js +16 -0
- package/es/library/behaviours/keyboard-controls/domain/entities/KeyboardControls.js +87 -0
- package/es/library/behaviours/keyboard-controls/domain/entities/interface/IKeyboardControls.js +1 -0
- package/es/library/behaviours/keyboard-controls/domain/entities/interface/KeyboardControlModel.js +1 -0
- package/es/library/behaviours/keyboard-controls/frameworks/EventHandlerFactory.js +48 -0
- package/es/library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory.js +23 -0
- package/es/library/custom-component/frameworks/ui/ComponentRegistry.js +8 -0
- package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +4 -0
- package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowClickController.js +36 -0
- package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowSelectController.js +31 -0
- package/es/library/dot/components/table-list/adapters/controllers/index.js +3 -1
- package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +5 -3
- package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +4 -1
- package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +10 -3
- package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +3 -0
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -10
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +7 -3
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +7 -2
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +28 -0
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +5 -0
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +7 -2
- package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser.js +11 -0
- package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooserView.js +79 -0
- package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +6 -8
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -6
- package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +1 -1
- package/es/platform/column-chooser/adapters/controllers/AbstractController.js +10 -0
- package/es/platform/column-chooser/adapters/controllers/ColumnChooserCloseController.js +21 -0
- package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +26 -0
- package/es/platform/column-chooser/adapters/controllers/ColumnChooserReorderController.js +26 -0
- package/es/platform/column-chooser/adapters/controllers/ColumnChooserSaveController.js +21 -0
- package/es/platform/column-chooser/adapters/controllers/ColumnChooserSearchController.js +24 -0
- package/es/platform/column-chooser/adapters/controllers/ColumnChooserSelectController.js +26 -0
- package/es/platform/column-chooser/adapters/gateways/Repository.js +38 -0
- package/es/platform/column-chooser/adapters/gateways/Service.js +34 -0
- package/es/platform/column-chooser/adapters/gateways/State.js +1 -0
- package/es/platform/column-chooser/adapters/presenters/Presenter.js +25 -0
- package/es/platform/column-chooser/applications/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/gateways/IService.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserCloseInput.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserOpenInput.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserReorderInput.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSaveInput.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSearchInput.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSelectInput.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/output/BehaviourState.js +1 -0
- package/es/platform/column-chooser/applications/interfaces/output/IPresenter.js +1 -0
- package/es/platform/column-chooser/applications/usecases/AbstractUseCase.js +18 -0
- package/es/platform/column-chooser/applications/usecases/ColumnChooserCloseUseCase.js +34 -0
- package/es/platform/column-chooser/applications/usecases/ColumnChooserOpenUseCase.js +20 -0
- package/es/platform/column-chooser/applications/usecases/ColumnChooserReorderUseCase.js +20 -0
- package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +31 -0
- package/es/platform/column-chooser/applications/usecases/ColumnChooserSearchUseCase.js +19 -0
- package/es/platform/column-chooser/applications/usecases/ColumnChooserSelectUseCase.js +26 -0
- package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +95 -0
- package/es/platform/column-chooser/domain/entities/ReorderEntityImp.js +35 -0
- package/es/platform/column-chooser/domain/entities/SearchEntityImp.js +28 -0
- package/es/platform/column-chooser/domain/entities/SelectEntityImp.js +58 -0
- package/es/platform/column-chooser/domain/entities/interfaces/ColumnChooser.js +1 -0
- package/es/platform/column-chooser/domain/entities/interfaces/ReorderEntity.js +1 -0
- package/es/platform/column-chooser/domain/entities/interfaces/SearchEntity.js +1 -0
- package/es/platform/column-chooser/domain/entities/interfaces/SelectEntity.js +1 -0
- package/es/platform/column-chooser/frameworks/ColumnChooserBehaviourFactory.js +19 -0
- package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +30 -0
- package/es/platform/data-source/http-template/updateSelectedFields.js +28 -0
- package/es/platform/data-source/index.js +2 -0
- package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +3 -1
- package/es/platform/zfield/domain/entities/interfaces/FieldApiName.js +1 -0
- package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +6 -1
- package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
- package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +92 -0
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +32 -19
- package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +63 -4
- package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
- package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
- package/es/platform/zlist/adapters/presenters/translators/interfaces/State.js +2 -1
- package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +78 -6
- package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
- package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
- package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
- package/es/platform/zlist/domain/entities/List.js +14 -2
- package/package.json +6 -4
- 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 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;
|
package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js
ADDED
|
@@ -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;
|
package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js
ADDED
|
@@ -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;
|
package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js
ADDED
|
@@ -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;
|
|
File without changes
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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;
|