@zohodesk/library-platform 1.1.3-exp.1 → 1.1.3-exp.2

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 (70) hide show
  1. package/README.md +3 -3
  2. package/es/bc/zlist/Constants.js +3 -1
  3. package/es/bc/zrecord/Constants.js +3 -1
  4. package/es/cc/table-connected/Properties.js +16 -0
  5. package/es/cc/table-list/Constants.js +4 -0
  6. package/es/cc/table-list/Properties.js +16 -0
  7. package/es/cc/table-list/row/Properties.js +35 -0
  8. package/es/index.js +4 -3
  9. package/es/library/dot/components/table-list/frameworks/hooks/useDropIndicator.js +8 -0
  10. package/es/library/dot/components/table-list/frameworks/hooks/useRowData.js +8 -0
  11. package/es/library/dot/components/table-list/frameworks/hooks/useTableRowReorder.js +93 -0
  12. package/es/library/dot/components/table-list/frameworks/ui/TableListView.js +67 -6
  13. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +145 -2
  14. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Header.js +22 -4
  15. package/es/library/dot/components/table-list/frameworks/ui/sub-components/Rows.js +22 -9
  16. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/MassAction.js +19 -2
  17. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +55 -10
  18. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/RowSelection.js +10 -0
  19. package/es/library/dot/components/table-list/frameworks/utils/reOrder.js +76 -0
  20. package/es/platform/client-actions/translators/client-actions-translator/index.js +5 -2
  21. package/es/platform/client-actions/translators/condition-resolver/field-evaluators/GetResolvedContextFieldValue.js +3 -2
  22. package/es/platform/client-actions/translators/context-resolver/index.js +1 -4
  23. package/es/platform/components/form-connected/frameworks/FormConnectedFactory.js +33 -0
  24. package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnectedView.js +1 -1
  25. package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormSdkFactory.js +3 -14
  26. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +28 -0
  27. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ColumnChooserUpdateController.js +5 -5
  28. package/es/platform/components/table-connected/adapters/controllers/ReOrderFinishController.js +21 -0
  29. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeByMouseController.js +1 -1
  30. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeEndController.js +1 -1
  31. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeFinishController.js +1 -1
  32. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ResizeStartController.js +2 -2
  33. package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/ScrollController.js +1 -1
  34. package/es/{desk-frameworks/table-connected/frameworks → platform/components/table-connected/adapters}/resources/SmartTableResource.js +35 -17
  35. package/es/{desk-frameworks → platform/components}/table-connected/frameworks/EventHandlersFactory.js +20 -17
  36. package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +57 -0
  37. package/es/platform/components/table-connected/frameworks/TableConnectedFactory.js +76 -0
  38. package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnectedView.js +5 -3
  39. package/es/platform/data-source/http-template/reOrderRecord.js +44 -0
  40. package/es/platform/data-source/index.js +2 -0
  41. package/es/platform/sdk/{frameworks → application/interfaces/gateways}/AbstractResource.js +1 -4
  42. package/es/platform/sdk/domain/entities/ResourceManager.js +1 -1
  43. package/es/platform/sdk/frameworks/Sdk.js +1 -1
  44. package/es/platform/zlist/adapters/controllers/ReOrderController.js +25 -0
  45. package/es/platform/zlist/adapters/controllers/ReOrderFailedController.js +26 -0
  46. package/es/platform/zlist/adapters/gateways/Repository.js +7 -0
  47. package/es/platform/zlist/adapters/gateways/Service.js +8 -0
  48. package/es/platform/zlist/adapters/presenters/TableTranslator.js +5 -1
  49. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +9 -10
  50. package/es/platform/zlist/adapters/presenters/utils/DefaultClientActions.js +1 -1
  51. package/es/platform/zlist/applications/interfaces/input/ReOrderRecordUseCaseInput.js +1 -0
  52. package/es/platform/zlist/applications/usecases/ReOrderFailedUseCase.js +22 -0
  53. package/es/platform/zlist/applications/usecases/ReOrderUseCase.js +25 -0
  54. package/es/platform/zlist/applications/usecases/RecordSuccessCallbackUsecase.js +24 -3
  55. package/es/platform/zlist/domain/entities/List.js +66 -2
  56. package/es/platform/zlist/frameworks/EventHandlersFactory.js +7 -3
  57. package/es/platform/zlist/frameworks/ZListBehaviourFactory.js +2 -1
  58. package/es/platform/zrecord/domain/entities/GetReOrderRecordsStrategy.js +40 -0
  59. package/es/platform/zrecord/domain/entities/RecordsManager.js +3 -1
  60. package/package.json +6 -4
  61. package/es/desk-frameworks/form-connected/frameworks/FormConnectedFactory.js +0 -33
  62. package/es/desk-frameworks/table-connected/adapters/controllers/ColumnChooserOpenedController.js +0 -36
  63. package/es/desk-frameworks/table-connected/frameworks/ListSdkFactory.js +0 -57
  64. package/es/desk-frameworks/table-connected/frameworks/TableConnectedFactory.js +0 -64
  65. /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/EventHandlersFactory.js +0 -0
  66. /package/es/{desk-frameworks → platform/components}/form-connected/frameworks/FormConnected.js +0 -0
  67. /package/es/{desk-frameworks → platform/components}/index.js +0 -0
  68. /package/es/{desk-frameworks → platform/components}/table-connected/adapters/controllers/AbstractController.js +0 -0
  69. /package/es/{desk-frameworks/table-connected/frameworks/resources → platform/components/table-connected/application/interfaces}/ISmartTableResource.js +0 -0
  70. /package/es/{desk-frameworks → platform/components}/table-connected/frameworks/TableConnected.js +0 -0
