@sapui5/sap.suite.ui.generic.template 1.141.3 → 1.142.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/package.json +3 -4
  2. package/src/sap/suite/ui/generic/template/.library +3 -2
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_kk.properties +1 -1
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  5. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  6. package/src/sap/suite/ui/generic/template/ListReport/Component.js +3 -0
  7. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +58 -12
  8. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +5 -0
  9. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ar.properties +3 -0
  10. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_bg.properties +3 -0
  11. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ca.properties +3 -0
  12. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cnr.properties +3 -0
  13. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cs.properties +3 -0
  14. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cy.properties +3 -0
  15. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_da.properties +3 -0
  16. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_de.properties +3 -0
  17. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_el.properties +3 -0
  18. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en.properties +3 -0
  19. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_GB.properties +3 -0
  20. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es.properties +3 -0
  21. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es_MX.properties +3 -0
  22. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_et.properties +3 -0
  23. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fi.properties +3 -0
  24. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr.properties +3 -0
  25. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr_CA.properties +3 -0
  26. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hi.properties +3 -0
  27. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hr.properties +3 -0
  28. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hu.properties +3 -0
  29. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +5 -2
  30. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_it.properties +3 -0
  31. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_iw.properties +3 -0
  32. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ja.properties +3 -0
  33. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_kk.properties +3 -0
  34. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ko.properties +3 -0
  35. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lt.properties +3 -0
  36. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lv.properties +3 -0
  37. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_mk.properties +3 -0
  38. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ms.properties +3 -0
  39. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_nl.properties +3 -0
  40. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_no.properties +3 -0
  41. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pl.properties +3 -0
  42. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt.properties +4 -1
  43. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt_PT.properties +3 -0
  44. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ro.properties +3 -0
  45. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ru.properties +3 -0
  46. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sh.properties +3 -0
  47. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sk.properties +3 -0
  48. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sl.properties +3 -0
  49. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sr.properties +3 -0
  50. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sv.properties +3 -0
  51. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_th.properties +3 -0
  52. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_tr.properties +3 -0
  53. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +3 -0
  54. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_vi.properties +5 -2
  55. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_CN.properties +3 -0
  56. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_TW.properties +3 -0
  57. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  58. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +29 -2
  59. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +85 -21
  60. package/src/sap/suite/ui/generic/template/ObjectPage/controller/RelatedAppsHandler.js +1 -1
  61. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +8 -7
  62. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +1 -1
  63. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +1 -1
  64. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +2 -2
  65. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  66. package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +2 -2
  67. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +0 -1
  68. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  69. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  70. package/src/sap/suite/ui/generic/template/fragments/MessagePopover.fragment.xml +1 -1
  71. package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +0 -5
  72. package/src/sap/suite/ui/generic/template/js/AnnotationHelperStreamSupport.js +2 -1
  73. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +20 -2
  74. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +47 -1
  75. package/src/sap/suite/ui/generic/template/lib/TableNoDataHandler.js +107 -0
  76. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +58 -6
  77. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +1 -1
  78. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +44 -199
  79. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterDataFetcherHelper.js +334 -0
  80. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +49 -13
  81. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +30 -6
  82. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +29 -5
  83. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +34 -10
  84. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +29 -5
  85. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +29 -5
  86. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +29 -5
  87. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +31 -7
  88. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +32 -8
  89. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +32 -8
  90. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +33 -9
  91. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +33 -9
  92. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +14 -6
  93. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +33 -9
  94. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +33 -9
  95. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +30 -6
  96. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +30 -6
  97. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +32 -8
  98. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +31 -7
  99. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +30 -6
  100. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +28 -4
  101. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +26 -2
  102. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +38 -14
  103. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +30 -6
  104. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +29 -5
  105. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +31 -7
  106. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +30 -6
  107. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +30 -6
  108. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +30 -6
  109. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +30 -6
  110. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +30 -6
  111. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +30 -6
  112. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +30 -6
  113. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +30 -6
  114. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +31 -7
  115. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +31 -7
  116. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +30 -6
  117. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +33 -9
  118. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +31 -7
  119. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +29 -5
  120. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +28 -4
  121. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +31 -7
  122. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +29 -5
  123. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +30 -6
  124. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +30 -6
  125. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +30 -6
  126. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +29 -5
  127. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +33 -9
  128. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +32 -8
  129. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +30 -6
  130. package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +10 -0
  131. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +6 -1
  132. package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartChartHandler.js +10 -5
  133. package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartListHandler.js +6 -1
  134. package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +36 -31
  135. package/src/sap/suite/ui/generic/template/library.js +1 -1
  136. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +29 -28
