@zohodesk/library-platform 1.1.1-exp.6 → 1.1.2-exp.0
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/component/Slot.js +1 -0
- package/es/cc/component/SlotComponent.js +1 -0
- package/es/cc/component/properties/slotName.js +1 -0
- package/es/cc/fields/formula/Events.js +3 -0
- package/es/cc/fields/formula/Model.js +14 -0
- package/es/cc/fields/formula/Properties.js +3 -0
- package/es/cc/fields/index.js +1 -0
- 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/domain/entities/DefaultSlotNameAppend.js +10 -0
- package/es/library/custom-component/domain/entities/Properties.js +2 -0
- package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +18 -4
- package/es/library/custom-component/frameworks/ui/CreateSlotComponent.js +89 -0
- package/es/library/custom-component/frameworks/ui/__testcases__/CreateSlotComponent.spec.js +211 -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-column-filter/frameworks/ui/TableColumnFilterView.js +5 -0
- package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/css/TableColumnFilter.module.css +5 -1
- package/es/library/dot/legacy-to-new-arch/table-column-sort/frameworks/ui/TableColumnSortView.js +7 -0
- package/es/library/dot/legacy-to-new-arch/table-column-sort/frameworks/ui/css/TableColumnSort.module.css +5 -1
- 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/getAvailableFields.js +1 -0
- package/es/platform/data-source/http-template/getClientActions.js +1 -1
- 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 +26 -3
- package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
- package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +26 -0
- package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
- package/es/platform/zlist/adapters/presenters/translators/fields/index.js +2 -1
- 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,38 @@
|
|
|
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 { DEFAULT_COLUMN_CHOOSE_MAX_COUNT } from "../../../../bc/column-chooser/Constants";
|
|
4
|
+
import ColumnChooserImp from "../../domain/entities/ColumnChooserImp";
|
|
5
|
+
import ReorderEntityImp from "../../domain/entities/ReorderEntityImp";
|
|
6
|
+
import SearchEntityImp from "../../domain/entities/SearchEntityImp";
|
|
7
|
+
import SelectEntityImp from "../../domain/entities/SelectEntityImp";
|
|
8
|
+
|
|
9
|
+
class Repository {
|
|
10
|
+
constructor() {
|
|
11
|
+
_defineProperty(this, "state", void 0);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
init(state) {
|
|
15
|
+
this.state = state;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
getColumnChooser() {
|
|
19
|
+
const {
|
|
20
|
+
columnChooser
|
|
21
|
+
} = this.state.behaviours;
|
|
22
|
+
const reorderEntity = new ReorderEntityImp(columnChooser.order);
|
|
23
|
+
const searchEntity = this.createSearchEntity();
|
|
24
|
+
const selectEntity = new SelectEntityImp(columnChooser.selected, DEFAULT_COLUMN_CHOOSE_MAX_COUNT);
|
|
25
|
+
return new ColumnChooserImp(columnChooser.isSaved, reorderEntity, searchEntity, selectEntity);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
createSearchEntity() {
|
|
29
|
+
const {
|
|
30
|
+
columnChooser,
|
|
31
|
+
zfield
|
|
32
|
+
} = this.state.behaviours;
|
|
33
|
+
return new SearchEntityImp(columnChooser.searchText, fieldName => zfield.fields.find(f => f.name === fieldName).i18NLabel);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default Repository;
|
|
@@ -0,0 +1,34 @@
|
|
|
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 ColumnChooserOpenUseCase from "../../applications/usecases/ColumnChooserOpenUseCase";
|
|
4
|
+
import ColumnChooserSelectUseCase from "../../applications/usecases/ColumnChooserSelectUseCase";
|
|
5
|
+
import ColumnChooserReorderUseCase from "../../applications/usecases/ColumnChooserReorderUseCase";
|
|
6
|
+
import ColumnChooserSearchUseCase from "../../applications/usecases/ColumnChooserSearchUseCase";
|
|
7
|
+
import ColumnChooserSaveUseCase from "../../applications/usecases/ColumnChooserSaveUseCase";
|
|
8
|
+
import ColumnChooserCloseUseCase from "../../applications/usecases/ColumnChooserCloseUseCase";
|
|
9
|
+
|
|
10
|
+
class Service {
|
|
11
|
+
constructor(dependencies) {
|
|
12
|
+
_defineProperty(this, "columnChooserOpenUseCase", void 0);
|
|
13
|
+
|
|
14
|
+
_defineProperty(this, "columnChooserSelectUseCase", void 0);
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "columnChooserReorderUseCase", void 0);
|
|
17
|
+
|
|
18
|
+
_defineProperty(this, "columnChooserSearchUseCase", void 0);
|
|
19
|
+
|
|
20
|
+
_defineProperty(this, "columnChooserSaveUseCase", void 0);
|
|
21
|
+
|
|
22
|
+
_defineProperty(this, "columnChooserCloseUseCase", void 0);
|
|
23
|
+
|
|
24
|
+
this.columnChooserOpenUseCase = new ColumnChooserOpenUseCase(dependencies);
|
|
25
|
+
this.columnChooserSelectUseCase = new ColumnChooserSelectUseCase(dependencies);
|
|
26
|
+
this.columnChooserReorderUseCase = new ColumnChooserReorderUseCase(dependencies);
|
|
27
|
+
this.columnChooserSearchUseCase = new ColumnChooserSearchUseCase(dependencies);
|
|
28
|
+
this.columnChooserSaveUseCase = new ColumnChooserSaveUseCase(dependencies);
|
|
29
|
+
this.columnChooserCloseUseCase = new ColumnChooserCloseUseCase(dependencies);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default Service;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
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, "updateState", void 0);
|
|
6
|
+
|
|
7
|
+
_defineProperty(this, "state", void 0);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
updateDependencies(state, updateState) {
|
|
11
|
+
this.state = state;
|
|
12
|
+
this.updateState = updateState;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
updateView(view) {
|
|
16
|
+
this.updateState({ ...this.state,
|
|
17
|
+
behaviours: { ...this.state.behaviours,
|
|
18
|
+
columnChooser: view
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default Presenter;
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class AbstractUseCase {
|
|
2
|
+
constructor(dependencies) {
|
|
3
|
+
this.dependencies = dependencies;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// TODO: Add type for state and updateState
|
|
7
|
+
updateDependencies(state, updateState) {
|
|
8
|
+
const {
|
|
9
|
+
repository,
|
|
10
|
+
presenter
|
|
11
|
+
} = this.dependencies;
|
|
12
|
+
repository.init(state);
|
|
13
|
+
presenter.updateDependencies(state, updateState);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default AbstractUseCase;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { COLUMN_CHOOSER_BEHAVIOUR_CANCELED } from "../../../../bc/column-chooser/Constants";
|
|
2
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
3
|
+
|
|
4
|
+
class ColumnChooserCloseUseCase extends AbstractUseCase {
|
|
5
|
+
execute(_ref) {
|
|
6
|
+
let {
|
|
7
|
+
dispatch
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
repository,
|
|
11
|
+
presenter
|
|
12
|
+
} = this.dependencies;
|
|
13
|
+
const columnChooser = repository.getColumnChooser();
|
|
14
|
+
const selectedArray = columnChooser.getSelectedWithOrder();
|
|
15
|
+
const order = columnChooser.getOrder();
|
|
16
|
+
const isSaved = columnChooser.hasBeenSaved();
|
|
17
|
+
columnChooser.init([], []);
|
|
18
|
+
columnChooser.markAsUnsaved();
|
|
19
|
+
presenter.updateView(columnChooser.toObject());
|
|
20
|
+
|
|
21
|
+
if (!isSaved) {
|
|
22
|
+
dispatch({
|
|
23
|
+
type: COLUMN_CHOOSER_BEHAVIOUR_CANCELED,
|
|
24
|
+
payload: {
|
|
25
|
+
selectedArray,
|
|
26
|
+
order
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default ColumnChooserCloseUseCase;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
|
|
3
|
+
class ColumnChooserOpenUseCase extends AbstractUseCase {
|
|
4
|
+
execute(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
order,
|
|
7
|
+
selectedArray
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
repository,
|
|
11
|
+
presenter
|
|
12
|
+
} = this.dependencies;
|
|
13
|
+
const columnChooser = repository.getColumnChooser();
|
|
14
|
+
columnChooser.init(order, selectedArray);
|
|
15
|
+
presenter.updateView(columnChooser.toObject());
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default ColumnChooserOpenUseCase;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
|
|
3
|
+
class ColumnChooserReorderUseCase extends AbstractUseCase {
|
|
4
|
+
execute(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
fromIndex,
|
|
7
|
+
toIndex
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
repository,
|
|
11
|
+
presenter
|
|
12
|
+
} = this.dependencies;
|
|
13
|
+
const columnChooser = repository.getColumnChooser();
|
|
14
|
+
columnChooser.arrayMoveImmutable(fromIndex, toIndex);
|
|
15
|
+
presenter.updateView(columnChooser.toObject());
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default ColumnChooserReorderUseCase;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
import { COLUMN_CHOOSER_BEHAVIOUR_UPDATED } from "../../../../bc/column-chooser/Constants";
|
|
3
|
+
|
|
4
|
+
class ColumnChooserSaveUseCase extends AbstractUseCase {
|
|
5
|
+
execute(_ref) {
|
|
6
|
+
let {
|
|
7
|
+
dispatch
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
repository,
|
|
11
|
+
presenter
|
|
12
|
+
} = this.dependencies;
|
|
13
|
+
const columnChooser = repository.getColumnChooser();
|
|
14
|
+
const selectedArray = columnChooser.getSelectedWithOrder();
|
|
15
|
+
const order = columnChooser.getOrder();
|
|
16
|
+
columnChooser.markAsSaved();
|
|
17
|
+
presenter.updateView(columnChooser.toObject()); // TODO: exposer.columnChooserUpdated({ fields });
|
|
18
|
+
|
|
19
|
+
dispatch({
|
|
20
|
+
type: COLUMN_CHOOSER_BEHAVIOUR_UPDATED,
|
|
21
|
+
payload: {
|
|
22
|
+
selectedArray,
|
|
23
|
+
order
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
presenter.updateView(columnChooser.toObject());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export default ColumnChooserSaveUseCase;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
|
|
3
|
+
class ColumnChooserSearchUseCase extends AbstractUseCase {
|
|
4
|
+
execute(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
searchText
|
|
7
|
+
} = _ref;
|
|
8
|
+
const {
|
|
9
|
+
repository,
|
|
10
|
+
presenter
|
|
11
|
+
} = this.dependencies;
|
|
12
|
+
const columnChooser = repository.getColumnChooser();
|
|
13
|
+
columnChooser.setSearchText(searchText);
|
|
14
|
+
presenter.updateView(columnChooser.toObject());
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default ColumnChooserSearchUseCase;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import AbstractUseCase from "./AbstractUseCase";
|
|
2
|
+
|
|
3
|
+
class ColumnChooserSelectUseCase extends AbstractUseCase {
|
|
4
|
+
execute(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
columnId,
|
|
7
|
+
isChecked
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
repository,
|
|
11
|
+
presenter
|
|
12
|
+
} = this.dependencies;
|
|
13
|
+
const columnChooser = repository.getColumnChooser();
|
|
14
|
+
|
|
15
|
+
if (isChecked) {
|
|
16
|
+
columnChooser.select(columnId);
|
|
17
|
+
} else {
|
|
18
|
+
columnChooser.deselect(columnId);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
presenter.updateView(columnChooser.toObject());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default ColumnChooserSelectUseCase;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export default class ColumnChooserImp {
|
|
2
|
+
constructor() {
|
|
3
|
+
let isSaved = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
4
|
+
let reorderEntity = arguments.length > 1 ? arguments[1] : undefined;
|
|
5
|
+
let searchEntity = arguments.length > 2 ? arguments[2] : undefined;
|
|
6
|
+
let selectEntity = arguments.length > 3 ? arguments[3] : undefined;
|
|
7
|
+
this.isSaved = isSaved;
|
|
8
|
+
this.reorderEntity = reorderEntity;
|
|
9
|
+
this.searchEntity = searchEntity;
|
|
10
|
+
this.selectEntity = selectEntity;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
markAsSaved() {
|
|
14
|
+
this.isSaved = true;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
hasBeenSaved() {
|
|
18
|
+
return this.isSaved;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
markAsUnsaved() {
|
|
22
|
+
this.isSaved = false;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
init(order, selectedArray) {
|
|
26
|
+
this.reorderEntity.initOrder(order);
|
|
27
|
+
this.selectEntity.resetSelection(selectedArray);
|
|
28
|
+
this.searchEntity.setSearchText('');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
setSearchText(searchStr) {
|
|
32
|
+
this.searchEntity.setSearchText(searchStr);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
select(id) {
|
|
36
|
+
if (!this.selectEntity.isMaxSelectionReached()) {
|
|
37
|
+
this.selectEntity.select(id);
|
|
38
|
+
this.rearrangeSelectedFirst();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
deselect(id) {
|
|
43
|
+
if (this.selectEntity.getSelectedCount() > 1) {
|
|
44
|
+
this.selectEntity.deselect(id);
|
|
45
|
+
this.rearrangeSelectedFirst();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
rearrangeSelectedFirst() {
|
|
50
|
+
const order = this.reorderEntity.getOrder();
|
|
51
|
+
const selected = this.selectEntity.getSelected();
|
|
52
|
+
const selectedArray = [];
|
|
53
|
+
const unselectedArray = [];
|
|
54
|
+
order.forEach(field => {
|
|
55
|
+
if (selected[field]) {
|
|
56
|
+
selectedArray.push(field);
|
|
57
|
+
} else {
|
|
58
|
+
unselectedArray.push(field);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
this.reorderEntity.initOrder([...selectedArray, ...unselectedArray]);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
arrayMoveImmutable(fromIndex, toIndex) {
|
|
65
|
+
this.reorderEntity.arrayMoveImmutable(fromIndex, toIndex);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
getOrder() {
|
|
69
|
+
return this.reorderEntity.getOrder();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
getSelectedWithOrder() {
|
|
73
|
+
const order = this.reorderEntity.getOrder();
|
|
74
|
+
const selected = this.selectEntity.getSelected();
|
|
75
|
+
return order.filter(field => selected[field]);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
toObject() {
|
|
79
|
+
const isSaved = this.hasBeenSaved();
|
|
80
|
+
const order = this.reorderEntity.getOrder();
|
|
81
|
+
const selected = this.selectEntity.getSelected();
|
|
82
|
+
const fieldsOrder = this.searchEntity.filterOptions(order);
|
|
83
|
+
const searchText = this.searchEntity.getSearchText();
|
|
84
|
+
const isMaxSelectionReached = this.selectEntity.isMaxSelectionReached();
|
|
85
|
+
return {
|
|
86
|
+
order,
|
|
87
|
+
selected,
|
|
88
|
+
isSaved,
|
|
89
|
+
isMaxSelectionReached,
|
|
90
|
+
fieldsOrder,
|
|
91
|
+
searchText
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export default class ReorderEntityImp {
|
|
2
|
+
constructor(order) {
|
|
3
|
+
this.order = order;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
initOrder(order) {
|
|
7
|
+
this.order = [...order];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
moveTo(id, index) {
|
|
11
|
+
const currentIndex = this.order.indexOf(id);
|
|
12
|
+
this.arrayMoveImmutable(currentIndex, index);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
arrayMoveImmutable(fromIndex, toIndex) {
|
|
16
|
+
if (fromIndex === toIndex) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const newOrder = [...this.order];
|
|
21
|
+
const startIndex = fromIndex < 0 ? newOrder.length + fromIndex : fromIndex;
|
|
22
|
+
|
|
23
|
+
if (startIndex >= 0 && startIndex < newOrder.length) {
|
|
24
|
+
const endIndex = toIndex < 0 ? newOrder.length + toIndex : toIndex;
|
|
25
|
+
const [item] = newOrder.splice(fromIndex, 1);
|
|
26
|
+
newOrder.splice(endIndex, 0, item);
|
|
27
|
+
this.order = newOrder;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getOrder() {
|
|
32
|
+
return this.order;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export default class SearchEntityImp {
|
|
2
|
+
constructor(searchText, getValue) {
|
|
3
|
+
this.searchText = searchText;
|
|
4
|
+
this.getValue = getValue;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
getSearchText() {
|
|
8
|
+
return this.searchText;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
setSearchText(term) {
|
|
12
|
+
this.searchText = term;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
filterOptions(options) {
|
|
16
|
+
if (!this.searchText) {
|
|
17
|
+
return options;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return options.filter(option => this.matches(this.getValue(option)));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
matches(value) {
|
|
24
|
+
if (!this.searchText) return true;
|
|
25
|
+
return value.toLowerCase().includes(this.searchText.toLowerCase());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
export default class SelectEntityImp {
|
|
4
|
+
constructor(selected, maxCount) {
|
|
5
|
+
this.selected = selected;
|
|
6
|
+
this.maxCount = maxCount;
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "selectedCount", void 0);
|
|
9
|
+
|
|
10
|
+
this.calculateSelectedCount();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
getSelectedCount() {
|
|
14
|
+
this.calculateSelectedCount();
|
|
15
|
+
return this.selectedCount;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
resetSelection(selectedArray) {
|
|
19
|
+
// Clear all current selections
|
|
20
|
+
this.selected = {}; // Select items in the given order, up to maxCount
|
|
21
|
+
|
|
22
|
+
for (let i = 0; i < selectedArray.length && (this.maxCount === 0 || i < this.maxCount); i++) {
|
|
23
|
+
this.selected[selectedArray[i]] = true;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
this.calculateSelectedCount();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
calculateSelectedCount() {
|
|
30
|
+
this.selectedCount = Object.values(this.selected).filter(Boolean).length;
|
|
31
|
+
return this.selectedCount;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
select(item) {
|
|
35
|
+
if (this.isMaxSelectionReached()) {
|
|
36
|
+
return; // throw new Error(`Cannot select more than ${this.maxCount} items`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
this.selected[item] = true;
|
|
40
|
+
this.calculateSelectedCount();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
isMaxSelectionReached() {
|
|
44
|
+
return this.maxCount > 0 && this.selectedCount >= this.maxCount;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
deselect(item) {
|
|
48
|
+
if (this.selected[item]) {
|
|
49
|
+
delete this.selected[item];
|
|
50
|
+
this.calculateSelectedCount();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getSelected() {
|
|
55
|
+
return this.selected;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
}
|
|
@@ -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
|
+
import Properties from "../../../bc/column-chooser/Properties";
|
|
2
|
+
import EventHandlersFactory from "./EventHandlersFactory";
|
|
3
|
+
export default class ColumnChooserBehaviourFactory {
|
|
4
|
+
static create() {
|
|
5
|
+
return {
|
|
6
|
+
name: 'columnChooser',
|
|
7
|
+
setInitialState: () => ({
|
|
8
|
+
order: [],
|
|
9
|
+
selected: {},
|
|
10
|
+
isMaxSelectionReached: false,
|
|
11
|
+
fieldsOrder: [],
|
|
12
|
+
searchText: ''
|
|
13
|
+
}),
|
|
14
|
+
eventHandlers: EventHandlersFactory.create(),
|
|
15
|
+
properties: Properties
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import Service from "../adapters/gateways/Service";
|
|
2
|
+
import Presenter from "../adapters/presenters/Presenter";
|
|
3
|
+
import Repository from "../adapters/gateways/Repository";
|
|
4
|
+
import { COLUMN_CHOOSER_BEHAVIOUR_OPENED } from "../../../bc/column-chooser/Constants";
|
|
5
|
+
import { COLUMN_CHOOSER_SELECT_REQUESTED, COLUMN_CHOOSER_REORDER_REQUESTED, COLUMN_CHOOSER_SEARCH_REQUESTED, COLUMN_CHOOSER_SAVE_REQUESTED, COLUMN_CHOOSER_CLOSE_REQUESTED } from "../../../cc/table-column-chooser/Constants";
|
|
6
|
+
import ColumnChooserOpenController from "../adapters/controllers/ColumnChooserOpenController";
|
|
7
|
+
import ColumnChooserSelectController from "../adapters/controllers/ColumnChooserSelectController";
|
|
8
|
+
import ColumnChooserReorderController from "../adapters/controllers/ColumnChooserReorderController";
|
|
9
|
+
import ColumnChooserSaveController from "../adapters/controllers/ColumnChooserSaveController";
|
|
10
|
+
import ColumnChooserSearchController from "../adapters/controllers/ColumnChooserSearchController";
|
|
11
|
+
import ColumnChooserCloseController from "../adapters/controllers/ColumnChooserCloseController";
|
|
12
|
+
export default class EventHandlersFactory {
|
|
13
|
+
static create() {
|
|
14
|
+
const repository = new Repository();
|
|
15
|
+
const presenter = new Presenter();
|
|
16
|
+
const service = new Service({
|
|
17
|
+
repository,
|
|
18
|
+
presenter
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
[COLUMN_CHOOSER_BEHAVIOUR_OPENED]: new ColumnChooserOpenController(service).handle,
|
|
22
|
+
[COLUMN_CHOOSER_SELECT_REQUESTED]: new ColumnChooserSelectController(service).handle,
|
|
23
|
+
[COLUMN_CHOOSER_REORDER_REQUESTED]: new ColumnChooserReorderController(service).handle,
|
|
24
|
+
[COLUMN_CHOOSER_SEARCH_REQUESTED]: new ColumnChooserSearchController(service).handle,
|
|
25
|
+
[COLUMN_CHOOSER_SAVE_REQUESTED]: new ColumnChooserSaveController(service).handle,
|
|
26
|
+
[COLUMN_CHOOSER_CLOSE_REQUESTED]: new ColumnChooserCloseController(service).handle
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const updateSelectedFields = {
|
|
2
|
+
name: 'selectedFields',
|
|
3
|
+
api: '/{{servicePrefix}}/{{orgName}}/api/v1/views/{{viewId}}/selectedFields',
|
|
4
|
+
parameters: `{}`,
|
|
5
|
+
type: 'PUT',
|
|
6
|
+
requestBody: '{"fields": {{fields}}}',
|
|
7
|
+
transformer: res => res.fields,
|
|
8
|
+
properties: {
|
|
9
|
+
viewId: {
|
|
10
|
+
required: true,
|
|
11
|
+
typeMetadata: {
|
|
12
|
+
schema: {
|
|
13
|
+
type: 'string'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
departmentId: {
|
|
18
|
+
required: true,
|
|
19
|
+
defaultValue: 1,
|
|
20
|
+
typeMetadata: {
|
|
21
|
+
schema: {
|
|
22
|
+
type: 'number'
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export default updateSelectedFields;
|
|
@@ -13,6 +13,7 @@ import fetchLayoutRules from "./http-template/fetchLayoutRules";
|
|
|
13
13
|
import fetchDependencyMappings from "./http-template/fetchDependencyMappings";
|
|
14
14
|
import fetchValidationRules from "./http-template/fetchValidationRules";
|
|
15
15
|
import createRecord from "./http-template/createRecord";
|
|
16
|
+
import updateSelectedFields from "./http-template/updateSelectedFields";
|
|
16
17
|
let dataSource = {
|
|
17
18
|
httpTemplates: {
|
|
18
19
|
[RecordApiActionName.GET_RECORDS]: getRecords,
|
|
@@ -23,6 +24,7 @@ let dataSource = {
|
|
|
23
24
|
[RecordApiActionName.GET_CLIENTACTIONS]: getClientActions,
|
|
24
25
|
getAvailableFields,
|
|
25
26
|
getSelectedFields,
|
|
27
|
+
updateSelectedFields,
|
|
26
28
|
fetchMyLayouts,
|
|
27
29
|
fetchMyForm,
|
|
28
30
|
fetchLayoutRules,
|