@zohodesk/library-platform 1.0.0-exp.3 → 1.0.0-exp.5

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 (171) hide show
  1. package/es/cc/component/properties/getRefPropertySchema.js +10 -0
  2. package/es/cc/fields/field/Types.js +21 -0
  3. package/es/cc/fields/multi-select/Model.js +4 -6
  4. package/es/desk-frameworks/table-connected/frameworks/TableConnectedView.js +5 -3
  5. package/es/library/behaviours/list-selection/adapters/controllers/AllSelectionController.js +1 -1
  6. package/es/library/behaviours/list-selection/adapters/controllers/DestructController.js +1 -6
  7. package/es/library/behaviours/list-selection/adapters/controllers/InitializeController.js +2 -8
  8. package/es/library/behaviours/list-selection/adapters/gateways/Repository.js +9 -3
  9. package/es/library/behaviours/list-selection/entities/ListItemSelection.js +1 -1
  10. package/es/library/behaviours/list-selection/frameworks/ActionHandlerFactory.js +15 -15
  11. package/es/library/behaviours/list-selection/frameworks/ListItemSelectionBehaviourFactory.js +1 -6
  12. package/es/library/behaviours/list-selection/usecases/interactors/AllItemSelection.js +1 -1
  13. package/es/library/behaviours/list-selection/usecases/interactors/Destruct.js +1 -1
  14. package/es/library/behaviours/list-selection/usecases/interactors/Initialize.js +1 -1
  15. package/es/library/behaviours/sort-by/adapters/gateway/Repository.js +4 -1
  16. package/es/library/behaviours/sort-by/frameworks/ui/DemoBehaviour.js +2 -6
  17. package/es/library/behaviours/text-to-field-click/adapters/controllers/ClickController.js +23 -0
  18. package/es/library/behaviours/text-to-field-click/adapters/gateway/Repository.js +20 -0
  19. package/es/library/behaviours/text-to-field-click/entities/FieldEventConverter.js +19 -0
  20. package/es/library/behaviours/text-to-field-click/frameworks/ui/EventHandlersFactory.js +17 -0
  21. package/es/library/behaviours/text-to-field-click/frameworks/ui/TextToFieldClickBehaviourFactory.js +15 -0
  22. package/es/library/behaviours/text-to-field-click/usecases/interactors/AbstractUseCase.js +15 -0
  23. package/es/library/behaviours/text-to-field-click/usecases/interactors/ClickUseCase.js +17 -0
  24. package/es/library/custom-component/adapters/controllers/Controller.js +24 -6
  25. package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +30 -13
  26. package/es/library/custom-component/adapters/presenters/Presenter.js +0 -7
  27. package/es/library/custom-component/entities/Component.js +26 -24
  28. package/es/library/custom-component/entities/Properties.js +52 -66
  29. package/es/library/custom-component/entities/getRef.js +2 -2
  30. package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +15 -0
  31. package/es/library/custom-component/frameworks/object-path-immutable/ImmutableHelper.js +2 -0
  32. package/es/library/custom-component/frameworks/ui/ComponentRegistry.js +0 -1
  33. package/es/library/custom-component/frameworks/ui/{createCustomComponent.js → CreateCustomComponent.js} +31 -29
  34. package/es/library/custom-component/frameworks/ui/CustomComponentFactory.js +56 -0
  35. package/es/library/custom-component/frameworks/ui/DependencyFactory.js +34 -0
  36. package/es/library/custom-component/index.js +1 -1
  37. package/es/library/custom-component/usecases/entities-factory/BehavioursFactory.js +31 -29
  38. package/es/library/custom-component/usecases/entities-factory/ComponentFactory.js +21 -7
  39. package/es/library/custom-component/usecases/interactors/InitializeUseCase.js +1 -3
  40. package/es/library/custom-component/usecases/interactors/UpdatePropertyUseCase.js +1 -1
  41. package/es/library/dot/components/action-location/adapters/gateway/RepositoryOld.js +32 -0
  42. package/es/library/dot/components/action-location/entities/ActionLocationEntity.js +5 -5
  43. package/es/library/dot/components/action-location/frameworks/ui/ActionLocationView.js +3 -2
  44. package/es/library/dot/components/action-location/usecases/interactors/AbstractUseCase.js +6 -2
  45. package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +39 -19
  46. package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +7 -16
  47. package/es/library/dot/components/table-list/frameworks/ui/TableList.js +1 -6
  48. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +64 -20
  49. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +22 -7
  50. package/es/library/dot/components/table-list/frameworks/ui/sub-components/NoData.js +3 -1
  51. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +39 -33
  52. package/es/library/dot/components/table-list/frameworks/ui/sub-components/field/FieldComponent.js +3 -1
  53. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/Headers.js +2 -2
  54. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +49 -4
  55. package/es/library/dot/legacy-to-new-arch/avatar/frameworks/ui/AvatarView.js +35 -31
  56. package/es/library/dot/legacy-to-new-arch/email/frameworks/ui/EmailView.js +2 -2
  57. package/es/library/dot/legacy-to-new-arch/table-field-components/checkbox-field/frameworks/ui/CheckboxField.js +13 -0
  58. package/es/library/dot/legacy-to-new-arch/table-field-components/checkbox-field/frameworks/ui/CheckboxFieldView.js +18 -0
  59. package/es/library/dot/legacy-to-new-arch/table-field-components/checkbox-field/frameworks/ui/EventHandlersFactory.js +29 -0
  60. package/es/library/dot/legacy-to-new-arch/table-field-components/currency-field/frameworks/ui/CurrencyField.js +14 -0
  61. package/es/library/dot/legacy-to-new-arch/table-field-components/currency-field/frameworks/ui/CurrencyFieldView.js +14 -0
  62. package/es/library/dot/legacy-to-new-arch/table-field-components/date-field/frameworks/ui/DateField.js +14 -0
  63. package/es/library/dot/legacy-to-new-arch/table-field-components/date-field/frameworks/ui/DateFieldView.js +14 -0
  64. package/es/library/dot/legacy-to-new-arch/table-field-components/datetime-field/frameworks/ui/DateTimeField.js +14 -0
  65. package/es/library/dot/legacy-to-new-arch/table-field-components/datetime-field/frameworks/ui/DateTimeFieldView.js +14 -0
  66. package/es/library/dot/legacy-to-new-arch/table-field-components/decimal-field/frameworks/ui/DecimalField.js +14 -0
  67. package/es/library/dot/legacy-to-new-arch/table-field-components/decimal-field/frameworks/ui/DecimalFieldView.js +14 -0
  68. package/es/library/dot/legacy-to-new-arch/table-field-components/email-field/frameworks/ui/EmailField.js +12 -0
  69. package/es/library/dot/legacy-to-new-arch/table-field-components/email-field/frameworks/ui/EmailFieldView.js +14 -0
  70. package/es/library/dot/legacy-to-new-arch/table-field-components/index.js +34 -0
  71. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupField.js +12 -0
  72. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +18 -0
  73. package/es/library/dot/legacy-to-new-arch/table-field-components/multiselect-field/frameworks/ui/MultiSelectField.js +12 -0
  74. package/es/library/dot/legacy-to-new-arch/table-field-components/multiselect-field/frameworks/ui/MultiSelectFieldView.js +18 -0
  75. package/es/library/dot/legacy-to-new-arch/table-field-components/number-field/frameworks/ui/NumberField.js +14 -0
  76. package/es/library/dot/legacy-to-new-arch/table-field-components/number-field/frameworks/ui/NumberFieldView.js +14 -0
  77. package/es/library/dot/legacy-to-new-arch/table-field-components/percentage-field/frameworks/ui/PercentageField.js +14 -0
  78. package/es/library/dot/legacy-to-new-arch/table-field-components/percentage-field/frameworks/ui/PercentageFieldView.js +14 -0
  79. package/es/library/dot/legacy-to-new-arch/table-field-components/phone-field/frameworks/ui/PhoneField.js +12 -0
  80. package/es/library/dot/legacy-to-new-arch/table-field-components/phone-field/frameworks/ui/PhoneFieldView.js +21 -0
  81. package/es/library/dot/legacy-to-new-arch/table-field-components/picklist-field/frameworks/ui/PickListField.js +14 -0
  82. package/es/library/dot/legacy-to-new-arch/table-field-components/picklist-field/frameworks/ui/PickListFieldView.js +14 -0
  83. package/es/library/dot/legacy-to-new-arch/table-field-components/singleline-field/frameworks/ui/SingleLineField.js +14 -0
  84. package/es/library/dot/legacy-to-new-arch/table-field-components/singleline-field/frameworks/ui/SingleLineFieldView.js +15 -0
  85. package/es/library/dot/legacy-to-new-arch/table-field-components/switch-field/frameworks/ui/EventHandlersFactory.js +29 -0
  86. package/es/library/dot/legacy-to-new-arch/table-field-components/switch-field/frameworks/ui/SwitchField.js +13 -0
  87. package/es/library/dot/legacy-to-new-arch/table-field-components/switch-field/frameworks/ui/SwitchFieldView.js +17 -0
  88. package/es/library/dot/legacy-to-new-arch/table-field-components/url-field/frameworks/ui/EventHandlersFactory.js +26 -0
  89. package/es/library/dot/legacy-to-new-arch/table-field-components/url-field/frameworks/ui/UrlField.js +13 -0
  90. package/es/library/dot/legacy-to-new-arch/table-field-components/url-field/frameworks/ui/UrlFieldView.js +17 -0
  91. package/es/library/index.js +1 -1
  92. package/es/platform/data-broker/http-template/deleteRecords.js +1 -2
  93. package/es/platform/data-broker/http-template/getAvailableFields.js +0 -2
  94. package/es/platform/data-broker/http-template/getRecords.js +0 -1
  95. package/es/platform/data-broker/http-template/getSelectedFields.js +0 -16
  96. package/es/platform/data-broker/http-template/getUIActions.js +3 -3
  97. package/es/platform/data-broker/utils/transformer/{createCf.js → CreateCf.js} +1 -0
  98. package/es/platform/data-broker/utils/transformer/Transformer.js +28 -0
  99. package/es/platform/zfield/adapters/controllers/ExeucteActionController.js +0 -3
  100. package/es/platform/zfield/adapters/gateways/Repository.js +5 -2
  101. package/es/platform/zfield/adapters/presenters/Presenter.js +4 -3
  102. package/es/platform/zfield/entities/fields-manager/FieldsManager.js +6 -2
  103. package/es/platform/zfield/entities/interfaces/FieldApiName.js +7 -0
  104. package/es/platform/zfield/entities/interfaces/IField.js +0 -1
  105. package/es/platform/zfield/frameworks/ActionHandlerFactory.js +16 -16
  106. package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +1 -7
  107. package/es/platform/zfield/usecases/entities-factory/FieldBuilder.js +110 -0
  108. package/es/platform/zfield/usecases/entities-factory/FieldFactory.js +10 -0
  109. package/es/platform/zfield/usecases/entities-factory/FieldsManagerBuilder.js +49 -0
  110. package/es/platform/zfield/usecases/entity-factory/FieldFactory.js +1 -16
  111. package/es/platform/zfield/usecases/interactors/RefetchUseCase.js +1 -3
  112. package/es/platform/zfield/usecases/interfaces/input/FetchInputModel.js +1 -7
  113. package/es/platform/zlist/adapters/presenters/TableTranslator.js +12 -12
  114. package/es/platform/zlist/adapters/presenters/translators/EmptyViewModel.js +3 -3
  115. package/es/platform/zlist/adapters/presenters/translators/RowActionTranslator.js +1 -2
  116. package/es/platform/zlist/adapters/presenters/translators/fields/BooleanFieldTranslator.js +2 -2
  117. package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +2 -2
  118. package/es/platform/zlist/adapters/presenters/translators/fields/DateFieldTranslator.js +2 -2
  119. package/es/platform/zlist/adapters/presenters/translators/fields/DateTimeFieldTranslator.js +2 -2
  120. package/es/platform/zlist/adapters/presenters/translators/fields/DecimalFieldTranslator.js +2 -2
  121. package/es/platform/zlist/adapters/presenters/translators/fields/EmailFieldTranslator.js +2 -2
  122. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +2 -2
  123. package/es/platform/zlist/adapters/presenters/translators/fields/MultiLineFieldTranslator.js +2 -2
  124. package/es/platform/zlist/adapters/presenters/translators/fields/MultiSelectFieldTranslator.js +2 -2
  125. package/es/platform/zlist/adapters/presenters/translators/fields/NumberFieldTranslator.js +2 -2
  126. package/es/platform/zlist/adapters/presenters/translators/fields/PercentageFieldTranslator.js +2 -2
  127. package/es/platform/zlist/adapters/presenters/translators/fields/PhoneFieldTranslator.js +2 -2
  128. package/es/platform/zlist/adapters/presenters/translators/fields/PickListFieldTranslator.js +2 -2
  129. package/es/platform/zlist/adapters/presenters/translators/fields/SingleLineFieldTranslator.js +2 -2
  130. package/es/platform/zlist/adapters/presenters/translators/fields/URLFieldTranslator.js +2 -2
  131. package/es/platform/zlist/adapters/presenters/utils/Pipeline.js +28 -0
  132. package/es/platform/zlist/entities/List.js +3 -3
  133. package/es/platform/zlist/usecases/interactors/AbstractUseCase.js +1 -1
  134. package/es/platform/zlist/usecases/interactors/InitializeUseCase.js +3 -1
  135. package/es/platform/zlist/usecases/interactors/PropertiesChangeUseCase.js +3 -1
  136. package/es/platform/zrecord/entities/Record.js +2 -17
  137. package/es/platform/zrecord/entities/RecordsManager.js +0 -1
  138. package/es/platform/zrecord/entities/interfaces/ApiEnum.js +10 -0
  139. package/es/platform/zrecord/usecases/interactors/AbstractUseCase.js +6 -2
  140. package/es/platform/zrecord/usecases/interfaces/output/IPresenter.js +1 -0
  141. package/package.json +6 -5
  142. package/es/library/behaviours/local-storage/adapters/controllers/handlers/Mount.js +0 -0
  143. package/es/library/behaviours/local-storage/adapters/controllers/handlers/SetData.js +0 -0
  144. package/es/library/behaviours/local-storage/adapters/controllers/handlers/UnMount.js +0 -0
  145. package/es/library/behaviours/local-storage/entities/Storage.js +0 -22
  146. package/es/library/behaviours/local-storage/usecases/interactors/AbstractUseCase.js +0 -8
  147. package/es/library/behaviours/local-storage/usecases/interactors/DeleteData.js +0 -15
  148. package/es/library/behaviours/local-storage/usecases/interactors/GetData.js +0 -16
  149. package/es/library/behaviours/local-storage/usecases/interactors/SetData.js +0 -15
  150. package/es/library/behaviours/local-storage/usecases/interfaces/UseCase.js +0 -1
  151. package/es/library/behaviours/local-storage/usecases/interfaces/input/DeleteDataInput.js +0 -1
  152. package/es/library/behaviours/local-storage/usecases/interfaces/input/GetDataInput.js +0 -1
  153. package/es/library/behaviours/local-storage/usecases/interfaces/input/SetDataInput.js +0 -1
  154. package/es/library/behaviours/local-storage/usecases/interfaces/output/IPresenter.js +0 -1
  155. package/es/library/behaviours/mouse-resizable/adapters/controllers/handlers/MountHandler.js +0 -8
  156. package/es/library/behaviours/mouse-resizable/adapters/controllers/handlers/StartResize.js +0 -10
  157. package/es/library/behaviours/mouse-resizable/adapters/controllers/handlers/UnMountHandler.js +0 -0
  158. package/es/library/behaviours/mouse-resizable/frameworks/MouseResizableFactory.js +0 -32
  159. package/es/library/behaviours/table-column-resizer/adapters/controllers/handlers/HandleDragStart.js +0 -0
  160. package/es/library/custom-component/frameworks/json-schema-validator/validator.js +0 -9
  161. package/es/library/custom-component/frameworks/ui/dependencyFactory.js +0 -29
  162. package/es/platform/data-broker/utils/transformer/transformer.js +0 -25
  163. package/es/platform/zlist/adapters/presenters/utils/pipeline.js +0 -25
  164. package/es/platform/zlist/adapters/presenters/utils/replacer.js +0 -9
  165. package/es/platform/zlist/adapters/presenters/utils/selectn.js +0 -7
  166. package/es/platform/zrecord/entities/interfaces/apiEnum.js +0 -1
  167. /package/es/library/behaviours/{local-storage/entities/interfaces/ILocalStorage.js → text-to-field-click/entities/interfaces/IFieldEventConverter.js} +0 -0
  168. /package/es/library/behaviours/{local-storage/entities/interfaces/IStorage.js → text-to-field-click/usecases/interfaces/UseCaseDependencies.js} +0 -0
  169. /package/es/library/behaviours/{local-storage → text-to-field-click}/usecases/interfaces/gateways/IRepository.js +0 -0
  170. /package/es/library/behaviours/{local-storage/usecases/interfaces/InputDependencies.js → text-to-field-click/usecases/interfaces/input/ClickUseCaseInputModel.js} +0 -0
  171. /package/es/library/custom-component/entities/{defaultAppendToActionPayload.js → DefaultAppendToActionPayload.js} +0 -0