@@ -0,0 +1,334 @@
1
+ sap.ui.define([
2
+ 'sap/ui/model/FilterOperator',
3
+ 'sap/ui/model/Filter',
4
+ 'sap/suite/ui/generic/template/js/AnnotationHelper'
5
+ ], function(FilterOperator, Filter, AnnotationHelper) {
6
+ 'use strict';
7
+
8
+ const mReverseOperator = {};
9
+ fillReverseOperator();
10
+
11
+ function fillReverseOperator() {
12
+ mReverseOperator[FilterOperator.EQ] = FilterOperator.NE;
13
+ mReverseOperator[FilterOperator.Contains] = FilterOperator.NotContains;
14
+ mReverseOperator[FilterOperator.EndsWith] = FilterOperator.NotEndsWith;
15
+ mReverseOperator[FilterOperator.StartsWith] = FilterOperator.NotStartsWith;
16
+ mReverseOperator[FilterOperator.BT] = FilterOperator.NB;
17
+
18
+ mReverseOperator[FilterOperator.NE] = FilterOperator.EQ;
19
+ mReverseOperator[FilterOperator.NotContains] = FilterOperator.Contains;
20
+ mReverseOperator[FilterOperator.NotEndsWith] = FilterOperator.EndsWith;
21
+ mReverseOperator[FilterOperator.NotStartsWith] = FilterOperator.StartsWith;
22
+ mReverseOperator[FilterOperator.NB] = FilterOperator.BT;
23
+ }
24
+
25
+ function getFiltersForDataFetching(sKey, keySpecificSelectedResult) {
26
+ const aFilters = [];
27
+
28
+ for (let i = 0; i < keySpecificSelectedResult.length; ++i) {
29
+ const result = keySpecificSelectedResult[i];
30
+ if (result.operator === FilterOperator.BT || result.operator === FilterOperator.NB) {
31
+ aFilters.push(new Filter({
32
+ path: sKey,
33
+ operator: result.operator,
34
+ value1: result.selectedValues[0],
35
+ value2: result.selectedValues[1]
36
+ }));
37
+ } else {
38
+ for (let j = 0; j < result.selectedValues.length; ++j) {
39
+ aFilters.push(new Filter({
40
+ path: sKey,
41
+ operator: result.operator,
42
+ value1: result.selectedValues[j]
43
+ }));
44
+ }
45
+ }
46
+ }
47
+ return aFilters;
48
+ }
49
+
50
+ function isComparitveOperator(sFilter) {
51
+ return sFilter === FilterOperator.BT || sFilter === FilterOperator.NB ||
52
+ sFilter === FilterOperator.GT || sFilter === FilterOperator.LT ||
53
+ sFilter === FilterOperator.GE || sFilter === FilterOperator.LE;
54
+ }
55
+
56
+ function isNegationOperator(sOperator) {
57
+ return sOperator === FilterOperator.NE || sOperator === FilterOperator.NotContains ||
58
+ sOperator === FilterOperator.NotEndsWith || sOperator === FilterOperator.NotStartsWith ||
59
+ sOperator === FilterOperator.NB;
60
+ }
61
+
62
+ function getkeySpecifiedResultFromFilters(oFilter) {
63
+ let values = [];
64
+ if (oFilter.getOperator() === FilterOperator.BT || oFilter.getOperator() === FilterOperator.NB) {
65
+ values = [{
66
+ value: oFilter.getValue1(),
67
+ description: oFilter.getValue1()
68
+ },{
69
+ value: oFilter.getValue2(),
70
+ description: oFilter.getValue2()
71
+ }];
72
+ } else {
73
+ values.push({
74
+ value: oFilter.getValue1(),
75
+ description: oFilter.getValue1()
76
+ });
77
+ }
78
+ return {
79
+ operator: oFilter.getOperator(),
80
+ selectedValues: values
81
+ };
82
+ }
83
+
84
+ async function fetchRecordsFromValueList(oValueList, oFilter, sKey, oSFBModel,oTemplateUtils) {
85
+ return new Promise((resolve, reject) => {
86
+ let oValueListDefaultBinding = oValueList[""];
87
+ let sValueListEntity = oValueListDefaultBinding.CollectionPath.String;
88
+
89
+ if (Array.isArray(oValueListDefaultBinding.Parameters)) {
90
+ let oParameter = oValueListDefaultBinding.Parameters.find(oParam => (oParam.RecordType === "com.sap.vocabularies.Common.v1.ValueListParameterInOut" && oParam.LocalDataProperty.PropertyPath === sKey));
91
+ if (oParameter) {
92
+ sKey = oParameter.ValueListProperty.String;
93
+ }
94
+ }
95
+
96
+ let bIsNotOperator = isNegationOperator(oFilter.getOperator());
97
+ if (bIsNotOperator) {
98
+ oFilter = new Filter({
99
+ path: sKey,
100
+ operator: mReverseOperator[oFilter.getOperator()],
101
+ value1: oFilter.getValue1()
102
+ });
103
+ } else {
104
+ oFilter = new Filter({
105
+ path: sKey,
106
+ operator: oFilter.getOperator(),
107
+ value1: oFilter.getValue1()
108
+ });
109
+ }
110
+
111
+ oSFBModel.read("/" + sValueListEntity, {
112
+ filters: [oFilter],
113
+ success: async function(oResponse) {
114
+ const aResults = oResponse.results;
115
+ let aResponse;
116
+ try {
117
+ if (aResults.length > 0) {
118
+ aResponse = await getDescriptionForResponse(oResponse.results, sValueListEntity, sKey, oSFBModel,oTemplateUtils,oFilter);
119
+ } else {
120
+ aResponse = await fetchRecordsFromValueListUsingFuzzySearch(sValueListEntity, oFilter, sKey, oSFBModel,oTemplateUtils);
121
+ }
122
+ resolve({
123
+ operator: (bIsNotOperator) ? mReverseOperator[oFilter.getOperator()] : oFilter.getOperator(),
124
+ selectedValues: aResponse
125
+ });
126
+ } catch (error) {
127
+ reject(error);
128
+ }
129
+ },
130
+ error: async function(oError) {
131
+ //If the error is because of some property validation, we can try to do a fuzzy search
132
+ try {
133
+ const aResponse = await fetchRecordsFromValueListUsingFuzzySearch(sValueListEntity, oFilter, sKey, oSFBModel,oTemplateUtils);
134
+ resolve({
135
+ operator: (bIsNotOperator) ? mReverseOperator[oFilter.getOperator()] : oFilter.getOperator(),
136
+ selectedValues: aResponse
137
+ });
138
+ } catch (error) {
139
+ reject(error);
140
+ }
141
+ }
142
+ });
143
+ });
144
+ }
145
+
146
+ async function fetchRecordsFromValueListUsingFuzzySearch(sValueListEntity, oFilter, sKey, oSFBModel,oTemplateUtils) {
147
+ return new Promise((resolve, reject) => {
148
+ oSFBModel.read("/" + sValueListEntity, {
149
+ urlParameters: {
150
+ search: oFilter.getValue1()
151
+ },
152
+ success: async function(oResponse) {
153
+ let aResults = oResponse.results;
154
+ if (aResults.length == 0) {
155
+ //If it dosent have any records, the return the original value
156
+ resolve([{
157
+ value: oFilter.getValue1(),
158
+ description: oFilter.getValue1()
159
+ }]);
160
+ } else {
161
+ try {
162
+ aResults = await getDescriptionForResponse(aResults, sValueListEntity, sKey, oSFBModel,oTemplateUtils,oFilter);
163
+ resolve(aResults);
164
+ } catch (oError) {
165
+ reject(oError);
166
+ }
167
+ }
168
+ },
169
+ error: function(oError) {
170
+ reject(oError);
171
+ }
172
+ });
173
+ });
174
+ }
175
+
176
+ function performClientSideSearch(aResults, oFilter,sKey,sDescriptionField) {
177
+ if (!sKey || !sDescriptionField) {
178
+ return aResults;
179
+ }
180
+ if (oFilter.getOperator() === FilterOperator.EQ || oFilter.getOperator() === FilterOperator.NE) {
181
+ const aFilteredResults = aResults.filter(result => result[sKey].toString().toLowerCase() === oFilter.getValue1().toString().toLowerCase() || result[sDescriptionField].toString().toLowerCase() === oFilter.getValue1().toString().toLowerCase());
182
+ return aFilteredResults.length > 0 ? aFilteredResults : aResults;
183
+ }
184
+ return aResults;
185
+ }
186
+
187
+ async function getDescriptionForResponse(aResults, sValueListEntity, sKey, oSFBModel, oTemplateUtils,oFilter) {
188
+ return new Promise((resolve, reject) => {
189
+ const aResultsWithTextArrangement = [];
190
+
191
+ let oSFBMetaModel = oSFBModel.getMetaModel();
192
+ let oValueHelpEntity = oTemplateUtils.oCommonUtils.getMetaModelEntityType(sValueListEntity);
193
+ let oValueHelpProperty = oSFBMetaModel.getODataProperty(oValueHelpEntity, sKey);
194
+ let sTextArrangementPath = AnnotationHelper.getTextArrangementPath(oValueHelpProperty);
195
+ let sTextArrangement = AnnotationHelper.getTextArrangementForEasyFilter(oValueHelpEntity, oValueHelpProperty);
196
+ let navigationProperty = null;
197
+ let sEntityForTextDescription = sValueListEntity;
198
+
199
+ if (sTextArrangementPath && sTextArrangementPath.split("/").length > 1) {
200
+ navigationProperty = sTextArrangementPath.split("/")[0];
201
+ sEntityForTextDescription = oSFBMetaModel.getODataAssociationSetEnd(oValueHelpEntity, navigationProperty).entitySet;
202
+ sTextArrangementPath = sTextArrangementPath.split("/")[1];
203
+ }
204
+
205
+ aResults = performClientSideSearch(aResults, oFilter,sKey,sTextArrangementPath);
206
+
207
+ if (sValueListEntity === sEntityForTextDescription) {
208
+ aResults.forEach((result) => {
209
+ aResultsWithTextArrangement.push({
210
+ value: result[sKey],
211
+ description: AnnotationHelper.getTextArrangementFinalString(result, sKey, sTextArrangementPath, sTextArrangement)
212
+ });
213
+ });
214
+ resolve(aResultsWithTextArrangement);
215
+ } else {
216
+ let aAllMatchedResults = aResults.map((result) => {
217
+ return result[sKey];
218
+ });
219
+ let aMatchedFilterResults = aAllMatchedResults.map((matchedResult) => {
220
+ return new Filter({
221
+ path: sKey,
222
+ operator: FilterOperator.EQ,
223
+ value1: matchedResult
224
+ });
225
+ });
226
+
227
+ // The below code only be executed when the textDescription and ValueList entities are different
228
+ oSFBModel.read("/" + sEntityForTextDescription, {
229
+ filters: aMatchedFilterResults,
230
+ success: function(oResponse) {
231
+ let aResults = oResponse.results;
232
+
233
+ aMatchedFilterResults.forEach((oFilter) => {
234
+ let result = aResults.find((res) => res[sKey] === oFilter.getValue1());
235
+ aResultsWithTextArrangement.push({
236
+ value: oFilter.getValue1(),
237
+ description: (result) ? AnnotationHelper.getTextArrangementFinalString(result, sKey, sTextArrangementPath, sTextArrangement) : oFilter.getValue1()
238
+ });
239
+ });
240
+ resolve(aResultsWithTextArrangement);
241
+ },
242
+ error: function(oError) {
243
+ reject(oError);
244
+ }
245
+ });
246
+ }
247
+ });
248
+ }
249
+
250
+ /**
251
+ * The primary responsibility of this function is to convert the given values into their corresponding
252
+ * IDs and Descriptions, respecting the defined TextArrangement.
253
+ *
254
+ * This process is carried out in two phases:
255
+ *
256
+ * Fetching the ID:
257
+ * 1) Make a $filter call using the provided value and operator.
258
+ * - If this returns results, we proceed to fetch the corresponding descriptions for these IDs.
259
+ * 2) If no results are returned, make a $search (fuzzy search) call instead.
260
+ *
261
+ * Fetching the Description:
262
+ * 1) The description is determined by the sap:text/com.sap.vocabularies.UI.v1.TextArrangement
263
+ * annotation of the ValueHelp entity, not from the main entity.
264
+ * 2) To fetch the description, we use a $filter call, since the IDs were already retrieved in the first step.
265
+ *
266
+ * Edge cases with negation operators:
267
+ * 1) For negation operators such as NB, NotStartsWith, etc., we make a batch call using the
268
+ * positive equivalent of these operators (e.g., BT, StartsWith).
269
+ * 2) After receiving the results, we return them with the original negation operator
270
+ * (e.g., NB, NotStartsWith).
271
+ */
272
+
273
+ function fetchDataForKey(sKey, keySpecificSelectedResult, oState, oController, oTemplateUtils) {
274
+ return new Promise(async(resolve, reject) => {
275
+ try {
276
+ const aFinalResponse = [];
277
+ const oOwnerFilterControl = oState.oSmartFilterbar;
278
+ const sEntitySet = oController.getOwnerComponent().getEntitySet();
279
+ const oEntityType = oTemplateUtils.oCommonUtils.getMetaModelEntityType(sEntitySet);
280
+ const oSFBModel = oOwnerFilterControl.getModel();
281
+ const oSFBMetaModel = oSFBModel.getMetaModel();
282
+ const aFilters = getFiltersForDataFetching(sKey, keySpecificSelectedResult);
283
+ const oProperty = oSFBMetaModel.getODataProperty(oEntityType, sKey);
284
+ const sPropertyPath = oSFBMetaModel.getODataProperty(oEntityType, sKey, true);
285
+ const isValueHelpTableAvailable = AnnotationHelper.isValueHelpTableAvailable(oProperty);
286
+
287
+ if (!isValueHelpTableAvailable) {
288
+ // When there is no valueList associate, just return the original value in CodeList type
289
+ aFilters.forEach(oFilter => aFinalResponse.push(getkeySpecifiedResultFromFilters(oFilter)));
290
+ resolve(aFinalResponse);
291
+ }
292
+
293
+ // Get value help lists from metadata
294
+ const oPropertyContext = oSFBMetaModel.createBindingContext(sPropertyPath);
295
+ const oValueList = await oSFBMetaModel.getODataValueLists(oPropertyContext);
296
+
297
+ // Process each filter in parallel
298
+ const pPromises = [];
299
+
300
+ for (const oFilter of aFilters) {
301
+ if (isComparitveOperator(oFilter.getOperator())) {
302
+ // For comparative operators, just add the original values
303
+ aFinalResponse.push(getkeySpecifiedResultFromFilters(oFilter));
304
+ } else {
305
+ // For other operators, fetch records from value list
306
+ pPromises.push(fetchRecordsFromValueList(oValueList, oFilter, sKey, oSFBModel, oTemplateUtils));
307
+ }
308
+ }
309
+
310
+ // Wait for all promises to resolve
311
+ if (pPromises.length > 0) {
312
+ const aResponses = await Promise.all(pPromises);
313
+ aResponses.forEach(aResponse => {
314
+ aFinalResponse.push(aResponse);
315
+ });
316
+ }
317
+
318
+ resolve(aFinalResponse);
319
+ } catch (error) {
320
+ reject(error); // Re-throw to allow caller to handle
321
+ }
322
+ });
323
+ }
324
+
325
+ return {
326
+ fetchDataForKey: fetchDataForKey,
327
+ getFiltersForDataFetching: getFiltersForDataFetching,
328
+ isComparitveOperator: isComparitveOperator,
329
+ isNegationOperator: isNegationOperator,
330
+ getReverseOperator: function(operator) {
331
+ return mReverseOperator[operator];
332
+ }
333
+ };
334
+ });
@@ -310,7 +310,7 @@ ST_CARD_CREATION_FAILURE_REASON_SEMANTIC_DATE_FILTERS=Card creation isn\u2019t p
310
310
  #XMSG: Info text
