@zohodesk/library-platform 1.1.1-exp.6 → 1.1.2-exp.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/es/bc/column-chooser/Constants.js +4 -0
  2. package/es/bc/column-chooser/EventHandlers.js +2 -0
  3. package/es/bc/column-chooser/Events.js +59 -0
  4. package/es/bc/column-chooser/Properties.js +18 -0
  5. package/es/bc/keyboard-controls/Constants.js +5 -0
  6. package/es/bc/keyboard-controls/Events.js +51 -0
  7. package/es/bc/keyboard-controls/Properties.js +11 -0
  8. package/es/bc/keyboard-controls/types/KeyboardControlBehaviourState.js +1 -0
  9. package/es/bc/zlist/Properties.js +15 -0
  10. package/es/cc/component/Slot.js +1 -0
  11. package/es/cc/component/SlotComponent.js +1 -0
  12. package/es/cc/component/properties/slotName.js +1 -0
  13. package/es/cc/fields/formula/Events.js +3 -0
  14. package/es/cc/fields/formula/Model.js +14 -0
  15. package/es/cc/fields/formula/Properties.js +3 -0
  16. package/es/cc/fields/index.js +1 -0
  17. package/es/cc/table-column-chooser/Constants.js +6 -0
  18. package/es/cc/table-column-chooser/Events.js +69 -0
  19. package/es/cc/table-column-chooser/Properties.js +122 -0
  20. package/es/cc/table-column-chooser/index.js +3 -0
  21. package/es/cc/table-connected/Properties.js +16 -0
  22. package/es/cc/table-connected/constants/Events.js +4 -1
  23. package/es/cc/table-list/Properties.js +27 -1
  24. package/es/cc/table-list/data-types/KeyboardControlsConfig.js +1 -0
  25. package/es/cc/table-list/row/Properties.js +18 -0
  26. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +36 -0
  27. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserUpdateController.js +25 -0
  28. package/es/desk-frameworks/table-connected/frameworks/EventHandlersFactory.js +8 -2
  29. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +5 -2
  30. package/es/desk-frameworks/table-connected/frameworks/TableConnectedView.js +9 -6
  31. package/es/library/behaviours/keyboard-controls/adapters/controllers/AbstractController.js +9 -0
  32. package/es/library/behaviours/keyboard-controls/adapters/controllers/DestructController.js +20 -0
  33. package/es/library/behaviours/keyboard-controls/adapters/controllers/DownArrowPressController.js +20 -0
  34. package/es/library/behaviours/keyboard-controls/adapters/controllers/EnterPressController.js +24 -0
  35. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusNextController.js +20 -0
  36. package/es/library/behaviours/keyboard-controls/adapters/controllers/FocusPreviousController.js +20 -0
  37. package/es/library/behaviours/keyboard-controls/adapters/controllers/InitializeController.js +20 -0
  38. package/es/library/behaviours/keyboard-controls/adapters/controllers/SpacePressController.js +24 -0
  39. package/es/library/behaviours/keyboard-controls/adapters/controllers/UpArrowPressController.js +20 -0
  40. package/es/library/behaviours/keyboard-controls/adapters/gateways/KeyboardHandler.js +81 -0
  41. package/es/library/behaviours/keyboard-controls/adapters/gateways/Repository.js +47 -0
  42. package/es/library/behaviours/keyboard-controls/adapters/gateways/Service.js +40 -0
  43. package/es/library/behaviours/keyboard-controls/adapters/presenters/Presenter.js +39 -0
  44. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCase.js +0 -0
  45. package/es/library/behaviours/keyboard-controls/applications/interfaces/UseCaseDependencies.js +1 -0
  46. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IKeyboardHandler.js +1 -0
  47. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IRepository.js +1 -0
  48. package/es/library/behaviours/keyboard-controls/applications/interfaces/gateways/IService.js +1 -0
  49. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DestructInputModel.js +1 -0
  50. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/DownArrowPressInputModel.js +1 -0
  51. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/EnterPressInputModel.js +1 -0
  52. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusNextInputModel.js +1 -0
  53. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/FocusPreviousInputModel.js +1 -0
  54. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/InitializeInputModel.js +1 -0
  55. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/RowActionInputModel.js +1 -0
  56. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SelectionInputModel.js +1 -0
  57. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/SpacePressInputModel.js +1 -0
  58. package/es/library/behaviours/keyboard-controls/applications/interfaces/input/UpArrowPressInputModel.js +1 -0
  59. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/IPresenter.js +1 -0
  60. package/es/library/behaviours/keyboard-controls/applications/interfaces/output/OutputModel.js +1 -0
  61. package/es/library/behaviours/keyboard-controls/applications/usecases/AbstractUseCase.js +19 -0
  62. package/es/library/behaviours/keyboard-controls/applications/usecases/DestructUsecase.js +17 -0
  63. package/es/library/behaviours/keyboard-controls/applications/usecases/DownArrowPress.js +16 -0
  64. package/es/library/behaviours/keyboard-controls/applications/usecases/EnterPress.js +19 -0
  65. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusNextUsecase.js +16 -0
  66. package/es/library/behaviours/keyboard-controls/applications/usecases/FocusPreviousUsecase.js +16 -0
  67. package/es/library/behaviours/keyboard-controls/applications/usecases/InitializeUsecase.js +20 -0
  68. package/es/library/behaviours/keyboard-controls/applications/usecases/SpacePress.js +19 -0
  69. package/es/library/behaviours/keyboard-controls/applications/usecases/UpArrowPress.js +16 -0
  70. package/es/library/behaviours/keyboard-controls/domain/entities/KeyboardControls.js +87 -0
  71. package/es/library/behaviours/keyboard-controls/domain/entities/interface/IKeyboardControls.js +1 -0
  72. package/es/library/behaviours/keyboard-controls/domain/entities/interface/KeyboardControlModel.js +1 -0
  73. package/es/library/behaviours/keyboard-controls/frameworks/EventHandlerFactory.js +48 -0
  74. package/es/library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory.js +23 -0
  75. package/es/library/custom-component/domain/entities/DefaultSlotNameAppend.js +10 -0
  76. package/es/library/custom-component/domain/entities/Properties.js +2 -0
  77. package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +18 -4
  78. package/es/library/custom-component/frameworks/ui/CreateSlotComponent.js +89 -0
  79. package/es/library/custom-component/frameworks/ui/__testcases__/CreateSlotComponent.spec.js +211 -0
  80. package/es/library/dot/components/action-location/frameworks/ui/ActionComponentMapping.js +4 -0
  81. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowClickController.js +36 -0
  82. package/es/library/dot/components/table-list/adapters/controllers/KeyboardRowSelectController.js +31 -0
  83. package/es/library/dot/components/table-list/adapters/controllers/index.js +3 -1
  84. package/es/library/dot/components/table-list/adapters/presenters/TableTranslator.js +5 -3
  85. package/es/library/dot/components/table-list/frameworks/ui/EventHandlersFactory.js +4 -1
  86. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +10 -3
  87. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +3 -0
  88. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +9 -10
  89. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +7 -3
  90. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +7 -2
  91. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +28 -0
  92. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +5 -0
  93. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowData.js +7 -2
  94. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooser.js +11 -0
  95. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/TableColumnChooserView.js +79 -0
  96. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +5 -0
  97. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/css/TableColumnFilter.module.css +5 -1
  98. package/es/library/dot/legacy-to-new-arch/table-column-sort/frameworks/ui/TableColumnSortView.js +7 -0
  99. package/es/library/dot/legacy-to-new-arch/table-column-sort/frameworks/ui/css/TableColumnSort.module.css +5 -1
  100. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +6 -8
  101. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRenderer.module.css +0 -6
  102. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActionsRendererView.js +1 -1
  103. package/es/platform/column-chooser/adapters/controllers/AbstractController.js +10 -0
  104. package/es/platform/column-chooser/adapters/controllers/ColumnChooserCloseController.js +21 -0
  105. package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +26 -0
  106. package/es/platform/column-chooser/adapters/controllers/ColumnChooserReorderController.js +26 -0
  107. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSaveController.js +21 -0
  108. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSearchController.js +24 -0
  109. package/es/platform/column-chooser/adapters/controllers/ColumnChooserSelectController.js +26 -0
  110. package/es/platform/column-chooser/adapters/gateways/Repository.js +38 -0
  111. package/es/platform/column-chooser/adapters/gateways/Service.js +34 -0
  112. package/es/platform/column-chooser/adapters/gateways/State.js +1 -0
  113. package/es/platform/column-chooser/adapters/presenters/Presenter.js +25 -0
  114. package/es/platform/column-chooser/applications/interfaces/UsecaseDependencies.js +1 -0
  115. package/es/platform/column-chooser/applications/interfaces/gateways/IRepository.js +1 -0
  116. package/es/platform/column-chooser/applications/interfaces/gateways/IService.js +1 -0
  117. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserCloseInput.js +1 -0
  118. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserOpenInput.js +1 -0
  119. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserReorderInput.js +1 -0
  120. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSaveInput.js +1 -0
  121. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSearchInput.js +1 -0
  122. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserSelectInput.js +1 -0
  123. package/es/platform/column-chooser/applications/interfaces/output/BehaviourState.js +1 -0
  124. package/es/platform/column-chooser/applications/interfaces/output/IPresenter.js +1 -0
  125. package/es/platform/column-chooser/applications/usecases/AbstractUseCase.js +18 -0
  126. package/es/platform/column-chooser/applications/usecases/ColumnChooserCloseUseCase.js +34 -0
  127. package/es/platform/column-chooser/applications/usecases/ColumnChooserOpenUseCase.js +20 -0
  128. package/es/platform/column-chooser/applications/usecases/ColumnChooserReorderUseCase.js +20 -0
  129. package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +31 -0
  130. package/es/platform/column-chooser/applications/usecases/ColumnChooserSearchUseCase.js +19 -0
  131. package/es/platform/column-chooser/applications/usecases/ColumnChooserSelectUseCase.js +26 -0
  132. package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +95 -0
  133. package/es/platform/column-chooser/domain/entities/ReorderEntityImp.js +35 -0
  134. package/es/platform/column-chooser/domain/entities/SearchEntityImp.js +28 -0
  135. package/es/platform/column-chooser/domain/entities/SelectEntityImp.js +58 -0
  136. package/es/platform/column-chooser/domain/entities/interfaces/ColumnChooser.js +1 -0
  137. package/es/platform/column-chooser/domain/entities/interfaces/ReorderEntity.js +1 -0
  138. package/es/platform/column-chooser/domain/entities/interfaces/SearchEntity.js +1 -0
  139. package/es/platform/column-chooser/domain/entities/interfaces/SelectEntity.js +1 -0
  140. package/es/platform/column-chooser/frameworks/ColumnChooserBehaviourFactory.js +19 -0
  141. package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +30 -0
  142. package/es/platform/data-source/http-template/getAvailableFields.js +1 -0
  143. package/es/platform/data-source/http-template/getClientActions.js +1 -1
  144. package/es/platform/data-source/http-template/updateSelectedFields.js +28 -0
  145. package/es/platform/data-source/index.js +2 -0
  146. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +3 -1
  147. package/es/platform/zfield/domain/entities/interfaces/FieldApiName.js +1 -0
  148. package/es/platform/zfield/frameworks/ZFieldBehaviourFactory.js +6 -1
  149. package/es/platform/zlist/adapters/gateways/Repository.js +4 -2
  150. package/es/platform/zlist/adapters/presenters/SelectionTranslator.js +92 -0
  151. package/es/platform/zlist/adapters/presenters/TableTranslator.js +32 -19
  152. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +26 -3
  153. package/es/platform/zlist/adapters/presenters/translators/Row.js +1 -1
  154. package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +26 -0
  155. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +6 -6
  156. package/es/platform/zlist/adapters/presenters/translators/fields/index.js +2 -1
  157. package/es/platform/zlist/adapters/presenters/translators/interfaces/State.js +2 -1
  158. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +78 -6
  159. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  160. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +4 -1
  161. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -1
  162. package/es/platform/zlist/domain/entities/List.js +14 -2
  163. package/package.json +6 -4
  164. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/SelectAll.js +0 -26
