@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.
Files changed (99) hide show
  1. package/es/bc/sdk/EventHandlers.js +1 -0
  2. package/es/bc/sdk/Properties.js +10 -0
  3. package/es/bc/sdk/ResourceNamesEnum.js +6 -0
  4. package/es/cc/action-location/Constants.js +5 -3
  5. package/es/cc/architecture/LifeCycleActionEnum.js +2 -8
  6. package/es/cc/component/LifeCycleEventsEnum.js +9 -0
  7. package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +10 -5
  8. package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +15 -130
  9. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +9 -1
  10. package/es/desk-frameworks/table-connected/frameworks/resources/ISmartTableResource.js +1 -0
  11. package/es/desk-frameworks/table-connected/frameworks/resources/SmartTableResource.js +233 -0
  12. package/es/index.js +3 -1
  13. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +5 -2
  14. package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +4 -3
  15. package/es/library/custom-component/applications/entities-factory/BehavioursFactory.js +18 -16
  16. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +3 -0
  17. package/es/library/custom-component/applications/usecases/UpdateStateUseCase.js +5 -1
  18. package/es/library/custom-component/domain/entities/Component.js +4 -0
  19. package/es/library/custom-component/domain/entities/LifeCycleAction.js +14 -3
  20. package/es/library/dot/components/action-location/frameworks/ui/EventHandlersFactory.js +1 -1
  21. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +1 -0
  22. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +8 -4
  23. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +4 -3
  24. package/es/platform/sdk/adapters/gateways/Repository.js +31 -0
  25. package/es/platform/sdk/adapters/gateways/Service.js +27 -0
  26. package/es/platform/sdk/adapters/presenters/Presenter.js +16 -0
  27. package/es/platform/sdk/application/interfaces/UsecaseDependencies.js +1 -0
  28. package/es/platform/sdk/application/interfaces/gateways/IRepository.js +1 -0
  29. package/es/platform/sdk/application/interfaces/gateways/ISdkManager.js +1 -0
  30. package/es/platform/sdk/application/interfaces/gateways/IService.js +1 -0
  31. package/es/platform/sdk/application/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  32. package/es/platform/sdk/application/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  33. package/es/platform/sdk/application/interfaces/input/GetResourceInstanceUseCaseInputModel.js +1 -0
  34. package/es/platform/sdk/application/interfaces/input/RegisterResourceInputModel.js +1 -0
  35. package/es/platform/sdk/application/interfaces/input/SyncStateWithResourceInputModel.js +1 -0
  36. package/es/platform/sdk/application/interfaces/output/ISdkPresenter.js +3 -0
  37. package/es/platform/sdk/application/usecases/AbstractUseCase.js +16 -0
  38. package/es/platform/sdk/application/usecases/CreateResourceInstanceUseCase.js +16 -0
  39. package/es/platform/sdk/application/usecases/DestructResourceInstanceUseCase.js +16 -0
  40. package/es/platform/sdk/application/usecases/GetResourceInstanceUseCase.js +17 -0
  41. package/es/platform/sdk/application/usecases/RegisterResourceUseCase.js +16 -0
  42. package/es/platform/sdk/application/usecases/SyncStateWithResourceUseCase.js +25 -0
  43. package/es/platform/sdk/domain/entities/ResourceManager.js +95 -0
  44. package/es/platform/sdk/domain/entities/interfaces/IResourceManager.js +1 -0
  45. package/es/platform/sdk/domain/entities/interfaces/ResourceManagerRestoreModel.js +1 -0
  46. package/es/platform/sdk/domain/entities/interfaces/SdkResource.js +1 -0
  47. package/es/platform/sdk/domain/entities/interfaces/SdkResourceDependencies.js +1 -0
  48. package/es/platform/sdk/domain/entities/interfaces/StateInterface.js +1 -0
  49. package/es/platform/sdk/frameworks/AbstractResource.js +16 -0
  50. package/es/platform/sdk/frameworks/Sdk.js +11 -0
  51. package/es/platform/sdk/frameworks/SdkRegistry.js +72 -0
  52. package/es/platform/sdk-behaviour/adapters/controllers/AbstractController.js +11 -0
  53. package/es/platform/sdk-behaviour/adapters/controllers/DestructController.js +19 -0
  54. package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +19 -0
  55. package/es/platform/sdk-behaviour/adapters/controllers/SyncStateWithResourceController.js +24 -0
  56. package/es/platform/sdk-behaviour/adapters/gateways/Repository.js +25 -0
  57. package/es/platform/sdk-behaviour/adapters/gateways/ResourceManagerGateWay.js +43 -0
  58. package/es/platform/sdk-behaviour/adapters/gateways/Service.js +19 -0
  59. package/es/platform/sdk-behaviour/applications/AbstractUseCase.js +6 -0
  60. package/es/platform/sdk-behaviour/applications/interfaces/UsecaseDependencies.js +1 -0
  61. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
  62. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IResourceManagerGateWay.js +3 -0
  63. package/es/platform/sdk-behaviour/applications/interfaces/gateways/IService.js +1 -0
  64. package/es/platform/sdk-behaviour/applications/interfaces/input/CreateResourceInstanceUseCaseInputModel.js +1 -0
  65. package/es/platform/sdk-behaviour/applications/interfaces/input/DestructResourceInstanceUseCaseInputModel.js +1 -0
  66. package/es/platform/sdk-behaviour/applications/interfaces/input/SyncStateWithResourceUseCaseInputModel.js +1 -0
  67. package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +14 -0
  68. package/es/platform/sdk-behaviour/applications/usecases/DestructResourceInstanceUseCase.js +14 -0
  69. package/es/platform/sdk-behaviour/applications/usecases/SyncStateWithResourceUseCase.js +22 -0
  70. package/es/platform/sdk-behaviour/domain/entities/BehaviourResourceConnector.js +49 -0
  71. package/es/platform/sdk-behaviour/domain/entities/interfaces/IBehaviourResourceConnector.js +1 -0
  72. package/es/platform/sdk-behaviour/domain/entities/interfaces/IResourceManagerProxy.js +2 -0
  73. package/es/platform/sdk-behaviour/frameworks/EventHandlerFactory.js +29 -0
  74. package/es/platform/sdk-behaviour/frameworks/SdkBehaviourFactory.js +16 -0
  75. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +2 -2
  76. package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
  77. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +3 -1
  78. package/es/platform/zlist/adapters/presenters/TableTranslator.js +4 -1
  79. package/es/platform/zlist/adapters/presenters/translators/Header.js +5 -2
  80. package/es/platform/zlist/adapters/presenters/translators/ResizerStateTranslator.js +7 -3
  81. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  82. package/es/platform/zlist/applications/interfaces/input/GetContextUseCaseInput.js +1 -0
  83. package/es/platform/zlist/applications/interfaces/input/UpdateMultipleRecordUseCaseInput.js +1 -0
  84. package/es/platform/zlist/applications/usecases/DeleteMultipleRecordUseCase.js +23 -2
  85. package/es/platform/zlist/applications/usecases/DeleteSingleRecordUseCase.js +9 -0
  86. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
  87. package/es/platform/zlist/applications/usecases/GetContextUseCase.js +18 -0
  88. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
  89. package/es/platform/zlist/applications/usecases/RecordUpdateUseCase.js +9 -0
  90. package/es/platform/zlist/applications/usecases/UpdateMultipleRecordUseCase.js +34 -0
  91. package/es/platform/zlist/domain/entities/List.js +26 -2
  92. package/es/platform/zlist/frameworks/EventHandlersFactory.js +3 -3
  93. package/es/platform/zrecord/applications/interfaces/input/GetMultipleRecordUsecaseInputModel.js +1 -0
  94. package/es/platform/zrecord/applications/interfaces/input/GetSingleRecordUseCaseInputModel.js +1 -0
  95. package/es/platform/zrecord/applications/usecases/GetMultipleRecordUseCase.js +16 -0
  96. package/es/platform/zrecord/applications/usecases/GetSingleRecordUseCase.js +17 -0
  97. package/es/platform/zrecord/domain/entities/Records.js +9 -4
  98. package/es/platform/zrecord/domain/entities/RecordsManager.js +8 -0
  99. 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}#MOUNT`