311
311
  ST_CARD_NAVIGATION_FAILURE_INFO=Direct navigation to the object details isn’t possible from this insights card.
312
312
 
313
- ST_AI_EE_BUTTON_LABEL=Generate Explanation
313
+ ST_AI_EE_BUTTON_LABEL=Explain
314
314
 
315
315
  #---Final block: texts to be redefined by the application ----------------------------------------------
316
316
 
@@ -406,12 +406,30 @@ UNNAMED_OBJECT=Unnamed Object
406
406
  # XFLD,40: used in object page table when no items available in and no filter applied.
407
407
  NOITEMS_SMARTTABLE=No items available
408
408
 
409
+ # XTIT: Title for illustrated message on object page table when no items available and no filter applied.
410
+ NOITEMS_SMARTTABLE_ILLUSTRATION_TITLE=There are no entries yet
411
+
412
+ # XTXT: Description for illustrated message on object page table when no items available and no filter applied.
413
+ NOITEMS_SMARTTABLE_ILLUSTRATION_DESCRIPTION=When there are, you\u2019ll see them here.
414
+
409
415
  # XFLD,100: used in object page table when no items available in and filters applied.
410
416
  NOITEMS_SMARTTABLE_WITH_FILTER=No items available. Try adjusting the search or filter parameters.