@@ -61,7 +61,7 @@ class FieldManager {
61
61
  const {
62
62
  apiName
63
63
  } = metaData;
64
- return apiName === 'availableFields' || apiName === 'selectedFields';
64
+ return apiName === 'availableFields' || apiName === 'selectedFields' || apiName === FieldApiName.UPDATE_SELECTED_FIELDS;
65
65
  }
66
66
 
67
67
  startFetching(apiName) {
@@ -85,6 +85,8 @@ class FieldManager {
85
85
  this.fields = data;
86
86
  } else if (apiName === FieldApiName.SELECTED_FIELDS) {
87
87
  this.selectedFields = data;
88
+ } else if (apiName === FieldApiName.UPDATE_SELECTED_FIELDS) {
89
+ this.selectedFields = data;
88
90
  }
89
91
  }
90
92
 
@@ -1,6 +1,7 @@
1
1
  var FieldApiName = /*#__PURE__*/function (FieldApiName) {
2
2
  FieldApiName["AVAILABLE_FIELDS"] = "availableFields";
3
3
  FieldApiName["SELECTED_FIELDS"] = "selectedFields";
4
+ FieldApiName["UPDATE_SELECTED_FIELDS"] = "updateSelectedFields";
4
5
  return FieldApiName;
5
6
  }(FieldApiName || {});