@@ -0,0 +1,10 @@
1
+ export default {
2
+ name: 'getRef',
3
+ required: false,
4
+ defaultValue: null,
5
+ typeMetadata: {
6
+ schema: {
7
+ type: 'function'
8
+ }
9
+ }
10
+ };
@@ -0,0 +1,21 @@
1
+ var Types = /*#__PURE__*/function (Types) {
2
+ Types["CheckboxField"] = "CheckboxField";
3
+ Types["SwitchField"] = "SwitchField";
4
+ Types["SingleLineField"] = "SingleLineField";
5
+ Types["MultiLineField"] = "MultiLineField";
6
+ Types["EmailField"] = "EmailField";
7
+ Types["URLField"] = "URLField";
8
+ Types["PhoneField"] = "PhoneField";
9
+ Types["CurrencyField"] = "CurrencyField";
10
+ Types["LookUpField"] = "LookUpField";
11
+ Types["PickListField"] = "PickListField";
12
+ Types["PercentageField"] = "PercentageField";
13
+ Types["DateField"] = "DateField";
14
+ Types["DateTimeField"] = "DateTimeField";
15
+ Types["NumberField"] = "NumberField";
16
+ Types["DecimalField"] = "DecimalField";
17
+ Types["MultiSelectField"] = "MultiSelectField";
18
+ return Types;
19
+ }(Types || {});
20
+
21
+ export default Types;
@@ -1,16 +1,14 @@
1
- export default function MultiListFieldModel(_ref) {
1
+ function MultiListFieldModel(_ref) {
2
2
  let {
3
3
  name,
4
4
  value,
5
- options,
6
- subType,
7
5
  uiType
8
6
  } = _ref;
9
7
  return {
10
8
  name,
11
9
  type: uiType,
12
- // options,
13
- // subType,
14
10
  value
15
11
  };
16
- }
12
+ }
13
+
14
+ export default MultiListFieldModel;
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import TableList from "../../../library/dot/components/table-list/frameworks/ui/TableList";
4
- export default function View(_ref, ref) {
4
+
5
+ function View(_ref, ref) {
5
6
  let {
6
- state,
7
- helpers
7
+ state
8
8
  } = _ref;
9
9
  const {
10
10
  isLoading,
@@ -27,6 +27,8 @@ export default function View(_ref, ref) {
27
27
  selectionConfig: properties.selectionConfig
28
28
  }));
29
29
  }