16
+ type: `${name}#${LifeCycleEvents.MOUNT}`
13
17
  };
14
18
  this.unmount = {
15
- type: `${name}#UN_MOUNT`
19
+ type: `${name}#${LifeCycleEvents.UN_MOUNT}`
16
20
  };
17
21
 
18
22
  this.contructUpdatePropertiesAction = payload => {
19
23
  return {
20
- type: `${name}#UPDATE_PROPERTIES`,
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.UNMOUNT]: unmountController.handle
27
+ [ActionLocationConstants.UN_MOUNT]: unmountController.handle
28
28
  };
29
29
  }
30
30
 
@@ -20,6 +20,7 @@ function RowSelection(_ref) {
20
20
  $data_id: id,
21
21
  $i18n_tooltip: tooltip,
22
22
  $flag_checked: selected,
23
+ $flag_disabled: !selectable,
23
24
  $event_onChange: (_, event) => dispatch({
24
25
  type: TableListConstants.TABLE_LIST_TOGGLE_ITEM_SELECTION,
25
26
  payload: {
@@ -54,9 +54,10 @@ function TableColumnFilterView(_ref, ref) {
54
54
  searchText
55
55
  }
56
56
  });
57
- }; // For SingleSelectFilter, pass selectedOption (object)
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} ${(isMultiSelect ? Array.isArray(selectedOptions) && selectedOptions.length > 0 : selectedOptions && Object.keys(selectedOptions).length > 0) ? style.active : ''}`
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
- ['ActionEventMediator#MOUNT']: initializeController.handle,
25
- ['ActionEventMediator#UPDATE_PROPERTIES']: propertiesChangeController.handle,
26
- ['ActionEventMediator#UNMOUNT']: unmountController.handle
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,3 @@
1
+ import { StateInterface } from "../../../domain/entities/interfaces/StateInterface";
2
+ import { SdkResource } from "../../../domain/entities/interfaces/SdkResource";
3
+ export { StateInterface, SdkResource };
@@ -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,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
+ }