@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
@@ -1,32 +1,52 @@
1
1
  class TableTranslator {
2
2
  static translate(state) {
3
+ var _state;
4
+
5
+ const {
6
+ data,
7
+ selectionConfig
8
+ } = state.properties;
9
+ const {
10
+ sortBy,
11
+ selection
12
+ } = (_state = state) === null || _state === void 0 ? void 0 : _state.behaviours;
13
+ const headers = TableTranslator.translateHeaders(data.headers, sortBy);
14
+ const rows = TableTranslator.translateRows(data.rows, selection, selectionConfig);
3
15
  state = { ...state,
4
16
  properties: { ...state.properties,
5
- data: { ...state.properties.data,
6
- headers: state.properties.data.headers.map(header => {
7
- var _state, _state$behaviours, _state$behaviours$sor, _state2, _state2$behaviours, _state2$behaviours$so;
8
-
9
- const sortOrder = ((_state = state) === null || _state === void 0 ? void 0 : (_state$behaviours = _state.behaviours) === null || _state$behaviours === void 0 ? void 0 : (_state$behaviours$sor = _state$behaviours.sortBy) === null || _state$behaviours$sor === void 0 ? void 0 : _state$behaviours$sor.id) === header.id ? (_state2 = state) === null || _state2 === void 0 ? void 0 : (_state2$behaviours = _state2.behaviours) === null || _state2$behaviours === void 0 ? void 0 : (_state2$behaviours$so = _state2$behaviours.sortBy) === null || _state2$behaviours$so === void 0 ? void 0 : _state2$behaviours$so.order : 'none';
10
- return { ...header,
11
- sortOrder,
12
- sortTooltip: sortOrder === 'none' ? '' : sortOrder === 'ascending' ? 'Click to Sort Descending' : 'Click to Sort Ascending'
13
- };
14
- }),
15
- rows: state.properties.data.rows.map((row, index) => {
16
- var _state3, _state3$behaviours, _state3$behaviours$se, _state4, _state4$behaviours, _state4$behaviours$se, _state5, _state5$behaviours, _state5$behaviours$se, _state6, _state6$behaviours, _state6$behaviours$se, _state7, _state7$behaviours, _state7$behaviours$se;
17
-
18
- return { ...row,
19
- isSelected: (_state3 = state) === null || _state3 === void 0 ? void 0 : (_state3$behaviours = _state3.behaviours) === null || _state3$behaviours === void 0 ? void 0 : (_state3$behaviours$se = _state3$behaviours.selection) === null || _state3$behaviours$se === void 0 ? void 0 : _state3$behaviours$se.selected.includes(row.id),
20
- isSelectable: ((_state4 = state) === null || _state4 === void 0 ? void 0 : (_state4$behaviours = _state4.behaviours) === null || _state4$behaviours === void 0 ? void 0 : (_state4$behaviours$se = _state4$behaviours.selection) === null || _state4$behaviours$se === void 0 ? void 0 : _state4$behaviours$se.selected.includes(row.id)) || !((_state5 = state) !== null && _state5 !== void 0 && (_state5$behaviours = _state5.behaviours) !== null && _state5$behaviours !== void 0 && (_state5$behaviours$se = _state5$behaviours.selection) !== null && _state5$behaviours$se !== void 0 && _state5$behaviours$se.hasAllSelected),
21
- selectionTooltip: !((_state6 = state) !== null && _state6 !== void 0 && (_state6$behaviours = _state6.behaviours) !== null && _state6$behaviours !== void 0 && (_state6$behaviours$se = _state6$behaviours.selection) !== null && _state6$behaviours$se !== void 0 && _state6$behaviours$se.selected.includes(row.id)) && (_state7 = state) !== null && _state7 !== void 0 && (_state7$behaviours = _state7.behaviours) !== null && _state7$behaviours !== void 0 && (_state7$behaviours$se = _state7$behaviours.selection) !== null && _state7$behaviours$se !== void 0 && _state7$behaviours$se.hasAllSelected ? state.properties.selectionConfig.limitExceedAlertMessage : `Record ${index + 1}`
22
- };
23
- })
17
+ data: { ...data,
18
+ headers,
19
+ rows
24
20
  }
25
21
  }
26
22
  };
27
23
  return state;
28
24
  }
29
25
 
26
+ static translateHeaders(headers, sortBy) {
27
+ return headers.map(header => {
28
+ const sortOrder = (sortBy === null || sortBy === void 0 ? void 0 : sortBy.id) === header.id ? sortBy === null || sortBy === void 0 ? void 0 : sortBy.order : 'none';
29
+ return { ...header,
30
+ sortOrder,
31
+ sortTooltip: sortOrder === 'none' ? '' : sortOrder === 'ascending' ? 'Click to Sort Descending' : 'Click to Sort Ascending'
32
+ };
33
+ });
34
+ }
35
+
36
+ static translateRows(rows, selection, selectionConfig) {
37
+ const {
38
+ selected,
39
+ hasAllSelected
40
+ } = selection;
41
+ return rows.map((row, index) => {
42
+ return { ...row,
43
+ isSelected: selected.includes(row.id),
44
+ isSelectable: selected.includes(row.id) || !hasAllSelected,
45
+ selectionTooltip: !selected.includes(row.id) && hasAllSelected ? selectionConfig.limitExceedAlertMessage : `Record ${index + 1}`
46
+ };
47
+ });
48
+ }
49
+
30
50
  }
31
51
 
32
52
  export default TableTranslator;
@@ -6,24 +6,15 @@ import RowClickController from "../../adapters/controllers/RowClickController";
6
6
 
7
7
  class EventHandlersFactory {
8
8
  static create() {
9
- const controller = {
10
- listSelectItem: new SelectItemController().handle,
11
- listSelectAll: new SelectAllController().handle,
12
- scroll: new ScrollController().handle,
13
- sortBy: new SortByController().handle,
14
- sorted: new SortedController().handle,
15
- fieldChange: new FieldChangeController().handle,
16
- fieldClick: new FieldClickController().handle
17
- };
18
9
  return {
19
10
  [TableRowConstants.TABLE_ROW_CLICKED]: new RowClickController().handle,
20
- [TableListConstants.TABLE_LIST_TOGGLE_ITEM_SELECTION]: controller.listSelectItem,
21
- [TableListConstants.TABLE_LIST_TOGGLE_ALL_SELECTION]: controller.listSelectAll,
22
- [TableListConstants.TABLE_LIST_SCROLLED]: controller.scroll,
23
- [TableListConstants.TABLE_LIST_SORTED]: controller.sortBy,
24
- [SORTBY_SORTED]: controller.sorted,
25
- [TableRowConstants.TABLE_ROW_FIELD_CHANGED]: controller.fieldChange,
26
- [TableRowConstants.TABLE_ROW_FIELD_CLICKED]: controller.fieldClick
11
+ [TableListConstants.TABLE_LIST_TOGGLE_ITEM_SELECTION]: new SelectItemController().handle,
12
+ [TableListConstants.TABLE_LIST_TOGGLE_ALL_SELECTION]: new SelectAllController().handle,
13
+ [TableListConstants.TABLE_LIST_SCROLLED]: new ScrollController().handle,
14
+ [TableListConstants.TABLE_LIST_SORTED]: new SortByController().handle,
15
+ [SORTBY_SORTED]: new SortedController().handle,
16
+ [TableRowConstants.TABLE_ROW_FIELD_CHANGED]: new FieldChangeController().handle,
17
+ [TableRowConstants.TABLE_ROW_FIELD_CLICKED]: new FieldClickController().handle
27
18
  };
28
19
  }
29
20
 
@@ -9,12 +9,7 @@ const TableList = createCustomComponent({
9
9
  name: 'TableList',
10
10
  View: TableListView,
11
11
  properties: TableListProperties,
12
- setInitialState: _ref => {
13
- let {
14
- properties
15
- } = _ref;
16
- return {};
17
- },
12
+ setInitialState: () => ({}),
18
13
  transformState: TableTranslator.translate,
19
14
  eventHandlers: EventHandlersFactory.create(),
20
15
  behaviours: [ListItemSelectionBehaviourFactory.create(), SortByBehaviourFactory.create(), {
@@ -24,9 +24,7 @@ function TableListView(_ref2, _ref) {
24
24
  resizerConfig,
25
25
  selectionConfig,
26
26
  isFlexibleColumns,
27
- hasRowActions
28
- } = state.properties;
29
- const {
27
+ hasRowActions,
30
28
  emptyStateUiType
31
29
  } = state.properties;
32
30
  const {
@@ -37,20 +35,55 @@ function TableListView(_ref2, _ref) {
37
35
  headers,
38
36
  rows
39
37
  } = data;
40
- const hasRows = rows.length > 0; // Will be adopted with properties
38
+ const hasRows = rows.length > 0; // TODO: derive from state.properties
41
39
 
42
- const isDataEmpty = !hasRows && !isLoading; // Will be adopted with properties
40
+ const isDataEmpty = !hasRows && !isLoading; // TODO: derive from state.properties
43
41
 
44
42
  return /*#__PURE__*/React.createElement("div", {
45
43
  className: style.wrapper,
46
44
  ref: _ref
47
45
  }, /*#__PURE__*/React.createElement(Table, {
48
- $event_onScroll: e => {
49
- handleScroll(dispatch, {
50
- scrollEvent: e
51
- });
52
- }
53
- }, /*#__PURE__*/React.createElement(Header, {
46
+ $event_onScroll: e => handleScroll(dispatch, {
47
+ scrollEvent: e
48
+ })
49
+ }, renderHeader({
50
+ headers,
51
+ resizerConfig,
52
+ resizerState,
53
+ selectionConfig,
54
+ selection,
55
+ isFlexibleColumns,
56
+ hasRowActions,
57
+ dispatch
58
+ }), renderBody({
59
+ headers,
60
+ rows,
61
+ isFlexibleColumns,
62
+ selectionConfig,
63
+ resizerState,
64
+ hasRowActions,
65
+ hasRows
66
+ }), /*#__PURE__*/React.createElement(NoData, {
67
+ isDataEmpty: isDataEmpty,
68
+ emptyStateUiType: emptyStateUiType
69
+ }), /*#__PURE__*/React.createElement(Loading, {
70
+ isLoading: isLoading,
71
+ hasRows: hasRows
72
+ })), renderColumnResizingLine(resizerState));
73
+ }
74
+
75
+ function renderHeader(_ref3) {
76
+ let {
77
+ headers,
78
+ resizerConfig,
79
+ resizerState,
80
+ selectionConfig,
81
+ selection,
82
+ isFlexibleColumns,
83
+ hasRowActions,
84
+ dispatch
85
+ } = _ref3;
86
+ return /*#__PURE__*/React.createElement(Header, {
54
87
  isSelectionEnabled: selectionConfig.isEnabled,
55
88
  hasAllSelected: selection.hasAllSelected,
56
89
  isResizerEnabled: resizerConfig.isEnabled,
@@ -62,7 +95,20 @@ function TableListView(_ref2, _ref) {
62
95
  hasRowActions: hasRowActions,
63
96
  headers: headers,
64
97
  dispatch: dispatch
65
- }), /*#__PURE__*/React.createElement(Body, {
98
+ });
99
+ }
100
+
101
+ function renderBody(_ref4) {
102
+ let {
103
+ headers,
104
+ rows,
105
+ isFlexibleColumns,
106
+ selectionConfig,
107
+ resizerState,
108
+ hasRowActions,
109
+ hasRows
110
+ } = _ref4;
111
+ return /*#__PURE__*/React.createElement(Body, {
66
112
  hasRows: hasRows,
67
113
  isFlexibleColumns: isFlexibleColumns
68
114
  }, /*#__PURE__*/React.createElement(Rows, {
@@ -72,18 +118,16 @@ function TableListView(_ref2, _ref) {
72
118
  isSelectionEnabled: selectionConfig.isEnabled,
73
119
  resizedColumnsWidth: resizerState.resizedColumnsWidth,
74
120
  hasRowActions: hasRowActions
75
- })), /*#__PURE__*/React.createElement(NoData, {
76
- isDataEmpty: isDataEmpty,
77
- emptyStateUiType: emptyStateUiType
78
- }), /*#__PURE__*/React.createElement(Loading, {
79
- isLoading: isLoading,
80
- hasRows: hasRows
81
- })), /*#__PURE__*/React.createElement(ColumnResizingLine, {
121
+ }));
122
+ }
123
+
124
+ function renderColumnResizingLine(resizerState) {
125
+ return /*#__PURE__*/React.createElement(ColumnResizingLine, {
82
126
  isCurrentlyResizing: resizerState.isCurrentlyResizing,
83
127
  initialPosition: resizerState.initialPosition,
84
128
  resizedPosition: resizerState.resizedPosition,
85
129
  tooltip: resizerState.tooltip
86
- }));
130
+ });
87
131
  }
88
132
 
89
133
  export default TableListView;
@@ -22,28 +22,43 @@ function Header(_ref) {
22
22
 
23
23
  if (headers.length <= 0) {
24
24
  return null;
25
- } // TODO: Will be adopted with properties
26
-
25
+ }
27
26
 
28
27
  return /*#__PURE__*/React.createElement(TableHeader, {
29
28
  $flag_padding: !isSelectionEnabled
30
- }, /*#__PURE__*/React.createElement(SelectAll, {
29
+ }, renderSelectAll(isSelectionEnabled, hasAllSelected, dispatch), renderHeaders(headers, resizedColumnsWidth, currentlyResizingColumn, isResizerEnabled, isFlexibleColumns, dispatch), renderActionColumn(hasRowActions), renderResizerExtraSpace(isCurrentlyResizing, resizerExtraWidth));
30
+ }
31
+
32
+ function renderSelectAll(isSelectionEnabled, hasAllSelected, dispatch) {
33
+ return /*#__PURE__*/React.createElement(SelectAll, {
31
34
  isSelectionEnabled: isSelectionEnabled,
32
35
  hasAllSelected: hasAllSelected,
33
36
  dispatch: dispatch
34
- }), /*#__PURE__*/React.createElement(Headers, {
37
+ });
38
+ }
39
+
40
+ function renderHeaders(headers, resizedColumnsWidth, currentlyResizingColumn, isResizerEnabled, isFlexibleColumns, dispatch) {
41
+ return /*#__PURE__*/React.createElement(Headers, {
35
42
  headers: headers,
36
43
  resizedColumnsWidth: resizedColumnsWidth,
37
44
  currentlyResizingColumn: currentlyResizingColumn,
38
45
  isResizerEnabled: isResizerEnabled,
39
46
  isFlexibleColumns: isFlexibleColumns,
40
47
  dispatch: dispatch
41
- }), /*#__PURE__*/React.createElement(ActionColumn, {
48
+ });
49
+ }
50
+
51
+ function renderActionColumn(hasRowActions) {
52
+ return /*#__PURE__*/React.createElement(ActionColumn, {
42
53
  hasRowActions: hasRowActions
43
- }), /*#__PURE__*/React.createElement(ResizerExtraSpace, {
54
+ });
55
+ }
56
+
57
+ function renderResizerExtraSpace(isCurrentlyResizing, resizerExtraWidth) {
58
+ return /*#__PURE__*/React.createElement(ResizerExtraSpace, {
44
59
  isCurrentlyResizing: isCurrentlyResizing,
45
60
  extraWidth: resizerExtraWidth
46
- }));
61
+ });
47
62
  }
48
63
 
49
64
  export default Header;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import Flex from '@zohodesk/layout/es/Flex/Flex';
3
- import CommonEmptyState from "../../../../../legacy-to-new-arch/common-empty-state/CommonEmptyState"; // @ts-ignore
3
+ import CommonEmptyState from "../../../../../legacy-to-new-arch/common-empty-state/CommonEmptyState";
4
+ /* @ts-ignore */
4
5
 
5
6
  import style from "../css/TableList.module.css";
6
7
  import ComponentRegistry from "../../../../../../custom-component/frameworks/ui/ComponentRegistry";
@@ -11,6 +12,7 @@ export default function NoData(_ref) {
11
12
  } = _ref;
12
13
 
13
14
  if (isDataEmpty) {
15
+ /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
14
16
  const EmptyState = ComponentRegistry.get(emptyStateUiType) || CommonEmptyState;
15
17
  return /*#__PURE__*/React.createElement(Flex, {
16
18
  $ui_displayMode: "flex",
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import Row from "./row/Row";
3
- const emptyArray = [];
3
+ const emptyArray = Object.freeze([]);
4
4
  const emptyObject = {};
5
5
 
6
6
  function Rows(_ref) {
@@ -12,38 +12,44 @@ function Rows(_ref) {
12
12
  resizedColumnsWidth,
13
13
  hasRowActions
14
14
  } = _ref;
15
- return rows.map((row, index) => {
16
- const {
17
- id,
18
- columns,
19
- isSelected,
20
- isSelectable,
21
- selectionTooltip,
22
- clickAction,
23
- rowActions
24
- } = row;
25
- const updatedColumns = columns.map((column, index) => {
26
- return {
27
- size: headers[index].size,
28
- field: column,
29
- alignment: headers[index].alignment
30
- };
31
- });
32
- return /*#__PURE__*/React.createElement(Row, {
33
- key: index,
34
- id: id,
35
- columns: updatedColumns || emptyArray,
36
- clickAction: clickAction || emptyObject,
37
- rowActions: rowActions || emptyArray,
38
- isSelected: isSelected,
39
- isSelectable: isSelectable,
40
- selectionTooltip: selectionTooltip,
41
- isFlexibleColumns: isFlexibleColumns,
42
- isSelectionEnabled: isSelectionEnabled,
43
- resizedColumnsWidth: resizedColumnsWidth,
44
- hasActions: hasRowActions
45
- });
46
- });
15
+ return rows.map((row, index) => /*#__PURE__*/React.createElement(Row, {
16
+ key: index,
17
+ ...getRowProps(row, headers, isFlexibleColumns, isSelectionEnabled, resizedColumnsWidth, hasRowActions)
18
+ }));
19
+ }
20
+
21
+ function getRowProps(row, headers, isFlexibleColumns, isSelectionEnabled, resizedColumnsWidth, hasRowActions) {
22
+ const {
23
+ id,
24
+ columns,
25
+ isSelected,
26
+ isSelectable,
27
+ selectionTooltip,
28
+ clickAction,
29
+ rowActions
30
+ } = row;
31
+ const updatedColumns = getUpdatedColumns(columns, headers);
32
+ return {
33
+ id,
34
+ columns: updatedColumns || emptyArray,
35
+ clickAction: clickAction || emptyObject,
36
+ rowActions: rowActions || emptyArray,
37
+ isSelected,
38
+ isSelectable,
39
+ selectionTooltip,
40
+ isFlexibleColumns,
41
+ isSelectionEnabled,
42
+ resizedColumnsWidth,
43
+ hasActions: hasRowActions
44
+ };
45
+ }
46
+
47
+ function getUpdatedColumns(columns, headers) {
48
+ return columns.map((column, index) => ({
49
+ size: headers[index].size,
50
+ field: column,
51
+ alignment: headers[index].alignment
52
+ }));
47
53
  }
48
54
 
49
55
  export default Rows;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import * as FieldComponents from "../../../../../../legacy-to-new-arch/field-components";
2
+ import FieldComponents from "../../../../../../legacy-to-new-arch/table-field-components";
3
3
  import ComponentRegistry from "../../../../../../../custom-component/frameworks/ui/ComponentRegistry";
4
4
 
5
5
  const FieldComponent = props => {
@@ -7,6 +7,8 @@ const FieldComponent = props => {
7
7
  type,
8
8
  fieldProps
9
9
  } = props;
10
+ /* eslint-disable-next-line @zohodesk/architecturerules/no-defaultProps-rule */
11
+
10
12
  const Component = FieldComponents[type] || ComponentRegistry.get(type);
11
13
 
12
14
  if (!Component) {
@@ -15,9 +15,9 @@ function Headers(_ref) {
15
15
  sortOrder,
16
16
  sortTooltip
17
17
  } = header;
18
- let isResizing = currentlyResizingColumn === header.id; // Will be adopted with properties
18
+ let isResizing = currentlyResizingColumn === header.id; // TODO: To be adopted with properties
19
19
 
20
- let resizedWidth = resizedColumnsWidth[header.id]; // Will be adopted with properties
20
+ let resizedWidth = resizedColumnsWidth[header.id]; // TODO: To be adopted with properties
21
21
 
22
22
  return /*#__PURE__*/React.createElement(HeaderData, {
23
23
  key: index,
@@ -41,22 +41,67 @@ function RowView(_ref, ref) {
41
41
  id
42
42
  }
43
43
  })
44
- }, /*#__PURE__*/React.createElement(RowSelection, {
44
+ }, renderRowSelection({
45
+ isSelectionEnabled,
46
+ id,
47
+ selectionTooltip,
48
+ isSelected,
49
+ isSelectable,
50
+ dispatch
51
+ }), renderColumns({
52
+ columns,
53
+ resizedColumnsWidth,
54
+ isFlexibleColumns
55
+ }), renderRowActions({
56
+ hasActions,
57
+ rowActions,
58
+ dispatch
59
+ }));
60
+ }
61
+
62
+ function renderRowSelection(_ref2) {
63
+ let {
64
+ isSelectionEnabled,
65
+ id,
66
+ selectionTooltip,
67
+ isSelected,
68
+ isSelectable,
69
+ dispatch
70
+ } = _ref2;
71
+ return /*#__PURE__*/React.createElement(RowSelection, {
45
72
  isSelectionEnabled: isSelectionEnabled,
46
73
  id: id,
47
74
  tooltip: selectionTooltip,
48
75
  selected: isSelected,
49
76
  selectable: isSelectable,
50
77
  dispatch: dispatch
51
- }), /*#__PURE__*/React.createElement(Columns, {
78
+ });
79
+ }
80
+
81
+ function renderColumns(_ref3) {
82
+ let {
83
+ columns,
84
+ resizedColumnsWidth,
85
+ isFlexibleColumns
86
+ } = _ref3;
87
+ return /*#__PURE__*/React.createElement(Columns, {
52
88
  data: columns,
53
89
  resizedColumnsWidth: resizedColumnsWidth,
54
90
  isFlexibleColumns: isFlexibleColumns
55
- }), /*#__PURE__*/React.createElement(RowActions, {
91
+ });
92
+ }
93
+
94
+ function renderRowActions(_ref4) {
95
+ let {
96
+ hasActions,
97
+ rowActions,
98
+ dispatch
99
+ } = _ref4;
100
+ return /*#__PURE__*/React.createElement(RowActions, {
56
101
  hasActions: hasActions,
57
102
  actions: rowActions,
58
103
  dispatch: dispatch
59
- }));
104
+ });
60
105
  }
61
106
 
62
107
  const Row = createCustomComponent({
@@ -1,7 +1,39 @@
1
1
  import React from "react";
2
2
  import Avatar from "@zohodesk/components/es/Avatar/Avatar";
3
3
  import LabeledAvatar from "@zohodesk-private/desk-components/es/table/LabeledAvatar/LabeledAvatar";
4
- import { AvatarConstants } from "../../../../../../cc"; // Have to tryout some better implementation to return components logic
4
+ import { AvatarConstants } from "../../../../../../cc";
5
+
6
+ const renderLabeledAvatar = (imageSrc, label, name, tooltip, ref, dispatch) => /*#__PURE__*/React.createElement(LabeledAvatar, {
7
+ $data_avatarUrl: imageSrc,
8
+ $data_text: label,
9
+ $data_avatarName: name,
10
+ $i18n_avatarTooltip: tooltip,
11
+ $customProps_container: {
12
+ ref,
13
+ onClick: () => {
14
+ dispatch({
15
+ type: AvatarConstants.AVATAR_CLICKED
16
+ });
17
+ }
18
+ }
19
+ });
20
+
21
+ const renderAvatar = (imageSrc, name, tooltip, size, ref, dispatch) => /*#__PURE__*/React.createElement(Avatar, {
22
+ customProps: {
23
+ AvatarProps: {
24
+ ref
25
+ }
26
+ },
27
+ src: imageSrc,
28
+ name: name,
29
+ title: tooltip,
30
+ size: size,
31
+ onClick: () => {
32
+ dispatch({
33
+ type: AvatarConstants.AVATAR_CLICKED
34
+ });
35
+ }
36
+ });
5
37
 
6
38
  function AvatarView(_ref, ref) {
7
39
  let {
@@ -20,38 +52,10 @@ function AvatarView(_ref, ref) {
20
52
  } = state.properties;
21
53
 
22
54
  if (!!label) {
23
- return /*#__PURE__*/React.createElement(LabeledAvatar, {
24
- $data_avatarUrl: imageSrc,
25
- $data_text: label,
26
- $data_avatarName: name,
27
- $i18n_avatarTooltip: tooltip,
28
- $customProps_container: {
29
- ref,
30
- onClick: () => {
31
- dispatch({
32
- type: AvatarConstants.AVATAR_CLICKED
33
- });
34
- }
35
- }
36
- });
55
+ return renderLabeledAvatar(imageSrc, label, name, tooltip, ref, dispatch);
37
56
  }
38
57
 
39
- return /*#__PURE__*/React.createElement(Avatar, {
40
- customProps: {
41
- AvatarProps: {
42
- ref
43
- }
44
- },
45
- src: imageSrc,
46
- name: name,
47
- title: tooltip,
48
- size: size,
49
- onClick: () => {
50
- dispatch({
51
- type: AvatarConstants.AVATAR_CLICKED
52
- });
53
- }
54
- });
58
+ return renderAvatar(imageSrc, name, tooltip, size, ref, dispatch);
55
59
  }
56
60
 
57
61
  export default AvatarView;
@@ -1,5 +1,5 @@
1
- import React from "react";
2
- import TableEmail from "@zohodesk-private/desk-components/es/table/TableEmail/TableEmail";
1
+ import React from 'react';
2
+ import TableEmail from '@zohodesk-private/desk-components/es/table/TableEmail/TableEmail';
3
3
  import { EmailConstants } from "../../../../../../cc";
4
4
 
5
5
  function EmailView(_ref, ref) {
@@ -0,0 +1,13 @@
1
+ import { createCustomComponent } from "../../../../../../custom-component";
2
+ import BooleanProperties from "../../../../../../../cc/fields/boolean/Properties";
3
+ import BooleanEvents from "../../../../../../../cc/fields/boolean/Events";
4
+ import CheckboxFieldView from "./CheckboxFieldView";
5
+ import { EventHandlersFactory } from "./EventHandlersFactory";
6
+ const CheckboxField = createCustomComponent({
7
+ name: 'CheckboxField',
8
+ View: CheckboxFieldView,
9
+ properties: BooleanProperties,
10
+ events: BooleanEvents,
11
+ eventHandlers: EventHandlersFactory.create()
12
+ });
13
+ export default CheckboxField;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { Checkbox } from "../../../..";
3
+ export default function CheckboxFieldView(_ref, ref) {
4
+ let {
5
+ state
6
+ } = _ref;
7
+ const {
8
+ value
9
+ } = state.properties;
10
+ return /*#__PURE__*/React.createElement(Checkbox, {
11
+ getRef: ref,
12
+ checked: value,
13
+ disabled: false,
14
+ readonly: false,
15
+ label: "",
16
+ tooltip: ""
17
+ });
18
+ }
@@ -0,0 +1,29 @@
1
+ import CheckboxConstants from "../../../../../../../cc/checkbox/Constants";
2
+ import FieldConstants from "../../../../../../../cc/fields/field/Constants";
3
+ export class EventHandlersFactory {
4
+ static create() {
5
+ const changeHandler = input => {
6
+ const {
7
+ state,
8
+ dispatch
9
+ } = input;
10
+ const {
11
+ name: fieldName,
12
+ value: currentValue
13
+ } = state.properties;
14
+ const toggledValue = !currentValue;
15
+ dispatch({
16
+ type: FieldConstants.FIELD_CHANGED,
17
+ payload: {
18
+ fieldName,
19
+ value: toggledValue
20
+ }
21
+ });
22
+ };
23
+
24
+ return {
25
+ [CheckboxConstants.CHECKBOX_TOGGLED]: changeHandler
26
+ };
27
+ }
28
+
29
+ }
@@ -0,0 +1,14 @@
1
+ import { createCustomComponent } from "../../../../../../custom-component";
2
+ import CurrencyProperties from "../../../../../../../cc/fields/currency/Properties";
3
+ import CurrencyEvents from "../../../../../../../cc/fields/currency/Events";
4
+ import TextToFieldClickBehaviourFactory from "../../../../../../behaviours/text-to-field-click/frameworks/ui/TextToFieldClickBehaviourFactory";
5
+ import { CurrencyFieldView } from "./CurrencyFieldView";
6
+ const CurrencyField = createCustomComponent({
7
+ name: 'CurrencyField',
8
+ View: CurrencyFieldView,
9
+ properties: CurrencyProperties,
10
+ behaviours: [TextToFieldClickBehaviourFactory.create()],
11
+ events: CurrencyEvents,
12
+ eventHandlers: {}
13
+ });
14
+ export default CurrencyField;