30
+
31
+ export default View;
30
32
  View.propTypes = {
31
33
  state: PropTypes.string
32
34
  };
@@ -10,7 +10,7 @@ class AllSelectionController extends AbstractController {
10
10
  allSelectionUseCase
11
11
  } = this.service;
12
12
  allSelectionUseCase.updateDependencies(state, updateState);
13
- allSelectionUseCase.execute(null);
13
+ allSelectionUseCase.execute();
14
14
  }
15
15
 
16
16
  }
@@ -9,13 +9,8 @@ class DestructController extends AbstractController {
9
9
  state,
10
10
  updateState
11
11
  } = event;
12
- const {
13
- selected
14
- } = state.behaviours.selection;
15
12
  destructUseCase.updateDependencies(state, updateState);
16
- destructUseCase.execute({
17
- selected
18
- });
13
+ destructUseCase.execute();
19
14
  }
20
15
 
21
16
  }
@@ -7,16 +7,10 @@ class InitializeController extends AbstractController {
7
7
  } = this.service;
8
8
  const {
9
9
  state,
10
- updateState,
11
- dispatch
10
+ updateState
12
11
  } = event;
13
- const {
14
- selected
15
- } = state.behaviours.selection;
16
12
  initializeUseCase.updateDependencies(state, updateState);