@@ -1,21 +1,26 @@
1
- import { AbstractResource } from "../../../../platform/sdk/frameworks/AbstractResource";
2
- import ZListRepository from "../../../../platform/zlist/adapters/gateways/Repository";
3
- import ZListSortBy from "../../../../platform/zlist/adapters/gateways/SortBy";
4
- import ZListPresenters from "../../../../platform/zlist/adapters/presenters/Presenters";
5
- import ZRecordRepository from "../../../../platform/zrecord/adapters/gateways/Repository";
6
- import ZRecordPresenter from "../../../../platform/zrecord/adapters/presenters/Presenter";
7
- import ListSelectRepository from "../../../../library/behaviours/list-selection/adapters/gateways/Repository";
8
- import ListSelectPresenter from "../../../../library/behaviours/list-selection/adapters/presenters/Presenter";
9
- import ListSelectSelectUsecase from "../../../../library/behaviours/list-selection/applications/usecases/Select";
10
- import ListSelectDeselectUsecase from "../../../../library/behaviours/list-selection/applications/usecases/Deselect";
11
- import GetMultipleRecordUseCase from "../../../../platform/zrecord/applications/usecases/GetMultipleRecordUseCase";
12
- import GetSingleRecordUseCase from "../../../../platform/zrecord/applications/usecases/GetSingleRecordUseCase";
13
- import DeleteSingleRecordUseCase from "../../../../platform/zlist/applications/usecases/DeleteSingleRecordUseCase";
14
- import DeleteMultipleRecordUseCase from "../../../../platform/zlist/applications/usecases/DeleteMultipleRecordUseCase";
15
- import RecordUpdateUseCase from "../../../../platform/zlist/applications/usecases/RecordUpdateUseCase";
16
- import UpdateMultipleRecordUseCase from "../../../../platform/zlist/applications/usecases/UpdateMultipleRecordUseCase";
17
- import GetContextUseCase from "../../../../platform/zlist/applications/usecases/GetContextUseCase";
1
+ import { AbstractResource } from "../../../../sdk/application/interfaces/gateways/AbstractResource";
2
+ import ZListRepository from "../../../../zlist/adapters/gateways/Repository";
3
+ import ZListSortBy from "../../../../zlist/adapters/gateways/SortBy";
4
+ import ZListPresenters from "../../../../zlist/adapters/presenters/Presenters";
5
+ import ZRecordRepository from "../../../../zrecord/adapters/gateways/Repository";
6
+ import ZRecordPresenter from "../../../../zrecord/adapters/presenters/Presenter";
7
+ import ListSelectRepository from "../../../../../library/behaviours/list-selection/adapters/gateways/Repository";
8
+ import ListSelectPresenter from "../../../../../library/behaviours/list-selection/adapters/presenters/Presenter";
9
+ import ListSelectSelectUsecase from "../../../../../library/behaviours/list-selection/applications/usecases/Select";
10
+ import ListSelectDeselectUsecase from "../../../../../library/behaviours/list-selection/applications/usecases/Deselect";
11
+ import GetMultipleRecordUseCase from "../../../../zrecord/applications/usecases/GetMultipleRecordUseCase";
12
+ import GetSingleRecordUseCase from "../../../../zrecord/applications/usecases/GetSingleRecordUseCase";
13
+ import DeleteSingleRecordUseCase from "../../../../zlist/applications/usecases/DeleteSingleRecordUseCase";
14
+ import DeleteMultipleRecordUseCase from "../../../../zlist/applications/usecases/DeleteMultipleRecordUseCase";
15
+ import RecordUpdateUseCase from "../../../../zlist/applications/usecases/RecordUpdateUseCase";
16
+ import UpdateMultipleRecordUseCase from "../../../../zlist/applications/usecases/UpdateMultipleRecordUseCase";
17
+ import GetContextUseCase from "../../../../zlist/applications/usecases/GetContextUseCase";
18
+ import ReOrderUseCase from "../../../../zlist/applications/usecases/ReOrderUseCase";
18
19
  export class SmartTableResource extends AbstractResource {
20
+ initialize() {}
21
+
22
+ destroy() {}
23
+
19
24
  getRecordDependencies() {
20
25
  const dependencies = {
21
26
  repository: new ZRecordRepository(),
@@ -230,4 +235,17 @@ export class SmartTableResource extends AbstractResource {
230
235
  });
231
236
  }
232
237
 
238
+ reOrderRecord(fromIndex, toIndex) {
239
+ const {
240
+ dispatch
241
+ } = this.dependencies;
242
+ const dependencies = this.getListDependencies();
243
+ const usecase = this.createUseCase(dependencies, ReOrderUseCase);
244
+ usecase.execute({
245
+ newIndex: toIndex,
246
+ oldIndex: fromIndex,
247
+ dispatch
248
+ });
249
+ }
250
+
233
251
  }
