@zohodesk/library-platform 1.1.2-exp.1 → 1.1.3-exp.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/bc/sdk/EventHandlers.js +1 -0
- package/es/bc/sdk/Properties.js +10 -0
- package/es/bc/sdk/ResourceNamesEnum.js +6 -0
- package/es/cc/action-location/Constants.js +5 -3
- package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
- package/es/cc/component/LifeCycleEventsEnum.js +9 -0
- package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +10 -5
- package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +15 -130
- package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +9 -1
- package/es/desk-frameworks/table-connected/frameworks/resources/ISmartTableResource.js +1 -0
- package/es/desk-frameworks/table-connected/frameworks/resources/SmartTableResource.js +233 -0
- package/es/index.js +3 -1
- package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +5 -2
- package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
- package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
- package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +3 -0
- package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
- package/es/library/custom-component/domain/entities/Component.js +4 -0
- package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
- package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
- package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +1 -0
- package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
- package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +4 -3
- package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
- package/es/platform/sdk/adapters/gateways/Service.js +27 -0
- package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
- package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
- package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
- package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
- package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
- package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
- package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
- package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
- package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
- package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
- package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
- package/es/platform/sdk/frameworks/AbstractResource.js +16 -0
- package/es/platform/sdk/frameworks/Sdk.js +11 -0
- package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
- package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
- package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
- package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
- package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
- package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
- package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
- package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
- package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
- package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
- package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
- package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
- package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
- package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
- package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
- package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
- package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
- package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
- package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
- package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +2 -2
- package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
- package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +3 -1
- package/es/platform/zlist/adapters/presenters/TableTranslator.js +4 -1
- package/es/platform/zlist/adapters/presenters/translators/Header.js +5 -2
- package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
- package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
- package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
- package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
- package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
- package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
- package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
- package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
- package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
- package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
- package/es/platform/zlist/domain/entities/List.js +26 -2
- package/es/platform/zlist/frameworks/EventHandlersFactory.js +3 -3
- package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
- package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
- package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
- package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
- package/es/platform/zrecord/domain/entities/Records.js +9 -4
- package/es/platform/zrecord/domain/entities/RecordsManager.js +8 -0
- package/package.json +7 -7
|
@@ -64,6 +64,10 @@ export default class Component {
|
|
|
64
64
|
return this._lifeCycleAction.getUpdatePropertiesAction(payload);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
getStateUpdatedAction(payload) {
|
|
68
|
+
return this._lifeCycleAction.getStateUpdatedAction(payload);
|
|
69
|
+
}
|
|
70
|
+
|
|
67
71
|
getState() {
|
|
68
72
|
let state = this._tranformer(this.mergeStateAndProps());
|
|
69
73
|
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
|
+
import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
|
|
3
4
|
export default class LifeCycleAction {
|
|
4
5
|
constructor(name) {
|
|
5
6
|
_defineProperty(this, "mount", void 0);
|
|
6
7
|
|
|
7
8
|
_defineProperty(this, "unmount", void 0);
|
|
8
9
|
|
|
10
|
+
_defineProperty(this, "name", void 0);
|
|
11
|
+
|
|
9
12
|
_defineProperty(this, "contructUpdatePropertiesAction", void 0);
|
|
10
13
|
|
|
14
|
+
this.name = name;
|
|
11
15
|
this.mount = {
|
|
12
|
-
type: `${name}
|
|
16
|
+
type: `${name}#${LifeCycleEvents.MOUNT}`
|
|
13
17
|
};
|
|
14
18
|
this.unmount = {
|
|
15
|
-
type: `${name}
|
|
19
|
+
type: `${name}#${LifeCycleEvents.UN_MOUNT}`
|
|
16
20
|
};
|
|
17
21
|
|
|
18
22
|
this.contructUpdatePropertiesAction = payload => {
|
|
19
23
|
return {
|
|
20
|
-
type: `${name}
|
|
24
|
+
type: `${name}#${LifeCycleEvents.UPDATE_PROPERTIES}`,
|
|
21
25
|
payload
|
|
22
26
|
};
|
|
23
27
|
};
|
|
@@ -31,6 +35,13 @@ export default class LifeCycleAction {
|
|
|
31
35
|
return this.unmount;
|
|
32
36
|
}
|
|
33
37
|
|
|
38
|
+
getStateUpdatedAction(payload) {
|
|
39
|
+
return {
|
|
40
|
+
type: `${this.name}#${LifeCycleEvents.STATE_UPDATED}`,
|
|
41
|
+
payload
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
getUpdatePropertiesAction(payload) {
|
|
35
46
|
return this.contructUpdatePropertiesAction(payload);
|
|
36
47
|
}
|
|
@@ -24,7 +24,7 @@ export default class EventHandlersFactory {
|
|
|
24
24
|
return {
|
|
25
25
|
[ActionLocationConstants.MOUNT]: initializeController.handle,
|
|
26
26
|
[ActionLocationConstants.UPDATE_PROPERTIES]: propertiesChangeController.handle,
|
|
27
|
-
[ActionLocationConstants.
|
|
27
|
+
[ActionLocationConstants.UN_MOUNT]: unmountController.handle
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
|
package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js
CHANGED
|
@@ -54,9 +54,10 @@ function TableColumnFilterView(_ref, ref) {
|
|
|
54
54
|
searchText
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
|
-
};
|
|
58
|
-
// For MultiSelectFilter, pass selectedOptions (array)
|
|
57
|
+
};
|
|
59
58
|
|
|
59
|
+
const isFiltered = isMultiSelect ? Array.isArray(selectedOptions) && selectedOptions.length > 0 : selectedOptions && Object.keys(selectedOptions).length > 0; // For SingleSelectFilter, pass selectedOption (object)
|
|
60
|
+
// For MultiSelectFilter, pass selectedOptions (array)
|
|
60
61
|
|
|
61
62
|
const commonProps = {
|
|
62
63
|
customProps: {
|
|
@@ -72,9 +73,12 @@ function TableColumnFilterView(_ref, ref) {
|
|
|
72
73
|
}
|
|
73
74
|
},
|
|
74
75
|
customStyle: {
|
|
75
|
-
container: `${style.container} ${
|
|
76
|
+
container: `${style.container} ${isFiltered ? style.active : ''}`
|
|
76
77
|
}
|
|
77
|
-
}
|
|
78
|
+
},
|
|
79
|
+
iconButtonProps: isFiltered ? {
|
|
80
|
+
isActive: true
|
|
81
|
+
} : undefined
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
},
|
|
@@ -6,6 +6,7 @@ import PropertiesChangeUseCase from "../../applications/usecases/PropertiesChang
|
|
|
6
6
|
import MountController from "../../adapters/controllers/MountController";
|
|
7
7
|
import UnmountController from "../../adapters/controllers/UnmountController";
|
|
8
8
|
import PropertiesChangeController from "../../adapters/controllers/PropertiesChangeController";
|
|
9
|
+
import LifeCycleEvents from "../../../../../../cc/component/LifeCycleEventsEnum";
|
|
9
10
|
export default class EventHandlersFactory {
|
|
10
11
|
static create() {
|
|
11
12
|
const repository = new Repository();
|
|
@@ -21,9 +22,9 @@ export default class EventHandlersFactory {
|
|
|
21
22
|
const unmountController = new UnmountController(destroyUseCase);
|
|
22
23
|
const propertiesChangeController = new PropertiesChangeController(propertiesChangeUseCase);
|
|
23
24
|
return {
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
25
|
+
[`ActionEventMediator#${LifeCycleEvents.MOUNT}`]: initializeController.handle,
|
|
26
|
+
[`ActionEventMediator#${LifeCycleEvents.UPDATE_PROPERTIES}`]: propertiesChangeController.handle,
|
|
27
|
+
[`ActionEventMediator#${LifeCycleEvents.UN_MOUNT}`]: unmountController.handle
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { ResourceManager } from "../../domain/entities/ResourceManager";
|
|
4
|
+
export class Repository {
|
|
5
|
+
constructor(resourceNames) {
|
|
6
|
+
this.resourceNames = resourceNames;
|
|
7
|
+
|
|
8
|
+
_defineProperty(this, "state", void 0);
|
|
9
|
+
|
|
10
|
+
_defineProperty(this, "restoreModel", {
|
|
11
|
+
resourceInstances: {},
|
|
12
|
+
resources: {}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
init(state) {
|
|
17
|
+
this.state = state;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getResourceManager() {
|
|
21
|
+
const {
|
|
22
|
+
restoreModel
|
|
23
|
+
} = this;
|
|
24
|
+
return new ResourceManager(restoreModel.resources, restoreModel.resourceInstances);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
storeResourceManager(restoreModel) {
|
|
28
|
+
this.restoreModel = restoreModel;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
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 { CreateResourceInstanceUseCase } from "../../application/usecases/CreateResourceInstanceUseCase";
|
|
4
|
+
import { DestructResourceInstanceUseCase } from "../../application/usecases/DestructResourceInstanceUseCase";
|
|
5
|
+
import { GetResourceInstanceUseCase } from "../../application/usecases/GetResourceInstanceUseCase";
|
|
6
|
+
import { RegisterResourceUseCase } from "../../application/usecases/RegisterResourceUseCase";
|
|
7
|
+
import { SyncStateWithResourceUseCase } from "../../application/usecases/SyncStateWithResourceUseCase";
|
|
8
|
+
export class Service {
|
|
9
|
+
constructor(dependencies) {
|
|
10
|
+
_defineProperty(this, "createResourceInstanceUseCase", void 0);
|
|
11
|
+
|
|
12
|
+
_defineProperty(this, "destructResourceInstanceUseCase", void 0);
|
|
13
|
+
|
|
14
|
+
_defineProperty(this, "syncStateWithResourceUseCase", void 0);
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "registerResourceUseCase", void 0);
|
|
17
|
+
|
|
18
|
+
_defineProperty(this, "getResourceInstanceUseCase", void 0);
|
|
19
|
+
|
|
20
|
+
this.createResourceInstanceUseCase = new CreateResourceInstanceUseCase(dependencies);
|
|
21
|
+
this.destructResourceInstanceUseCase = new DestructResourceInstanceUseCase(dependencies);
|
|
22
|
+
this.syncStateWithResourceUseCase = new SyncStateWithResourceUseCase(dependencies);
|
|
23
|
+
this.registerResourceUseCase = new RegisterResourceUseCase(dependencies);
|
|
24
|
+
this.getResourceInstanceUseCase = new GetResourceInstanceUseCase(dependencies);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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 class Presenter {
|
|
4
|
+
constructor() {
|
|
5
|
+
_defineProperty(this, "updateState", void 0);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
updateDependencies(state, updateState) {
|
|
9
|
+
this.updateState = updateState;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
presentData(data) {
|
|
13
|
+
this.updateState(data);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.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,16 @@
|
|
|
1
|
+
export 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
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractUseCase } from "./AbstractUseCase";
|
|
2
|
+
export class CreateResourceInstanceUseCase extends AbstractUseCase {
|
|
3
|
+
execute(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
instanceName,
|
|
6
|
+
resourceName
|
|
7
|
+
} = _ref;
|
|
8
|
+
const {
|
|
9
|
+
repository
|
|
10
|
+
} = this.dependencies;
|
|
11
|
+
const resourceManager = repository.getResourceManager();
|
|
12
|
+
resourceManager.createResourceInstance(resourceName, instanceName);
|
|
13
|
+
repository.storeResourceManager(resourceManager.toObject());
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractUseCase } from "./AbstractUseCase";
|
|
2
|
+
export class DestructResourceInstanceUseCase extends AbstractUseCase {
|
|
3
|
+
execute(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
instanceName,
|
|
6
|
+
resourceName
|
|
7
|
+
} = _ref;
|
|
8
|
+
const {
|
|
9
|
+
repository
|
|
10
|
+
} = this.dependencies;
|
|
11
|
+
const resourceManager = repository.getResourceManager();
|
|
12
|
+
resourceManager.destructResourceInstance(resourceName, instanceName);
|
|
13
|
+
repository.storeResourceManager(resourceManager.toObject());
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AbstractUseCase } from "./AbstractUseCase";
|
|
2
|
+
export class GetResourceInstanceUseCase extends AbstractUseCase {
|
|
3
|
+
execute(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
instanceName,
|
|
6
|
+
resourceName
|
|
7
|
+
} = _ref;
|
|
8
|
+
const {
|
|
9
|
+
repository,
|
|
10
|
+
presenter
|
|
11
|
+
} = this.dependencies;
|
|
12
|
+
const resourceManager = repository.getResourceManager();
|
|
13
|
+
resourceManager.getResourceInstance(resourceName, instanceName);
|
|
14
|
+
presenter.presentData(resourceManager.getResourceInstance(resourceName, instanceName));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AbstractUseCase } from "../usecases/AbstractUseCase";
|
|
2
|
+
export class RegisterResourceUseCase extends AbstractUseCase {
|
|
3
|
+
execute(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
resourceName,
|
|
6
|
+
resource
|
|
7
|
+
} = _ref;
|
|
8
|
+
const {
|
|
9
|
+
repository
|
|
10
|
+
} = this.dependencies;
|
|
11
|
+
const resourceManager = repository.getResourceManager();
|
|
12
|
+
resourceManager.registerResource(resourceName, resource);
|
|
13
|
+
repository.storeResourceManager(resourceManager.toObject());
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AbstractUseCase } from "../usecases/AbstractUseCase";
|
|
2
|
+
export class SyncStateWithResourceUseCase extends AbstractUseCase {
|
|
3
|
+
execute(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
instanceName,
|
|
6
|
+
state,
|
|
7
|
+
dispatch,
|
|
8
|
+
resourceName,
|
|
9
|
+
updateState
|
|
10
|
+
} = _ref;
|
|
11
|
+
const {
|
|
12
|
+
repository
|
|
13
|
+
} = this.dependencies;
|
|
14
|
+
const resourceManager = repository.getResourceManager();
|
|
15
|
+
resourceManager.syncStateWithResource({
|
|
16
|
+
resourceName,
|
|
17
|
+
instanceName,
|
|
18
|
+
state,
|
|
19
|
+
dispatch,
|
|
20
|
+
updateState
|
|
21
|
+
});
|
|
22
|
+
repository.storeResourceManager(resourceManager.toObject());
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export class ResourceManager {
|
|
2
|
+
constructor() {
|
|
3
|
+
let resources = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
4
|
+
let resourceInstances = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
5
|
+
this.resources = resources;
|
|
6
|
+
this.resourceInstances = resourceInstances;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
getResourceInstance(resourceName, instanceName) {
|
|
10
|
+
var _resourceInstances$re;
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
resourceInstances
|
|
14
|
+
} = this;
|
|
15
|
+
return ((_resourceInstances$re = resourceInstances[resourceName]) === null || _resourceInstances$re === void 0 ? void 0 : _resourceInstances$re[instanceName]) || null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
createResourceInstance(resourceName, instanceName) {
|
|
19
|
+
const {
|
|
20
|
+
resourceInstances,
|
|
21
|
+
resources
|
|
22
|
+
} = this;
|
|
23
|
+
const ResourceClass = resources[resourceName];
|
|
24
|
+
|
|
25
|
+
if (ResourceClass) {
|
|
26
|
+
const instance = new ResourceClass();
|
|
27
|
+
instance.initialize();
|
|
28
|
+
|
|
29
|
+
if (!resourceInstances[resourceName]) {
|
|
30
|
+
resourceInstances[resourceName] = {};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
resourceInstances[resourceName][instanceName] = instance;
|
|
34
|
+
} else {
|
|
35
|
+
console.warn(`Resource class not found for: ${resourceName}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
destructResourceInstance(resourceName, instanceName) {
|
|
40
|
+
var _resourceInstances$re2;
|
|
41
|
+
|
|
42
|
+
const {
|
|
43
|
+
resourceInstances
|
|
44
|
+
} = this;
|
|
45
|
+
const instance = (_resourceInstances$re2 = resourceInstances[resourceName]) === null || _resourceInstances$re2 === void 0 ? void 0 : _resourceInstances$re2[instanceName];
|
|
46
|
+
|
|
47
|
+
if (instance) {
|
|
48
|
+
instance.destroy();
|
|
49
|
+
delete resourceInstances[resourceName][instanceName];
|
|
50
|
+
} else {
|
|
51
|
+
console.warn(`No resource instance found for: ${resourceName} - ${instanceName}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
registerResource(resourceName, resource) {
|
|
56
|
+
const {
|
|
57
|
+
resources
|
|
58
|
+
} = this;
|
|
59
|
+
|
|
60
|
+
if (resources[resourceName]) {
|
|
61
|
+
console.warn(`Resource with name "${resourceName}" already exists. Overwriting.`);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
resources[resourceName] = resource;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
syncStateWithResource(_ref) {
|
|
68
|
+
var _resourceInstances$re3;
|
|
69
|
+
|
|
70
|
+
let {
|
|
71
|
+
resourceName,
|
|
72
|
+
instanceName,
|
|
73
|
+
state,
|
|
74
|
+
dispatch,
|
|
75
|
+
updateState
|
|
76
|
+
} = _ref;
|
|
77
|
+
const {
|
|
78
|
+
resourceInstances
|
|
79
|
+
} = this;
|
|
80
|
+
const instance = (_resourceInstances$re3 = resourceInstances[resourceName]) === null || _resourceInstances$re3 === void 0 ? void 0 : _resourceInstances$re3[instanceName];
|
|
81
|
+
instance.updateDependencies({
|
|
82
|
+
state,
|
|
83
|
+
dispatch,
|
|
84
|
+
updateState
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
toObject() {
|
|
89
|
+
return {
|
|
90
|
+
resourceInstances: this.resourceInstances,
|
|
91
|
+
resources: this.resources
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
}
|
|
@@ -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,16 @@
|
|
|
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 class AbstractResource {
|
|
4
|
+
constructor() {
|
|
5
|
+
_defineProperty(this, "dependencies", void 0);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
initialize() {}
|
|
9
|
+
|
|
10
|
+
updateDependencies(dependencies) {
|
|
11
|
+
this.dependencies = dependencies;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
destroy() {}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ResourceNamesEnum from "../../../bc/sdk/ResourceNamesEnum";
|
|
2
|
+
import { sdkRegistry } from "./SdkRegistry";
|
|
3
|
+
export const sdk = {
|
|
4
|
+
[ResourceNamesEnum.SMART_TABLE](instanceName) {
|
|
5
|
+
return sdkRegistry.getResourceInstance({
|
|
6
|
+
resourceName: ResourceNamesEnum.SMART_TABLE,
|
|
7
|
+
instanceName
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
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 { Service } from "../adapters/gateways/Service";
|
|
4
|
+
import { Repository } from "../adapters/gateways/Repository";
|
|
5
|
+
import { Presenter } from "../adapters/presenters/Presenter";
|
|
6
|
+
export class SdkManager {
|
|
7
|
+
// Define a more specific type if needed
|
|
8
|
+
constructor() {
|
|
9
|
+
_defineProperty(this, "presentedData", void 0);
|
|
10
|
+
|
|
11
|
+
_defineProperty(this, "state", {});
|
|
12
|
+
|
|
13
|
+
_defineProperty(this, "service", void 0);
|
|
14
|
+
|
|
15
|
+
// Initialize the service with necessary dependencies
|
|
16
|
+
const repository = new Repository([]);
|
|
17
|
+
const presenter = new Presenter();
|
|
18
|
+
const dependencies = {
|
|
19
|
+
repository,
|
|
20
|
+
presenter
|
|
21
|
+
};
|
|
22
|
+
this.service = new Service(dependencies);
|
|
23
|
+
this.setPresentedData = this.setPresentedData.bind(this);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
setPresentedData(data) {
|
|
27
|
+
this.presentedData = data;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
createResourceInstance(input) {
|
|
31
|
+
const {
|
|
32
|
+
createResourceInstanceUseCase
|
|
33
|
+
} = this.service;
|
|
34
|
+
createResourceInstanceUseCase.updateDependencies(this.state, this.setPresentedData);
|
|
35
|
+
createResourceInstanceUseCase.execute(input);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
destructResourceInstance(input) {
|
|
39
|
+
const {
|
|
40
|
+
destructResourceInstanceUseCase
|
|
41
|
+
} = this.service;
|
|
42
|
+
destructResourceInstanceUseCase.updateDependencies(this.state, this.setPresentedData);
|
|
43
|
+
destructResourceInstanceUseCase.execute(input);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
syncStateWithResource(input) {
|
|
47
|
+
const {
|
|
48
|
+
syncStateWithResourceUseCase
|
|
49
|
+
} = this.service;
|
|
50
|
+
syncStateWithResourceUseCase.updateDependencies(this.state, this.setPresentedData);
|
|
51
|
+
syncStateWithResourceUseCase.execute(input);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
registerResource(input) {
|
|
55
|
+
const {
|
|
56
|
+
registerResourceUseCase
|
|
57
|
+
} = this.service;
|
|
58
|
+
registerResourceUseCase.updateDependencies(this.state, this.setPresentedData);
|
|
59
|
+
registerResourceUseCase.execute(input);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getResourceInstance(input) {
|
|
63
|
+
const {
|
|
64
|
+
getResourceInstanceUseCase
|
|
65
|
+
} = this.service;
|
|
66
|
+
getResourceInstanceUseCase.updateDependencies(this.state, this.setPresentedData);
|
|
67
|
+
getResourceInstanceUseCase.execute(input);
|
|
68
|
+
return this.presentedData;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
export const sdkRegistry = new SdkManager();
|
|
@@ -0,0 +1,11 @@
|
|
|
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 class AbstractController {
|
|
4
|
+
constructor(service) {
|
|
5
|
+
_defineProperty(this, "service", void 0);
|
|
6
|
+
|
|
7
|
+
this.service = service;
|
|
8
|
+
this.handle = this.handle.bind(this);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AbstractController } from "./AbstractController";
|
|
2
|
+
export class DestructController extends AbstractController {
|
|
3
|
+
handle(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
state
|
|
6
|
+
} = _ref;
|
|
7
|
+
const {
|
|
8
|
+
service
|
|
9
|
+
} = this;
|
|
10
|
+
const instanceName = state.properties.instanceName;
|
|
11
|
+
const {
|
|
12
|
+
destructResourceInstanceUseCase
|
|
13
|
+
} = service;
|
|
14
|
+
destructResourceInstanceUseCase.execute({
|
|
15
|
+
instanceName
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AbstractController } from "./AbstractController";
|
|
2
|
+
export class InitializeController extends AbstractController {
|
|
3
|
+
handle(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
state
|
|
6
|
+
} = _ref;
|
|
7
|
+
const {
|
|
8
|
+
service
|
|
9
|
+
} = this;
|
|
10
|
+
const instanceName = state.properties.instanceName;
|
|
11
|
+
const {
|
|
12
|
+
createResourceInstanceUseCase
|
|
13
|
+
} = service;
|
|
14
|
+
createResourceInstanceUseCase.execute({
|
|
15
|
+
instanceName
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AbstractController } from "./AbstractController";
|
|
2
|
+
export class SyncStateWithResourceController extends AbstractController {
|
|
3
|
+
handle(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
state,
|
|
6
|
+
dispatch,
|
|
7
|
+
updateState
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
service
|
|
11
|
+
} = this;
|
|
12
|
+
const instanceName = state.properties.instanceName;
|
|
13
|
+
const {
|
|
14
|
+
syncStateWithResourceUseCase
|
|
15
|
+
} = service;
|
|
16
|
+
syncStateWithResourceUseCase.execute({
|
|
17
|
+
instanceName,
|
|
18
|
+
state,
|
|
19
|
+
dispatch,
|
|
20
|
+
updateState: updateState
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|