@zohodesk/library-platform 1.1.3-exp.3 → 1.1.3-exp.4

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 (113) hide show
  1. package/es/bc/zhttp/Errors.js +14 -0
  2. package/es/bc/zhttp/index.js +3 -1
  3. package/es/bc/zlist/Constants.js +8 -1
  4. package/es/bc/zlist/Events.js +140 -0
  5. package/es/bc/zlist/index.js +2 -1
  6. package/es/bc/zrecord/Constants.js +3 -1
  7. package/es/cc/component/FallbackView.js +1 -0
  8. package/es/cc/fields/currency/Model.js +2 -0
  9. package/es/cc/fields/field/Properties.js +1 -1
  10. package/es/cc/fields/formula/Model.js +5 -0
  11. package/es/cc/index.js +1 -0
  12. package/es/cc/link/Properties.js +0 -1
  13. package/es/cc/table-connected/ErrorEventType.js +32 -0
  14. package/es/cc/table-connected/Events.js +96 -0
  15. package/es/cc/table-connected/Properties.js +16 -0
  16. package/es/cc/table-connected/SdkContract.js +120 -0
  17. package/es/cc/table-connected/constants/Events.js +2 -0
  18. package/es/cc/table-connected/index.js +3 -1
  19. package/es/cc/table-list/Constants.js +4 -0
  20. package/es/cc/table-list/Properties.js +25 -0
  21. package/es/cc/table-list/row/Properties.js +44 -0
  22. package/es/index.js +2 -1
  23. package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +116 -4
  24. package/es/library/custom-component/applications/interfaces/gateways/ISchemaValidator.js +1 -0
  25. package/es/library/custom-component/applications/usecases/InitializeUseCase.js +3 -2
  26. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +3 -2
  27. package/es/library/custom-component/domain/entities/Component.js +16 -3
  28. package/es/library/custom-component/domain/entities/Properties.js +19 -1
  29. package/es/library/custom-component/frameworks/json-schema-validator/Validator.js +36 -1
  30. package/es/library/custom-component/frameworks/ui/CreateCustomComponent.js +23 -11
  31. package/es/library/custom-component/frameworks/ui/DependencyFactory.js +4 -3
  32. package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
  33. package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +15 -0
  34. package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +105 -0
  35. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +85 -15
  36. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +240 -1
  37. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +28 -4
  38. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +25 -9
  39. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +11 -2
  40. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +50 -8
  41. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +6 -1
  42. package/es/library/dot/components/table-list/frameworks/utils/getHeaderClasses.js +37 -0
  43. package/es/library/dot/components/table-list/frameworks/utils/getTableListClassName.js +37 -0
  44. package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +90 -0
  45. package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/TextAreaView.js +1 -1
  46. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/ClientActionsAdapter.js +96 -0
  47. package/es/platform/client-actions/components/action-event-mediator/frameworks/ui/EventHandlersFactory.js +11 -3
  48. package/es/platform/client-actions/template-resolver/index.js +1 -0
  49. package/es/platform/client-actions/translators/context-resolver/index.js +6 -6
  50. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +1 -1
  51. package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
  52. package/es/platform/components/table-connected/adapters/resources/ErrorPrinter.js +20 -0
  53. package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +85 -0
  54. package/es/platform/components/table-connected/frameworks/ErrorEventHandlersFactory.js +126 -0
  55. package/es/platform/components/table-connected/frameworks/EventHandlersFactory.js +39 -3
  56. package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +4 -2
  57. package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +2 -0
  58. package/es/platform/components/table-connected/frameworks/TableConnectedView.js +8 -2
  59. package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
  60. package/es/platform/data-source/index.js +2 -0
  61. package/es/platform/sdk/application/interfaces/gateways/AbstractResource.js +1 -2
  62. package/es/platform/sdk/domain/entities/ResourceManager.js +1 -1
  63. package/es/platform/zdata-source/domain/entities/DataSource.js +18 -12
  64. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +7 -1
  65. package/es/platform/zform/adapters/presenter/FormTranslator.js +6 -127
  66. package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +32 -0
  67. package/es/platform/zform/adapters/presenter/translators/fields/BooleanFieldTranslator.js +20 -0
  68. package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +29 -0
  69. package/es/platform/zform/adapters/presenter/translators/fields/DateFieldTranslator.js +20 -0
  70. package/es/platform/zform/adapters/presenter/translators/fields/DateTimeFieldTranslator.js +21 -0
  71. package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +29 -0
  72. package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +30 -0
  73. package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +30 -0
  74. package/es/platform/zform/adapters/presenter/translators/fields/MultiselectFieldTranslator.js +29 -0
  75. package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +30 -0
  76. package/es/platform/zform/adapters/presenter/translators/fields/PercentageFieldTranslator.js +30 -0
  77. package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +29 -0
  78. package/es/platform/zform/adapters/presenter/translators/fields/PicklistFieldTranslator.js +29 -0
  79. package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +30 -0
  80. package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +27 -0
  81. package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +30 -0
  82. package/es/platform/zform/adapters/presenter/translators/fields/index.js +15 -0
  83. package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +3 -1
  84. package/es/platform/zform/domain/ZField.js +61 -16
  85. package/es/platform/zform/domain/ZSection.js +20 -7
  86. package/es/platform/zhttp/applications/usecases/FetchUseCase.js +111 -66
  87. package/es/platform/zlist/adapters/controllers/FieldExecuteFailedController.js +25 -0
  88. package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
  89. package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
  90. package/es/platform/zlist/adapters/gateways/Repository.js +12 -2
  91. package/es/platform/zlist/adapters/gateways/Service.js +8 -0
  92. package/es/platform/zlist/adapters/presenters/TableTranslator.js +15 -4
  93. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +11 -12
  94. package/es/platform/zlist/adapters/presenters/translators/EmptyViewModel.js +2 -1
  95. package/es/platform/zlist/adapters/presenters/translators/Header.js +3 -2
  96. package/es/platform/zlist/adapters/presenters/translators/HeadersTranslator.js +3 -2
  97. package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +1 -0
  98. package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +3 -0
  99. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
  100. package/es/platform/zlist/applications/entities-factory/ListFactory.js +3 -2
  101. package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
  102. package/es/platform/zlist/applications/usecases/FetchMoreUseCase.js +1 -1
  103. package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
  104. package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
  105. package/es/platform/zlist/applications/usecases/RecordExecuteFailedUseCase.js +3 -2
  106. package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
  107. package/es/platform/zlist/domain/entities/List.js +61 -48
  108. package/es/platform/zlist/domain/entities/ListErrorState.js +167 -0
  109. package/es/platform/zlist/frameworks/EventHandlersFactory.js +13 -3
  110. package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +6 -0
  111. package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
  112. package/es/platform/zrecord/domain/entities/RecordsManager.js +3 -1
  113. package/package.json +6 -3