@@ -1,27 +1,26 @@
1
- import { LIST_SELECTION_RECORDS_DESELECTED, LIST_SELECTION_RECORDS_SELECTED, LIST_SELECTION_SELECTION_LIMIT_EXCEEDED } from "../../../bc/list-selection/Constants";
2
- import { RESIZE_FINISHED } from "../../../bc/table-column-resizer/Constants";
3
- import { ZLIST_SORT } from "../../../bc/zlist/Constants";
4
- import { COLUMN_CHOOSER_BEHAVIOUR_UPDATED } from "../../../bc/column-chooser/Constants";
5
- import { COLUMN_CHOOSER_OPEN_REQUESTED } from "../../../cc/table-column-chooser/Constants";
1
+ import { LIST_SELECTION_RECORDS_DESELECTED, LIST_SELECTION_RECORDS_SELECTED, LIST_SELECTION_SELECTION_LIMIT_EXCEEDED } from "../../../../bc/list-selection/Constants";
2
+ import { RESIZE_FINISHED } from "../../../../bc/table-column-resizer/Constants";
3
+ import { ZLIST_SORT } from "../../../../bc/zlist/Constants";
4
+ import { COLUMN_CHOOSER_BEHAVIOUR_UPDATED } from "../../../../bc/column-chooser/Constants";
5
+ import { COLUMN_CHOOSER_OPEN_REQUESTED } from "../../../../cc/table-column-chooser/Constants";
6
6
  import ListSdkFactory from "./ListSdkFactory";
7
- import { SmartTableConstants } from "../../../cc/table-connected";
8
- import TableListEventConstants from "../../../cc/table-list/Constants";
7
+ import { SmartTableConstants } from "../../../../cc/table-connected";
8
+ import TableListEventConstants from "../../../../cc/table-list/Constants";
9
9
  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
