@zohodesk/library-platform 1.1.13 → 1.2.0-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 (131) hide show
  1. package/es/.DS_Store +0 -0
  2. package/es/bc/column-chooser/EventHandlers.js +1 -2
  3. package/es/bc/zform/Properties.js +20 -0
  4. package/es/bc/zform/Symbol.js +3 -0
  5. package/es/bc/zrecord/Constants.js +2 -0
  6. package/es/cc/action-band/Properties.js +37 -0
  7. package/es/cc/action-band/constants/ExternalConstants.js +3 -1
  8. package/es/cc/component/LifeCycleEventsEnum.js +1 -0
  9. package/es/cc/fields/currency/Properties.js +9 -0
  10. package/es/cc/fields/decimal/Properties.js +9 -0
  11. package/es/cc/fields/email/Properties.js +9 -0
  12. package/es/cc/fields/lookup/Properties.js +10 -26
  13. package/es/cc/fields/multi-line/Properties.js +1 -0
  14. package/es/cc/fields/number/Properties.js +10 -1
  15. package/es/cc/fields/phone/Properties.js +9 -0
  16. package/es/cc/fields/text/Properties.js +2 -2
  17. package/es/cc/fields/url/Properties.js +9 -0
  18. package/es/cc/table-column-chooser/Constants.js +2 -1
  19. package/es/cc/table-connected/SdkContract.js +22 -0
  20. package/es/cc/text/Properties.js +100 -0
  21. package/es/cc/textbox/Properties.js +1 -1
  22. package/es/index.js +7 -2
  23. package/es/library/behaviours/clip-wrap/applications/usecases/ClipWrapUpdateUseCase.js +19 -0
  24. package/es/library/behaviours/search/adapters/controllers/UpdatePropertiesController.js +9 -4
  25. package/es/library/custom-component/adapters/gateways/event-manager/EventManager.js +4 -3
  26. package/es/library/custom-component/applications/usecases/DispatchUseCase.js +1 -0
  27. package/es/library/custom-component/applications/usecases/InitializeUseCase.js +1 -0
  28. package/es/library/custom-component/applications/usecases/MountUseCase.js +1 -0
  29. package/es/library/custom-component/applications/usecases/SetRefUseCase.js +7 -0
  30. package/es/library/custom-component/applications/usecases/UnmountUseCase.js +1 -0
  31. package/es/library/custom-component/applications/usecases/UpdatePropertyUseCase.js +1 -0
  32. package/es/library/custom-component/domain/entities/Component.js +1 -0
  33. package/es/library/custom-component/domain/entities/Logger.js +4 -9
  34. package/es/library/dot/components/form-fields/currency/frameworks/ui/CurrencyView.js +2 -0
  35. package/es/library/dot/components/form-fields/decimal/frameworks/ui/DecimalView.js +2 -0
  36. package/es/library/dot/components/form-fields/email/frameworks/ui/Email.js +1 -1
  37. package/es/library/dot/components/form-fields/email/frameworks/ui/EmailView.js +2 -0
  38. package/es/library/dot/components/form-fields/number/frameworks/ui/NumberView.js +2 -0
  39. package/es/library/dot/components/form-fields/phone/frameworks/ui/PhoneView.js +2 -0
  40. package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextArea.js +1 -1
  41. package/es/library/dot/components/form-fields/textarea/frameworks/ui/TextAreaView.js +4 -2
  42. package/es/library/dot/components/form-fields/textbox/frameworks/ui/TextBoxView.js +2 -0
  43. package/es/library/dot/components/form-fields/url/frameworks/ui/UrlView.js +2 -0
  44. package/es/library/dot/components/table-list/frameworks/ui/sub-components/header/HeaderData.js +1 -1
  45. package/es/library/dot/legacy-to-new-arch/table-field-components/text-field/frameworks/ui/TextFieldView.js +20 -0
  46. package/es/library/dot/legacy-to-new-arch/text/frameworks/ui/Text.js +2 -2
  47. package/es/library/dot/legacy-to-new-arch/text/frameworks/ui/TextView.js +22 -1
  48. package/es/platform/.DS_Store +0 -0
  49. package/es/platform/app-context-behaviour/adapters/controllers/AbstractController.js +9 -0
  50. package/es/platform/app-context-behaviour/adapters/controllers/UpdatePropertiesController.js +32 -0
  51. package/es/platform/app-context-behaviour/adapters/gateway/Repository.js +22 -0
  52. package/es/platform/app-context-behaviour/adapters/gateway/Service.js +10 -0
  53. package/es/platform/app-context-behaviour/adapters/presenter/Presenter.js +16 -0
  54. package/es/platform/app-context-behaviour/applications/interfaces/UseCaseDependencies.js +1 -0
  55. package/es/platform/app-context-behaviour/applications/interfaces/gateways/IRepository.js +1 -0
  56. package/es/platform/app-context-behaviour/applications/interfaces/gateways/IService.js +1 -0
  57. package/es/platform/app-context-behaviour/applications/interfaces/input/UpdatePropertiesInputModel.js +1 -0
  58. package/es/platform/app-context-behaviour/applications/interfaces/output/BehaviourOutputModel.js +1 -0
  59. package/es/platform/app-context-behaviour/applications/interfaces/output/IPresenter.js +1 -0
  60. package/es/platform/app-context-behaviour/applications/usecases/AbstractUseCase.js +17 -0
  61. package/es/platform/app-context-behaviour/applications/usecases/UpdatePropertiesUsecase.js +25 -0
  62. package/es/platform/app-context-behaviour/domain/entities/AppContext.js +44 -0
  63. package/es/platform/app-context-behaviour/domain/entities/interfaces/IAppContext.js +1 -0
  64. package/es/platform/app-context-behaviour/frameworks/AppContextBehaviourFactory.js +2 -2
  65. package/es/platform/app-context-behaviour/frameworks/EventHandlerFactory.js +22 -0
  66. package/es/platform/client-actions/behaviour/zclient-actions/adapters/presenters/FilterUtils.js +11 -0
  67. package/es/platform/client-actions/behaviour/zclient-actions/adapters/resources/ClientActionsFetchSDK.js +76 -0
  68. package/es/platform/client-actions/behaviour/zclient-actions/applications/interfaces/ClientActionsAPIGatewayParams.js +1 -0
  69. package/es/platform/client-actions/behaviour/zclient-actions/applications/interfaces/ClientActionsFetchSDKParams.js +10 -0
  70. package/es/platform/client-actions/behaviour/zclient-actions/applications/interfaces/IClientActionsFetchSDK.js +0 -0
  71. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/adapters/resources/ClientScriptsFetchSDK.js +43 -0
  72. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/ClientScriptsAPIGatewayParams.js +1 -0
  73. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/ClientScriptsSDKFetchParams.js +1 -0
  74. package/es/platform/client-scripts/behaviour/zclient-scripts-fetch/applications/interfaces/IClientScriptsFetchSDK.js +0 -0
  75. package/es/platform/column-chooser/adapters/controllers/ColumnChooserOpenController.js +14 -6
  76. package/es/platform/column-chooser/adapters/controllers/ColumnChooserUpdateController.js +22 -0
  77. package/es/platform/column-chooser/adapters/gateways/Repository.js +12 -1
  78. package/es/platform/column-chooser/adapters/gateways/Service.js +2 -0
  79. package/es/platform/column-chooser/applications/interfaces/input/ColumnChooserUpdateInput.js +1 -0
  80. package/es/platform/column-chooser/applications/usecases/ColumnChooserSaveUseCase.js +8 -1
  81. package/es/platform/column-chooser/applications/usecases/ColumnChooserUpdateUseCase.js +35 -0
  82. package/es/platform/column-chooser/domain/entities/ColumnChooserImp.js +6 -0
  83. package/es/platform/column-chooser/frameworks/EventHandlersFactory.js +6 -4
  84. package/es/platform/components/smart-action-band/adapters/presenters/ActionBandTranslator.js +70 -8
  85. package/es/platform/components/smart-action-band/adapters/presenters/utils/DefaultClientActions.js +32 -0
  86. package/es/platform/components/smart-action-band/frameworks/EventHandlersFactory.js +42 -1
  87. package/es/platform/components/smart-action-band/frameworks/SmartActionBandFactory.js +4 -1
  88. package/es/platform/components/table-connected/adapters/resources/SmartTableResource.js +52 -0
  89. package/es/platform/components/table-connected/frameworks/EventHandlersFactory.js +1 -7
  90. package/es/platform/components/table-connected/frameworks/ListSdkFactory.js +4 -2
  91. package/es/platform/data-source/http-template/fetchLookupFields.js +0 -6
  92. package/es/platform/data-source/http-template/getPageClientActions.js +23 -0
  93. package/es/platform/data-source/http-template/getSingleRecord.js +51 -0
  94. package/es/platform/data-source/index.js +2 -0
  95. package/es/platform/data-source/utils/validation-rules/FieldConditions.js +1 -1
  96. package/es/platform/sdk-behaviour/adapters/controllers/InitializeController.js +7 -2
  97. package/es/platform/sdk-behaviour/applications/usecases/CreateResourceInstanceUseCase.js +10 -1
  98. package/es/platform/zform/adapters/controllers/GetInitialRecordSuccessController.js +31 -0
  99. package/es/platform/zform/adapters/gateway/FormRepository.js +10 -2
  100. package/es/platform/zform/adapters/gateway/Service.js +2 -0
  101. package/es/platform/zform/adapters/presenter/FormTranslator.js +27 -15
  102. package/es/platform/zform/adapters/presenter/translators/SectionTranslator.js +1 -1
  103. package/es/platform/zform/adapters/presenter/translators/fields/CurrencyFieldTranslator.js +1 -0
  104. package/es/platform/zform/adapters/presenter/translators/fields/DecimalFieldTranslator.js +1 -0
  105. package/es/platform/zform/adapters/presenter/translators/fields/EmailFieldTranslator.js +1 -0
  106. package/es/platform/zform/adapters/presenter/translators/fields/LookUpFieldTranslator.js +11 -7
  107. package/es/platform/zform/adapters/presenter/translators/fields/NumberFieldTranslator.js +1 -0
  108. package/es/platform/zform/adapters/presenter/translators/fields/PhoneFieldTranslator.js +1 -0
  109. package/es/platform/zform/adapters/presenter/translators/fields/TextAreaFieldTranslator.js +1 -0
  110. package/es/platform/zform/adapters/presenter/translators/fields/TextFieldTranslator.js +1 -0
  111. package/es/platform/zform/adapters/presenter/translators/fields/URLFieldTranslator.js +1 -0
  112. package/es/platform/zform/adapters/presenter/utils/sanitizeHtmlString.js +2 -2
  113. package/es/platform/zform/applications/interfaces/input/GetInitialRecordSuccessUseCaseInputModel.js +1 -0
  114. package/es/platform/zform/applications/usecases/GetInitialRecordSuccessUseCase.js +132 -0
  115. package/es/platform/zform/applications/usecases/InitializeUseCase.js +54 -30
  116. package/es/platform/zform/applications/usecases/LookupFieldSuccessUseCase.js +5 -0
  117. package/es/platform/zform/applications/usecases/MyFormSuccessUseCase.js +12 -11
  118. package/es/platform/zform/applications/usecases/SubmitValidationCompletedUseCase.js +21 -8
  119. package/es/platform/zform/domain/ZField.js +7 -5
  120. package/es/platform/zform/domain/ZForm.js +97 -20
  121. package/es/platform/zform/frameworks/ui/EventHandlerFactory.js +23 -5
  122. package/es/platform/zform/frameworks/ui/ZFormBehaviourFactory.js +2 -0
  123. package/es/platform/zlist/adapters/presenters/TableTranslator.js +5 -4
  124. package/es/platform/zrecord/adapters/controllers/UpdateRecordController.js +30 -0
  125. package/es/platform/zrecord/adapters/gateways/Service.js +2 -0
  126. package/es/platform/zrecord/applications/interfaces/input/UpdateRecordInputModel.js +0 -0
  127. package/es/platform/zrecord/applications/usecases/UpdateRecordUseCase.js +30 -0
  128. package/es/platform/zrecord/frameworks/ActionsHandlersFactory.js +4 -1
  129. package/package.json +9 -12
  130. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserOpenedController.js +0 -28
  131. package/es/platform/components/table-connected/adapters/controllers/ColumnChooserUpdateController.js +0 -31
