@zohodesk/library-platform 1.1.11 → 1.1.12-exp.1

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 (116) hide show
  1. package/es/cc/checkbox/Properties.js +2 -1
  2. package/es/cc/email/Properties.js +8 -0
  3. package/es/cc/fields/field/Types.js +31 -23
  4. package/es/cc/highlighted-value/Properties.js +18 -0
  5. package/es/cc/link/Properties.js +13 -3
  6. package/es/cc/radio-dropdown/Constants.js +6 -0
  7. package/es/cc/radio-dropdown/Data.js +1 -0
  8. package/es/cc/radio-dropdown/Events.js +42 -0
  9. package/es/cc/radio-dropdown/Properties.js +142 -0
  10. package/es/cc/radio-dropdown/index.js +4 -0
  11. package/es/cc/switch/Properties.js +2 -2
  12. package/es/cc/table-column-filter/Properties.js +9 -0
  13. package/es/cc/table-list/Properties.js +1 -35
  14. package/es/cc/tag/Constants.js +6 -0
  15. package/es/cc/tag/Data.js +14 -0
  16. package/es/cc/tag/EventHandlers.js +1 -0
  17. package/es/cc/tag/Events.js +26 -0
  18. package/es/cc/{tags/model/TagModel.js → tag/Model.js} +6 -2
  19. package/es/cc/tag/Properties.js +104 -0
  20. package/es/cc/tag/index.js +6 -0
  21. package/es/cc/tags/Data.js +0 -6
  22. package/es/cc/tags/model/index.js +1 -1
  23. package/es/cc/tags-list-dropdown/Constants.js +5 -0
  24. package/es/cc/tags-list-dropdown/Data.js +1 -0
  25. package/es/cc/tags-list-dropdown/Events.js +14 -0
  26. package/es/cc/tags-list-dropdown/Properties.js +96 -0
  27. package/es/cc/tags-list-dropdown/index.js +4 -0
  28. package/es/library/dot/components/form/frameworks/ui/css/Form.module.css +13 -13
  29. package/es/library/dot/components/form-fields/field/css/FieldItem.module.css +2 -2
  30. package/es/library/dot/components/section/frameworks/ui/css/Section.module.css +3 -3
  31. package/es/library/dot/components/table-list/frameworks/ui/css/TableList.module.css +21 -21
  32. package/es/library/dot/components/table-list/frameworks/ui/sub-components/row/Row.js +3 -1
  33. package/es/library/dot/legacy-to-new-arch/breadcrumb/frameworks/ui/css/Breadcrumb.module.css +4 -4
  34. package/es/library/dot/legacy-to-new-arch/date/frameworks/ui/css/DateView.module.css +1 -1
  35. package/es/library/dot/legacy-to-new-arch/email/frameworks/ui/EmailView.js +4 -2
  36. package/es/library/dot/legacy-to-new-arch/highlighted-value/frameworks/ui/HighlightedValueView.js +6 -1
  37. package/es/library/dot/legacy-to-new-arch/index.js +1 -0
  38. package/es/library/dot/legacy-to-new-arch/label/frameworks/ui/css/Label.module.css +4 -4
  39. package/es/library/dot/legacy-to-new-arch/link/frameworks/ui/LinkView.js +4 -2
  40. package/es/library/dot/legacy-to-new-arch/multi-select/frameworks/ui/css/MultiSelectView.module.css +7 -7
  41. package/es/library/dot/legacy-to-new-arch/radio-dropdown/frameworks/ui/RadioDropdown.js +12 -0
  42. package/es/library/dot/legacy-to-new-arch/radio-dropdown/frameworks/ui/RadioDropdownView.js +124 -0
  43. package/es/library/dot/legacy-to-new-arch/radio-dropdown/frameworks/ui/css/RadioDropdown.module.css +23 -0
  44. package/es/library/dot/legacy-to-new-arch/select/frameworks/ui/css/Select.module.css +2 -2
  45. package/es/library/dot/legacy-to-new-arch/table-column-chooser/frameworks/ui/css/TableColumnChooserView.module.css +1 -1
  46. package/es/library/dot/legacy-to-new-arch/table-column-filter/frameworks/ui/TableColumnFilterView.js +2 -1
  47. package/es/library/dot/legacy-to-new-arch/table-field-components/checkbox-field/frameworks/ui/CheckboxField.js +12 -2
  48. package/es/library/dot/legacy-to-new-arch/table-field-components/checkbox-field/frameworks/ui/CheckboxFieldView.js +8 -5
  49. package/es/library/dot/legacy-to-new-arch/table-field-components/checkbox-field/frameworks/ui/EventHandlersFactory.js +3 -3
  50. package/es/library/dot/legacy-to-new-arch/table-field-components/email-field/frameworks/ui/EmailField.js +3 -3
  51. package/es/library/dot/legacy-to-new-arch/table-field-components/email-field/frameworks/ui/EmailFieldView.js +8 -6
  52. package/es/library/dot/legacy-to-new-arch/table-field-components/highlighted-value-field/frameworks/ui/EventHandlersFactory.js +26 -0
  53. package/es/library/dot/legacy-to-new-arch/table-field-components/highlighted-value-field/frameworks/ui/HighlightedValueField.js +23 -0
  54. package/es/library/dot/legacy-to-new-arch/table-field-components/highlighted-value-field/frameworks/ui/HighlightedValueFieldView.js +24 -0
  55. package/es/library/dot/legacy-to-new-arch/table-field-components/index.js +22 -5
  56. package/es/library/dot/legacy-to-new-arch/table-field-components/labeled-avatar-field/frameworks/ui/EventHandlersFactory.js +26 -0
  57. package/es/library/dot/legacy-to-new-arch/table-field-components/labeled-avatar-field/frameworks/ui/LabeledAvatarField.js +23 -0
  58. package/es/library/dot/legacy-to-new-arch/table-field-components/labeled-avatar-field/frameworks/ui/LabeledAvatarFieldView.js +22 -0
  59. package/es/library/dot/legacy-to-new-arch/table-field-components/link-field/frameworks/ui/EventHandlersFactory.js +26 -0
  60. package/es/library/dot/legacy-to-new-arch/table-field-components/link-field/frameworks/ui/LinkField.js +23 -0
  61. package/es/library/dot/legacy-to-new-arch/table-field-components/link-field/frameworks/ui/LinkFieldView.js +26 -0
  62. package/es/library/dot/legacy-to-new-arch/table-field-components/lookup-field/frameworks/ui/LookupFieldView.js +1 -1
  63. package/es/library/dot/legacy-to-new-arch/table-field-components/phone-field/frameworks/ui/PhoneFieldView.js +1 -1
  64. package/es/library/dot/legacy-to-new-arch/table-field-components/radio-dropdown-field/frameworks/ui/EventHandlersFactory.js +32 -0
  65. package/es/library/dot/legacy-to-new-arch/table-field-components/radio-dropdown-field/frameworks/ui/RadioDropdownField.js +32 -0
  66. package/es/library/dot/legacy-to-new-arch/table-field-components/radio-dropdown-field/frameworks/ui/RadioDropdownFieldView.js +43 -0
  67. package/es/library/dot/legacy-to-new-arch/table-field-components/radio-dropdown-field/frameworks/ui/css/RadioDropdownField.module.css +3 -0
  68. package/es/library/dot/legacy-to-new-arch/table-field-components/switch-field/frameworks/ui/EventHandlersFactory.js +3 -3
  69. package/es/library/dot/legacy-to-new-arch/table-field-components/switch-field/frameworks/ui/SwitchField.js +14 -4
  70. package/es/library/dot/legacy-to-new-arch/table-field-components/switch-field/frameworks/ui/SwitchFieldView.js +8 -4
  71. package/es/library/dot/legacy-to-new-arch/table-field-components/tag-field/frameworks/ui/EventHandlersFactory.js +26 -0
  72. package/es/library/dot/legacy-to-new-arch/table-field-components/tag-field/frameworks/ui/TagField.js +23 -0
  73. package/es/library/dot/legacy-to-new-arch/table-field-components/tag-field/frameworks/ui/TagFieldView.js +34 -0
  74. package/es/library/dot/legacy-to-new-arch/table-field-components/tags-field/frameworks/ui/EventHandlersFactory.js +26 -0
  75. package/es/library/dot/legacy-to-new-arch/table-field-components/tags-field/frameworks/ui/TagsField.js +23 -0
  76. package/es/library/dot/legacy-to-new-arch/table-field-components/tags-field/frameworks/ui/TagsFieldView.js +18 -0
  77. package/es/library/dot/legacy-to-new-arch/table-field-components/tags-list-dropdown-field/frameworks/ui/TagsListDropdownField.js +12 -0
  78. package/es/library/dot/legacy-to-new-arch/table-field-components/tags-list-dropdown-field/frameworks/ui/TagsListDropdownFieldView.js +24 -0
  79. package/es/library/dot/legacy-to-new-arch/table-field-components/text-field/frameworks/ui/EventHandlersFactory.js +26 -0
  80. package/es/library/dot/legacy-to-new-arch/table-field-components/text-field/frameworks/ui/TextField.js +23 -0
  81. package/es/library/dot/legacy-to-new-arch/table-field-components/text-field/frameworks/ui/TextFieldView.js +20 -0
  82. package/es/library/dot/legacy-to-new-arch/table-field-components/url-field/frameworks/ui/UrlFieldView.js +1 -1
  83. package/es/library/dot/legacy-to-new-arch/tag/frameworks/ui/Tag.js +11 -0
  84. package/es/library/dot/legacy-to-new-arch/tag/frameworks/ui/Tag.module.css +8 -0
  85. package/es/library/dot/legacy-to-new-arch/tag/frameworks/ui/TagView.js +96 -0
  86. package/es/library/dot/legacy-to-new-arch/tags-list-dropdown/frameworks/ui/TagContractAdapter.js +24 -0
  87. package/es/library/dot/legacy-to-new-arch/tags-list-dropdown/frameworks/ui/TagsListDropdown.js +12 -0
  88. package/es/library/dot/legacy-to-new-arch/tags-list-dropdown/frameworks/ui/TagsListDropdownView.js +42 -0
  89. package/es/library/dot/legacy-to-new-arch/text-area/frameworks/ui/css/TextAreaView.module.css +3 -3
  90. package/es/platform/client-actions/components/row-actions-renderer/frameworks/ui/RowActions/RowActionsRenderer.module.css +5 -5
  91. package/es/platform/data-source/http-template/getComponentMapping.js +17 -0
  92. package/es/platform/data-source/index.js +3 -1
  93. package/es/platform/zfield/applications/usecases/FetchSuccessUseCase.js +33 -0
  94. package/es/platform/zfield/domain/entities/fields-manager/FieldsManager.js +5 -0
  95. package/es/platform/zlist/adapters/presenters/TableTranslator.js +15 -2
  96. package/es/platform/zlist/adapters/presenters/translators/ColumnTranslator.js +48 -52
  97. package/es/platform/zlist/adapters/presenters/translators/FieldVariations.js +25 -0
  98. package/es/platform/zlist/adapters/presenters/translators/Row.js +3 -2
  99. package/es/platform/zlist/adapters/presenters/translators/RowsTranslator.js +3 -1
  100. package/es/platform/zlist/adapters/presenters/translators/fields/BooleanFieldTranslator.js +87 -12
  101. package/es/platform/zlist/adapters/presenters/translators/fields/CurrencyFieldTranslator.js +66 -11
  102. package/es/platform/zlist/adapters/presenters/translators/fields/DateFieldTranslator.js +16 -9
  103. package/es/platform/zlist/adapters/presenters/translators/fields/DateTimeFieldTranslator.js +16 -9
  104. package/es/platform/zlist/adapters/presenters/translators/fields/DecimalFieldTranslator.js +16 -9
  105. package/es/platform/zlist/adapters/presenters/translators/fields/EmailFieldTranslator.js +29 -9
  106. package/es/platform/zlist/adapters/presenters/translators/fields/FormulaFieldTranslator.js +23 -27
  107. package/es/platform/zlist/adapters/presenters/translators/fields/LookUpFieldTranslator.js +106 -17
  108. package/es/platform/zlist/adapters/presenters/translators/fields/MultiLineFieldTranslator.js +16 -9
  109. package/es/platform/zlist/adapters/presenters/translators/fields/MultiSelectFieldTranslator.js +100 -26
  110. package/es/platform/zlist/adapters/presenters/translators/fields/NumberFieldTranslator.js +16 -9
  111. package/es/platform/zlist/adapters/presenters/translators/fields/PercentageFieldTranslator.js +16 -9
  112. package/es/platform/zlist/adapters/presenters/translators/fields/PhoneFieldTranslator.js +16 -9
  113. package/es/platform/zlist/adapters/presenters/translators/fields/PickListFieldTranslator.js +167 -26
  114. package/es/platform/zlist/adapters/presenters/translators/fields/SingleLineFieldTranslator.js +16 -9
  115. package/es/platform/zlist/adapters/presenters/translators/fields/URLFieldTranslator.js +32 -9
  116. package/package.json +8 -8