- import { sdkRegistry } from "../../../platform/sdk/frameworks/SdkRegistry";
17
- import { sdk } from "../../../platform/sdk/frameworks/Sdk";
18
- window.sdkRegistry = sdkRegistry;
19
- window.sdk = sdk;
17
+ import { platformSDK } from "../../../sdk/frameworks/Sdk";
20
18
  const {
21
19
  TABLE_LIST_RESIZE_START_REQUESTED,
22
20
  TABLE_LIST_RESIZE_MOVE_REQUESTED,
23
21
  TABLE_LIST_RESIZE_END_REQUESTED,
24
- TABLE_LIST_SCROLLED
22
+ TABLE_LIST_SCROLLED,
23
+ TABLE_LIST_ROW_DRAG_END
25
24
  } = TableListEventConstants;
26
25
 
27
26
  function createHandlerWithSdk(handler) {
@@ -31,7 +30,7 @@ function createHandlerWithSdk(handler) {
31
30
  } = input;
32
31
  const instanceName = state.properties.instanceName;
33
32
  handler({ ...input,
34
- sdk
33
+ platformSDK
35
34
  }, ListSdkFactory.create({
36
35
  instanceName
37
36
  }));
@@ -39,12 +38,15 @@ function createHandlerWithSdk(handler) {
39
38
  }
40
39
 
41
40
  export default class EventHandlersFactory {
42
- static create(eventHandlers) {
43
- const wrapped = Object.fromEntries(Object.keys(eventHandlers).map(eventName => {
41
+ static getSdkWrappedEventHandler(eventHandlers) {
42
+ return Object.fromEntries(Object.keys(eventHandlers).map(eventName => {
44
43
  const handler = createHandlerWithSdk(eventHandlers[eventName]);
45
44
  return [eventName, handler];
46
45
  }));
47
- return { ...wrapped,
46
+ }
47
+
48
+ static create(eventHandlers) {
49
+ return { ...EventHandlersFactory.getSdkWrappedEventHandler(eventHandlers),
48
50
  NAVIGATION: NavigationHandler,
49
51
  [RESIZE_FINISHED]: new ResizeFinishController().handle,
50
52
  [TABLE_LIST_RESIZE_START_REQUESTED]: new ResizeStartController().handle,
@@ -92,7 +94,8 @@ export default class EventHandlersFactory {
92
94
  type: SmartTableConstants.Events.SELECTION_LIMIT_EXCEEDED,
93
95
  payload: action.payload
94
96
  });
95
- }
97
+ },
98
+ [TABLE_LIST_ROW_DRAG_END]: new ReOrderFinishController().handle
96
99
  };
97
100
  }
98
101
 
@@ -0,0 +1,57 @@
1
+ import ResourceNamesEnum from "../../../../bc/sdk/ResourceNamesEnum";
2
+ import { platformSDK } from "../../../sdk/frameworks/Sdk";
3
+ export default class ListSdkFactory {
4
+ static getRecordSdks(smartTable) {
5
+ return {
6
+ getRecords: () => smartTable.getRecords(),
7
+ getRecord: recordId => smartTable.getRecord(recordId),
8
+ getContext: variableName => smartTable.getContext(variableName),
9
+ deleteRecord: recordId => smartTable.deleteRecord(recordId),
10
+ deleteRecords: function (recordIds) {
11
+ let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
12
+ return smartTable.deleteRecords(recordIds, shouldFetch);
13
+ },
14
+ updateRecord: (recordId, record) => smartTable.updateRecord(recordId, record),
15
+ updateRecords: function (recordsMap) {
16
+ let shouldFetch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
17
+ return smartTable.updateRecords(recordsMap, shouldFetch);
18
+ },
19
+ reOrderRecord: (fromIndex, toIndex) => smartTable.reOrderRecord(fromIndex, toIndex)
20
+ };
21
+ }
22
+
23
+ static getSelectionSdks(smartTable) {
24
+ return {
25
+ selectRecords: ids => smartTable.selectRecords(ids),
26
+ deselectRecords: ids => smartTable.deselectRecords(ids),
27
+ selectAllRecords: () => smartTable.selectAllRecords(),
28
+ deselectAllRecords: () => smartTable.deselectAllRecords()
29
+ };
30
+ }
31
+
32
+ static create(_ref) {
33
+ let {
34
+ instanceName
35
+ } = _ref;
36
+ const smartTable = platformSDK[ResourceNamesEnum.SMART_TABLE](instanceName);
37
+ const recordSdks = ListSdkFactory.getRecordSdks(smartTable);
38
+ const selectionSdks = ListSdkFactory.getSelectionSdks(smartTable);
39
+ return {
40
+ zlist: {
41
+ getRecords: recordSdks.getRecords,
42
+ getRecord: recordSdks.getRecord,
43
+ getContext: recordSdks.getContext,
44
+ deleteRecord: recordSdks.deleteRecord,
45
+ deleteRecords: recordSdks.deleteRecords,
46
+ updateRecord: recordSdks.updateRecord,
47
+ updateRecords: recordSdks.updateRecords,
48
+ selectRecords: selectionSdks.selectRecords,
49
+ deselectRecords: selectionSdks.deselectRecords,
50
+ selectAllRecords: selectionSdks.selectAllRecords,
51
+ deselectAllRecords: selectionSdks.deselectAllRecords,
52
+ reOrderRecord: recordSdks.reOrderRecord
53
+ }
54
+ };
55
+ }
56
+
57
+ }
@@ -0,0 +1,76 @@
1
+ import Properties from "../../../../cc/table-connected/Properties";
2
+ import { createCustomComponent } from "../../../../library/custom-component";
3
+ import ZFieldBehaviourFactory from "../../../zfield/frameworks/ZFieldBehaviourFactory";
4
+ import ZHttpBehaviourFactory from "../../../zhttp/frameworks/ZHttpBehaviourFactory";
5
+ import TableTranslator from "../../../zlist/adapters/presenters/TableTranslator";
6
+ import ZListBehaviourFactory from "../../../zlist/frameworks/ZListBehaviourFactory";
7
+ import RecordBehaviourFactory from "../../../zrecord/frameworks/RecordBehaviourFactory";
8
+ import EventHandlersFactory from "./EventHandlersFactory";
9
+ import TableConnectedView from "./TableConnectedView";
10
+ import defaultDataSource from "../../../data-source";
11
+ import DataSourceBehaviourFactory from "../../../zdata-source/frameworks/DataBrokerBehaviourFactory";
12
+ import ClientActionsBehaviourFactory from "../../../client-actions/behaviour/zclient-actions/frameworks/ClientActionsBehaviourFactory";
13
+ import LocalStorageBehaviourFactory from "../../../../library/behaviours/local-storage/frameworks/LocalStorageBehaviourFactory";
14
+ import TableColumnResizerBehaviorFactory from "../../../../library/behaviours/table-column-resizer/frameworks/TableColumnResizerBehaviorFactory";
15
+ import ListItemSelectionBehaviourFactory from "../../../../library/behaviours/list-selection/frameworks/ListItemSelectionBehaviourFactory";
16
+ import ColumnChooserBehaviourFactory from "../../../column-chooser/frameworks/ColumnChooserBehaviourFactory";
17
+ import SdkBehaviourFactory from "../../../sdk-behaviour/frameworks/SdkBehaviourFactory";
18
+ import ResourceNamesEnum from "../../../../bc/sdk/ResourceNamesEnum";
19
+ import { sdkRegistry } from "../../../sdk/frameworks/SdkRegistry";
20
+ import { SmartTableResource } from "../adapters/resources/SmartTableResource";
21
+ sdkRegistry.registerResource({
22
+ resourceName: ResourceNamesEnum.SMART_TABLE,
23
+ resource: SmartTableResource
24
+ });
25
+ import KeyboardControlBehaviourFactory from "../../../../library/behaviours/keyboard-controls/frameworks/KeyboardControlBehaviourFactory";
26
+
27
+ function combineDataSourceWithDefault(dataSource) {
28
+ return { ...defaultDataSource,
29
+ ...dataSource,
30
+ httpTemplates: { ...defaultDataSource.httpTemplates,
31
+ ...(dataSource === null || dataSource === void 0 ? void 0 : dataSource.httpTemplates)
32
+ }
33
+ };
34
+ }
35
+
36
+ export default class TableConnectedFactory {
37
+ static create(_ref) {
38
+ let {
39
+ name,
40
+ dataBroker,
41
+ dataSource,
42
+ eventHandlers = {},
43
+ View = TableConnectedView
44
+ } = _ref;
45
+
46
+ if (dataBroker) {
47
+ console.warn('Desk Platform Warning: dataBroker is deprecated, use dataSource instead');
48
+ }
49
+
50
+ const _dataSource = combineDataSourceWithDefault(dataBroker ? dataBroker : dataSource);
51
+
52
+ return createCustomComponent({
53
+ name: name,
54
+ View: View,
55
+ properties: Properties,
56
+ eventHandlers: EventHandlersFactory.create(eventHandlers),
57
+ transformState: TableTranslator.transformState,
58
+ behaviours: TableConnectedFactory.getBehaviours(_dataSource)
59
+ });
60
+ }
61
+
62
+ static getBehaviours(_dataSource) {
63
+ return [SdkBehaviourFactory.create([ResourceNamesEnum.SMART_TABLE]), TableColumnResizerBehaviorFactory.create(), KeyboardControlBehaviourFactory.create(), LocalStorageBehaviourFactory.create(), ZHttpBehaviourFactory.create(), DataSourceBehaviourFactory.create(), ...TableConnectedFactory.getPlatformBehaviours(_dataSource), ColumnChooserBehaviourFactory.create(), ListItemSelectionBehaviourFactory.create()];
64
+ }
65
+
66
+ static getPlatformBehaviours(_dataSource) {
67
+ return [RecordBehaviourFactory.create(_dataSource.httpTemplates), ClientActionsBehaviourFactory.create({
68
+ getClientActions: _dataSource.httpTemplates.getClientActions
69
+ }), ZFieldBehaviourFactory.create({
70
+ availableFields: _dataSource.httpTemplates.getAvailableFields,
71
+ updateSelectedFields: _dataSource.httpTemplates.updateSelectedFields,
72
+ selectedFields: _dataSource.httpTemplates.getSelectedFields
73
+ }), ZListBehaviourFactory.create()];
74
+ }
75
+
76
+ }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import TableList from "../../../library/dot/components/table-list/frameworks/ui/TableList";
3
+ import TableList from "../../../../library/dot/components/table-list/frameworks/ui/TableList";
4
4
 
5
5
  function View(_ref, ref) {
6
6
  let {
@@ -15,7 +15,8 @@ function View(_ref, ref) {
15
15
  selection,
16
16
  emptyStateUiType,
17
17
  focussedRow,
18
- keyboardControlsConfig
18
+ keyboardControlsConfig,
19
+ reOrderConfig
19
20
  } = state.viewModel;
20
21
  const {
21
22
  resizerState
@@ -26,8 +27,9 @@ function View(_ref, ref) {
26
27
  } = state.properties;
27
28
  const {
28
29
  autoColumnSizing
29
- } = preferences || {};
30
+ } = preferences ? preferences : {};
30
31
  return /*#__PURE__*/React.createElement(TableList, {
32
+ reOrderConfig: reOrderConfig,
31
33
  data: data,
32
34
  rowCursor: rowCursor,
33
35
  sortBy: sortBy,
@@ -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,16 +1,13 @@
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
+ // export { SdkResourceDependencies };
3
4
  export class AbstractResource {
4
5
  constructor() {
5
6
  _defineProperty(this, "dependencies", void 0);
6
7
  }
7
8
 
8
- initialize() {}
9
-
10
9
  updateDependencies(dependencies) {
11
10
  this.dependencies = dependencies;
12
11
  }
13
12
 
14
- destroy() {}
15
-
16
13
  }
@@ -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
@@ -1,6 +1,6 @@
1
1
  import ResourceNamesEnum from "../../../bc/sdk/ResourceNamesEnum";
2
2
  import { sdkRegistry } from "./SdkRegistry";
3
- export const sdk = {
3
+ export const platformSDK = {
4
4
  [ResourceNamesEnum.SMART_TABLE](instanceName) {
5
5
  return sdkRegistry.getResourceInstance({
6
6
  resourceName: ResourceNamesEnum.SMART_TABLE,
@@ -0,0 +1,25 @@
1
+ import AbstractController from "./AbstractController";
2
+ export default class ReOrderController extends AbstractController {
3
+ handle(event) {
4
+ const {
5
+ state,
6
+ updateState,
7
+ dispatch,
8
+ action
9
+ } = event;
10
+ const {
11
+ newIndex,
12
+ oldIndex
13
+ } = action.payload;
14
+ const {
15
+ reOrderUseCase
16
+ } = this.service;
17
+ reOrderUseCase.updateDependency(state, updateState);
18
+ reOrderUseCase.execute({
19
+ dispatch,
20
+ newIndex,
21
+ oldIndex
22
+ });
23
+ }
24
+
25
+ }
@@ -0,0 +1,26 @@
1
+ import AbstractController from "./AbstractController";
2
+ export default class ReOrderController extends AbstractController {
3
+ handle(event) {
4
+ const {
5
+ state,
6
+ updateState,
7
+ dispatch,
8
+ action
9
+ } = event;
10
+ const {
11
+ newIndex,
12
+ oldIndex
13
+ } = action.payload;
14
+ const {
15
+ reOrderFailedUseCase
16
+ } = this.service;
17
+ reOrderFailedUseCase.updateDependency(state, updateState);
18
+ reOrderFailedUseCase.execute({
19
+ dispatch,
20
+ newIndex,
21
+ oldIndex,
22
+ metaData: action.metaData
23
+ });
24
+ }
25
+
26
+ }
@@ -39,6 +39,13 @@ class Repository {
39
39
  return list;
40
40
  }
41
41
 
42
+ getRecords() {
43
+ const {
44
+ zrecord
45
+ } = this.state.behaviours;
46
+ return zrecord.records;
47
+ }
48
+
42
49
  getZListState() {
43
50
  const {
44
51
  zlist
@@ -13,6 +13,8 @@ import RecordExecuteFailedUseCase from "../../applications/usecases/RecordExecut
13
13
  import UpdateSuccessUseCase from "../../applications/usecases/UpdateSuccessUseCase";
14
14
  import DeleteSuccessUseCase from "../../applications/usecases/DeleteSuccessUseCase";
15
15
  import RecordSuccessCallbackUsecase from "../../applications/usecases/RecordSuccessCallbackUsecase";
16
+ import ReOrderUseCase from "../../applications/usecases/ReOrderUseCase";
17
+ import ReOrderFailedUseCase from "../../applications/usecases/ReOrderFailedUseCase";
16
18
 
17
19
  class Service {
18
20
  constructor(dependencies) {
@@ -44,6 +46,10 @@ class Service {
44
46
 
45
47
  _defineProperty(this, "deleteSuccessUseCase", void 0);
46
48
 
49
+ _defineProperty(this, "reOrderUseCase", void 0);
50
+
51
+ _defineProperty(this, "reOrderFailedUseCase", void 0);
52
+
47
53
  this.initializeUseCase = new InitializeUseCase(this.dependencies);
48
54
  this.propertiesChangeUseCase = new PropertiesChangeUseCase(this.dependencies);
49
55
  this.fetchMoreUseCase = new FetchMoreUseCase(this.dependencies);
@@ -57,6 +63,8 @@ class Service {
57
63
  this.recordUpdateUseCase = new RecordUpdateUseCase(this.dependencies);
58
64
  this.updateSuccessUseCase = new UpdateSuccessUseCase(this.dependencies);
59
65
  this.deleteSuccessUseCase = new DeleteSuccessUseCase(this.dependencies);
66
+ this.reOrderUseCase = new ReOrderUseCase(this.dependencies);
67
+ this.reOrderFailedUseCase = new ReOrderFailedUseCase(this.dependencies);
60
68
  }
61
69
 
62
70
  }
@@ -26,7 +26,8 @@ export default class TableTranslator {
26
26
  } = state;
27
27
  const {
28
28
  componentMapping,
29
- context
29
+ context,
30
+ reOrderConfig
30
31
  } = properties;
31
32
  const {
32
33
  localStorage: localStorageBehaviour,
@@ -46,6 +47,7 @@ export default class TableTranslator {
46
47
  zfield,
47
48
  zclientAction
48
49
  } = fallbackToDefault(behaviours, {}); // FIX: behaviours should be available by default
50
+ // const { sortBy, isReOrderLoading } = fallbackToDefault(zlist, {}); // FIX: zlist should be available by default
49
51
 
50
52
  const {
51
53
  sortBy
@@ -103,6 +105,7 @@ export default class TableTranslator {
103
105
  properties,
104
106
  behaviours,
105
107
  viewModel: {
108
+ reOrderConfig,
106
109
  selection: SelectionTranslator(state),
107
110
  focussedRow: focussedIndex,
108
111
  sortBy,
@@ -120,6 +123,7 @@ export default class TableTranslator {
120
123
  },
121
124
  keyboardControlsConfig,
122
125
  isLoading,
126
+ // isReOrderLoading,
123
127
  emptyStateUiType: componentMapping.emptyState || '',
124
128
  data: fields.length ? data : {
125
129
  headers: EMPTY_ARRAY,
@@ -34,7 +34,8 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
34
34
  console.warn(`The string format for componentMapping will soon be deprecated. Please update to the new JSON format. REF : ${JSON.stringify(fieldEntry)}`);
35
35
  }
36
36
 
37
- const value = isCustomField ? (_record$cf = record.cf) === null || _record$cf === void 0 ? void 0 : _record$cf[name] : record[name];
37
+ let tempValue = undefined;
38
+ let value = isCustomField ? (_record$cf = record.cf) === null || _record$cf === void 0 ? void 0 : _record$cf[name] : record[name];
38
39
  const actions = ClientActionsTranslator.transform(fieldActions, {
39
40
  field,
40
41
  record
@@ -56,7 +57,12 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
56
57
  }
57
58
 
58
59
  if (field.type == "LookUp") {
59
- value.url = getLookupUrlConstructions({
60
+ // temp fix for when lookup field don't have value !object
61
+ tempValue = typeof value !== 'object' ? {
62
+ name: value,
63
+ id: value
64
+ } : value;
65
+ tempValue.url = getLookupUrlConstructions({
60
66
  field,
61
67
  value,
62
68
  context
@@ -72,7 +78,7 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
72
78
  if (fieldEntry && typeof fieldEntry === 'object') {
73
79
  let data = {
74
80
  actions,
75
- ...fieldTranslator(field, finalValue, {
81
+ ...fieldTranslator(field, tempValue ? tempValue : finalValue, {
76
82
  recordId: record.id
77
83
  })
78
84
  };
@@ -82,16 +88,9 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
82
88
  context
83
89
  });
84
90
  data.type = fieldEntry.UIComponentName;
85
- console.log(data, "====>>> custom field modal");
86
91
  return data;
87
92
  }
88
93
 
89
- console.log({
90
- actions,
91
- ...fieldTranslator(field, finalValue, {
92
- recordId: record.id
93
- })
94
- }, "====>>> normal pre-defined field modal");
95
94
  return {
96
95
  actions,
97
96
  ...fieldTranslator(field, finalValue, {
@@ -39,7 +39,7 @@ class DefaultClientActions {
39
39
  },
40
40
  conditions: {
41
41
  fields: [{
42
- fieldName: 'field.isSortable',
42
+ fieldName: '{{@context.field.isSortable}}',
43
43
  condition: '=',
44
44
  value: ['true']
45
45
  }],
@@ -0,0 +1,22 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class ReOrderFailedUseCase extends AbstractUseCase {
4
+ execute(input) {
5
+ const {
6
+ metaData
7
+ } = input;
8
+ const {
9
+ repository,
10
+ presenter
11
+ } = this.dependencies;
12
+ const list = repository.getList();
13
+
14
+ if (metaData.isReOrder) {
15
+ list.reOrderEnded();
16
+ presenter.updateView(list.toObject());
17
+ }
18
+ }
19
+
20
+ }
21
+
22
+ export default ReOrderFailedUseCase;
@@ -0,0 +1,25 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+
3
+ class ReOrderUseCase extends AbstractUseCase {
4
+ execute(input) {
5
+ const {
6
+ dispatch,
7
+ newIndex,
8
+ oldIndex
9
+ } = input;
10
+ const {
11
+ repository,
12
+ presenter
13
+ } = this.dependencies;
14
+ const list = repository.getList();
15
+ list.reOrderStarted();
16
+ presenter.updateView(list.toObject());
17
+ dispatch(list.getReOrderRecordAction({
18
+ newIndex,
19
+ oldIndex
20
+ }));
21
+ }
22
+
23
+ }
24
+
25
+ export default ReOrderUseCase;