17
- initializeUseCase.execute({
18
- selected
19
- });
13
+ initializeUseCase.execute();
20
14
  }
21
15
 
22
16
  }
@@ -12,15 +12,21 @@ class Repository {
12
12
  }
13
13
 
14
14
  getListItemSelection() {
15
- var _this$state, _this$state$behaviour, _this$state2;
15
+ const {
16
+ behaviours,
17
+ properties
18
+ } = this.state;
19
+ /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
16
20
 
17
21
  const {
18
22
  selected
19
- } = ((_this$state = this.state) === null || _this$state === void 0 ? void 0 : (_this$state$behaviour = _this$state.behaviours) === null || _this$state$behaviour === void 0 ? void 0 : _this$state$behaviour.selection) || {};
23
+ } = (behaviours === null || behaviours === void 0 ? void 0 : behaviours.selection) || {};
24
+ /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
25
+
20
26
  const {
21
27
  selectionConfig,
22
28
  data
23
- } = ((_this$state2 = this.state) === null || _this$state2 === void 0 ? void 0 : _this$state2.properties) || {};
29
+ } = properties || {};
24
30
  const itemIds = data === null || data === void 0 ? void 0 : data.rows.map(item => item.id);
25
31
  const maxSelectionCount = selectionConfig === null || selectionConfig === void 0 ? void 0 : selectionConfig.maxSelectionCount;