411
417
 
418
+ # XTIT: Title for illustrated message on object page table when no items available to match the filter conditions.
419
+ NOITEMS_SMARTTABLE_WITH_FILTER_ILLUSTRATION_TITLE=No results found
420
+
421
+ # XTXT: Description for illustrated message on object page table when no items available to match the filter conditions.
422
+ NOITEMS_SMARTTABLE_WITH_FILTER_ILLUSTRATION_DESCRIPTION=Try changing your filter criteria.
423
+
412
424
  # XFLD,110: used in object page table when no items available for segmented button enabled table.
413
425
  NOITEMS_SMARTTABLE_WITH_FILTER_FOR_SEGMENTEDBUTTON=There are no items for the selected filter criteria and table view.
414
426
 
427
+ # XTIT: Title for illustrated message on object page table with segmented button when no items available.
428
+ NOITEMS_SMARTTABLE_WITH_FILTER_FOR_SEGMENTEDBUTTON_ILLUSTRATION_TITLE=No results found
429
+
430
+ # XTXT: Description for illustrated message on object page table with segmented button when no items available.
431
+ NOITEMS_SMARTTABLE_WITH_FILTER_FOR_SEGMENTEDBUTTON_ILLUSTRATION_DESCRIPTION=Try changing the view or filter criteria.
432
+
415
433
  # XFLD,30: used in object page chart when no data found in and no filter applied.