@@ -15,11 +15,55 @@ import DeleteMultipleRecordUseCase from "../../../../zlist/applications/usecases
15
15
  import RecordUpdateUseCase from "../../../../zlist/applications/usecases/RecordUpdateUseCase";
16
16
  import UpdateMultipleRecordUseCase from "../../../../zlist/applications/usecases/UpdateMultipleRecordUseCase";
17
17
  import GetContextUseCase from "../../../../zlist/applications/usecases/GetContextUseCase";
18
+ import ReOrderUseCase from "../../../../zlist/applications/usecases/ReOrderUseCase";
19
+ import { SdkContracts } from "../../../../../cc/table-connected/SdkContract";
20
+ import Validator from "../../../../../library/custom-component/frameworks/json-schema-validator/Validator";
21
+ import ErrorPrinter from "./ErrorPrinter";
18
22
  export class SmartTableResource extends AbstractResource {
19
23
  initialize() {}
20
24
 
21
25
  destroy() {}
22
26
 
27
+ safeValidateInput(meta, input) {
28
+ try {
29
+ const result = Validator.validate(meta, input);
30
+ return result;
31
+ } catch (error) {
32
+ return {
33
+ isValid: false,
34
+ errors: [{
35
+ dataPath: '',
36
+ keyword: 'internal',
37
+ message: 'invalid schema'
38
+ }]
39
+ };
40
+ }
41
+ }
42
+
43
+ validateInput(methodName, input, meta) {
44
+ const {
45
+ isValid,
46
+ errors
47
+ } = this.safeValidateInput(meta, input);
48
+
49
+ if (!isValid) {
50
+ const title = `%c Invalid sdk input for %c${methodName}`;
51
+ const styles = ['color: red; font-weight: bold;', 'color: #FF6F61; font-weight: bold;'];
52
+ ErrorPrinter.displaySchemaErrors({
53
+ msg: title,
54
+ styles
55
+ }, errors, '');
56
+ throw {
57
+ code: 'ValidationError',
58
+ message: `Invalid input for ${methodName}`,
59
+ details: {
60
+ methodName,
61
+ errors
62
+ }
63
+ };
64
+ }
65
+ }
66
+
23
67
  getRecordDependencies() {
24
68
  const dependencies = {
25
69
  repository: new ZRecordRepository(),
@@ -82,6 +126,9 @@ export class SmartTableResource extends AbstractResource {
82
126
  }
83
127
 
84
128
  getRecord(recordId) {
129
+ this.validateInput('getRecord', {
130
+ recordId
131
+ }, SdkContracts.getRecordInputMeta);
85
132
  const {
86
133
  getData,
87
134
  setData
@@ -96,6 +143,9 @@ export class SmartTableResource extends AbstractResource {
96
143
  }
97
144
 
98
145
  getContext(variableName) {
146
+ this.validateInput('getContext', {
147
+ variableName
148
+ }, SdkContracts.getContextInputMeta);
99
149
  const {
100
150
  getData,
101
151
  setData
@@ -110,6 +160,9 @@ export class SmartTableResource extends AbstractResource {
110
160
  }
111
161
 
112
162
  deleteRecord(recordId) {
163
+ this.validateInput('deleteRecord', {
164
+ recordId
165
+ }, SdkContracts.deleteRecordInputMeta);
113
166
  const {
114
167
  dispatch
115
168
  } = this.dependencies;
@@ -129,6 +182,10 @@ export class SmartTableResource extends AbstractResource {
129
182
 
130
183
  deleteRecords(recordIds) {
131
184
  let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
185
+ this.validateInput('deleteRecords', {
186
+ recordIds,
187
+ shouldFetch
188
+ }, SdkContracts.deleteRecordsInputMeta);
132
189
  const {
133
190
  dispatch
134
191
  } = this.dependencies;
@@ -149,6 +206,11 @@ export class SmartTableResource extends AbstractResource {
149
206
 
150
207
  updateRecord(recordId, record) {
151
208
  let shouldFetch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
209
+ this.validateInput('updateRecord', {
210
+ recordId,
211
+ record,
212
+ shouldFetch
213
+ }, SdkContracts.updateRecordInputMeta);
152
214
  const {
153
215
  dispatch
154
216
  } = this.dependencies;
@@ -170,6 +232,10 @@ export class SmartTableResource extends AbstractResource {
170
232
 
171
233
  updateRecords(recordsMap) {
172
234
  let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
235
+ this.validateInput('updateRecords', {
236
+ recordsMap,
237
+ shouldFetch
238
+ }, SdkContracts.updateRecordsInputMeta);
173
239
  const {
174
240
  dispatch
175
241
  } = this.dependencies;
@@ -189,6 +255,9 @@ export class SmartTableResource extends AbstractResource {
189
255
  }
190
256
 
191
257
  selectRecords(ids) {
258
+ this.validateInput('selectRecords', {
259
+ ids
260
+ }, SdkContracts.selectRecordsInputMeta);
192
261
  const {
193
262
  dispatch
194
263
  } = this.dependencies;
@@ -201,6 +270,9 @@ export class SmartTableResource extends AbstractResource {
201
270
  }
202
271
 
203
272
  deselectRecords(ids) {
273
+ this.validateInput('deselectRecords', {
274
+ ids
275
+ }, SdkContracts.deselectRecordsInputMeta);
204
276
  const {
205
277
  dispatch
206
278
  } = this.dependencies;
@@ -234,4 +306,17 @@ export class SmartTableResource extends AbstractResource {
234
306
  });
235
307
  }
236
308
 
309
+ reOrderRecord(fromIndex, toIndex) {
310
+ const {
311
+ dispatch
312
+ } = this.dependencies;
313
+ const dependencies = this.getListDependencies();
314
+ const usecase = this.createUseCase(dependencies, ReOrderUseCase);
315
+ usecase.execute({
316
+ newIndex: toIndex,
317
+ oldIndex: fromIndex,
318
+ dispatch
319
+ });
320
+ }
321
+
237
322
  }
@@ -0,0 +1,126 @@
1
+ import { ZLIST_FETCH_MORE_RECORDS_FAILED, ZLIST_INITIAL_AVAILABLE_FIELDS_FETCH_FAILED, ZLIST_INITIAL_CLIENT_ACTIONS_FETCH_FAILED, ZLIST_INITIAL_RECORDS_FETCH_FAILED, ZLIST_INITIAL_SELECTED_FIELDS_FETCH_FAILED, ZLIST_RECORD_DELETE_FAILED, ZLIST_RECORD_UPDATE_FAILED } from "../../../../bc/zlist/Constants";
2
+ import { ERROR_OCCURRED } from "../../../../cc/table-connected/constants/Events";
3
+ import { ErrorCode } from "../../../../cc/table-connected/ErrorEventType";
4
+ export default class ErrorEventHandlersFactory {
5
+ static create() {
6
+ return {
7
+ [ZLIST_FETCH_MORE_RECORDS_FAILED]: _ref => {
8
+ let {
9
+ action,
10
+ dispatch
11
+ } = _ref;
12
+ return dispatch({
13
+ type: ERROR_OCCURRED,
14
+ payload: {
15
+ code: ErrorCode.FETCH_MORE_RECORDS_FAILED,
16
+ message: action.payload.error.message,
17
+ errorDetails: {
18
+ from: action.payload.from,
19
+ limit: action.payload.limit,
20
+ error: action.payload.error
21
+ }
22
+ }
23
+ });
24
+ },
25
+ [ZLIST_INITIAL_AVAILABLE_FIELDS_FETCH_FAILED]: _ref2 => {
26
+ let {
27
+ action,
28
+ dispatch
29
+ } = _ref2;
30
+ return dispatch({
31
+ type: ERROR_OCCURRED,
32
+ payload: {
33
+ code: ErrorCode.INITIAL_AVAILABLE_FIELDS_FETCH_FAILED,
34
+ message: action.payload.error.message,
35
+ errorDetails: {
36
+ error: action.payload.error
37
+ }
38
+ }
39
+ });
40
+ },
41
+ [ZLIST_INITIAL_CLIENT_ACTIONS_FETCH_FAILED]: _ref3 => {
42
+ let {
43
+ action,
44
+ dispatch
45
+ } = _ref3;
46
+ return dispatch({
47
+ type: ERROR_OCCURRED,
48
+ payload: {
49
+ code: ErrorCode.INITIAL_CLIENT_ACTIONS_FETCH_FAILED,
50
+ message: action.payload.error.message,
51
+ errorDetails: {
52
+ error: action.payload.error
53
+ }
54
+ }
55
+ });
56
+ },
57
+ [ZLIST_INITIAL_RECORDS_FETCH_FAILED]: _ref4 => {
58
+ let {
59
+ action,
60
+ dispatch
61
+ } = _ref4;
62
+ return dispatch({
63
+ type: ERROR_OCCURRED,
64
+ payload: {
65
+ code: ErrorCode.INITIAL_RECORDS_FETCH_FAILED,
66
+ message: action.payload.error.message,
67
+ errorDetails: {
68
+ error: action.payload.error
69
+ }
70
+ }
71
+ });
72
+ },
73
+ [ZLIST_INITIAL_SELECTED_FIELDS_FETCH_FAILED]: _ref5 => {
74
+ let {
75
+ action,
76
+ dispatch
77
+ } = _ref5;
78
+ return dispatch({
79
+ type: ERROR_OCCURRED,
80
+ payload: {
81
+ code: ErrorCode.INITIAL_SELECTED_FIELDS_FETCH_FAILED,
82
+ message: action.payload.error.message,
83
+ errorDetails: {
84
+ error: action.payload.error
85
+ }
86
+ }
87
+ });
88
+ },
89
+ [ZLIST_RECORD_DELETE_FAILED]: _ref6 => {
90
+ let {
91
+ action,
92
+ dispatch
93
+ } = _ref6;
94
+ return dispatch({
95
+ type: ERROR_OCCURRED,
96
+ payload: {
97
+ code: ErrorCode.RECORD_DELETE_FAILED,
98
+ message: action.payload.error.message,
99
+ errorDetails: {
100
+ recordId: action.payload.recordId,
101
+ error: action.payload.error
102
+ }
103
+ }
104
+ });
105
+ },
106
+ [ZLIST_RECORD_UPDATE_FAILED]: _ref7 => {
107
+ let {
108
+ action,
109
+ dispatch
110
+ } = _ref7;
111
+ return dispatch({
112
+ type: ERROR_OCCURRED,
113
+ payload: {
114
+ code: ErrorCode.RECORD_UPDATE_FAILED,
115
+ message: action.payload.error.message,
116
+ errorDetails: {
117
+ recordId: action.payload.recordId,
118
+ error: action.payload.error
119
+ }
120
+ }
121
+ });
122
+ }
123
+ };
124
+ }
125
+
126
+ }
@@ -10,15 +10,18 @@ import ResizeStartController from "../adapters/controllers/ResizeStartController
10
10
  import ResizeByMouseController from "../adapters/controllers/ResizeByMouseController";
11
11
  import ResizeEndController from "../adapters/controllers/ResizeEndController";
12
12
  import { ResizeFinishController } from "../adapters/controllers/ResizeFinishController";
13
+ import { ReOrderFinishController } from "../adapters/controllers/ReOrderFinishController";
13
14
  import ScrollController from "../adapters/controllers/ScrollController";
14
15
  import ColumnChooserUpdateController from "../adapters/controllers/ColumnChooserUpdateController";
15
16
  import ColumnChooserOpenedController from "../adapters/controllers/ColumnChooserOpenedController";
16
17
  import { platformSDK } from "../../../sdk/frameworks/Sdk";
18
+ import ErrorEventHandlersFactory from "./ErrorEventHandlersFactory";
17
19
  const {
18
20
  TABLE_LIST_RESIZE_START_REQUESTED,
19
21
  TABLE_LIST_RESIZE_MOVE_REQUESTED,
20
22
  TABLE_LIST_RESIZE_END_REQUESTED,
21
- TABLE_LIST_SCROLLED
23
+ TABLE_LIST_SCROLLED,
24
+ TABLE_LIST_ROW_DRAG_END
22
25
  } = TableListEventConstants;
23
26
 
24
27
  function createHandlerWithSdk(handler) {
@@ -44,7 +47,8 @@ export default class EventHandlersFactory {
44
47
  }
45
48
 
46
49
  static create(eventHandlers) {
47
- return { ...EventHandlersFactory.getSdkWrappedEventHandler(eventHandlers),
50
+ const wrapped = EventHandlersFactory.getSdkWrappedEventHandler(eventHandlers);
51
+ const defaultEventHandlers = {
48
52
  NAVIGATION: NavigationHandler,
49
53
  [RESIZE_FINISHED]: new ResizeFinishController().handle,
50
54
  [TABLE_LIST_RESIZE_START_REQUESTED]: new ResizeStartController().handle,
@@ -92,10 +96,42 @@ export default class EventHandlersFactory {
92
96
  type: SmartTableConstants.Events.SELECTION_LIMIT_EXCEEDED,
93
97
  payload: action.payload
94
98
  });
95
- }
99
+ },
100
+ [TABLE_LIST_ROW_DRAG_END]: new ReOrderFinishController().handle
96
101
  };
102
+ return mergeEventHandlers([defaultEventHandlers, ErrorEventHandlersFactory.create(), wrapped]);
103
+ }
104
+
105
+ }
106
+
107
+ function mergeEventHandlers(eventHandlersList) {
108
+ const mergedEventHandlers = {};
109
+ const allEventNames = new Set();
110
+
111
+ for (const handlers of eventHandlersList) {
112
+ Object.keys(handlers).forEach(eventName => allEventNames.add(eventName));
97
113
  }
98
114
 
115
+ for (const eventName of allEventNames) {
116
+ mergedEventHandlers[eventName] = createMergedHandler(eventHandlersList, eventName);
117
+ }
118
+
119
+ return mergedEventHandlers;
120
+ }
121
+
122
+ function createMergedHandler(eventHandlersList, eventName) {
123
+ return function () {
124
+ for (const handlers of eventHandlersList) {
125
+ const handler = handlers[eventName];
126
+
127
+ if (typeof handler === 'function') {
128
+ try {
129
+ handler(...arguments);
130
+ } catch {// Silently ignore errors
131
+ }
132
+ }
133
+ }
134
+ };
99
135
  }
100
136
 
101
137
  function NavigationHandler(event) {
@@ -15,7 +15,8 @@ export default class ListSdkFactory {
15
15
  updateRecords: function (recordsMap) {
16
16
  let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
17
17
  return smartTable.updateRecords(recordsMap, shouldFetch);
18
- }
18
+ },
19
+ reOrderRecord: (fromIndex, toIndex) => smartTable.reOrderRecord(fromIndex, toIndex)
19
20
  };
20
21
  }
21
22
 
@@ -47,7 +48,8 @@ export default class ListSdkFactory {
47
48
  selectRecords: selectionSdks.selectRecords,
48
49
  deselectRecords: selectionSdks.deselectRecords,
49
50
  selectAllRecords: selectionSdks.selectAllRecords,
50
- deselectAllRecords: selectionSdks.deselectAllRecords
51
+ deselectAllRecords: selectionSdks.deselectAllRecords,
52
+ reOrderRecord: recordSdks.reOrderRecord
51
53
  }
52
54
  };
53
55
  }
@@ -33,6 +33,7 @@ function combineDataSourceWithDefault(dataSource) {
33
33
  };
34
34
  }
35
35
 
36
+ import { SmartTableEventsContracts } from "../../../../cc/table-connected";
36
37
  export default class TableConnectedFactory {
37
38
  static create(_ref) {
38
39
  let {
@@ -52,6 +53,7 @@ export default class TableConnectedFactory {
52
53
  return createCustomComponent({
53
54
  name: name,
54
55
  View: View,
56
+ events: SmartTableEventsContracts,
55
57
  properties: Properties,
56
58
  eventHandlers: EventHandlersFactory.create(eventHandlers),
57
59
  transformState: TableTranslator.transformState,
@@ -8,6 +8,7 @@ function View(_ref, ref) {
8
8
  } = _ref;
9
9
  const {
10
10
  isLoading,
11
+ isReOrderLoading,
11
12
  data = [],
12
13
  rowActionsConfig,
13
14
  rowCursor,
@@ -15,10 +16,12 @@ function View(_ref, ref) {
15
16
  selection,
16
17
  emptyStateUiType,
17
18
  focussedRow,
18
- keyboardControlsConfig
19
+ keyboardControlsConfig,
20
+ reOrderConfig
19
21
  } = state.viewModel;
20
22
  const {
21
- resizerState
23
+ resizerState,
24
+ isError
22
25
  } = state.viewModel;
23
26
  const {
24
27
  preferences,
@@ -28,7 +31,10 @@ function View(_ref, ref) {
28
31
  autoColumnSizing
29
32
  } = preferences ? preferences : {};
30
33
  return /*#__PURE__*/React.createElement(TableList, {
34
+ reOrderConfig: reOrderConfig,
35
+ isReOrderLoading: isReOrderLoading,
31
36
  data: data,
37
+ isError: isError,
32
38
  rowCursor: rowCursor,
33
39
  sortBy: sortBy,
34
40
  resizerState: resizerState,
@@ -0,0 +1,44 @@
1
+ const reOrderRecord = {
2
+ name: 'records',
3
+ api: '/{{servicePrefix}}/{{orgName}}/api/v1/{{moduleName}}/reorder',
4
+ parameters: `{}`,
5
+ type: 'POST',
6
+ transformer: data => data,
7
+ getResponse: _ref => {
8
+ let {
9
+ payload
10
+ } = _ref;
11
+ let {
12
+ oldIndex,
13
+ newIndex
14
+ } = payload;
15
+ return {
16
+ oldIndex,
17
+ newIndex,
18
+ status: 'success'
19
+ }; // return Promise.reject({
20
+ // status: 500,
21
+ // error: "Something went wrong",
22
+ // });
23
+ },
24
+ requestBody: '{ "oldIndex": {{oldIndex}}, "newIndex": {{newIndex}} }',
25
+ properties: {
26
+ moduleName: {
27
+ required: true,
28
+ typeMetadata: {
29
+ schema: {
30
+ type: 'string'
31
+ }
32
+ }
33
+ },
34
+ recordId: {
35
+ required: true,
36
+ typeMetadata: {
37
+ schema: {
38
+ type: 'string'
39
+ }
40
+ }
41
+ }
42
+ }
43
+ };
44
+ export default reOrderRecord;
@@ -5,6 +5,7 @@ import deleteRecords from "./http-template/deleteRecords";
5
5
  import getAvailableFields from "./http-template/getAvailableFields";
6
6
  import getSelectedFields from "./http-template/getSelectedFields";
7
7
  import getClientActions from "./http-template/getClientActions";
8
+ import reOrderRecord from "./http-template/reOrderRecord";
8
9
  import { RecordApiActionName } from "../../bc/zrecord/Constants";
9
10
  import deleteRecord from "./http-template/deleteRecord";
10
11
  import fetchMyLayouts from "./http-template/fetchMyFormLayout";
@@ -22,6 +23,7 @@ let dataSource = {
22
23
  [RecordApiActionName.DELETE_RECORD]: deleteRecord,
23
24
  [RecordApiActionName.CREATE_RECORD]: createRecord,
24
25
  [RecordApiActionName.GET_CLIENTACTIONS]: getClientActions,
26
+ [RecordApiActionName.GET_REORDERRECORD]: reOrderRecord,
25
27
  getAvailableFields,
26
28
  getSelectedFields,
27
29
  updateSelectedFields,
@@ -1,7 +1,6 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
- import { SdkResourceDependencies } from "../../../domain/entities/interfaces/SdkResourceDependencies";
4
- export { SdkResourceDependencies };
3
+ // export { SdkResourceDependencies };
5
4
  export class AbstractResource {
6
5
  constructor() {
7
6
  _defineProperty(this, "dependencies", void 0);
@@ -78,7 +78,7 @@ export class ResourceManager {
78
78
  resourceInstances
79
79
  } = this;
80
80
  const instance = (_resourceInstances$re3 = resourceInstances[resourceName]) === null || _resourceInstances$re3 === void 0 ? void 0 : _resourceInstances$re3[instanceName];
81
- instance.updateDependencies({
81
+ instance && instance.updateDependencies({
82
82
  state,
83
83
  dispatch,
84
84
  updateState
@@ -76,21 +76,27 @@ export default class DataSource {
76
76
  const {
77
77
  actionName
78
78
  } = fullMetaData;
79
- const {
80
- type,
81
- metaData
82
- } = fullMetaData[DATA_SOURCE_FAILURE];
83
79
  const actions = [];
84
- type && actions.push({
85
- type,
86
- metaData,
87
- payload: {
88
- error
89
- }
90
- });
80
+ let failureMetaData = {};
81
+
82
+ if (fullMetaData[DATA_SOURCE_FAILURE]) {
83
+ const {
84
+ type,
85
+ metaData
86
+ } = fullMetaData[DATA_SOURCE_FAILURE];
87
+ failureMetaData = metaData;
88
+ type && actions.push({
89
+ type,
90
+ metaData: failureMetaData,
91
+ payload: {
92
+ error
93
+ }
94
+ });
95
+ }
96
+
91
97
  actions.push({
92
98
  type: DATA_SOURCE_EXECUTE_FAILED,
93
- metaData,
99
+ metaData: failureMetaData,
94
100
  payload: {
95
101
  actionName,
96
102
  error
@@ -1,7 +1,7 @@
1
1
  import { FIELD_FETCH_FAILURE, FIELD_FETCH_NO_CONTENT, FIELD_FETCH_SUCCESS } from "../../../../../bc/zfield/Constants";
2
2
  import FieldApiName from "../interfaces/FieldApiName";
3
3
  import { DATA_SOURCE_EXECUTE } from "../../../../../bc/zdata-source/Constants";
4
- import { DATA_SOURCE_SUCCESS } from "../../../../../bc/zdata-source/Symbols";
4
+ import { DATA_SOURCE_FAILURE, DATA_SOURCE_SUCCESS } from "../../../../../bc/zdata-source/Symbols";
5
5
 
6
6
  class FieldManager {
7
7
  constructor(fields, selectedFields, isFieldsFetching, isSelectedFieldsFetching) {
@@ -52,6 +52,12 @@ class FieldManager {
52
52
  metaData: {
53
53
  apiName
54
54
  }
55
+ },
56
+ [DATA_SOURCE_FAILURE]: {
57
+ metaData: {
58
+ apiName,
59
+ actionName: apiName
60
+ }
55
61
  }
56
62
  }
57
63
  };