26
32
  return new ListItemSelection(selected, itemIds, maxSelectionCount);
@@ -3,7 +3,7 @@ class ListItemSelection {
3
3
  this.selected = selected;
4
4
  this.itemIds = itemIds;
5
5
  this.maxSelectionCount = maxSelectionCount;
6
- this.selected = this.selected.filter(selectedId => this.itemIds.includes(selectedId)); // Remove items that does not exist
6
+ this.selected = this.selected.filter(selectedId => this.itemIds.includes(selectedId)); // NOTE: Remove items that does not exist
7
7
  }
8
8
 
9
9
  selectItem(id) {
@@ -11,27 +11,27 @@ import DestructController from "../adapters/controllers/DestructController";
11
11
 
12
12
  class ActionHandlerFactory {
13
13
  static create() {
14
+ const service = this.createService();
15
+ return this.createHandlers(service);
16
+ }
17
+
18
+ static createService() {
14
19
  const repository = new Repository();
15
20
  const presenter = new Presenter();
16
- const service = new Service({
21
+ return new Service({
17
22
  repository,
18
23
  presenter
19
24
  });
20
- const controller = {
21
- init: new InitializeController(service).handle,
22
- updateProperties: new UpdateController(service).handle,
23
- destruct: new DestructController(service).handle,
24
- toggleItems: new SelectionController(service).handle,
25
- toggleAll: new AllSelectionController(service).handle,
26
- toggleRange: new RangeSelectionController(service).handle
27
- };
25
+ }
26
+
27
+ static createHandlers(service) {
28
28
  return {
29
- ['MOUNT']: controller.init,
30
- ['UPDATE_PROPERTIES']: controller.updateProperties,
31
- ['UNMOUNT']: controller.destruct,
32
- [LIST_SELECTION_TOGGLE_ITEMS]: controller.toggleItems,
33
- [LIST_SELECTION_TOGGLE_ALL]: controller.toggleAll,
34
- [LIST_SELECTION_TOGGLE_ITEMS_IN_RANGE]: controller.toggleRange
29
+ ['MOUNT']: new InitializeController(service).handle,
30
+ ['UPDATE_PROPERTIES']: new UpdateController(service).handle,
31
+ ['UNMOUNT']: new DestructController(service).handle,
32
+ [LIST_SELECTION_TOGGLE_ITEMS]: new SelectionController(service).handle,
33
+ [LIST_SELECTION_TOGGLE_ALL]: new AllSelectionController(service).handle,
34
+ [LIST_SELECTION_TOGGLE_ITEMS_IN_RANGE]: new RangeSelectionController(service).handle
35
35
  };
36
36
  }
37
37
 
@@ -6,12 +6,7 @@ class ListItemSelectionBehaviourFactory {
6
6
  static create() {
7
7
  return {
8
8
  name: 'selection',
9
- setInitialState: _ref => {
10
- let {
11
- properties
12
- } = _ref;
13
- // We are not giving this feature!
14
- // const { selectedItems } = properties.selectionConfig.selectedItems;
9
+ setInitialState: () => {
15
10
  return {
16
11
  selected: [],
17
12
  hasAllSelected: false
@@ -1,7 +1,7 @@
1
1
  import AbstractUseCase from "./AbstractUseCase";
2
2
 
3
3
  class AllItemsSelection extends AbstractUseCase {
4
- execute(inputModel) {
4
+ execute() {
5
5
  const {
6
6
  repository,
7
7
  presenter
@@ -1,7 +1,7 @@
1
1
  import AbstractUseCase from "./AbstractUseCase";
2
2
 
3
3
  class Destruct extends AbstractUseCase {
4
- execute(input) {}
4
+ execute() {}
5
5
 
6
6
  }
7
7
 
@@ -1,7 +1,7 @@
1
1
  import AbstractUseCase from "./AbstractUseCase";
2
2
 
3
3
  class Initialize extends AbstractUseCase {
4
- execute(inputModel) {
4
+ execute() {
5
5
  const {
6
6
  repository,
7
7
  presenter
@@ -11,11 +11,14 @@ export default class Repository {
11
11
  }
12
12
 
13
13
  getSortByEntity() {
14
+ const {
15
+ behaviours
16
+ } = this.state;
14
17
  const {
15
18
  id,
16
19
  name,
17
20
  order
18
- } = this.state.behaviours.sortBy;
21
+ } = behaviours.sortBy;
19
22
  return new SortBy(id, name, order);
20
23
  }
21
24
 
@@ -1,15 +1,11 @@
1
1
  import Properties from "../../../../../bc/sort-by/Properties";
2
2
 
3
+ // REVIEW: Class never used
3
4
  class DemoBehaviour {
4
5
  static create() {
5
6
  return {
6
7
  name: 'demo_behaviour',
7
- setInitialState: _ref => {
8
- let {
9
- properties
10
- } = _ref;
11
- return {};
12
- },
8
+ setInitialState: () => ({}),
13
9
  properties: Properties,
14
10
  eventHandlers: {
15
11
  "DEMO": () => {
@@ -0,0 +1,23 @@
1
+ class ClickController {
2
+ constructor(clickUseCase) {
3
+ this.clickUseCase = clickUseCase;
4
+ this.handle = this.handle.bind(this);
5
+ }
6
+
7
+ handle(event) {
8
+ const {
9
+ state,
10
+ dispatch
11
+ } = event;
12
+ const {
13
+ clickUseCase
14
+ } = this;
15
+ clickUseCase.updateDependencies(state);
16
+ clickUseCase.execute({
17
+ dispatch
18
+ });
19
+ }
20
+
21
+ }
22
+
23
+ export default ClickController;
@@ -0,0 +1,20 @@
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 FieldEventConverter from "../../entities/FieldEventConverter";
4
+ export default class Repository {
5
+ constructor() {
6
+ _defineProperty(this, "state", void 0);
7
+ }
8
+
9
+ init(state) {
10
+ this.state = state;
11
+ }
12
+
13
+ getFieldEventConverter() {
14
+ const {
15
+ name
16
+ } = this.state.properties;
17
+ return new FieldEventConverter(name);
18
+ }
19
+
20
+ }
@@ -0,0 +1,19 @@
1
+ import FieldConstants from "../../../../cc/fields/field/Constants";
2
+
3
+ class FieldEventConverter {
4
+ constructor(fieldName) {
5
+ this.fieldName = fieldName;
6
+ }
7
+
8
+ getFieldClickEvent() {
9
+ return {
10
+ type: FieldConstants.FIELD_CLICKED,
11
+ payload: {
12
+ fieldName: this.fieldName
13
+ }
14
+ };
15
+ }
16
+
17
+ }
18
+
19
+ export default FieldEventConverter;
@@ -0,0 +1,17 @@
1
+ import TextConstants from "../../../../../cc/text/Constants";
2
+ import Repository from "../../adapters/gateway/Repository";
3
+ import ClickController from "../../adapters/controllers/ClickController";
4
+ import ClickUseCase from "../../usecases/interactors/ClickUseCase";
5
+ export class EventHandlersFactory {
6
+ static create() {
7
+ const repository = new Repository();
8
+ const clickUseCase = new ClickUseCase({
9
+ repository
10
+ });
11
+ const clickController = new ClickController(clickUseCase);
12
+ return {
13
+ [TextConstants.TEXT_CLICKED]: clickController.handle
14
+ };
15
+ }
16
+
17
+ }
@@ -0,0 +1,15 @@
1
+ import { EventHandlersFactory } from "./EventHandlersFactory";
2
+
3
+ class TextToFieldClickBehaviourFactory {
4
+ static create() {
5
+ return {
6
+ name: 'textToFieldClick',
7
+ setInitialState: () => undefined,
8
+ properties: {},
9
+ eventHandlers: EventHandlersFactory.create()
10
+ };
11
+ }
12
+
13
+ }
14
+
15
+ export default TextToFieldClickBehaviourFactory;
@@ -0,0 +1,15 @@
1
+ class AbstractUseCase {
2
+ constructor(dependencies) {
3
+ this.dependencies = dependencies;
4
+ }
5
+
6
+ updateDependencies(state) {
7
+ const {
8
+ repository
9
+ } = this.dependencies;
10
+ repository.init(state);
11
+ }
12
+
13
+ }
14
+
15
+ export default AbstractUseCase;
@@ -0,0 +1,17 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class ClickUseCase extends AbstractUseCase {
4
+ execute(input) {
5
+ const {
6
+ repository
7
+ } = this.dependencies;
8
+ const {
9
+ dispatch
10
+ } = input;
11
+ const fieldEventConverter = repository.getFieldEventConverter();
12
+ dispatch(fieldEventConverter.getFieldClickEvent());
13
+ }
14
+
15
+ }
16
+
17
+ export default ClickUseCase;
@@ -4,27 +4,45 @@ class Controller {
4
4
  }
5
5
 
6
6
  initialize(input) {
7
- this.service.initializeUseCase.execute(input);
7
+ const {
8
+ initializeUseCase
9
+ } = this.service;
10
+ initializeUseCase.execute(input);
8
11
  }
9
12
 
10
13
  mount() {
11
- this.service.mountUseCase.execute();
14
+ const {
15
+ mountUseCase
16
+ } = this.service;
17
+ mountUseCase.execute();
12
18
  }
13
19
 
14
20
  unmount() {
15
- this.service.unmountUseCase.execute();
21
+ const {
22
+ unmountUseCase
23
+ } = this.service;
24
+ unmountUseCase.execute();
16
25
  }
17
26
 
18
27
  updateProperties(newProps) {
19
- this.service.updatePropertiesUseCase.execute(newProps);
28
+ const {
29
+ updatePropertiesUseCase
30
+ } = this.service;
31
+ updatePropertiesUseCase.execute(newProps);
20
32
  }
21
33
 
22
34
  updateState(newState) {
23
- this.service.updateStateUseCase.execute(newState);
35
+ const {
36
+ updateStateUseCase
37
+ } = this.service;
38
+ updateStateUseCase.execute(newState);
24
39
  }
25
40
 
26
41
  dispatch(action) {
27
- this.service.dispatchUseCase.execute(action);
42
+ const {
43
+ dispatchUseCase
44
+ } = this.service;
45
+ dispatchUseCase.execute(action);
28
46
  }
29
47
 
30
48
  }
@@ -22,7 +22,7 @@ class EventManager {
22
22
  events.forEach((eventHandlers, key) => {
23
23
  this._element && eventHandlers.map(eventHandler => {
24
24
  this._element.addEventListener(key, eventHandler);
25
- }); // this._element && this._element.addEventListener(key, actionHandler);
25
+ });
26
26
  });
27
27
  }
28
28
 
@@ -39,25 +39,29 @@ class EventManager {
39
39
  payload,
40
40
  metaData,
41
41
  type
42
- } = event; // @ts-ignore
43
-
44
- if (__DEVELOPMENT__) {
45
- if (globalThis.enableEventLogging && type) {
46
- const index = type.indexOf('#');
47
- console.log('%cEvent %c' + type.slice(0, index) + '%c' + type.slice(index), 'color: cyan;font-weight: bold', 'color: yellow;font-weight: bold', 'color: greenyellow;font-weight: bold', {
48
- payload,
49
- metaData
50
- });
51
- }
52
- }
42
+ } = event;
43
+ this.log(type, payload, metaData);
53
44
 
54
45
  if (!this._element) {
55
- console.error('Error check ref', this._element, type, {
46
+ console.error('Error: Element `ref` not found!', this._element, type, {
56
47
  payload,
57
48
  metaData
58
49
  });
59
50
  }
60
51
 
52
+ this.dispatchEvent({
53
+ type,
54
+ payload,
55
+ metaData
56
+ });
57
+ }
58
+
59
+ dispatchEvent(event) {
60
+ let {
61
+ payload,
62
+ metaData,
63
+ type
64
+ } = event;
61
65
  this._element && this._element.dispatchEvent(new CustomEvent(type, {
62
66
  bubbles: true,
63
67
  detail: {
@@ -67,6 +71,19 @@ class EventManager {
67
71
  }));
68
72
  }
69
73
 
74
+ log(type, payload, metaData) {
75
+ // @ts-ignore
76
+ if (__DEVELOPMENT__) {
77
+ if (globalThis.enableEventLogging && type) {
78
+ const index = type.indexOf('#');
79
+ console.log('%cEvent %c' + type.slice(0, index) + '%c' + type.slice(index), 'color: cyan;font-weight: bold', 'color: yellow;font-weight: bold', 'color: greenyellow;font-weight: bold', {
80
+ payload,
81
+ metaData
82
+ });
83
+ }
84
+ }
85
+ }
86
+
70
87
  }
71
88
 
72
89
  export default EventManager;
@@ -18,13 +18,6 @@ class Presenter {
18
18
  }
19
19
 
20
20
  render(state) {
21
- // try {
22
- // let a = undefined;
23
- // console.log(a.b.c);
24
- // } catch (e) {
25
- // console.log(e);
26
- // }
27
- // console.log("state", state);
28
21
  this.updateState(state);
29
22
  }
30
23
 
@@ -85,7 +85,7 @@ export default class Component {
85
85
  }
86
86
 
87
87
  setStateInitializer(_stateInitializer) {
88
- this._stateInitializer = _stateInitializer;
88
+ this._stateInitializer = typeof _stateInitializer !== 'function' ? input => input : _stateInitializer;
89
89
  }
90
90
 
91
91
  setBehaviours(behaviours) {
@@ -120,32 +120,32 @@ export default class Component {
120
120
  this._state.updateState(state);
121
121
  }
122
122
 
123
+ getAllBehavioursInitialState() {
124
+ let allBehavioursInitialState = {};
125
+
126
+ this._behaviours.map(behaviour => {
127
+ allBehavioursInitialState = { ...allBehavioursInitialState,
128
+ ...behaviour.getInitialState()
129
+ };
130
+ });
131
+
132
+ return allBehavioursInitialState;
133
+ }
134
+
123
135
  init(jsonValidator, newProps) {
124
136
  this.updateProperties(jsonValidator, newProps);
125
137
 
126
- let properties = this._properties.getAllPropertiesValue();
138
+ const properties = this._properties.getAllPropertiesValue();
127
139
 
128
- if (this._stateInitializer) {
129
- this.updateState(this._stateInitializer({
130
- properties
131
- }));
132
- } else {
133
- this.updateState({
134
- properties
135
- });
136
- }
137
-
138
- if (this._behaviours) {
139
- this._behaviours.map(behaviour => {
140
- /* hack performance impact need to use object path immutable*/
141
- let state = this.getState();
142
- this.updateState({
143
- behaviours: { ...state.behaviours,
144
- ...behaviour.getInitialState()
145
- }
146
- });
147
- });
148
- }
140
+ const behaviours = this.getAllBehavioursInitialState();
141
+
142
+ const initialState = this._stateInitializer({
143
+ properties
144
+ });
145
+
146
+ this.updateState({ ...initialState,
147
+ behaviours
148
+ });
149
149
  }
150
150
 
151
151
  getProperties() {
@@ -164,6 +164,9 @@ export default class Component {
164
164
 
165
165
  return boundEventHandlers;
166
166
  }
167
+ /* eslint-disable max-lines-per-function */
168
+ // TODO: Refactor this function to reduce the number of lines
169
+
167
170
 
168
171
  createEventHandlers(helpers) {
169
172
  let eventHandlers = this._eventHandlers.getEventHandlers();
@@ -173,7 +176,6 @@ export default class Component {
173
176
  let createActionToEventHandler = (eventHandlers, eventHandlerMap) => {
174
177
  eventHandlers.forEach((actionHandler, key) => {
175
178
  let eventHandler = new EventHandler(key, event => {
176
- //event validate with action payload
177
179
  let state = this.getState();
178
180
  let action = event.detail;
179
181
  actionHandler({