416
434
  NOITEMS_SMARTCHART=No data found
417
435
 
@@ -427,12 +445,30 @@ SMARTCHART_INITIAL_NODATA=To start, set the relevant filters and choose "Go".
427
445
  # XFLD,30: used in list report page table when no data found in and no filter applied.
428
446
  NOITEMS_LR_SMARTTABLE=No data found
429
447
 
448
+ # XTIT: Title for illustrated message on list report page table when no data found and no filter applied.
449
+ NOITEMS_LR_SMARTTABLE_ILLUSTRATION_TITLE=There are no entries yet
450
+
451
+ # XTXT: Description for illustrated message on list report page table when no data found and no filter applied.
452
+ NOITEMS_LR_SMARTTABLE_ILLUSTRATION_DESCRIPTION=When there are, you\u2019ll see them here.
453
+
430
454
  # XFLD,100: used in list report page table when no data found in and filters applied.
431
455
  NOITEMS_LR_SMARTTABLE_WITH_FILTER=No data found. Try adjusting the search or filter criteria.
432
456
 
457
+ # XTIT: Title for no data illustrated message on a list report table when filters applied
458
+ NOITEMS_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_TITLE=No results found
459
+
460
+ # XTXT: Description for no data illustrated message on a list report table when filters applied
461
+ NOITEMS_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_DESCRIPTION=Try changing your filter criteria.
462
+
433
463
  # XFLD,100: used in list report page table when no data found for MultiView Application.
434
464
  NOITEMS_MULTIVIEW_LR_SMARTTABLE_WITH_FILTER=There is no data for the selected filter criteria and table view.
435
465
 
466
+ # XTIT: Title for no data illustrated message on a multi view list report table
467
+ NOITEMS_MULTIVIEW_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_TITLE=No results found
468
+
469
+ # XTXT: Description for no data illustrated message on a multi view list report table
470
+ NOITEMS_MULTIVIEW_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_DESCRIPTION=Try changing the view or filter criteria.
471
+
436
472
  # YMSG,100: used as text to suggest users to delete records individually in case of multiselect delete respons with warning
437
473
  ST_GENERIC_DELETE_WITH_WARNING_SUGGESTION_SINGULAR=Hint: To ignore warnings, delete the object individually.
438
474
 
@@ -700,7 +736,7 @@ RTA_ENABLE_DATE_RANGE_FILTER_DESC = Enable Date Range
700
736
  # XTIT: RTA Context Menu Action: Configuration
701
737
  RTA_CONTEXT_MENU_CONFIG=Configuration
702
738
 
703
- # XTXT: EasyFill title
739
+ # XTIT: EasyFill title
704
740
  EASY_FILL_TITLE = Easy Fill
705
741
 
706
742
  # XTXT: EasyFill Description 1
@@ -712,26 +748,26 @@ EASY_FILL_SECOND_LABEL_TEXT = Use data sources like spreadsheets, notes, and ema
712
748
  # XTXT: EasyFill TextArea placeholder
713
749
  EASY_FILL_TEXTAREA_PLACEHOLDER = Provide the required information using data sources or by typing
714
750
 
715
- # XTXT: EasyFill initial Illustration title
751
+ # XTIT: EasyFill initial Illustration title
716
752
  EASY_FILL_ILLUSTRATION_TITLE_INITIAL = Let\u2019s fill in some fields
717
753
 
718
754
  # XTXT: EasyFill initial Illustration description
719
755
  EASY_FILL_ILLUSTRATION_DESCRIPTION_INITIAL = Start by providing the required information to see the proposed results.
720
756
 
721
- # XTXT: EasyFill no entries Illustration title
757
+ # XTIT: EasyFill no entries Illustration title
722
758
  EASY_FILL_ILLUSTRATION_TITLE_NO_ENTRIES = No fields filled in
723
759
 
724
760
  # XTXT: EasyFill no entries Illustration description
725
761
  EASY_FILL_ILLUSTRATION_DESCRIPTION_NO_ENTRIES = We couldn\u2019t match your query to any of the existing fields.
726
762
 
727
- # XTXT: EasyFill error Illustration title
763
+ # XTIT: EasyFill error Illustration title
728
764
  EASY_FILL_ILLUSTRATION_TITLE_ERROR = Unable to fill in the fields
729
765
 
730
766
  # XTXT: EasyFill error Illustration description
731
767
  EASY_FILL_ILLUSTRATION_DESCRIPTION_ERROR =It looks like an error occurred. Try again and if that doesn\u2019t help, check with your administrator.
732
768
 
733
- # XTXT: EasyFill save
734
- EASY_FILL_SAVE = Save
769
+ # XBUT: EasyFill save
770
+ EASY_FILL_CONFIRM = Confirm
735
771
 