@@ -1,23 +1,9 @@
1
1
  import EmptyViewModel from "./EmptyViewModel";
2
2
  import * as FieldTranslators from "./fields";
3
3
  import ClientActionsTranslator from "../../../../client-actions/translators/client-actions-translator";
4
+ import { isValidFieldVariation } from "./FieldVariations";
4
5
 
5
- //hacking temp url construction for lookup
6
- function getLookupUrlConstructions(_ref) {
7
- let {
8
- field,
9
- value,
10
- context
11
- } = _ref;
12
- let {
13
- orgName,
14
- departmentName
15
- } = context;
16
- let lookupModuleName = field?.lookup?.module?.apiName;
17
- return `/agent/${orgName}/${departmentName}/${lookupModuleName}/details/${value.id}`;
18
- }
19
-
20
- function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, context, preferences, instanceName, textOverflowConfig, moduleName, nameFieldsConfig, recordReadStatusConfig) {
6
+ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, context, preferences, instanceName, moduleName, textOverflowConfig, nameFieldsConfig, recordReadStatusConfig, componentMapping) {
21
7
  const {
22
8
  isCustomField,
23
9
  name,
@@ -32,7 +18,6 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
32
18
  __DEVELOPMENT__ && console.warn(`The string format for componentMapping will soon be deprecated. Please update to the new JSON format. REF : ${JSON.stringify(fieldEntry)}`);
33
19
  }
34
20
 
35
- let tempValue = undefined;
36
21
  let value = isCustomField ? record.cf?.[name] : record[name];
37
22
  const actions = ClientActionsTranslator.transform(fieldActions, instanceName, moduleName, {
38
23
  field,
@@ -43,8 +28,12 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
43
28
  return EmptyViewModel(name);
44
29
  }
45
30
 
46
- if (fieldComponentMapping[name]) {
47
- field.uiType = fieldComponentMapping[name];
31
+ if (field.uiType && !isValidFieldVariation(type, field.uiType)) {
32
+ __DEVELOPMENT__ && console.warn(`The uiType ${field.uiType} is not a valid variation for field type ${type}. Ignoring the uiType.`);
33
+ }
34
+
35
+ if (typeof fieldEntry === 'string') {
36
+ field.uiType = fieldEntry;
48
37
  }
49
38
 
50
39
  let nameFieldTypes = ['Text'];
@@ -58,22 +47,9 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
58
47
  return EmptyViewModel(name);
59
48
  }
60
49
 
61
- if (field.type == "LookUp") {
62
- // temp fix for when lookup field don't have value !object
63
- tempValue = typeof value !== 'object' ? {
64
- name: value,
65
- id: value
66
- } : value;
67
- tempValue.url = getLookupUrlConstructions({
68
- field,
69
- value,
70
- context
71
- });
72
- }
73
-
74
50
  const translatorArgs = {
75
51
  field,
76
- value: tempValue ? tempValue : value,
52
+ value,
77
53
  appendToActionPayload: {
78
54
  recordId: record.id
79
55
  },
@@ -96,31 +72,51 @@ function ColumnTranslator(field, record, fieldComponentMapping, fieldActions, co
96
72
  ...fieldTranslator(translatorArgs)
97
73
  };
98
74
 
99
- if (fieldEntry && typeof fieldEntry === 'object') {
100
- viewModel.type = fieldEntry.UIComponentName;
101
-
102
- if (fieldEntry.fieldToUIComponentTranslator) {
103
- viewModel.value = fieldEntry.fieldToUIComponentTranslator({
104
- field,
105
- record,
106
- context
107
- });
108
- }
109
-
110
- if (fieldEntry.translator) {
111
- const newViewModel = fieldEntry.translator({
75
+ if (componentMapping && componentMapping.translator) {
76
+ return { ...viewModel,
77
+ ...componentMapping.translator({
112
78
  viewModel,
113
79
  field,
114
- context
115
- });
116
- newViewModel.type = fieldEntry.UIComponentName;
117
- return newViewModel;
80
+ record,
81
+ context,
82
+ preferences
83
+ })
84
+ };
85
+ } else {
86
+ //will be deprecated soon
87
+ if (fieldEntry && typeof fieldEntry === 'object') {
88
+ viewModel.type = fieldEntry.UIComponentName;
89
+
90
+ if (fieldEntry.fieldToUIComponentTranslator) {
91
+ viewModel.value = fieldEntry.fieldToUIComponentTranslator({
92
+ field,
93
+ record,
94
+ context
95
+ });
96
+ }
97
+
98
+ if (fieldEntry.translator) {
99
+ const newViewModel = fieldEntry.translator({
100
+ viewModel: viewModel,
101
+ field,
102
+ record,
103
+ context,
104
+ preferences
105
+ });
106
+ return { ...newViewModel,
107
+ type: fieldEntry.UIComponentName ? fieldEntry.UIComponentName : field.uiType,
108
+ appendToActionPayload: {
109
+ recordId: record.id,
110
+ ...newViewModel.appendToActionPayload
111
+ }
112
+ };
113
+ }
114
+
115
+ ;
118
116
  }
119
117
 
120
118
  return viewModel;
121
119
  }
122
-
123
- return viewModel;
124
120
  }
125
121
 
126
122
  export default ColumnTranslator;
@@ -0,0 +1,25 @@
1
+ import FieldTypes from "../../../../../cc/fields/field/Types";
2
+ const variationsMap = {
3
+ 'Boolean': [FieldTypes.CheckboxField, FieldTypes.SwitchField] // 'Date': ['DatePicker', 'DateTimePicker'],
4
+ // 'Text': ['SingleLineText', 'MultiLineText', 'RichText'],
5
+ // Add more field types and their variations as needed
6
+
7
+ };
8
+ export const isValidFieldVariation = (fieldType, uiType) => {
9
+ const validVariations = variationsMap[fieldType];
10
+ return validVariations ? validVariations.includes(uiType) : false;
11
+ };
12
+ /*
13
+
14
+ Smart Table Field UI Variants:
15
+ • Boolean - CheckBox, Switch, Text
16
+ • Lookup - Link, Tag (Chip), LabeledAvatar
17
+ • SingleLine - Text, Link (Name field)
18
+ • MultiPicklist - TagsList, TagsDropdown
19
+ • ColoredMultiPicklist - TagsList
20
+ • ColoredPicklist - ColoredTag
21
+ • URL - Link, Text
22
+ • Email - Email
23
+ • Date, DateTime, Picklist, Currency, Integer, Decimal, Phone, Percentage - Text
24
+
25
+ */
@@ -14,14 +14,15 @@ export default function RowTranslator(_ref) {
14
14
  textOverflowConfig,
15
15
  moduleName,
16
16
  nameFieldsConfig,
17
- recordReadStatusConfig
17
+ recordReadStatusConfig,
18
+ componentMapping
18
19
  } = _ref;
19
20
  const actions = ClientActionsTranslator.transform(rowActions, instanceName, moduleName, { ...context,
20
21
  record
21
22
  });
22
23
  return {
23
24
  id: record.id,
24
- columns: fields.map(field => ColumnTranslator(field, record, fieldComponentMapping, fieldActions, context, preferences, instanceName, textOverflowConfig, moduleName, nameFieldsConfig, recordReadStatusConfig)),
25
+ columns: fields.map(field => ColumnTranslator(field, record, fieldComponentMapping, fieldActions, context, preferences, instanceName, textOverflowConfig, moduleName, nameFieldsConfig, recordReadStatusConfig, componentMapping.find(item => item.fieldName === field.name))),
25
26
  rowActionLocation: {
26
27
  type: rowActionsUiType,
27
28
  actions
@@ -1,6 +1,6 @@
1
1
  import RowTranslator from "./Row";
2
2
  export default class RowsTranslator {
3
- constructor(records, fields, rowActions, context, preferences, fieldComponentMapping, rowActionsUiType, fieldActions, instanceName, textOverflowConfig, moduleName, nameFieldsConfig, recordReadStatusConfig) {
3
+ constructor(records, fields, rowActions, context, preferences, fieldComponentMapping, rowActionsUiType, fieldActions, instanceName, textOverflowConfig, moduleName, nameFieldsConfig, recordReadStatusConfig, componentMapping) {
4
4
  this.records = records;
5
5
  this.fields = fields;
6
6
  this.rowActions = rowActions;
@@ -14,6 +14,7 @@ export default class RowsTranslator {
14
14
  this.moduleName = moduleName;
15
15
  this.nameFieldsConfig = nameFieldsConfig;
16
16
  this.recordReadStatusConfig = recordReadStatusConfig;
17
+ this.componentMapping = componentMapping;
17
18
  this.pipe = this.pipe.bind(this);
18
19
  }
19
20
 
@@ -23,6 +24,7 @@ export default class RowsTranslator {
23
24
  }
24
25
 
25
26
  return this.records.map(record => RowTranslator({
27
+ componentMapping: this.componentMapping,
26
28
  record,
27
29
  fields: this.fields,
28
30
  fieldComponentMapping: this.fieldComponentMapping,
@@ -1,6 +1,5 @@
1
1
  // import FieldModel from '@platform/zfield/entities/interfaces/FieldModel';
2
2
  import FieldTypes from "../../../../../../cc/fields/field/Types";
3
- import BooleanFieldModel from "../../../../../../cc/fields/boolean/Model";
4
3
 
5
4
  const BooleanFieldTranslator = _ref => {
6
5
  let {
@@ -12,23 +11,99 @@ const BooleanFieldTranslator = _ref => {
12
11
  } = _ref;
13
12
  const {
14
13
  uiType,
15
- name
14
+ name,
15
+ displayLabel
16
16
  } = field;
17
+ let newValue = value;
17
18
 
18
19
  if (value === 'true') {
19
- value = true;
20
+ newValue = true;
20
21
  } else if (value === 'false') {
21
- value = false;
22
+ newValue = false;
22
23
  }
23
24
 
24
- return BooleanFieldModel({
25
- uiType: uiType || FieldTypes.CheckboxField,
26
- name,
27
- appendToActionPayload,
28
- isRead,
29
- value,
30
- textOverflowMode
31
- });
25
+ switch (uiType) {
26
+ case FieldTypes.TextField:
27
+ return {
28
+ type: FieldTypes.TextField,
29
+ fieldName: name,
30
+ text: value,
31
+ isDotted: textOverflowMode === 'clip',
32
+ weight: isRead ? undefined : 'bold',
33
+ tooltip: value,
34
+ appendToActionPayload,
35
+ isRead,
36
+ textOverflowMode
37
+ };
38
+
39
+ case FieldTypes.HighlightedValueField:
40
+ return {
41
+ type: FieldTypes.HighlightedValueField,
42
+ fieldName: name,
43
+ text: value,
44
+ color: newValue ? 'green' : 'red',
45
+ tooltip: value,
46
+ cursor: 'default',
47
+ appendToActionPayload,
48
+ isRead,
49
+ textOverflowMode
50
+ };
51
+
52
+ case FieldTypes.RadioDropdownField:
53
+ {
54
+ const options = [{
55
+ id: 'true',
56
+ value: 'true',
57
+ secondaryValue: ''
58
+ }, {
59
+ id: 'false',
60
+ value: 'false',
61
+ secondaryValue: ''
62
+ }];
63
+ const highlightedValueColor = newValue ? 'green' : 'red';
64
+ return {
65
+ type: FieldTypes.RadioDropdownField,
66
+ fieldName: name,
67
+ fieldType: 'boolean',
68
+ options,
69
+ color: highlightedValueColor,
70
+ selectedId: value,
71
+ selectedValue: value,
72
+ dropdownHeading: displayLabel,
73
+ isDotted: textOverflowMode === 'clip',
74
+ weight: isRead ? undefined : 'bold',
75
+ hasSearch: false,
76
+ isDisabled: false,
77
+ isReadOnly: false,
78
+ appendToActionPayload,
79
+ isRead,
80
+ textOverflowMode
81
+ };
82
+ }
83
+
84
+ case FieldTypes.SwitchField:
85
+ return {
86
+ type: FieldTypes.SwitchField,
87
+ fieldName: name,
88
+ checked: newValue,
89
+ disabled: false,
90
+ tooltip: '',
91
+ appendToActionPayload,
92
+ isRead,
93
+ textOverflowMode
94
+ };
95
+
96
+ case FieldTypes.CheckboxField:
97
+ default:
98
+ return {
99
+ type: FieldTypes.CheckboxField,
100
+ fieldName: name,
101
+ checked: newValue,
102
+ appendToActionPayload,
103
+ isRead,
104
+ textOverflowMode
105
+ };
106
+ }
32
107
  };
33
108
 
34
109
  export default BooleanFieldTranslator;
@@ -1,7 +1,49 @@
1
1
  import FieldTypes from "../../../../../../cc/fields/field/Types";
2
- import CurrencyFieldModel from "../../../../../../cc/fields/currency/Model";
3
2
 
4
- const CurrencyFieldTranslator = _ref => {
3
+ function isValidNumber() {
4
+ let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
5
+ const rejexPattern = new RegExp('^(\\d+\\.?\\d*|\\.\\d+)$');
6
+ const isValidInt = rejexPattern.test(value);
7
+ return isValidInt;
8
+ }
9
+
10
+ function formatCurrency(_ref) {
11
+ let {
12
+ value,
13
+ locale = 'IN',
14
+ symbol = 'Rs.'
15
+ } = _ref;
16
+ const isValidInt = isValidNumber(value);
17
+
18
+ if (isValidInt && symbol) {
19
+ const currencyArr = new Intl.NumberFormat(`en-${locale}`).formatToParts(value);
20
+ let currencyVal = '';
21
+ currencyArr.map(val => {
22
+ if (val.type == 'group') {
23
+ currencyVal += ',';
24
+ } else if (val.type == 'integer') {
25
+ currencyVal += val.value;
26
+ }
27
+ });
28
+
29
+ if (value.indexOf('.') != -1) {
30
+ const fractionVal = value.split(".")[1];
31
+
32
+ for (let i = fractionVal.length - 1; i >= 0; i--) {
33
+ if (fractionVal[i] != 0) {
34
+ currencyVal += `.${fractionVal.slice(0, i + 1)}`;
35
+ break;
36
+ }
37
+ }
38
+ }
39
+
40
+ return `${symbol}${currencyVal}`;
41
+ }
42
+
43
+ return value;
44
+ }
45
+
46
+ const CurrencyFieldTranslator = _ref2 => {
5
47
  let {
6
48
  field,
7
49
  value,
@@ -10,7 +52,7 @@ const CurrencyFieldTranslator = _ref => {
10
52
  preferences,
11
53
  textOverflowMode,
12
54
  isRead
13
- } = _ref;
55
+ } = _ref2;
14
56
  const {
15
57
  uiType,
16
58
  name
@@ -19,16 +61,29 @@ const CurrencyFieldTranslator = _ref => {
19
61
  let contextCurrencyLocale = context?.currencyLocale;
20
62
  let prefCurrencySymbol = preferences?.fields?.[field.apiName]?.currencySymbol;
21
63
  let contextCurrencySymbol = context?.currencySymbol;
22
- return CurrencyFieldModel({
23
- uiType: uiType || FieldTypes.CurrencyField,
24
- appendToActionPayload,
25
- name,
26
- currencyLocale: prefCurrencyLocale || contextCurrencyLocale,
27
- currencySymbol: prefCurrencySymbol || contextCurrencySymbol,
28
- isRead,
64
+ let locale = prefCurrencyLocale || contextCurrencyLocale;
65
+ let symbol = prefCurrencySymbol || contextCurrencySymbol;
66
+ let formatedValue = formatCurrency({
29
67
  value,
30
- textOverflowMode
68
+ locale,
69
+ symbol
31
70
  });
71
+
72
+ switch (uiType) {
73
+ case FieldTypes.TextField:
74
+ default:
75
+ return {
76
+ type: FieldTypes.TextField,
77
+ fieldName: name,
78
+ text: formatedValue,
79
+ isDotted: textOverflowMode === 'clip',
80
+ weight: isRead ? undefined : 'bold',
81
+ tooltip: formatedValue,
82
+ appendToActionPayload,
83
+ isRead,
84
+ textOverflowMode
85
+ };
86
+ }
32
87
  };
33
88
 
34
89
  export default CurrencyFieldTranslator;
@@ -1,6 +1,5 @@
1
1
  // import FieldModel from '@platform/zfield/entities/interfaces/FieldModel';
2
2
  import FieldTypes from "../../../../../../cc/fields/field/Types";
3
- import DateFieldModel from "../../../../../../cc/fields/date/Model";
4
3
 
5
4
  const DateFieldTranslator = _ref => {
6
5
  let {
@@ -14,14 +13,22 @@ const DateFieldTranslator = _ref => {
14
13
  uiType,
15
14
  name
16
15
  } = field;
17
- return DateFieldModel({
18
- uiType: uiType || FieldTypes.DateField,
19
- appendToActionPayload,
20
- name,
21
- isRead,
22
- value,
23
- textOverflowMode
24
- });
16
+
17
+ switch (uiType) {
18
+ case FieldTypes.TextField:
19
+ default:
20
+ return {
21
+ type: FieldTypes.TextField,
22
+ fieldName: name,
23
+ text: value,
24
+ isDotted: textOverflowMode === 'clip',
25
+ weight: isRead ? undefined : 'bold',
26
+ tooltip: value,
27
+ appendToActionPayload,
28
+ isRead,
29
+ textOverflowMode
30
+ };
31
+ }
25
32
  };
26
33
 
27
34
  export default DateFieldTranslator;
@@ -1,6 +1,5 @@
1
1
  // import FieldModel from '@platform/zfield/entities/interfaces/FieldModel';
2
2
  import FieldTypes from "../../../../../../cc/fields/field/Types";
3
- import DateTimeFieldModel from "../../../../../../cc/fields/datetime/Model";
4
3
 
5
4
  const DateTimeFieldTranslator = _ref => {
6
5
  let {
@@ -14,14 +13,22 @@ const DateTimeFieldTranslator = _ref => {
14
13
  uiType,
15
14
  name
16
15
  } = field;
17
- return DateTimeFieldModel({
18
- uiType: uiType || FieldTypes.DateTimeField,
19
- appendToActionPayload,
20
- name,
21
- isRead,
22
- value,
23
- textOverflowMode
24
- });
16
+
17
+ switch (uiType) {
18
+ case FieldTypes.TextField:
19
+ default:
20
+ return {
21
+ type: FieldTypes.TextField,
22
+ fieldName: name,
23
+ text: value,
24
+ isDotted: textOverflowMode === 'clip',
25
+ weight: isRead ? undefined : 'bold',
26
+ tooltip: value,
27
+ appendToActionPayload,
28
+ isRead,
29
+ textOverflowMode
30
+ };
31
+ }
25
32
  };
26
33
 
27
34
  export default DateTimeFieldTranslator;
@@ -1,6 +1,5 @@
1
1
  // import FieldModel from '@platform/zfield/entities/interfaces/FieldModel';
2
2
  import FieldTypes from "../../../../../../cc/fields/field/Types";
3
- import DecimalFieldModel from "../../../../../../cc/fields/decimal/Model";
4
3
 
5
4
  const DecimalFieldTranslator = _ref => {
6
5
  let {
@@ -14,14 +13,22 @@ const DecimalFieldTranslator = _ref => {
14
13
  uiType,
15
14
  name
16
15
  } = field;
17
- return DecimalFieldModel({
18
- uiType: uiType || FieldTypes.DecimalField,
19
- appendToActionPayload,
20
- name,
21
- isRead,
22
- value,
23
- textOverflowMode
24
- });
16
+
17
+ switch (uiType) {
18
+ case FieldTypes.TextField:
19
+ default:
20
+ return {
21
+ type: FieldTypes.TextField,
22
+ fieldName: name,
23
+ text: value,
24
+ isDotted: textOverflowMode === 'clip',
25
+ weight: isRead ? undefined : 'bold',
26
+ tooltip: value,
27
+ appendToActionPayload,
28
+ isRead,
29
+ textOverflowMode
30
+ };
31
+ }
25
32
  };
26
33
 
27
34
  export default DecimalFieldTranslator;
@@ -1,5 +1,4 @@
1
1
  import FieldTypes from "../../../../../../cc/fields/field/Types";
2
- import EmailFieldModel from "../../../../../../cc/fields/email/Model";
3
2
 
4
3
  const EmailFieldTranslator = _ref => {
5
4
  let {
@@ -13,14 +12,35 @@ const EmailFieldTranslator = _ref => {
13
12
  uiType,
14
13
  name
15
14
  } = field;
16
- return EmailFieldModel({
17
- uiType: uiType || FieldTypes.EmailField,
18
- appendToActionPayload,
19
- name,
20
- isRead,
21
- value,
22
- textOverflowMode
23
- });
15
+
16
+ switch (uiType) {
17
+ case FieldTypes.TextField:
18
+ return {
19
+ type: FieldTypes.TextField,
20
+ fieldName: name,
21
+ text: value,
22
+ isDotted: textOverflowMode === 'clip',
23
+ weight: isRead ? undefined : 'bold',
24
+ tooltip: value,
25
+ appendToActionPayload,
26
+ isRead,
27
+ textOverflowMode
28
+ };
29
+
30
+ case FieldTypes.EmailField:
31
+ default:
32
+ return {
33
+ type: FieldTypes.EmailField,
34
+ fieldName: name,
35
+ email: value,
36
+ isDotted: textOverflowMode === 'clip',
37
+ weight: isRead ? undefined : 'bold',
38
+ tooltip: value,
39
+ appendToActionPayload,
40
+ isRead,
41
+ textOverflowMode
42
+ };
43
+ }
24
44
  };
25
45
 
26
46
  export default EmailFieldTranslator;
@@ -1,5 +1,17 @@
1
- import FieldTypes from "../../../../../../cc/fields/field/Types";
2
- import FormulaFieldModel from "../../../../../../cc/fields/formula/Model";
1
+ import SingleLineFieldTranslator from "./SingleLineFieldTranslator";
2
+ import BooleanFieldTranslator from "./BooleanFieldTranslator";
3
+ import DecimalFieldTranslator from "./DecimalFieldTranslator";
4
+ import CurrencyFieldTranslator from "./CurrencyFieldTranslator";
5
+ import DateFieldTranslator from "./DateFieldTranslator";
6
+ import DateTimeFieldTranslator from "./DateTimeFieldTranslator";
7
+ const fieldTypeFactory = {
8
+ STRING: SingleLineFieldTranslator,
9
+ BOOLEAN: BooleanFieldTranslator,
10
+ DECIMAL: DecimalFieldTranslator,
11
+ CURRENCY: CurrencyFieldTranslator,
12
+ DATE: DateFieldTranslator,
13
+ DATETIME: DateTimeFieldTranslator
14
+ };
3
15
 
4
16
  const FormulaFieldTranslator = _ref => {
5
17
  let {
@@ -12,33 +24,17 @@ const FormulaFieldTranslator = _ref => {
12
24
  isRead
13
25
  } = _ref;
14
26
  const {
15
- uiType,
16
- name
27
+ returnType
17
28
  } = field;
18
- let prefCurrencyLocale = preferences?.fields?.[field.apiName]?.currencyLocale;
19
- let contextCurrencyLocale = context?.currencyLocale;
20
- let prefCurrencySymbol = preferences?.fields?.[field.apiName]?.currencySymbol;
21
- let contextCurrencySymbol = context?.currencySymbol;
22
- const fieldTypeFactory = {
23
- STRING: FieldTypes.SingleLineField,
24
- BOOLEAN: FieldTypes.CheckboxField,
25
- DECIMAL: FieldTypes.DecimalField,
26
- CURRENCY: FieldTypes.CurrencyField,
27
- DATE: FieldTypes.DateField,
28
- DATETIME: FieldTypes.DateTimeField
29
- };
30
- const setFieldType = fieldTypeFactory[field.returnType] || FieldTypes.SingleLineField;
31
- return FormulaFieldModel({
32
- uiType: uiType || setFieldType,
33
- appendToActionPayload,
34
- name,
35
- ...(setFieldType === FieldTypes.CurrencyField && {
36
- currencyLocale: prefCurrencyLocale || contextCurrencyLocale,
37
- currencySymbol: prefCurrencySymbol || contextCurrencySymbol
38
- }),
39
- isRead,
29
+ const fieldTranslator = fieldTypeFactory[returnType];
30
+ return fieldTranslator({
31
+ field,
40
32
  value,
41
- textOverflowMode
33
+ appendToActionPayload,
34
+ context,
35
+ preferences,
36
+ textOverflowMode,
37
+ isRead
42
38
  });
43
39
  };
44
40