6
7
 
@@ -4,7 +4,12 @@ class ZFieldBehaviourFactory {
4
4
  static create(apiTemplates) {
5
5
  return {
6
6
  name: 'zfield',
7
- setInitialState: () => ({}),
7
+ setInitialState: () => ({
8
+ fields: [],
9
+ selectedFields: [],
10
+ isFieldsFetching: false,
11
+ isSelectedFieldsFetching: false
12
+ }),
8
13
  eventHandlers: ActionHandlerFactory.create(apiTemplates),
9
14
  properties: {}
10
15
  };
@@ -21,7 +21,8 @@ class Repository {
21
21
  context
22
22
  } = this.state.properties;
23
23
  const {
24
- sortBy
24
+ sortBy,
25
+ errorRecordFailed
25
26
  } = this.getZListState();
26
27
  const list = ListFactory.createList({
27
28
  context,
@@ -32,7 +33,8 @@ class Repository {
32
33
  ...query
33
34
  },
34
35
  sortBy: new SortBy(sortBy.id, sortBy.name, sortBy.order),
35
- limit: 50
36
+ limit: 50,
37
+ errorRecordFailed
36
38
  });
37
39
  return list;
38
40
  }
@@ -0,0 +1,92 @@
1
+ /* eslint-disable @zohodesk/architecturerules/define-property-schema */
2
+
3
+ /* eslint-disable max-lines-per-function */
4
+ import ClientActionsTranslator from "../../../client-actions/translators/client-actions-translator";
5
+ import DefaultClientActions from "./utils/DefaultClientActions";
6
+ export default function SelectionTranslator(state) {
7
+ const {
8
+ behaviours,
9
+ properties
10
+ } = state;
11
+ const {
12
+ columnChooserConfig,
13
+ selectionConfig,
14
+ context,
15
+ moduleName
16
+ } = properties;
17
+ const {
18
+ zfield,
19
+ selection,
20
+ columnChooser
21
+ } = behaviours;
22
+ const {
23
+ selected,
24
+ hasAllSelected
25
+ } = selection;
26
+ const availableFields = zfield.fields;
27
+ const columnChooserProps = getColumnChooserProps(columnChooser, availableFields, context, moduleName);
28
+ const clientActions = generateClientActions(selectionConfig, columnChooserConfig, hasAllSelected, columnChooserProps);
29
+ const contextAppliedActions = ClientActionsTranslator.transform(clientActions, context);
30
+ return {
31
+ selected,
32
+ hasAllSelected,
33
+ actions: contextAppliedActions
34
+ };
35
+ }
36
+
37
+ function generateClientActions(selectionConfig, columnChooserConfig, hasAllSelected, columnChooserProps) {
38
+ const clientActions = [];
39
+
40
+ if (selectionConfig.isEnabled) {
41
+ if (columnChooserConfig.isEnabled) {
42
+ const columnChooserAction = DefaultClientActions.createColumnChooserAction(columnChooserProps);
43
+ clientActions.push(columnChooserAction);
44
+ } else if (selectionConfig.isSelectAllEnabled) {
45
+ const selectAllColumnsAction = DefaultClientActions.createSelectAllAction(hasAllSelected);
46
+ clientActions.push(selectAllColumnsAction);
47
+ }
48
+ }
49
+
50
+ return clientActions;
51
+ }
52
+
53
+ function getColumnChooserProps(columnChooser) {
54
+ var _context$modules, _context$modules$find;
55
+
56
+ let availableFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
57
+ let context = arguments.length > 2 ? arguments[2] : undefined;
58
+ let moduleName = arguments.length > 3 ? arguments[3] : undefined;
59
+ const {
60
+ searchText: searchString,
61
+ fieldsOrder,
62
+ selected,
63
+ isMaxSelectionReached
64
+ } = columnChooser;
65
+ const fieldMap = mapFieldsToObject(availableFields);
66
+ const disabledFieldName = (_context$modules = context.modules) === null || _context$modules === void 0 ? void 0 : (_context$modules$find = _context$modules.find(module => module.apiKey === moduleName)) === null || _context$modules$find === void 0 ? void 0 : _context$modules$find.nameField;
67
+ const columnChooserOptions = fieldsOrder.map(fieldName => getOption(fieldMap[fieldName], !!selected[fieldName], disabledFieldName === fieldName));
68
+ return {
69
+ options: columnChooserOptions,
70
+ searchString,
71
+ hasSearch: searchString !== '' || columnChooserOptions.length > 3,
72
+ errorMessage: isMaxSelectionReached ? "You've reached the limit of 15 columns." : ''
73
+ };
74
+ }
75
+
76
+ function getOption(field, checked, disabled) {
77
+ return {
78
+ id: field.name,
79
+ disabled,
80
+ locked: false,
81
+ // TODO - field.isLocked,
82
+ value: field.i18NLabel,
83
+ checked
84
+ };
85
+ }
86
+
87
+ function mapFieldsToObject(availableFields) {
88
+ return availableFields.reduce((acc, field) => {
89
+ acc[field.name] = field;
90
+ return acc;
91
+ }, {});
92
+ }
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @zohodesk/architecturerules/define-property-schema */
2
+
1
3
  /* eslint-disable max-lines-per-function */
2
4
  import { Width as ColumnWidth } from "../../../../cc/table-list/data-types/Header";
3
5
  import HeadersTranslator from "./translators/HeadersTranslator";
@@ -8,6 +10,7 @@ import { TableListConstants } from "../../../../cc/table-list";
8
10
  import { ResizerStateTranslator } from "./translators/ResizerStateTranslator";
9
11
  import { calculateFieldWidths } from "./utils/calculateFieldWidths";
10
12
  import DefaultClientActions from "./utils/DefaultClientActions";
13
+ import SelectionTranslator from "./SelectionTranslator";
11
14
  const EMPTY_OBJECT = {};
12
15
  const EMPTY_ARRAY = [];
13
16
 
@@ -27,11 +30,13 @@ export default class TableTranslator {
27
30
  } = properties;
28
31
  const {
29
32
  localStorage: localStorageBehaviour,
30
- columnResizer
33
+ columnResizer,
34
+ keyboardControls
31
35
  } = behaviours;
32
36
  const {
33
37
  resizeConfig,
34
- preferences
38
+ preferences,
39
+ keyboardControlsConfig
35
40
  } = properties;
36
41
  context['servicePrefix'] = 'supportapi/zd'; // FIX: servicePrefix defaultValue should be available from properties
37
42
 
@@ -46,6 +51,10 @@ export default class TableTranslator {
46
51
  sortBy
47
52
  } = fallbackToDefault(zlist, {}); // FIX: zlist should be available by default
48
53
 
54
+ const {
55
+ focussedIndex
56
+ } = fallbackToDefault(keyboardControls, {}); // FIX: KeyboardControls should be available by default
57
+
49
58
  const {
50
59
  records,
51
60
  isFetching: isRecordsFetching
@@ -93,23 +102,27 @@ export default class TableTranslator {
93
102
  return {
94
103
  properties,
95
104
  behaviours,
96
- selection: behaviours === null || behaviours === void 0 ? void 0 : behaviours.selection,
97
- sortBy,
98
- rowCursor,
99
- resizerState: ResizerStateTranslator({
100
- columnResizer: columnResizer,
101
- resizeConfig: resizeConfig,
102
- headerNames: selectedFields,
103
- modifiedWidths
104
- }),
105
- rowActionsConfig: {
106
- hasActions: Boolean(rowActions === null || rowActions === void 0 ? void 0 : rowActions.length),
107
- // Boolean(newRowActions?.length),
108
- columnWidth: ColumnWidth.XSmall
109
- },
110
- isLoading,
111
- emptyStateUiType: componentMapping.emptyState || '',
112
- data
105
+ viewModel: {
106
+ selection: SelectionTranslator(state),
107
+ focussedRow: focussedIndex,
108
+ sortBy,
109
+ rowCursor,
110
+ resizerState: ResizerStateTranslator({
111
+ columnResizer: columnResizer,
112
+ resizeConfig: resizeConfig,
113
+ headerNames: selectedFields,
114
+ modifiedWidths
115
+ }),
116
+ rowActionsConfig: {
117
+ hasActions: Boolean(rowActions === null || rowActions === void 0 ? void 0 : rowActions.length),
118
+ // Boolean(newRowActions?.length),
119
+ columnWidth: ColumnWidth.XSmall
120
+ },
121
+ keyboardControlsConfig,
122
+ isLoading,
123
+ emptyStateUiType: componentMapping.emptyState || '',
124
+ data
125
+ }
113
126
  };
114
127
  }
115
128
 
@@ -2,11 +2,26 @@ import EmptyViewModel from "./EmptyViewModel";
2
2
  import * as FieldTranslators from "./fields";
3
3
  import ClientActionsTranslator from "../../../../client-actions/translators/client-actions-translator";
4
4
 
5
- function ColumnTranslator(fieldModel, record, fieldComponentMapping, fieldActions) {
5
+ //hacking temp url construction for lookup
6
+ function getLookupUrlConstructions(_ref) {
7
+ var _field$lookup, _field$lookup$module;
8
+
9
+ let {
10
+ field,
11
+ value,
12
+ context
13
+ } = _ref;
14
+ let {
15
+ orgName,
16
+ departmentName
17
+ } = context;
18
+ let lookupModuleName = field === null || field === void 0 ? void 0 : (_field$lookup = field.lookup) === null || _field$lookup === void 0 ? void 0 : (_field$lookup$module = _field$lookup.module) === null || _field$lookup$module === void 0 ? void 0 : _field$lookup$module.apiName;
19
+ return `/agent/${orgName}/${departmentName}/${lookupModuleName}/details/${value.id}`;
20
+ }
21
+
22
+ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, context) {
6
23
  var _record$cf;
7
24
 
8
- const field = { ...fieldModel
9
- };
10
25
  const {
11
26
  isCustomField,
12
27
  name,
@@ -33,6 +48,14 @@ function ColumnTranslator(fieldModel, record, fieldComponentMapping, fieldAction
33
48
  return EmptyViewModel();
34
49
  }
35
50
 
51
+ if (field.type == "LookUp") {
52
+ value.url = getLookupUrlConstructions({
53
+ field,
54
+ value,
55
+ context
56
+ });
57
+ }
58
+
36
59
  return {
37
60
  actions,
38
61
  ...fieldTranslator(field, value, {
@@ -15,7 +15,7 @@ export default function RowTranslator(_ref) {
15
15
  });
16
16
  return {
17
17
  id: record.id,
18
- columns: fields.map(field => ColumnTranslator(field, record, fieldComponentMapping, fieldActions)),
18
+ columns: fields.map(field => ColumnTranslator(field, record, fieldComponentMapping, fieldActions, context)),
19
19
  rowActionLocation: {
20
20
  type: rowActionsUiType,
21
21
  actions
@@ -0,0 +1,26 @@
1
+ import FieldTypes from "../../../../../../cc/fields/field/Types";
2
+ import FormulaFieldModel from "../../../../../../cc/fields/formula/Model";
3
+
4
+ const FormulaFieldTranslator = (field, value, appendToActionPayload) => {
5
+ const {
6
+ uiType,
7
+ name
8
+ } = field;
9
+ const fieldTypeFactory = {
10
+ STRING: FieldTypes.SingleLineField,
11
+ BOOLEAN: FieldTypes.CheckboxField,
12
+ DECIMAL: FieldTypes.DecimalField,
13
+ CURRENCY: FieldTypes.CurrencyField,
14
+ DATE: FieldTypes.DateField,
15
+ DATETIME: FieldTypes.DateTimeField
16
+ };
17
+ const setFieldType = fieldTypeFactory[field.returnType] || FieldTypes.SingleLineField;
18
+ return FormulaFieldModel({
19
+ uiType: uiType || setFieldType,
20
+ appendToActionPayload,
21
+ name,
22
+ value
23
+ });
24
+ };
25
+
26
+ export default FormulaFieldTranslator;
@@ -8,19 +8,19 @@ const LookUpFieldTranslator = (field, value, appendToActionPayload) => {
8
8
  } = field;
9
9
  const {
10
10
  id,
11
- firstName,
12
- lastName,
13
- photoURL = ''
11
+ name: nameValue,
12
+ photoURL,
13
+ url
14
14
  } = value;
15
- const lookupName = `${firstName} ${lastName}`;
16
15
  return LookupFieldModel({
17
16
  uiType: uiType || FieldTypes.LookUpField,
18
17
  appendToActionPayload,
19
18
  name,
20
19
  value: {
21
20
  id,
22
- name: lookupName,
23
- photoURL
21
+ name: nameValue,
22
+ photoURL,
23
+ url
24
24
  }
25
25
  });
26
26
  };
@@ -13,7 +13,8 @@ export { default as Date } from "./DateFieldTranslator";
13
13
  export { default as DateTime } from "./DateTimeFieldTranslator";
14
14
  export { default as Picklist } from "./PickListFieldTranslator";
15
15
  export { default as Multiselect } from "./MultiSelectFieldTranslator";
16
- export { default as LookUp } from "./LookUpFieldTranslator"; // // Field Name is to be similar to the API response
16
+ export { default as LookUp } from "./LookUpFieldTranslator";
17
+ export { default as Formula } from "./FormulaFieldTranslator"; // // Field Name is to be similar to the API response
17
18
  // class FieldTranslator {
18
19
  // static translate(field, value) {
19
20
  // const { type } = field;
@@ -1 +1,2 @@
1
- export {};
1
+ import { BehaviourState as ColumnChooserBehaviourState } from "../../../../../column-chooser/applications/interfaces/output/BehaviourState";
2
+ export { ColumnChooserBehaviourState };
@@ -1,8 +1,18 @@
1
+ /* eslint-disable max-lines-per-function */
1
2
  import ClientAction from "../../../../client-actions/behaviour/zclient-actions/domain/entities/ClientAction";
3
+ import { TableListConstants } from "../../../../../cc/table-list";
4
+ import { CheckboxConstants } from "../../../../../cc/checkbox";
5
+ const CHECKBOX_TOGGLED = CheckboxConstants.CHECKBOX_TOGGLED;
6
+ const TABLE_LIST_TOGGLE_ALL_SELECTION = TableListConstants.TABLE_LIST_TOGGLE_ALL_SELECTION;
2
7
 
3
8
  class DefaultClientActions {
4
9
  static constructAction(clientAction) {
5
- return new ClientAction(clientAction).toObject();
10
+ return new ClientAction({ ...clientAction,
11
+ modules: ['MODULE'],
12
+ component: 'SmartTable',
13
+ modifiedTime: '2024-11-21T06:11:59.000Z',
14
+ createdTime: '2024-11-21T06:11:59.000Z'
15
+ }).toObject();
6
16
  }
7
17
 
8
18
  static constructSortAction() {
@@ -37,16 +47,78 @@ class DefaultClientActions {
37
47
  },
38
48
  location: 'header_actions',
39
49
  id: '4000000080009',
40
- modules: ['MODULE'],
41
- name: 'SortBy Action',
42
- component: 'SmartTable',
43
- modifiedTime: '2024-11-21T06:11:59.000Z',
44
- createdTime: '2024-11-21T06:11:59.000Z'
50
+ name: 'SortBy Action'
45
51
  });
46
52
  }
47
53
 
48
54
  static createSortActions(fields, clientActions) {
49
55
  return [...clientActions, this.constructSortAction()];
56
+ } // TODO: maxLimit: 15,
57
+ // TODO: saveLabel: 'Save',
58
+ // TODO: cancelLabel: 'Cancel',
59
+ // TODO: searchPlaceholder: 'Search',
60
+ // TODO: iconTooltip: 'Column Chooser',
61
+ // TODO: heading: 'Select & Reorder Column',
62
+ // TODO: infoText: 'Info Content',
63
+ // TODO: emptySearchMessage: 'No Results',
64
+ // TODO: maxLimitMessage: "You've reached the limit of 15 columns."
65
+
66
+
67
+ static createColumnChooserAction(_ref) {
68
+ let {
69
+ options,
70
+ searchString,
71
+ hasSearch,
72
+ errorMessage
73
+ } = _ref;
74
+ return this.constructAction({
75
+ uiComponentMapping: {
76
+ component: 'TableColumnChooser',
77
+ name: 'ColumnChooser',
78
+ propertiesValueMapping: {
79
+ options,
80
+ searchString,
81
+ hasSearch,
82
+ errorMessage
83
+ },
84
+ eventMappings: [],
85
+ id: '4000000080013'
86
+ },
87
+ conditions: {
88
+ fields: [],
89
+ pattern: '1'
90
+ },
91
+ location: 'non_field_header_actions',
92
+ id: '4000000080019',
93
+ name: 'ColumnChooser Action'
94
+ });
95
+ }
96
+
97
+ static createSelectAllAction() {
98
+ let isChecked = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
99
+ return this.constructAction({
100
+ uiComponentMapping: {
101
+ component: 'TableSelectAll',
102
+ name: 'SelectAll',
103
+ propertiesValueMapping: {
104
+ checked: isChecked
105
+ },
106
+ eventMappings: [{
107
+ payloadValueMapping: {},
108
+ sourceEvent: CHECKBOX_TOGGLED,
109
+ targetEvent: TABLE_LIST_TOGGLE_ALL_SELECTION,
110
+ id: '4000000080025'
111
+ }],
112
+ id: '4000000080023'
113
+ },
114
+ conditions: {
115
+ fields: [],
116
+ pattern: '1'
117
+ },
118
+ location: 'non_field_header_actions',
119
+ id: '4000000080029',
120
+ name: 'SelectAll Action'
121
+ });
50
122
  }
51
123
 
52
124
  }
@@ -6,9 +6,10 @@ class ListFactory {
6
6
  limit,
7
7
  sortBy,
8
8
  query,
9
- context
9
+ context,
10
+ errorRecordFailed
10
11
  } = input;
11
- return new List(limit, sortBy, query, context);
12
+ return new List(limit, sortBy, query, context, errorRecordFailed);
12
13
  }
13
14
 
14
15
  }
@@ -9,7 +9,10 @@ class FetchMoreUseCase extends AbstractUseCase {
9
9
  repository
10
10
  } = this.dependencies;
11
11
  const list = repository.getList();
12
- dispatch(list.createMoreRecordFetchAction());
12
+
13
+ if (!list.getErrorRecordFailed()) {
14
+ dispatch(list.createMoreRecordFetchAction());
15
+ }
13
16
  }
14
17
 
15
18
  }
@@ -8,10 +8,12 @@ class RecordExecuteFailedUseCase extends AbstractUseCase {
8
8
  payload
9
9
  } = input;
10
10
  const {
11
- repository
11
+ repository,
12
+ presenter
12
13
  } = this.dependencies;
13
14
  const list = repository.getList();
14
15
  const actions = list.getRecordExecuteFailedActions(payload, metaData);
16
+ presenter.updateView(list.toObject());
15
17
  actions.forEach(action => {
16
18
  dispatch(action);
17
19
  });
@@ -6,16 +6,18 @@ import { SmartTableConstants } from "../../../../cc/table-connected";
6
6
  import SortBy from "./SortBy";
7
7
 
8
8
  class List {
9
- constructor(limit, sortBy, query, context) {
9
+ constructor(limit, sortBy, query, context, errorRecordFailed) {
10
10
  this.limit = limit;
11
11
  this.sortBy = sortBy;
12
12
  this.query = query;
13
13
  this.context = context;
14
+ this.errorRecordFailed = errorRecordFailed;
14
15
  }
15
16
 
16
17
  toObject() {
17
18
  return {
18
- sortBy: this.sortBy.toObject()
19
+ sortBy: this.sortBy.toObject(),
20
+ errorRecordFailed: this.errorRecordFailed
19
21
  };
20
22
  }
21
23
 
@@ -207,12 +209,22 @@ class List {
207
209
  return actions;
208
210
  }
209
211
 
212
+ getErrorRecordFailed() {
213
+ return this.errorRecordFailed;
214
+ }
215
+
210
216
  getRecordExecuteFailedActions(payload, metaData) {
211
217
  const {
212
218
  actionName
213
219
  } = metaData;
214
220
  const actions = [];
215
221
 
222
+ if (actionName === RecordApiActionName.GET_RECORDS) {
223
+ if (metaData.isAppend) {
224
+ this.errorRecordFailed = true;
225
+ }
226
+ }
227
+
216
228
  if (actionName === RecordApiActionName.DELETE_RECORD) {
217
229
  const {
218
230
  recordId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/library-platform",
3
- "version": "1.1.1-exp.6",
3
+ "version": "1.1.2-exp.0",
4
4
  "description": "",
5
5
  "main": "es/index.js",
6
6
  "files": [
@@ -44,7 +44,7 @@
44
44
  "@typescript-eslint/parser": "^7.11.0",
45
45
  "@zoho/SecurityJS": "5.0.2",
46
46
  "@zohodesk-private/css-variable-migrator": "^1.0.7",
47
- "@zohodesk-private/desk-components": "1.3.2",
47
+ "@zohodesk-private/desk-components": "1.0.0-temp-52",
48
48
  "@zohodesk-private/node-plugins": "1.1.9",
49
49
  "@zohodesk/a11y": "2.2.6",
50
50
  "@zohodesk/codestandard-analytics": "0.0.2",
@@ -71,11 +71,12 @@
71
71
  "jest-stare": "2.5.2",
72
72
  "jsep": "^0.3.5",
73
73
  "prettier": "3.3.3",
74
+ "react-sortable-hoc": "1.11.0",
74
75
  "ts-jest": "29.2.6",
75
76
  "typescript": "4.9.5"
76
77
  },
77
78
  "peerDependencies": {
78
- "@zohodesk-private/desk-components": "1.3.2",
79
+ "@zohodesk-private/desk-components": "1.0.0-temp-52",
79
80
  "@zohodesk/a11y": "2.2.6",
80
81
  "@zohodesk/components": "1.2.62",
81
82
  "@zohodesk/dot": "1.7.8",
@@ -85,7 +86,8 @@
85
86
  "@zohodesk/layout": "3.1.0",
86
87
  "@zohodesk/svg": "1.1.27",
87
88
  "@zohodesk/utils": "1.3.14",
88
- "color": "4.2.3"
89
+ "color": "4.2.3",
90
+ "react-sortable-hoc": "1.11.0"
89
91
  },
90
92
  "dependencies": {
91
93
  "ajv": "6.12.6",
@@ -1,26 +0,0 @@
1
- import React from 'react';
2
- import CheckBox from '@zohodesk/components/es/CheckBox/CheckBox';
3
- import TableHeadFirstNode from '@zohodesk-private/desk-components/es/table/TableHeadFirstNode/TableHeadFirstNode';
4
- import { TableListConstants } from "../../../../../../../../cc/table-list";
5
-
6
- function SelectAll(_ref) {
7
- let {
8
- isSelectionEnabled,
9
- isSelectAllEnabled,
10
- hasAllSelected,
11
- dispatch
12
- } = _ref;
13
-
14
- if (!isSelectionEnabled) {
15
- return null;
16
- }
17
-
18
- return /*#__PURE__*/React.createElement(TableHeadFirstNode, null, isSelectAllEnabled && /*#__PURE__*/React.createElement(CheckBox, {
19
- checked: hasAllSelected,
20
- onChange: () => dispatch({
21
- type: TableListConstants.TABLE_LIST_TOGGLE_ALL_SELECTION
22
- })
23
- }));
24
- }
25
-
26
- export default SelectAll;