736
772
  # XTXT: EasyFill AI Notice link
737
773
  AI_LINK_NOTICE_TITLE = Created with AI.
@@ -739,19 +775,19 @@ AI_LINK_NOTICE_TITLE = Created with AI.
739
775
  # XTXT: EasyFill AI Notice warning
740
776
  AI_WARNING_TEXT = Verify results before use.
741
777
 
742
- # XTXT: EasyFill fillable fields title
778
+ # XTIT: EasyFill fillable fields title
743
779
  EASY_FILL_FILLED_FIELDS = Filled Fields
744
780
 
745
- # XTXT: EasyFill unable to fill fields title
781
+ # XTIT: EasyFill unable to fill fields title
746
782
  EASY_FILL_UNABLE_FILL = Unable to Fill
747
783
 
748
784
  # XTXT: EasyFill warning message
749
785
  EASY_FILL_WARNING_MESSAGE = The fields couldn\u2019t be filled in, for example because they are read-only fields or because you\u2019re not authorized to change them.
750
786
 
751
- # XTXT: EasyFill proposed values
787
+ # XTIT: EasyFill proposed values
752
788
  EASY_FILL_PROPOSED_VALUES = Proposed Values
753
789
 
754
- # XTXT: EasyFill previous values
790
+ # XTIT: EasyFill previous values
755
791
  EASY_FILL_PREVIOUS_VALUES = Previous Values
756
792
 
757
793
  # XTXT: EasyFill AINotice link popover text
@@ -760,11 +796,11 @@ EASY_FILL_POPOVER_AI_TEXT_1=The content was partially or fully generated by arti
760
796
  # XTXT: EasyFill AINotice link popover text
761
797
  EASY_FILL_POPOVER_AI_TEXT_2=The AI-generated content may contain inaccuracies due to using multiple information sources. Verify results before use.
762
798
 
763
- # XTXT: EasyFill Popover title
799
+ # XTIT: EasyFill Popover title
764
800
  EASY_FILL_POPOVER_AI_TITLE=Created with AI
765
801
 
766
802
  # XTXT: EasyFill feedback request
767
803
  EASYFILL_RESULT_FEEDBACK=Feedback sent
768
804
 
769
- # XTXT: EasyFill clear all
805
+ # XBUT: EasyFill clear all
770
806
  EASYFILL_CLEAR_ALL=Clear All
@@ -200,7 +200,7 @@ ST_CARD_CREATION_FAILURE_REASON_SEMANTIC_DATE_FILTERS=\u0644\u0627 \u064A\u0645\
200
200
 
201
201
  ST_CARD_NAVIGATION_FAILURE_INFO=\u0627\u0644\u062A\u0646\u0642\u0644 \u0627\u0644\u0645\u0628\u0627\u0634\u0631 \u0625\u0644\u0649 \u062A\u0641\u0627\u0635\u064A\u0644 \u0627\u0644\u0643\u0627\u0626\u0646 \u063A\u064A\u0631 \u0645\u0645\u0643\u0646 \u0645\u0646 \u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0644\u0645\u062D\u0627\u062A \u0627\u0644\u0639\u0627\u0645\u0629 \u0647\u0630\u0647.
202
202
 
203
- ST_AI_EE_BUTTON_LABEL=\u0625\u0646\u0634\u0627\u0621 \u062A\u0648\u0636\u064A\u062D
203
+ ST_AI_EE_BUTTON_LABEL=\u0634\u0631\u062D
204
204
 
205
205
 
206
206
 
@@ -263,10 +263,22 @@ UNNAMED_OBJECT=\u0643\u0627\u0626\u0646 \u062F\u0648\u0646 \u0627\u0633\u0645
263
263
 
264
264
  NOITEMS_SMARTTABLE=\u0644\u0627 \u062A\u062A\u0648\u0641\u0631 \u0623\u064A\u0629 \u0628\u0646\u0648\u062F.
265
265
 
266
+ NOITEMS_SMARTTABLE_ILLUSTRATION_TITLE=\u0644\u0627 \u062A\u0648\u062C\u062F \u0623\u064A \u0625\u062F\u062E\u0627\u0644\u0627\u062A \u0628\u0639\u062F
267
+
268
+ NOITEMS_SMARTTABLE_ILLUSTRATION_DESCRIPTION=\u0628\u0645\u062C\u0631\u062F \u0623\u0646 \u062A\u062A\u0648\u0641\u0631\u060C \u0633\u062A\u0638\u0647\u0631 \u0647\u0646\u0627.
269
+
266
270
  NOITEMS_SMARTTABLE_WITH_FILTER=\u0644\u0627\u0628\u0646\u0648\u062F.\u0639\u062F\u0644 \u0645\u0639\u0627\u0645\u0644\u0627\u062A \u0628\u062D\u062B \u0623\u0648\u062A\u0635\u0641\u064A\u0629
267
271
 
272
+ NOITEMS_SMARTTABLE_WITH_FILTER_ILLUSTRATION_TITLE=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u064A \u0646\u062A\u0627\u0626\u062C
273
+
274
+ NOITEMS_SMARTTABLE_WITH_FILTER_ILLUSTRATION_DESCRIPTION=\u062D\u0627\u0648\u0644 \u062A\u063A\u064A\u064A\u0631 \u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643.
275
+
268
276
  NOITEMS_SMARTTABLE_WITH_FILTER_FOR_SEGMENTEDBUTTON=\u0644\u0627 \u0628\u0646\u0648\u062F \u0644\u0639\u0631\u0636 \u062C\u062F\u0648\u0644 \u0648\u062A\u0635\u0641\u064A\u0629 \u0645\u062D\u062F\u062F\u0629
269
277
 