@@ -21,14 +21,17 @@ class MyFormSuccessUseCase extends AbstractUseCase {
21
21
  sections
22
22
  } = myForm;
23
23
  const zFormEntity = repository.getFormEntity();
24
+ const layoutId = zFormEntity.getLayoutId();
25
+ const initialRecord = zFormEntity.getInitialRecord();
24
26
  const context = { ...zFormEntity.getContext(),
25
- layoutId: zFormEntity.getLayoutId()
27
+ layoutId: layoutId
26
28
  };
27
29
  const lookupFields = sections.flatMap(section => section.fields.filter(field => field.type === 'LookUp'));
28
30
  const sectionEntities = sections.map(section => {
29
31
  const fields = section.fields.map(field => {
32
+ const recordValue = initialRecord ? field.isCustomField ? initialRecord.cf[field.apiName] : initialRecord[field.apiName] : undefined;
30
33
  const entity = new ZField(field);
31
- entity.decideDefaultValue();
34
+ entity.decideDefaultValue(recordValue);
32
35
  return entity;
33
36
  });
34
37
  const sectionWithFields = { ...section,
@@ -63,24 +66,22 @@ class MyFormSuccessUseCase extends AbstractUseCase {
63
66
  type: DATA_SOURCE_EXECUTE,
64
67
  payload: {
65
68
  actionName: 'fetchLookupFields',
66
- props: { ...context
67
- }
69
+ props: context
68
70
  },
69
71
  metaData: {
70
72
  actionName: 'fetchLookupFields',
71
- //hack
72
73
  [DATA_SOURCE_NO_CONTENT]: {
73
74
  type: ZFORM_LOOKUP_FIELD_SUCCESS,
74
75
  metaData: {
75
76
  actionName: 'fetchLookupFields'
76
77
  }
77
78
  },
78
- // [DATA_SOURCE_FAILURE]: {
79
- // type: ZFORM_LOOKUP_FIELD_SUCCESS,
80
- // metaData: {
81
- // actionName: 'fetchValidationRules'
82
- // }
83
- // },
79
+ [DATA_SOURCE_FAILURE]: {
80
+ type: ZFORM_API_FAILURE,
81
+ metaData: {
82
+ actionName: 'fetchLookupFields'
83
+ }
84
+ },
84
85
  [DATA_SOURCE_SUCCESS]: {
85
86
  type: ZFORM_LOOKUP_FIELD_SUCCESS,
86
87
  metaData: {
@@ -1,4 +1,4 @@
1
- import { CREATE_RECORD } from "../../../../bc/zrecord/Constants";
1
+ import { CREATE_RECORD, UPDATE_RECORD } from "../../../../bc/zrecord/Constants";
2
2
  import AbstractUseCase from "./AbstractUseCase";
3
3
  import { ZFORM_ERROR, ZFORM_VALIDATION_SUCCESS, ZFORM_SUBMIT_VALIDATION_FAILURE } from "../../../../bc/zform/Symbol";
4
4
 
@@ -43,6 +43,7 @@ class SubmitValidationCompletedUseCase extends AbstractUseCase {
43
43
  const moduleName = zFormEntity.getModuleName();
44
44
  const record = zFormEntity.getVisibleFieldsAsRecord();
45
45
  const visibleFieldsData = zFormEntity.getVisibleFieldsData();
46
+ const isEditMode = zFormEntity.isEditMode();
46
47
  dispatch({
47
48
  type: ZFORM_VALIDATION_SUCCESS,
48
49
  payload: {
@@ -52,13 +53,25 @@ class SubmitValidationCompletedUseCase extends AbstractUseCase {
52
53
  });
53
54
 
54
55
  if (!disableCreateRecord) {
55
- dispatch({
56
- type: CREATE_RECORD,
57
- payload: {
58
- record,
59
- moduleName
60
- }
61
- });
56
+ if (isEditMode) {
57
+ const recordId = zFormEntity.getRecordId();
58
+ dispatch({
59
+ type: UPDATE_RECORD,
60
+ payload: {
61
+ record,
62
+ moduleName,
63
+ recordId
64
+ }
65
+ });
66
+ } else {
67
+ dispatch({
68
+ type: CREATE_RECORD,
69
+ payload: {
70
+ record,
71
+ moduleName
72
+ }
73
+ });
74
+ }
62
75
  }
63
76
  }
64
77
  }
@@ -79,18 +79,20 @@ export default class ZField {
79
79
  return defaultValue;
80
80
  }
81
81
 
82
- decideDefaultValue() {
82
+ decideDefaultValue(_defaultValue) {
83
+ const defaultValue = _defaultValue !== undefined ? _defaultValue : this.defaultValue;
84
+
83
85
  switch (this.type) {
84
86
  case 'Boolean':
85
- this.value = this.decideValueForBoolean(this.defaultValue);
87
+ this.value = this.decideValueForBoolean(defaultValue);
86
88
  break;
87
89
 
88
90
  case 'Multiselect':
89
- this.value = this.decideValueForMultiselect(this.defaultValue);
91
+ this.value = this.decideValueForMultiselect(defaultValue);
90
92
  break;
91
93
 
92
94
  default:
93
- this.value = this.defaultValue === undefined ? '' : this.defaultValue;
95
+ this.value = defaultValue === undefined ? '' : defaultValue;
94
96
  }
95
97
  }
96
98
 
@@ -184,7 +186,7 @@ export default class ZField {
184
186
  isEncryptedField: this.isEncryptedField,
185
187
  id: this.id,
186
188
  isRemovable: this.isRemovable,
187
- maxLength: this.maxLength,
189
+ maxLength: Number(this.maxLength) > 0 ? Number(this.maxLength) : this.maxLength,
188
190
  isMandatory: this.isMandatory,
189
191
  value: this.value,
190
192
  errorMessage: this.errorMessage,
@@ -1,6 +1,7 @@
1
1
  import { ErrorCodes } from "../../../cc/component/ErrorStructure";
2
2
  import { ZFormApiActionName } from "../../../bc/zform/Constants";
3
- import { ZHttpErrorCode } from "../../../bc/zhttp/Errors";
3
+ import { DATA_SOURCE_SUCCESS, DATA_SOURCE_NO_CONTENT, DATA_SOURCE_FAILURE } from "../../../bc/zdata-source/Symbols";
4
+ import { RecordApiActionName } from "../../../bc/zrecord/Constants";
4
5
  export default class ZForm {
5
6
  /*hack*/
6
7
 
@@ -21,6 +22,10 @@ export default class ZForm {
21
22
  dependencyMappings,
22
23
  context,
23
24
  focusedFieldName,
25
+ layoutId,
26
+ mode,
27
+ recordId,
28
+ initialRecordData,
24
29
 
25
30
  /*hack*/
26
31
  isMyFormFetching,
@@ -45,6 +50,10 @@ export default class ZForm {
45
50
  this.dependencyMappings = dependencyMappings;
46
51
  this.context = context;
47
52
  this.focusedFieldName = focusedFieldName || null;
53
+ this.layoutId = layoutId;
54
+ this.initialRecordData = initialRecordData;
55
+ this.mode = mode;
56
+ this.recordId = recordId;
48
57
  /*hack*/
49
58
 
50
59
  this.isMyFormFetching = isMyFormFetching;
@@ -81,14 +90,64 @@ export default class ZForm {
81
90
  orgName,
82
91
  servicePrefix
83
92
  } = this.context;
84
- return {
93
+ const recordId = this.getRecordId();
94
+ const formValues = this.getVisibleFieldsData();
95
+ const context = {
85
96
  module,
86
97
  departmentId: departmentId,
87
98
  orgName,
99
+ mode: this.mode,
100
+ formValues,
101
+ record: this.initialRecordData,
88
102
  ...this.context,
89
103
  servicePrefix: servicePrefix || 'supportapi/zd' // FIX: servicePrefix defaultValue should be available from properties
90
104
 
91
105
  };
106
+
107
+ if (recordId) {
108
+ context.recordId = recordId;
109
+ }
110
+
111
+ return context;
112
+ }
113
+
114
+ getRecordId() {
115
+ return this.recordId;
116
+ }
117
+
118
+ isEditMode() {
119
+ return this.mode === 'edit';
120
+ }
121
+
122
+ getDataSourceMetaData(_ref2) {
123
+ let {
124
+ actionName,
125
+ successEvent,
126
+ failureEvent,
127
+ extras
128
+ } = _ref2;
129
+ return {
130
+ actionName,
131
+ //hack
132
+ [DATA_SOURCE_NO_CONTENT]: {
133
+ type: successEvent,
134
+ metaData: { ...extras,
135
+ actionName
136
+ }
137
+ },
138
+ [DATA_SOURCE_FAILURE]: {
139
+ type: failureEvent,
140
+ metaData: { ...extras,
141
+ actionName
142
+ }
143
+ },
144
+ [DATA_SOURCE_SUCCESS]: {
145
+ type: successEvent,
146
+ metaData: { ...extras,
147
+ actionName
148
+ }
149
+ }
150
+ };
92
151
  }
93
152
 
94
153
  setFormProperties(properties, layoutRuleHelper) {
@@ -137,6 +196,10 @@ export default class ZForm {
137
196
  let isBreaking = false; // Set error state based on the failed action
138
197
 
139
198
  switch (actionName) {
199
+ case RecordApiActionName.GET_SINGLE_RECORD:
200
+ isBreaking = true;
201
+ break;
202
+
140
203
  case ZFormApiActionName.getMyForm:
141
204
  this.setMyFormFetching(false);
142
205
  isBreaking = true;
@@ -170,34 +233,23 @@ export default class ZForm {
170
233
  }
171
234
 
172
235
  constructApiErrorEvent(error, actionName, isBreaking) {
173
- if (error.code === ZHttpErrorCode.ApiError) {
174
- return {
175
- code: ErrorCodes.API_FAILED,
176
- message: 'Api call failed for action: ' + actionName,
177
- errorDetails: {
178
- isBreaking,
179
- originalError: error,
180
- actionName
181
- }
182
- };
183
- }
184
-
185
236
  return {
186
- code: ErrorCodes.UNKNOWN_ERROR,
187
- message: 'Api call failed for action: ' + actionName,
237
+ code: ErrorCodes.API_FAILED,
238
+ message: error.message,
188
239
  errorDetails: {
189
240
  isBreaking,
190
- originalError: error,
191
- actionName
241
+ message: 'Api call failed for action: ' + actionName,
242
+ actionName,
243
+ originalError: error
192
244
  }
193
245
  };
194
246
  }
195
247
 
196
- getSectionId(_ref2) {
248
+ getSectionId(_ref3) {
197
249
  let {
198
250
  fieldName,
199
251
  sectionName
200
- } = _ref2;
252
+ } = _ref3;
201
253
 
202
254
  if (sectionName) {
203
255
  for (let section of this.sections) {
@@ -482,6 +534,27 @@ export default class ZForm {
482
534
  }
483
535
  }
484
536
 
537
+ setInitialRecord(recordData) {
538
+ this.initialRecordData = recordData;
539
+ const layoutId = recordData.layout.id;
540
+ this.setLayoutId(layoutId); // if (recordData && recordData.data && recordData.data.length > 0) {
541
+ // const record = recordData.data[0];
542
+ // // Populate form fields with record data
543
+ // Object.keys(record).forEach(fieldApiName => {
544
+ // if (fieldApiName !== 'id') { // Skip ID field
545
+ // const field = this.getFieldByApiName(fieldApiName);
546
+ // if (field) {
547
+ // field.setValue(record[fieldApiName]);
548
+ // }
549
+ // }
550
+ // });
551
+ // }
552
+ }
553
+
554
+ getInitialRecord() {
555
+ return this.initialRecordData;
556
+ }
557
+
485
558
  getFieldErrorMessage(fieldApiName) {
486
559
  const field = this.getFieldByApiName(fieldApiName);
487
560
  return field ? field.getErrorMessage() : undefined;
@@ -627,6 +700,7 @@ export default class ZForm {
627
700
  }
628
701
 
629
702
  toObject() {
703
+ const formValues = this.getVisibleFieldsData();
630
704
  return {
631
705
  modifiedTime: this.modifiedTime,
632
706
  isStandardLayout: this.isStandardLayout,
@@ -642,8 +716,11 @@ export default class ZForm {
642
716
  dependencyMappings: this.dependencyMappings.map(dm => dm.toObject()),
643
717
  focusedFieldName: this.focusedFieldName,
644
718
  layoutId: this.layoutId,
719
+ mode: this.mode,
720
+ initialRecordData: this.initialRecordData,
645
721
 
646
722
  /*hack*/
723
+ formValues,
647
724
  isMyFormFetching: this.isMyFormFetching,
648
725
  isDependencyFetching: this.isDependencyFetching,
649
726
  isLayoutRulesFetching: this.isLayoutRulesFetching,
@@ -7,9 +7,10 @@ import FormPresenter from "../../adapters/presenter/FormPresenter";
7
7
  import Service from "../../adapters/gateway/Service";
8
8
  import LifeCycleEvents from "../../../../cc/component/LifeCycleEventsEnum";
9
9
  import InitializeController from "../../adapters/controllers/IntializeController";
10
- import { ZFORM_DEPENDENCY_MAPPINGS_REQUEST, ZFORM_DEPENDENCY_MAPPINGS_SUCCESS, ZFORM_FIELD_VALUE_CHANGE_REQUEST, ZFORM_MY_FORM_REQUEST, ZFORM_MY_FORM_SUCCESS, ZFORM_MY_LAYOUTS_SUCCESS, ZFORM_SET_FIELD_ERROR_MESSAGE, ZFORM_SUBMIT_VALIDATION_COMPLETED, ZFORM_API_FAILURE, ZFORM_VALIDATE_FIELD_REQUEST, ZFORM_VALIDATION_RULES_REQUEST, ZFORM_VALIDATION_RULES_SUCCESS, ZFORM_VALIDATION_RULES_EXECUTION_RESULT, ZFORM_LOOKUP_FIELD_SUCCESS } from "../../../../bc/zform/Symbol";
10
+ import { ZFORM_DEPENDENCY_MAPPINGS_REQUEST, ZFORM_DEPENDENCY_MAPPINGS_SUCCESS, ZFORM_FIELD_VALUE_CHANGE_REQUEST, ZFORM_MY_FORM_REQUEST, ZFORM_MY_FORM_SUCCESS, ZFORM_MY_LAYOUTS_SUCCESS, ZFORM_SET_FIELD_ERROR_MESSAGE, ZFORM_SUBMIT_VALIDATION_COMPLETED, ZFORM_API_FAILURE, ZFORM_VALIDATE_FIELD_REQUEST, ZFORM_VALIDATION_RULES_REQUEST, ZFORM_VALIDATION_RULES_SUCCESS, ZFORM_VALIDATION_RULES_EXECUTION_RESULT, ZFORM_INITIAL_RECORD_SUCCESS, ZFORM_LOOKUP_FIELD_SUCCESS } from "../../../../bc/zform/Symbol";
11
11
  import LookupFieldController from "../../adapters/controllers/LookupFieldController";
12
12
  import MyLayoutSuccessController from "../../adapters/controllers/MyLayoutSuccessController";
13
+ import GetInitialRecordSuccessController from "../../adapters/controllers/GetInitialRecordSuccessController";
13
14
  import MyFormSuccessController from "../../adapters/controllers/MyFromSuccessController";
14
15
  import DependenciesController from "../../adapters/controllers/DependenciesController";
15
16
  import DependenciesRequestController from "../../adapters/controllers/DependenciesRequestController";
@@ -48,6 +49,7 @@ class EventHandlersFactory {
48
49
  const createRecordFailedController = new CreateRecordFailedController(service);
49
50
  const initializeController = new InitializeController(service);
50
51
  const myLayoutSuccessController = new MyLayoutSuccessController(service);
52
+ const getInitialRecordSuccessController = new GetInitialRecordSuccessController(service);
51
53
  const myFormRequestController = new MyFormRequestController(service);
52
54
  const myFormSuccessController = new MyFormSuccessController(service);
53
55
  const dependenciesRequestController = new DependenciesRequestController(service);
@@ -68,6 +70,22 @@ class EventHandlersFactory {
68
70
  return {
69
71
  [LifeCycleEvents.MOUNT]: initializeController.handle,
70
72
  [ZFORM_MY_LAYOUTS_SUCCESS]: myLayoutSuccessController.handle,
73
+ [ZFORM_INITIAL_RECORD_SUCCESS]: getInitialRecordSuccessController.handle,
74
+ [LifeCycleEvents.ERROR_OCCURRED]: _ref => {
75
+ let {
76
+ action,
77
+ dispatch
78
+ } = _ref;
79
+ const {
80
+ metaData,
81
+ payload
82
+ } = action;
83
+ dispatch({
84
+ type: SmartFormConstants.SMART_FORM_ERROR_OCCURRED,
85
+ metaData,
86
+ payload
87
+ });
88
+ },
71
89
  [RECORD_EXECUTE_SUCCESS_CALLBACK]: createRecordSuccessController.handle,
72
90
  [RECORD_EXECUTE_FAIL_CALLBACK]: createRecordFailedController.handle,
73
91
  [ZFORM_MY_FORM_REQUEST]: myFormRequestController.handle,
@@ -84,11 +102,11 @@ class EventHandlersFactory {
84
102
  [ZFORM_VALIDATE_FIELD_REQUEST]: validateFieldRequestController.handle,
85
103
  [SmartFormConstants.SMART_FORM_SUBMIT_CLICKED]: formSubmitController.handle,
86
104
  [ZFORM_SUBMIT]: formSubmitController.handle,
87
- [FormConstants.FORM_SUBMIT]: _ref => {
105
+ [FormConstants.FORM_SUBMIT]: _ref2 => {
88
106
  let {
89
107
  action,
90
108
  dispatch
91
- } = _ref;
109
+ } = _ref2;
92
110
  const {
93
111
  metaData,
94
112
  payload
@@ -102,11 +120,11 @@ class EventHandlersFactory {
102
120
  [FormConstants.FORM_FIELD_BLURRED]: fieldBlurController.handle,
103
121
  [ZFORM_VALIDATION_RULES_EXECUTION_RESULT]: validationRulesExecutionResultController.handle,
104
122
  [ZFORM_SUBMIT_VALIDATION_COMPLETED]: submitValidationCompletedController.handle,
105
- [FormConstants.FORM_FIELD_VALUE_CHANGE_REQUEST]: _ref2 => {
123
+ [FormConstants.FORM_FIELD_VALUE_CHANGE_REQUEST]: _ref3 => {
106
124
  let {
107
125
  action,
108
126
  dispatch
109
- } = _ref2;
127
+ } = _ref3;
110
128
  const {
111
129
  sectionId,
112
130
  fieldName,
@@ -10,6 +10,8 @@ class ZFormBehaviourFactory {
10
10
  properties
11
11
  } = _ref;
12
12
  return {
13
+ mode: properties.mode,
14
+ initialRecordData: null,
13
15
  isMyFormFetching: true,
14
16
  isDependencyFetching: true,
15
17
  isSubmitFetching: false,
@@ -13,6 +13,7 @@ import DefaultClientActions from "./utils/DefaultClientActions";
13
13
  import SelectionTranslator from "./SelectionTranslator";
14
14
  import { SortModelOrder } from "../../domain/entities/interfaces/Properties";
15
15
  import { SortOrder } from "../../../../bc/zlist/Types";
16
+ import { filterClientActionsByLocation } from "../../../client-actions/behaviour/zclient-actions/adapters/presenters/FilterUtils";
16
17
  const EMPTY_OBJECT = {};
17
18
  const EMPTY_ARRAY = [];
18
19
 
@@ -220,9 +221,9 @@ function mapClientActions(clientActions) {
220
221
  }
221
222
  });
222
223
  return {
223
- headerActions: clientActions.filter(action => action.location && action.location === 'header_actions'),
224
- fieldActions: clientActions.filter(action => action.location && action.location === 'field_actions'),
225
- rowActions: clientActions.filter(action => action.location && action.location === 'row_actions'),
226
- noLocation: clientActions.filter(action => !action.location)
224
+ headerActions: filterClientActionsByLocation(clientActions, 'header_actions'),
225
+ fieldActions: filterClientActionsByLocation(clientActions, 'field_actions'),
226
+ rowActions: filterClientActionsByLocation(clientActions, 'row_actions'),
227
+ noLocation: filterClientActionsByLocation(clientActions, null)
227
228
  };
228
229
  }
@@ -0,0 +1,30 @@
1
+ import AbstractController from "./AbstractController";
2
+ export default class UpdateRecordController extends AbstractController {
3
+ handle(event) {
4
+ const {
5
+ state,
6
+ updateState,
7
+ action,
8
+ dispatch
9
+ } = event;
10
+ const {
11
+ payload
12
+ } = action;
13
+ const {
14
+ record,
15
+ moduleName,
16
+ recordId
17
+ } = payload;
18
+ const {
19
+ updateRecordUseCase
20
+ } = this.service;
21
+ updateRecordUseCase.updateDependency(state, updateState);
22
+ updateRecordUseCase.execute({
23
+ record,
24
+ moduleName,
25
+ recordId,
26
+ dispatch
27
+ });
28
+ }
29
+
30
+ }
@@ -12,6 +12,7 @@ import FieldChangeUseCase from "../../applications/usecases/FieldChangeUseCase";
12
12
  import SetRecordsUseCase from "../../applications/usecases/SetRecordsUseCase";
13
13
  import FetchStateStopUseCase from "../../applications/usecases/FetchStateStopUseCase";
14
14
  import CreateRecordUseCase from "../../applications/usecases/CreateRecordUseCase";
15
+ import UpdateRecordUseCase from "../../applications/usecases/UpdateRecordUseCase";
15
16
  import MarkAsReadUseCase from "../../applications/usecases/MarkAsReadUseCase";
16
17
  import MarkAsUnReadUseCase from "../../applications/usecases/MarkAsUnReadUseCase";
17
18
  import FilterRecordUseCase from "../../applications/usecases/FilterRecordUseCase";
@@ -31,6 +32,7 @@ export default class Service {
31
32
  this.recordUpdateLocalUseCase = new RecordUpdateLocalUseCase(dependencies);
32
33
  this.deleteMultipleRecordUseCase = new DeleteMultipleRecordUseCase(dependencies);
33
34
  this.createRecordUseCase = new CreateRecordUseCase(dependencies);
35
+ this.updateRecordUseCase = new UpdateRecordUseCase(dependencies);
34
36
  this.markAsReadUseCase = new MarkAsReadUseCase(dependencies);
35
37
  this.markAsUnReadUseCase = new MarkAsUnReadUseCase(dependencies);
36
38
  this.filterRecordUseCase = new FilterRecordUseCase(dependencies);
@@ -0,0 +1,30 @@
1
+ import AbstractUseCase from "./AbstractUseCase";
2
+ import RecordFactory from "../entities-factory/RecordFactory";
3
+ import { RecordApiActionName } from "../../../../bc/zrecord/Constants";
4
+
5
+ class UpdateRecordUseCase extends AbstractUseCase {
6
+ execute(input) {
7
+ const {
8
+ presenter,
9
+ repository
10
+ } = this.dependencies;
11
+ const {
12
+ record,
13
+ dispatch,
14
+ moduleName,
15
+ recordId
16
+ } = input;
17
+ const recordManager = repository.getRecordsManagerEntity();
18
+ const recordEntity = RecordFactory.createSingleRecord(record);
19
+ const meta = recordManager.createRecordMeta(recordEntity);
20
+ dispatch(recordManager.createDataSourceExecuteEvent({
21
+ record: recordEntity.toObject(),
22
+ moduleName,
23
+ recordId
24
+ }, RecordApiActionName.UPDATE_RECORD, meta));
25
+ presenter.updateRecord(recordManager.toObject());
26
+ }
27
+
28
+ }
29
+
30
+ export default UpdateRecordUseCase;
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable max-lines-per-function */
2
- import { APPEND_RECORDS, RECORD_EXECUTE, RECORD_FETCH_MORE, RECORD_FIELD_CHANGE, RECORD_LOCAL_MULTIPLE_DELETE, RECORD_LOCAL_UPDATE, SET_RECORDS, RECORD_REFETCH, RECORD_EXECUTE_SUCCEEDED, RECORD_EXECUTE_SUCCEEDED_NO_CONTENT, RECORD_EXECUTE_FAILED, RECORD_EXECUTE_SUCCESS_NO_CONTENT_CALLBACK, RECORD_EXECUTE_SUCCESS_CALLBACK, RECORD_EXECUTE_FAIL_CALLBACK, CREATE_RECORD, RECORD_MARK_AS_READ, RECORD_MARK_AS_UNREAD, RECORD_LOCAL_FILTER } from "../../../bc/zrecord/Constants";
2
+ import { APPEND_RECORDS, RECORD_EXECUTE, RECORD_FETCH_MORE, RECORD_FIELD_CHANGE, RECORD_LOCAL_MULTIPLE_DELETE, RECORD_LOCAL_UPDATE, SET_RECORDS, RECORD_REFETCH, RECORD_EXECUTE_SUCCEEDED, RECORD_EXECUTE_SUCCEEDED_NO_CONTENT, RECORD_EXECUTE_FAILED, RECORD_EXECUTE_SUCCESS_NO_CONTENT_CALLBACK, RECORD_EXECUTE_SUCCESS_CALLBACK, RECORD_EXECUTE_FAIL_CALLBACK, CREATE_RECORD, UPDATE_RECORD, RECORD_MARK_AS_READ, RECORD_MARK_AS_UNREAD, RECORD_LOCAL_FILTER } from "../../../bc/zrecord/Constants";
3
3
  import MountController from "../adapters/controllers/MountController";
4
4
  import Presenter from "../adapters/presenters/Presenter";
5
5
  import Repository from "../adapters/gateways/Repository";
@@ -17,6 +17,7 @@ import DeleteMultipleRecordLocalController from "../adapters/controllers/DeleteM
17
17
  import SetRecordsController from "../adapters/controllers/SetRecordsController";
18
18
  import FetchStateStopController from "../adapters/controllers/FetchStateStopController";
19
19
  import CreateRecordController from "../adapters/controllers/CreateRecordController";
20
+ import UpdateRecordController from "../adapters/controllers/UpdateRecordController";
20
21
  import MarkAsReadController from "../adapters/controllers/MarkAsReadController";
21
22
  import MarkAsUnReadController from "../adapters/controllers/MarkAsUnReadController";
22
23
  import FilterRecordLocalController from "../adapters/controllers/FilterRecordLocalController";
@@ -43,6 +44,7 @@ export default class ActionsHandlersFactory {
43
44
  const deleteMultipleRecordLocalController = new DeleteMultipleRecordLocalController(service);
44
45
  const fetchStateStopController = new FetchStateStopController(service);
45
46
  const createRecordController = new CreateRecordController(service);
47
+ const updateRecordController = new UpdateRecordController(service);
46
48
  const markAsReadController = new MarkAsReadController(service);
47
49
  const markAsUnReadController = new MarkAsUnReadController(service);
48
50
  const filterRecordLocalController = new FilterRecordLocalController(service);
@@ -64,6 +66,7 @@ export default class ActionsHandlersFactory {
64
66
  [RECORD_FIELD_CHANGE]: fieldChangeController.handle,
65
67
  [RECORD_LOCAL_UPDATE]: recordUpdateLocalController.handle,
66
68
  [RECORD_EXECUTE_SUCCESS_NO_CONTENT_CALLBACK]: noContentController.handle,
69
+ [UPDATE_RECORD]: updateRecordController.handle,
67
70
  [RECORD_LOCAL_FILTER]: filterRecordLocalController.handle,
68
71
  [CREATE_RECORD]: createRecordController.handle
69
72
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/library-platform",
3
- "version": "1.1.13",
3
+ "version": "1.2.0-exp.2",
4
4
  "description": "",
5
5
  "main": "es/index.js",
6
6
  "files": [
@@ -23,9 +23,9 @@
23
23
  "postpublish": "node ./post_publish.js",
24
24
  "lint:setup": "ZDPrecommit setupPlugins",
25
25
  "lint": "eslint -c .eslintrc.js --ext .ts,.js,.tsx",
26
- "lint:analytics": "ZDLintingFramework lint",
27
- "lint:exemption": "ZDLintingFramework exemption-report",
28
- "lint:ci": "ZDLintingFramework lint-ci",
26
+ "lint:analytics": "ZDLintFramework lint",
27
+ "lint:exemption": "ZDLintFramework exemption-report",
28
+ "lint:ci": "ZDLintFramework lint-ci",
29
29
  "prettify": "node prettify.js staged"
30
30
  },
31
31
  "author": "",
@@ -40,19 +40,16 @@
40
40
  "@testing-library/user-event": "13.0.10",
41
41
  "@types/react": "18.2.55",
42
42
  "@typescript-eslint/parser": "^7.11.0",
43
- "@zoho/SecurityJS": "7.2.4",
43
+ "@zoho/SecurityJS": "7.4.2",
44
44
  "@zohodesk-private/css-variable-migrator": "^1.0.8",
45
45
  "@zohodesk-private/desk-components": "1.4.7",
46
46
  "@zohodesk-private/dot-registry": "0.0.2",
47
47
  "@zohodesk-private/node-plugins": "1.1.9",
48
48
  "@zohodesk/a11y": "2.3.8",
49
- "@zohodesk/codestandard-analytics": "1.0.2",
50
- "@zohodesk/codestandard-validator": "1.0.0",
49
+ "@zohodesk/codestandard-validator": "1.3.1",
51
50
  "@zohodesk/components": "1.5.8",
52
51
  "@zohodesk/dot": "1.8.6",
53
52
  "@zohodesk/dotkit": "1.0.7",
54
- "@zohodesk/eslint-plugin-architecturerules": "0.0.6-exp-4",
55
- "@zohodesk/eslint-plugin-no-hardcoding": "1.0.6-platform-1",
56
53
  "@zohodesk/hooks": "2.0.6",
57
54
  "@zohodesk/icons": "1.1.5",
58
55
  "@zohodesk/layout": "3.1.0",
@@ -77,7 +74,7 @@
77
74
  "typescript": "4.9.5"
78
75
  },
79
76
  "peerDependencies": {
80
- "@zoho/SecurityJS": "7.2.4",
77
+ "@zoho/SecurityJS": "7.4.2",
81
78
  "@zohodesk-private/desk-components": "1.4.7",
82
79
  "@zohodesk-private/dot-registry": "0.0.2",
83
80
  "@zohodesk/a11y": "2.3.8",
@@ -85,7 +82,7 @@
85
82
  "@zohodesk/dot": "1.8.6",
86
83
  "@zohodesk/dotkit": "1.0.7",
87
84
  "@zohodesk/hooks": "2.0.6",
88
- "@zohodesk/i18n": "1.0.0-beta.31",
85
+ "@zohodesk/i18n": "1.0.0-beta.35",
89
86
  "@zohodesk/icons": "1.1.5",
90
87
  "@zohodesk/layout": "3.1.0",
91
88
  "@zohodesk/svg": "1.2.6",
@@ -98,4 +95,4 @@
98
95
  "jsep": "0.3.5",
99
96
  "object-path-immutable": "4.1.2"
100
97
  }
101
- }
98
+ }
@@ -1,28 +0,0 @@
1
- import AbstractController from "./AbstractController";
2
- import { COLUMN_CHOOSER_BEHAVIOUR_OPENED } from "../../../../../bc/column-chooser/Constants";
3
- export default class ColumnChooserOpenedController extends AbstractController {
4
- handle(event) {
5
- const state = event.state;
6
- const {
7
- zfield
8
- } = state.behaviours;
9
- const {
10
- fields: availableFields,
11
- selectedFields
12
- } = zfield;
13
- const columnChooserOptionsOrder = [...selectedFields];
14
- availableFields.forEach(field => {
15
- if (!selectedFields.includes(field.name)) {
16
- columnChooserOptionsOrder.push(field.name);
17
- }
18
- });
19
- event.dispatch({
20
- type: COLUMN_CHOOSER_BEHAVIOUR_OPENED,
21
- payload: {
22
- order: columnChooserOptionsOrder,
23
- selectedArray: selectedFields
24
- }
25
- });
26
- }
27
-
28
- }
@@ -1,31 +0,0 @@
1
- import AbstractController from "./AbstractController";
2
- import { FIELD_EXECUTE } from "../../../../../bc/zfield/Constants";
3
- export default class ColumnChooserUpdateController extends AbstractController {
4
- handle(event) {
5
- const {
6
- state,
7
- dispatch
8
- } = event;
9
- const {
10
- context
11
- } = state.behaviours.appContext;
12
- const {
13
- viewId,
14
- departmentId
15
- } = state.properties;
16
- const fields = event.action.payload.selectedArray;
17
- dispatch({
18
- type: FIELD_EXECUTE,
19
- payload: {
20
- actionName: 'updateSelectedFields',
21
- props: { ...context,
22
- fields,
23
- viewId,
24
- departmentId
25
- },
26
- apiName: 'updateSelectedFields'
27
- }
28
- });
29
- }
30
-
31
- }