278
+ NOITEMS_SMARTTABLE_WITH_FILTER_FOR_SEGMENTEDBUTTON_ILLUSTRATION_TITLE=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u064A \u0646\u062A\u0627\u0626\u062C
279
+
280
+ NOITEMS_SMARTTABLE_WITH_FILTER_FOR_SEGMENTEDBUTTON_ILLUSTRATION_DESCRIPTION=\u062D\u0627\u0648\u0644 \u062A\u063A\u064A\u064A\u0631 \u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0623\u0648 \u0627\u0644\u0639\u0631\u0636.
281
+
270
282
  NOITEMS_SMARTCHART=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u064A \u0628\u064A\u0627\u0646\u0627\u062A.
271
283
 
272
284
  NOITEMS_LR_SMARTCHART=\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0644\u0639\u0631\u0636 \u0627\u0644\u0645\u062E\u0637\u0637 \u0648\u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629.
@@ -277,10 +289,22 @@ SMARTCHART_INITIAL_NODATA=\u0644\u0644\u0628\u062F\u0621\u060C \u0639\u064A\u065
277
289
 
278
290
  NOITEMS_LR_SMARTTABLE=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u064A \u0628\u064A\u0627\u0646\u0627\u062A.
279
291
 
292
+ NOITEMS_LR_SMARTTABLE_ILLUSTRATION_TITLE=\u0644\u0627 \u062A\u0648\u062C\u062F \u0623\u064A \u0625\u062F\u062E\u0627\u0644\u0627\u062A \u0628\u0639\u062F
293
+
294
+ NOITEMS_LR_SMARTTABLE_ILLUSTRATION_DESCRIPTION=\u0628\u0645\u062C\u0631\u062F \u0623\u0646 \u062A\u062A\u0648\u0641\u0631\u060C \u0633\u062A\u0638\u0647\u0631 \u0647\u0646\u0627.
295
+
280
296
  NOITEMS_LR_SMARTTABLE_WITH_FILTER=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0628\u064A\u0627\u0646\u0627\u062A.\u062D\u0627\u0648\u0644 \u062A\u0639\u062F\u064A\u0644 \u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u0628\u062D\u062B \u0623\u0648 \u0627\u0644\u062A\u0635\u0641\u064A\u0629.
281
297
 
298
+ NOITEMS_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_TITLE=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u064A \u0646\u062A\u0627\u0626\u062C
299
+
300
+ NOITEMS_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_DESCRIPTION=\u062D\u0627\u0648\u0644 \u062A\u063A\u064A\u064A\u0631 \u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643.
301
+
282
302
  NOITEMS_MULTIVIEW_LR_SMARTTABLE_WITH_FILTER=\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0644\u0639\u0631\u0636 \u0627\u0644\u062C\u062F\u0648\u0644 \u0648\u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629.
283
303
 
304
+ NOITEMS_MULTIVIEW_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_TITLE=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u0623\u064A \u0646\u062A\u0627\u0626\u062C
305
+
306
+ NOITEMS_MULTIVIEW_LR_SMARTTABLE_WITH_FILTER_ILLUSTRATION_DESCRIPTION=\u062D\u0627\u0648\u0644 \u062A\u063A\u064A\u064A\u0631 \u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0623\u0648 \u0627\u0644\u0639\u0631\u0636.
307
+
284
308
  ST_GENERIC_DELETE_WITH_WARNING_SUGGESTION_SINGULAR=\u062A\u0644\u0645\u064A\u062D\:\u0644\u062A\u062C\u0627\u0647\u0644 \u062A\u060C\u0627\u062D\u0630\u0641 \u0643\u0627\u0626\u0646 \u0641\u0631\u062F\u064A.
285
309
 
286
310
  ST_GENERIC_DELETE_WITH_WARNING_SUGGESTION_PLURAL=\u062A\u0644\u0645\u064A\u062D\:\u0644\u062A\u062C\u0627\u0647\u0644 \u062A\u062D\u0630\u064A\u0631\u0627\u062D\u0630\u0641 \u0643 \u0641\u0631\u062F\u064A.
@@ -462,23 +486,23 @@ EASY_FILL_TITLE=\u0645\u0644\u0621 \u0633\u0647\u0644
462
486
 
463
487
  EASY_FILL_FIRST_LABEL_TEXT=\u064A\u0645\u0643\u0646\u0643 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u064A\u0632\u0629 \u0627\u0644\u0645\u0644\u0621 \u0627\u0644\u0633\u0647\u0644 \u0644\u0645\u0644\u0621 \u062D\u0642\u0648\u0644 \u0645\u062A\u0639\u062F\u062F\u0629 \u0641\u064A \u0648\u0642\u062A \u0648\u0627\u062D\u062F.
464
488
 
465
- EASY_FILL_SECOND_LABEL_TEXT=\u0627\u0633\u062A\u062E\u062F\u0645 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0645\u062B\u0644 \u062C\u062F\u0627\u0648\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0648\u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0627\u062A \u0648\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u0644\u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644\u060C \u0623\u0648 \u0648\u0635\u0641 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u064A\u062F \u0645\u0644\u0623\u0647\u0627 \u0628\u0648\u0636\u0648\u062D. \u062B\u0645 \u0627\u0646\u0642\u0631 \u0641\u0648\u0642 "\u0627\u0644\u0645\u0644\u0621 \u0627\u0644\u0633\u0647\u0644".
489
+ EASY_FILL_SECOND_LABEL_TEXT=\u064A\u0645\u0643\u0646\u0643 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0645\u062B\u0644 \u062C\u062F\u0627\u0648\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0648\u0627\u0644\u0645\u0644\u0627\u062D\u0638\u0627\u062A \u0648\u0631\u0633\u0627\u0626\u0644 \u0627\u0644\u0628\u0631\u064A\u062F \u0627\u0644\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A \u0644\u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644\u060C \u0623\u0648 \u0648\u0635\u0641 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u064A\u062F \u0645\u0644\u0623\u0647\u0627 \u0628\u0648\u0636\u0648\u062D. \u062B\u0645 \u062D\u062F\u062F "\u0627\u0644\u0645\u0644\u0621 \u0627\u0644\u0633\u0647\u0644".
466
490
 
467
491
  EASY_FILL_TEXTAREA_PLACEHOLDER=\u0642\u062F\u0645 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u0635\u0627\u062F\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648 \u0628\u0643\u062A\u0627\u0628\u062A\u0647\u0627.
468
492
 
469
493
  EASY_FILL_ILLUSTRATION_TITLE_INITIAL=\u062F\u0639\u0646\u0627 \u0646\u0645\u0644\u0623 \u0628\u0639\u0636 \u0627\u0644\u062D\u0642\u0648\u0644
470
494
 
471
- EASY_FILL_ILLUSTRATION_DESCRIPTION_INITIAL=\u0627\u0628\u062F\u0623 \u0628\u062A\u0642\u062F\u064A\u0645 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0644\u0639\u0631\u0636 \u0627\u0644\u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0645\u0642\u062A\u0631\u062D\u0629.
495
+ EASY_FILL_ILLUSTRATION_DESCRIPTION_INITIAL=\u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0628\u062F\u0621 \u0628\u062A\u0642\u062F\u064A\u0645 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0644\u0639\u0631\u0636 \u0627\u0644\u0646\u062A\u0627\u0626\u062C \u0627\u0644\u0645\u0642\u062A\u0631\u062D\u0629.
472
496
 
473
497
  EASY_FILL_ILLUSTRATION_TITLE_NO_ENTRIES=\u0644\u0645 \u064A\u062A\u0645 \u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644
474
498
 
475
499
  EASY_FILL_ILLUSTRATION_DESCRIPTION_NO_ENTRIES=\u0644\u0645 \u0646\u062A\u0645\u0643\u0646 \u0645\u0646 \u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0643 \u0645\u0639 \u0623\u064A \u0645\u0646 \u0627\u0644\u062D\u0642\u0648\u0644 \u0627\u0644\u0645\u0648\u062C\u0648\u062F\u0629.
476
500
 
477
- EASY_FILL_ILLUSTRATION_TITLE_ERROR=\u062A\u0639\u0630\u0631 \u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644
501
+ EASY_FILL_ILLUSTRATION_TITLE_ERROR=\u064A\u062A\u0639\u0630\u0631 \u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644
478
502
 
479
503
  EASY_FILL_ILLUSTRATION_DESCRIPTION_ERROR=\u064A\u0628\u062F\u0648 \u0623\u0646\u0647 \u0642\u062F \u062D\u062F\u062B \u062E\u0637\u0623. \u062D\u0627\u0648\u0644 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649\u060C \u0648\u0625\u0630\u0627 \u0644\u0645 \u064A\u0633\u0627\u0639\u062F \u0630\u0644\u0643\u060C \u0641\u062A\u0623\u0643\u062F \u0645\u0646 \u0630\u0644\u0643 \u0645\u0639 \u0627\u0644\u0645\u0633\u0624\u0648\u0644 \u0644\u062F\u064A\u0643.
480
504
 
481
- EASY_FILL_SAVE=\u062D\u0641\u0638
505
+ EASY_FILL_CONFIRM=\u062A\u0623\u0643\u064A\u062F
482
506
 
483
507
  AI_LINK_NOTICE_TITLE=\u062A\u0645 \u0627\u0644\u0625\u0646\u0634\u0627\u0621 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A.
484
508
 
@@ -488,7 +512,7 @@ EASY_FILL_FILLED_FIELDS=\u0627\u0644\u062D\u0642\u0648\u0644 \u0627\u0644\u0645\
488
512
 
489
513
  EASY_FILL_UNABLE_FILL=\u064A\u062A\u0639\u0630\u0631 \u0627\u0644\u0645\u0644\u0621
490
514
 
491
- EASY_FILL_WARNING_MESSAGE=\u062A\u0639\u0630\u0631 \u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644 \u0644\u0623\u0646\u0647\u0627 \u062D\u0642\u0648\u0644 \u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0633\u0628\u064A\u0644 \u0627\u0644\u0645\u062B\u0627\u0644\u060C \u0623\u0648 \u0644\u0623\u0646\u0643 \u0644\u0633\u062A \u0645\u0641\u0648\u0636\u064B\u0627 \u0628\u062A\u063A\u064A\u064A\u0631\u0647\u0627.
515
+ EASY_FILL_WARNING_MESSAGE=\u0644\u0627 \u064A\u0645\u0643\u0646 \u0645\u0644\u0621 \u0627\u0644\u062D\u0642\u0648\u0644\u060C \u0639\u0644\u0649 \u0633\u0628\u064A\u0644 \u0627\u0644\u0645\u062B\u0627\u0644 \u0644\u0623\u0646\u0647\u0627 \u062D\u0642\u0648\u0644 \u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637 \u0623\u0648 \u0623\u0646\u0643 \u063A\u064A\u0631 \u0645\u0641\u0648\u0651\u064E\u0636 \u0628\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u062D\u0642\u0648\u0644.
492
516
 
493
517
  EASY_FILL_PROPOSED_VALUES=\u0627\u0644\u0642\u064A\u0645 \u0627\u0644\u0645\u0642\u062A\u0631\u062D\u0629
494
518