@sapui5/sap.fe.core 1.98.0 → 1.99.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 (231) hide show
  1. package/package.json +3 -2
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +377 -405
  4. package/src/sap/fe/core/AnnotationHelper.ts +385 -0
  5. package/src/sap/fe/core/AppComponent.js +3 -2
  6. package/src/sap/fe/core/AppStateHandler.js +229 -181
  7. package/src/sap/fe/core/AppStateHandler.ts +171 -0
  8. package/src/sap/fe/core/BaseController.js +3 -2
  9. package/src/sap/fe/core/BusyLocker.js +105 -121
  10. package/src/sap/fe/core/BusyLocker.ts +98 -0
  11. package/src/sap/fe/core/CommonUtils.js +2073 -2399
  12. package/src/sap/fe/core/CommonUtils.ts +2078 -0
  13. package/src/sap/fe/core/ExtensionAPI.js +3 -2
  14. package/src/sap/fe/core/PageController.js +84 -125
  15. package/src/sap/fe/core/PageController.ts +101 -0
  16. package/src/sap/fe/core/RouterProxy.js +986 -823
  17. package/src/sap/fe/core/RouterProxy.ts +838 -0
  18. package/src/sap/fe/core/Synchronization.js +51 -35
  19. package/src/sap/fe/core/Synchronization.ts +29 -0
  20. package/src/sap/fe/core/TemplateComponent.js +173 -164
  21. package/src/sap/fe/core/TemplateComponent.ts +166 -0
  22. package/src/sap/fe/core/TemplateModel.js +97 -54
  23. package/src/sap/fe/core/TemplateModel.ts +63 -0
  24. package/src/sap/fe/core/TransactionHelper.js +1576 -1664
  25. package/src/sap/fe/core/TransactionHelper.ts +1706 -0
  26. package/src/sap/fe/core/actions/draft.js +559 -608
  27. package/src/sap/fe/core/actions/draft.ts +593 -0
  28. package/src/sap/fe/core/actions/messageHandling.js +545 -514
  29. package/src/sap/fe/core/actions/messageHandling.ts +532 -0
  30. package/src/sap/fe/core/actions/nonDraft.js +17 -19
  31. package/src/sap/fe/core/actions/nonDraft.ts +12 -0
  32. package/src/sap/fe/core/actions/operations.js +1074 -1215
  33. package/src/sap/fe/core/actions/operations.ts +1162 -0
  34. package/src/sap/fe/core/actions/sticky.js +102 -105
  35. package/src/sap/fe/core/actions/sticky.ts +102 -0
  36. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +3 -2
  37. package/src/sap/fe/core/controllerextensions/EditFlow.js +54 -211
  38. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -2
  39. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +279 -11
  40. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -6
  41. package/src/sap/fe/core/controllerextensions/InternalRouting.js +47 -45
  42. package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -3
  43. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
  44. package/src/sap/fe/core/controllerextensions/MassEdit.js +101 -8
  45. package/src/sap/fe/core/controllerextensions/MessageHandler.js +17 -8
  46. package/src/sap/fe/core/controllerextensions/PageReady.js +2 -2
  47. package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
  48. package/src/sap/fe/core/controllerextensions/Paginator.js +3 -2
  49. package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -2
  50. package/src/sap/fe/core/controllerextensions/Routing.js +9 -4
  51. package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -2
  52. package/src/sap/fe/core/controllerextensions/Share.js +3 -2
  53. package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -3
  54. package/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
  55. package/src/sap/fe/core/controllerextensions/ViewState.js +3 -2
  56. package/src/sap/fe/core/controls/CommandExecution.js +3 -2
  57. package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -2
  58. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
  59. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -2
  60. package/src/sap/fe/core/controls/FieldWrapper.js +11 -22
  61. package/src/sap/fe/core/controls/FilterBar.js +3 -2
  62. package/src/sap/fe/core/controls/FormElementWrapper.js +3 -2
  63. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -2
  64. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  65. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -2
  66. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +5 -4
  67. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -2
  68. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -2
  69. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -2
  70. package/src/sap/fe/core/converters/ConverterContext.js +2 -2
  71. package/src/sap/fe/core/converters/ConverterContext.ts +4 -3
  72. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  73. package/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
  74. package/src/sap/fe/core/converters/ManifestWrapper.js +39 -26
  75. package/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
  76. package/src/sap/fe/core/converters/MetaModelConverter.js +11 -8
  77. package/src/sap/fe/core/converters/MetaModelConverter.ts +16 -16
  78. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  79. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
  80. package/src/sap/fe/core/converters/common/AnnotationConverter.js +17 -13
  81. package/src/sap/fe/core/converters/controls/Common/Action.js +2 -2
  82. package/src/sap/fe/core/converters/controls/Common/Action.ts +2 -2
  83. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
  84. package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
  85. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
  86. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
  87. package/src/sap/fe/core/converters/controls/Common/Form.js +4 -2
  88. package/src/sap/fe/core/converters/controls/Common/Form.ts +16 -2
  89. package/src/sap/fe/core/converters/controls/Common/Table.js +250 -146
  90. package/src/sap/fe/core/converters/controls/Common/Table.ts +300 -167
  91. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +115 -56
  92. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
  93. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +467 -32
  94. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
  95. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +6 -6
  96. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
  97. package/src/sap/fe/core/converters/helpers/Aggregation.js +13 -5
  98. package/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
  99. package/src/sap/fe/core/converters/helpers/IssueManager.js +4 -1
  100. package/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
  101. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +4 -4
  102. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
  103. package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -6
  104. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +26 -15
  105. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
  106. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  107. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
  108. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  109. package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
  110. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  111. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
  112. package/src/sap/fe/core/formatters/TableFormatter.js +39 -28
  113. package/src/sap/fe/core/formatters/TableFormatter.ts +43 -28
  114. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  115. package/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
  116. package/src/sap/fe/core/fpm/Component.js +3 -2
  117. package/src/sap/fe/core/helpers/AppStartupHelper.js +2 -2
  118. package/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
  119. package/src/sap/fe/core/helpers/BindingExpression.js +314 -355
  120. package/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
  121. package/src/sap/fe/core/helpers/ClassSupport.js +27 -15
  122. package/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
  123. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +63 -59
  124. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
  125. package/src/sap/fe/core/helpers/EditState.js +81 -84
  126. package/src/sap/fe/core/helpers/EditState.ts +81 -0
  127. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
  128. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
  129. package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
  130. package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
  131. package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -4
  132. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
  133. package/src/sap/fe/core/helpers/MassEditHelper.js +27 -18
  134. package/src/sap/fe/core/helpers/ModelHelper.js +229 -225
  135. package/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
  136. package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
  137. package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
  138. package/src/sap/fe/core/helpers/SemanticDateOperators.js +332 -313
  139. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
  140. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
  141. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
  142. package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
  143. package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
  144. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  145. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
  146. package/src/sap/fe/core/library.js +4 -3
  147. package/src/sap/fe/core/library.support.js +3 -2
  148. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  149. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
  150. package/src/sap/fe/core/messagebundle.properties +23 -10
  151. package/src/sap/fe/core/messagebundle_ar.properties +9 -0
  152. package/src/sap/fe/core/messagebundle_bg.properties +9 -0
  153. package/src/sap/fe/core/messagebundle_ca.properties +9 -0
  154. package/src/sap/fe/core/messagebundle_cs.properties +10 -1
  155. package/src/sap/fe/core/messagebundle_cy.properties +9 -0
  156. package/src/sap/fe/core/messagebundle_da.properties +9 -0
  157. package/src/sap/fe/core/messagebundle_de.properties +9 -0
  158. package/src/sap/fe/core/messagebundle_el.properties +9 -0
  159. package/src/sap/fe/core/messagebundle_en.properties +9 -0
  160. package/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
  161. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
  162. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
  163. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
  164. package/src/sap/fe/core/messagebundle_es.properties +9 -0
  165. package/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
  166. package/src/sap/fe/core/messagebundle_et.properties +9 -0
  167. package/src/sap/fe/core/messagebundle_fi.properties +9 -0
  168. package/src/sap/fe/core/messagebundle_fr.properties +13 -4
  169. package/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
  170. package/src/sap/fe/core/messagebundle_hi.properties +15 -6
  171. package/src/sap/fe/core/messagebundle_hr.properties +15 -6
  172. package/src/sap/fe/core/messagebundle_hu.properties +9 -0
  173. package/src/sap/fe/core/messagebundle_id.properties +10 -1
  174. package/src/sap/fe/core/messagebundle_it.properties +9 -0
  175. package/src/sap/fe/core/messagebundle_iw.properties +9 -0
  176. package/src/sap/fe/core/messagebundle_ja.properties +9 -0
  177. package/src/sap/fe/core/messagebundle_kk.properties +15 -6
  178. package/src/sap/fe/core/messagebundle_ko.properties +9 -0
  179. package/src/sap/fe/core/messagebundle_lt.properties +9 -0
  180. package/src/sap/fe/core/messagebundle_lv.properties +15 -6
  181. package/src/sap/fe/core/messagebundle_ms.properties +14 -5
  182. package/src/sap/fe/core/messagebundle_nl.properties +9 -0
  183. package/src/sap/fe/core/messagebundle_no.properties +9 -0
  184. package/src/sap/fe/core/messagebundle_pl.properties +9 -0
  185. package/src/sap/fe/core/messagebundle_pt.properties +9 -0
  186. package/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
  187. package/src/sap/fe/core/messagebundle_ro.properties +9 -0
  188. package/src/sap/fe/core/messagebundle_ru.properties +9 -0
  189. package/src/sap/fe/core/messagebundle_sh.properties +11 -2
  190. package/src/sap/fe/core/messagebundle_sk.properties +9 -0
  191. package/src/sap/fe/core/messagebundle_sl.properties +15 -6
  192. package/src/sap/fe/core/messagebundle_sv.properties +9 -0
  193. package/src/sap/fe/core/messagebundle_th.properties +9 -0
  194. package/src/sap/fe/core/messagebundle_tr.properties +9 -0
  195. package/src/sap/fe/core/messagebundle_uk.properties +9 -0
  196. package/src/sap/fe/core/messagebundle_vi.properties +9 -0
  197. package/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
  198. package/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
  199. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  200. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  201. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +269 -202
  202. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
  203. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  204. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
  205. package/src/sap/fe/core/services/NavigationServiceFactory.js +406 -300
  206. package/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
  207. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +149 -81
  208. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
  209. package/src/sap/fe/core/services/RoutingServiceFactory.js +987 -899
  210. package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
  211. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  212. package/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
  213. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +35 -81
  214. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
  215. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +461 -487
  216. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
  217. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
  218. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
  219. package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
  220. package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
  221. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
  222. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
  223. package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
  224. package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
  225. package/src/sap/fe/core/templating/FilterHelper.js +138 -72
  226. package/src/sap/fe/core/templating/FilterHelper.ts +139 -71
  227. package/src/sap/fe/core/templating/UIFormatters.js +31 -1
  228. package/src/sap/fe/core/templating/UIFormatters.ts +33 -2
  229. package/src/sap/fe/core/type/Email.js +1 -1
  230. package/src/sap/fe/core/type/Email.ts +4 -6
  231. package/ui5.yaml +0 -3
@@ -0,0 +1,453 @@
1
+ import Service from "sap/ui/core/service/Service";
2
+ import ServiceFactory from "sap/ui/core/service/ServiceFactory";
3
+ import ServiceFactoryRegistry from "sap/ui/core/service/ServiceFactoryRegistry";
4
+ import ManagedObjectModel from "sap/ui/model/base/ManagedObjectModel";
5
+ import View from "sap/ui/core/mvc/View";
6
+ import Component from "sap/ui/core/Component";
7
+ import JSONModel from "sap/ui/model/json/JSONModel";
8
+ import Log from "sap/base/Log";
9
+ import TemplateModel from "sap/fe/core/TemplateModel";
10
+ import DynamicAnnotationPathHelper from "sap/fe/core/helpers/DynamicAnnotationPathHelper";
11
+ import CacheManager from "sap/ui/core/cache/CacheManager";
12
+ import VersionInfo from "sap/ui/VersionInfo";
13
+ import Device from "sap/ui/Device";
14
+ import UriParameters from "sap/base/util/UriParameters";
15
+ import { ServiceContext } from "sap/ui/core/service";
16
+ import { ResourceModelService } from "./ResourceModelServiceFactory";
17
+ import { AppComponent } from "sap/fe/core";
18
+ import { CacheHandlerService } from "sap/fe/core/services/CacheHandlerServiceFactory";
19
+ import { ResourceModel } from "sap/fe/macros";
20
+ import Model from "sap/ui/model/Model";
21
+
22
+ type TemplatedViewServiceSettings = {};
23
+
24
+ class TemplatedViewService extends Service<TemplatedViewServiceSettings> {
25
+ initPromise!: Promise<any>;
26
+ oView!: View;
27
+ oResourceModelService!: ResourceModelService;
28
+ oCacheHandlerService!: CacheHandlerService;
29
+ oFactory!: TemplatedViewServiceFactory;
30
+ resourceModel!: ResourceModel;
31
+ stableId!: string;
32
+ TemplateConverter: any;
33
+ MetaModelConverter: any;
34
+ init() {
35
+ const aServiceDependencies = [];
36
+ const oContext = this.getContext();
37
+ const oComponent = oContext.scopeObject;
38
+ const oAppComponent = Component.getOwnerComponentFor(oComponent) as AppComponent;
39
+ const oMetaModel = oAppComponent.getMetaModel();
40
+ const sStableId = oAppComponent.getMetadata().getComponentName() + "::" + oAppComponent.getLocalId(oComponent.getId());
41
+ const aEnhanceI18n = oComponent.getEnhanceI18n() || [];
42
+ let sAppNamespace;
43
+ this.oFactory = oContext.factory;
44
+ if (aEnhanceI18n) {
45
+ sAppNamespace = oAppComponent.getMetadata().getComponentName();
46
+ for (let i = 0; i < aEnhanceI18n.length; i++) {
47
+ // In order to support text-verticalization applications can also passs a resource model defined in the manifest
48
+ // UI5 takes care of text-verticalization for resource models defined in the manifest
49
+ // Hence check if the given key is a resource model defined in the manifest
50
+ // if so this model should be used to enhance the sap.fe resource model so pass it as it is
51
+ const oResourceModel = oAppComponent.getModel(aEnhanceI18n[i]);
52
+ if (oResourceModel && oResourceModel.isA("sap.ui.model.resource.ResourceModel")) {
53
+ aEnhanceI18n[i] = oResourceModel;
54
+ } else {
55
+ aEnhanceI18n[i] = sAppNamespace + "." + aEnhanceI18n[i].replace(".properties", "");
56
+ }
57
+ }
58
+ }
59
+
60
+ const sCacheIdentifier =
61
+ oAppComponent.getMetadata().getName() +
62
+ "_" +
63
+ sStableId +
64
+ "_" +
65
+ sap.ui
66
+ .getCore()
67
+ .getConfiguration()
68
+ .getLanguageTag();
69
+ aServiceDependencies.push(
70
+ ServiceFactoryRegistry.get("sap.fe.core.services.ResourceModelService")
71
+ .createInstance({
72
+ scopeType: "component",
73
+ scopeObject: oComponent,
74
+ settings: {
75
+ bundles: ["sap.fe.core.messagebundle", "sap.fe.macros.messagebundle", "sap.fe.templates.messagebundle"],
76
+ enhanceI18n: aEnhanceI18n,
77
+ modelName: "sap.fe.i18n"
78
+ }
79
+ })
80
+ .then((oResourceModelService: ResourceModelService) => {
81
+ this.oResourceModelService = oResourceModelService;
82
+ return oResourceModelService.getResourceModel();
83
+ })
84
+ );
85
+
86
+ aServiceDependencies.push(
87
+ ServiceFactoryRegistry.get("sap.fe.core.services.CacheHandlerService")
88
+ .createInstance({
89
+ settings: {
90
+ metaModel: oMetaModel,
91
+ appComponent: oAppComponent,
92
+ component: oComponent
93
+ }
94
+ })
95
+ .then((oCacheHandlerService: any) => {
96
+ this.oCacheHandlerService = oCacheHandlerService;
97
+ return oCacheHandlerService.validateCacheKey(sCacheIdentifier);
98
+ })
99
+ );
100
+ aServiceDependencies.push(
101
+ (VersionInfo as any)
102
+ .load()
103
+ .then(function(oInfo: any) {
104
+ let sTimestamp = "";
105
+ if (!oInfo.libraries) {
106
+ sTimestamp = (sap.ui as any).buildinfo.buildtime;
107
+ } else {
108
+ oInfo.libraries.forEach(function(oLibrary: any) {
109
+ sTimestamp += oLibrary.buildTimestamp;
110
+ });
111
+ }
112
+ return sTimestamp;
113
+ })
114
+ .catch(function() {
115
+ return "<NOVALUE>";
116
+ })
117
+ );
118
+
119
+ let sPageModelCacheKey = "";
120
+ this.initPromise = Promise.all(aServiceDependencies)
121
+ .then((aDependenciesResult: any[]) => {
122
+ const sCacheKey = aDependenciesResult[1];
123
+ const sVersionInfo = aDependenciesResult[2];
124
+ const oShellServices = oAppComponent.getShellServices();
125
+ const oSideEffectsServices = oAppComponent.getSideEffectsService();
126
+
127
+ oSideEffectsServices.initializeSideEffects(oAppComponent.getEnvironmentCapabilities().getCapabilities());
128
+
129
+ sPageModelCacheKey = sCacheKey + "-" + sVersionInfo + "-" + sStableId + "-" + oShellServices.instanceType + "-pageModel";
130
+ return Promise.all(aDependenciesResult.concat([this._getCachedModel(sPageModelCacheKey)]));
131
+ })
132
+ .then((aDependenciesResult: any[]) => {
133
+ const oResourceModel = aDependenciesResult[0];
134
+ const sCacheKey = aDependenciesResult[1];
135
+ const oPageModelCache = aDependenciesResult[3];
136
+ return new Promise(resolve => {
137
+ sap.ui.require(
138
+ ["sap/fe/core/converters/TemplateConverter", "sap/fe/core/converters/MetaModelConverter"],
139
+ (TemplateConverter: any, MetaModelConverter: any) => {
140
+ resolve(
141
+ this.createView(
142
+ oResourceModel,
143
+ sStableId,
144
+ sCacheKey,
145
+ sPageModelCacheKey,
146
+ oPageModelCache,
147
+ TemplateConverter,
148
+ MetaModelConverter
149
+ )
150
+ );
151
+ }
152
+ );
153
+ });
154
+ })
155
+ .then(function(sCacheKey: any) {
156
+ const oCacheHandlerService = ServiceFactoryRegistry.get("sap.fe.core.services.CacheHandlerService").getInstance(oMetaModel);
157
+ oCacheHandlerService.invalidateIfNeeded(sCacheKey, sCacheIdentifier);
158
+ });
159
+ }
160
+ _getCachedModel(sCacheKey: any) {
161
+ if (
162
+ sap.ui
163
+ .getCore()
164
+ .getConfiguration()
165
+ .getViewCache()
166
+ ) {
167
+ return CacheManager.get(sCacheKey);
168
+ }
169
+ return undefined;
170
+ }
171
+ _setCachedModel(sCacheKey: string, oCacheModel: any) {
172
+ if (
173
+ sap.ui
174
+ .getCore()
175
+ .getConfiguration()
176
+ .getViewCache()
177
+ ) {
178
+ CacheManager.set(sCacheKey, oCacheModel);
179
+ }
180
+ return undefined;
181
+ }
182
+ /**
183
+ * Refresh the current view using the same configuration as before.
184
+ * This is useful for our demokit !
185
+ *
186
+ * @param oComponent
187
+ * @returns {Promise<void>}
188
+ * @private
189
+ */
190
+ refreshView(oComponent: any) {
191
+ const oRootView = oComponent.getRootControl();
192
+ if (oRootView) {
193
+ oRootView.destroy();
194
+ } else if (this.oView) {
195
+ this.oView.destroy();
196
+ }
197
+ return this.createView(this.resourceModel, this.stableId, "", "", undefined, this.TemplateConverter, this.MetaModelConverter)
198
+ .then(function() {
199
+ oComponent.oContainer.invalidate();
200
+ })
201
+ .catch(function(oError: any) {
202
+ oComponent.oContainer.invalidate();
203
+ Log.error(oError);
204
+ });
205
+ }
206
+ createView(
207
+ oResourceModel: any,
208
+ sStableId: any,
209
+ sCacheKey: any,
210
+ sPageModelCacheKey: any,
211
+ oPageModelCache: any,
212
+ TemplateConverter: any,
213
+ MetaModelConverter: any
214
+ ) {
215
+ this.resourceModel = oResourceModel;
216
+ this.stableId = sStableId;
217
+ this.TemplateConverter = TemplateConverter;
218
+ this.MetaModelConverter = MetaModelConverter;
219
+ const oContext = this.getContext();
220
+ const mServiceSettings = oContext.settings;
221
+ const sConverterType = mServiceSettings.converterType;
222
+ const oComponent = oContext.scopeObject;
223
+ const oAppComponent: AppComponent = Component.getOwnerComponentFor(oComponent);
224
+ const sFullContextPath = oAppComponent.getRoutingService().getTargetInformationFor(oComponent).options.settings.fullContextPath;
225
+ const oMetaModel = oAppComponent.getMetaModel();
226
+ const oManifestContent: any = oAppComponent.getManifest();
227
+ const oDeviceModel = new JSONModel(sap.ui.Device).setDefaultBindingMode("OneWay");
228
+ const oManifestModel = new JSONModel(oManifestContent);
229
+ const bError = false;
230
+ let oPageModel: TemplateModel, oViewDataModel: Model, oViewSettings: any, mViewData: any;
231
+
232
+ function getViewSettings() {
233
+ const aSplitPath = sFullContextPath.split("/");
234
+ const sEntitySetPath = aSplitPath.reduce(function(sPathSoFar: any, sNextPathPart: any) {
235
+ if (sNextPathPart === "") {
236
+ return sPathSoFar;
237
+ }
238
+ if (sPathSoFar === "") {
239
+ sPathSoFar = "/" + sNextPathPart;
240
+ } else {
241
+ const oTarget = oMetaModel.getObject(sPathSoFar + "/$NavigationPropertyBinding/" + sNextPathPart);
242
+ if (oTarget && Object.keys(oTarget).length > 0) {
243
+ sPathSoFar += "/$NavigationPropertyBinding";
244
+ }
245
+ sPathSoFar += "/" + sNextPathPart;
246
+ }
247
+ return sPathSoFar;
248
+ }, "");
249
+ const oViewSettings = {
250
+ type: "XML",
251
+ preprocessors: {
252
+ xml: {
253
+ bindingContexts: {
254
+ entitySet: sEntitySetPath ? oMetaModel.createBindingContext(sEntitySetPath) : null,
255
+ fullContextPath: sFullContextPath ? oMetaModel.createBindingContext(sFullContextPath) : null,
256
+ contextPath: sFullContextPath ? oMetaModel.createBindingContext(sFullContextPath) : null,
257
+ converterContext: oPageModel.createBindingContext("/", undefined, { noResolve: true }),
258
+ viewData: mViewData ? oViewDataModel.createBindingContext("/") : null
259
+ },
260
+ models: {
261
+ entitySet: oMetaModel,
262
+ fullContextPath: oMetaModel,
263
+ contextPath: oMetaModel,
264
+ "sap.fe.i18n": oResourceModel,
265
+ metaModel: oMetaModel,
266
+ "device": oDeviceModel, // TODO: discuss names here
267
+ manifest: oManifestModel,
268
+ converterContext: oPageModel,
269
+ viewData: oViewDataModel
270
+ },
271
+ appComponent: oAppComponent
272
+ }
273
+ },
274
+ id: sStableId,
275
+ viewName: mServiceSettings.viewName || oComponent.getViewName(),
276
+ viewData: mViewData,
277
+ cache: { keys: [sCacheKey] },
278
+ models: {
279
+ "sap.fe.i18n": oResourceModel
280
+ },
281
+ height: "100%"
282
+ };
283
+ return oViewSettings;
284
+ }
285
+ const createErrorPage = (reason: any) => {
286
+ // just replace the view name and add an additional model containing the reason, but
287
+ // keep the other settings
288
+ Log.error(reason.message, reason);
289
+ oViewSettings.viewName = mServiceSettings.errorViewName || "sap.fe.core.services.view.TemplatingErrorPage";
290
+ oViewSettings.preprocessors.xml.models["error"] = new JSONModel(reason);
291
+
292
+ return oComponent.runAsOwner(() => {
293
+ return View.create(oViewSettings).then((oView: any) => {
294
+ this.oView = oView;
295
+ this.oView.setModel(new ManagedObjectModel(this.oView), "$view");
296
+ oComponent.setAggregation("rootControl", this.oView);
297
+ return sCacheKey;
298
+ });
299
+ });
300
+ };
301
+ return oAppComponent
302
+ .getService("routingService")
303
+ .then((oRoutingService: any) => {
304
+ // Retrieve the viewLevel for the component
305
+ const oTargetInfo = oRoutingService.getTargetInformationFor(oComponent);
306
+ const mOutbounds =
307
+ oManifestContent["sap.app"] &&
308
+ oManifestContent["sap.app"].crossNavigation &&
309
+ oManifestContent["sap.app"].crossNavigation.outbounds;
310
+ const mNavigation = oComponent.getNavigation() || {};
311
+ Object.keys(mNavigation).forEach(function(navigationObjectKey: string) {
312
+ const navigationObject = mNavigation[navigationObjectKey];
313
+ let outboundConfig;
314
+ if (navigationObject.detail && navigationObject.detail.outbound && mOutbounds[navigationObject.detail.outbound]) {
315
+ outboundConfig = mOutbounds[navigationObject.detail.outbound];
316
+ navigationObject.detail.outboundDetail = {
317
+ semanticObject: outboundConfig.semanticObject,
318
+ action: outboundConfig.action,
319
+ parameters: outboundConfig.parameters
320
+ };
321
+ }
322
+ if (navigationObject.create && navigationObject.create.outbound && mOutbounds[navigationObject.create.outbound]) {
323
+ outboundConfig = mOutbounds[navigationObject.create.outbound];
324
+ navigationObject.create.outboundDetail = {
325
+ semanticObject: outboundConfig.semanticObject,
326
+ action: outboundConfig.action,
327
+ parameters: outboundConfig.parameters
328
+ };
329
+ }
330
+ });
331
+ mViewData = {
332
+ navigation: mNavigation,
333
+ viewLevel: oTargetInfo.viewLevel,
334
+ stableId: sStableId,
335
+ contentDensities: oManifestContent["sap.ui5"].contentDensities,
336
+ resourceBundle: oResourceModel.__bundle,
337
+ fullContextPath: sFullContextPath,
338
+ isDesktop: (Device as any).system.desktop,
339
+ isPhone: (Device as any).system.phone
340
+ };
341
+
342
+ if (oComponent.getViewData) {
343
+ Object.assign(mViewData, oComponent.getViewData());
344
+ }
345
+
346
+ const oShellServices = oAppComponent.getShellServices();
347
+ mViewData.converterType = sConverterType;
348
+ mViewData.shellContentDensity = oShellServices.getContentDensity();
349
+ mViewData.useNewLazyLoading = UriParameters.fromQuery(window.location.search).get("sap-fe-xx-lazyloadingtest") === "true";
350
+ mViewData.retrieveTextFromValueList =
351
+ oManifestContent["sap.fe"] && oManifestContent["sap.fe"].form
352
+ ? oManifestContent["sap.fe"].form.retrieveTextFromValueList
353
+ : undefined;
354
+ oViewDataModel = new JSONModel(mViewData);
355
+ if (mViewData && mViewData.controlConfiguration) {
356
+ Object.keys(mViewData.controlConfiguration).forEach(function(sAnnotationPath: string) {
357
+ if (sAnnotationPath.indexOf("[") !== -1) {
358
+ const sTargetAnnotationPath = DynamicAnnotationPathHelper.resolveDynamicExpression(sAnnotationPath, oMetaModel);
359
+ mViewData.controlConfiguration[sTargetAnnotationPath] = mViewData.controlConfiguration[sAnnotationPath];
360
+ }
361
+ });
362
+ }
363
+ MetaModelConverter.convertTypes(oMetaModel, oAppComponent.getEnvironmentCapabilities().getCapabilities());
364
+ oPageModel = new TemplateModel(() => {
365
+ try {
366
+ if (!!oPageModelCache) {
367
+ return oPageModelCache;
368
+ } else {
369
+ const oDiagnostics = oAppComponent.getDiagnostics();
370
+ const iIssueCount = oDiagnostics.getIssues().length;
371
+ const oConverterPageModel = TemplateConverter.convertPage(
372
+ sConverterType,
373
+ oMetaModel,
374
+ mViewData,
375
+ oDiagnostics,
376
+ sFullContextPath,
377
+ oAppComponent.getEnvironmentCapabilities().getCapabilities()
378
+ );
379
+
380
+ const aIssues = oDiagnostics.getIssues();
381
+ const aAddedIssues = aIssues.slice(iIssueCount);
382
+ if (aAddedIssues.length > 0) {
383
+ Log.warning(
384
+ "Some issues have been detected in your project, please check the UI5 support assistant rule for sap.fe.core"
385
+ );
386
+ }
387
+ // Fire and forget in the cache
388
+ this._setCachedModel(sPageModelCacheKey, oConverterPageModel);
389
+ return oConverterPageModel;
390
+ }
391
+ } catch (error) {
392
+ Log.error(error, error);
393
+ return {};
394
+ }
395
+ }, oMetaModel);
396
+
397
+ if (!bError) {
398
+ oViewSettings = getViewSettings();
399
+ // Setting the pageModel on the component for potential reuse
400
+ oComponent.setModel(oPageModel, "_pageModel");
401
+ return oComponent.runAsOwner(() => {
402
+ return View.create(oViewSettings)
403
+ .catch(createErrorPage)
404
+ .then((oView: any) => {
405
+ this.oView = oView;
406
+ this.oView.setModel(new ManagedObjectModel(this.oView), "$view");
407
+ this.oView.setModel(oViewDataModel, "viewData");
408
+ oComponent.setAggregation("rootControl", this.oView);
409
+ return sCacheKey;
410
+ })
411
+ .catch(Log.error);
412
+ });
413
+ }
414
+ })
415
+ .catch(function(error: any) {
416
+ Log.error(error.message, error);
417
+ throw new Error("Error while creating view : " + error);
418
+ });
419
+ }
420
+ getView() {
421
+ return this.oView;
422
+ }
423
+ getInterface(): any {
424
+ return this;
425
+ }
426
+ exit() {
427
+ // Deregister global instance
428
+ this.oResourceModelService && this.oResourceModelService.destroy();
429
+ this.oCacheHandlerService && this.oCacheHandlerService.destroy();
430
+ this.oFactory.removeGlobalInstance();
431
+ }
432
+ }
433
+ class TemplatedViewServiceFactory extends ServiceFactory<TemplatedViewServiceSettings> {
434
+ _oInstanceRegistry: Record<string, TemplatedViewService> = {};
435
+ static iCreatingViews: 0;
436
+ createInstance(oServiceContext: ServiceContext<TemplatedViewServiceSettings>) {
437
+ TemplatedViewServiceFactory.iCreatingViews++;
438
+
439
+ const oTemplatedViewService = new TemplatedViewService(Object.assign({ factory: this }, oServiceContext));
440
+ return oTemplatedViewService.initPromise.then(function() {
441
+ TemplatedViewServiceFactory.iCreatingViews--;
442
+ return oTemplatedViewService;
443
+ });
444
+ }
445
+ removeGlobalInstance() {
446
+ this._oInstanceRegistry = {};
447
+ }
448
+ static getNumberOfViewsInCreationState() {
449
+ return TemplatedViewServiceFactory.iCreatingViews;
450
+ }
451
+ }
452
+
453
+ export default TemplatedViewServiceFactory;
@@ -1,11 +1,13 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/controllerextensions/InternalRouting"], function(Controller, InternalRouting) {
6
- "use strict";
5
+ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/controllerextensions/InternalRouting"], function (Controller, InternalRouting) {
6
+ "use strict";
7
7
 
8
- return Controller.extend("sap.fe.core.services.view.TemplatingErrorPage", {
9
- _routing: InternalRouting
10
- });
11
- });
8
+ var TemplatingErrorPage = Controller.extend("sap.fe.core.services.view.TemplatingErrorPage", {
9
+ _routing: InternalRouting
10
+ });
11
+ return TemplatingErrorPage;
12
+ }, false);
13
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRlbXBsYXRpbmdFcnJvclBhZ2UuY29udHJvbGxlci50cyJdLCJuYW1lcyI6WyJUZW1wbGF0aW5nRXJyb3JQYWdlIiwiQ29udHJvbGxlciIsImV4dGVuZCIsIl9yb3V0aW5nIiwiSW50ZXJuYWxSb3V0aW5nIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBQ0EsTUFBTUEsbUJBQW1CLEdBQUdDLFVBQVUsQ0FBQ0MsTUFBWCxDQUFrQiwrQ0FBbEIsRUFBbUU7QUFDOUZDLElBQUFBLFFBQVEsRUFBRUM7QUFEb0YsR0FBbkUsQ0FBNUI7U0FJZUosbUIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb250cm9sbGVyIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlclwiO1xuaW1wb3J0IHsgSW50ZXJuYWxSb3V0aW5nIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zXCI7XG5cbmNvbnN0IFRlbXBsYXRpbmdFcnJvclBhZ2UgPSBDb250cm9sbGVyLmV4dGVuZChcInNhcC5mZS5jb3JlLnNlcnZpY2VzLnZpZXcuVGVtcGxhdGluZ0Vycm9yUGFnZVwiLCB7XG5cdF9yb3V0aW5nOiBJbnRlcm5hbFJvdXRpbmdcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0aW5nRXJyb3JQYWdlO1xuIl19
@@ -0,0 +1,8 @@
1
+ import Controller from "sap/ui/core/mvc/Controller";
2
+ import { InternalRouting } from "sap/fe/core/controllerextensions";
3
+
4
+ const TemplatingErrorPage = Controller.extend("sap.fe.core.services.view.TemplatingErrorPage", {
5
+ _routing: InternalRouting
6
+ });
7
+
8
+ export default TemplatingErrorPage;
@@ -11,7 +11,7 @@ sap.ui.define(["sap/fe/core/support/CommonHelper", "sap/fe/core/converters/helpe
11
11
  var getIssueByCategory = CommonHelper.getIssueByCategory;
12
12
  var Categories = CommonHelper.Categories;
13
13
 
14
- var oAnnotationIssue = {
14
+ var oIncorrectPathAnnotationIssue = {
15
15
  id: "annotationIssue",
16
16
  title: "Annotations: Incorrect path or target",
17
17
  minversion: "1.85",
@@ -27,12 +27,24 @@ sap.ui.define(["sap/fe/core/support/CommonHelper", "sap/fe/core/converters/helpe
27
27
  getIssueByCategory(oIssueManager, oCoreFacade, IssueCategory.Annotation);
28
28
  }
29
29
  };
30
+ var oIgnoredComputedDVAnnotationIssue = {
31
+ id: "ignoredAnnotationIssue",
32
+ title: "Annotations: Ignore Annotation",
33
+ minversion: "1.99",
34
+ audiences: [Audiences.Application],
35
+ categories: [Categories.Usage],
36
+ description: "This rule identifies the ignored annotations",
37
+ resolution: "Only one annotation from either Core.Computed or ComputedDefaultValue must be used",
38
+ check: function (oIssueManager, oCoreFacade) {
39
+ getIssueByCategory(oIssueManager, oCoreFacade, IssueCategory.Annotation, "IgnoredAnnotation");
40
+ }
41
+ };
30
42
 
31
43
  function getRules() {
32
- return [oAnnotationIssue];
44
+ return [oIncorrectPathAnnotationIssue, oIgnoredComputedDVAnnotationIssue];
33
45
  }
34
46
 
35
47
  _exports.getRules = getRules;
36
48
  return _exports;
37
49
  }, false);
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFubm90YXRpb25Jc3N1ZS5zdXBwb3J0LnRzIl0sIm5hbWVzIjpbIm9Bbm5vdGF0aW9uSXNzdWUiLCJpZCIsInRpdGxlIiwibWludmVyc2lvbiIsImF1ZGllbmNlcyIsIkF1ZGllbmNlcyIsIkFwcGxpY2F0aW9uIiwiY2F0ZWdvcmllcyIsIkNhdGVnb3JpZXMiLCJVc2FnZSIsImRlc2NyaXB0aW9uIiwicmVzb2x1dGlvbiIsInJlc29sdXRpb251cmxzIiwiY2hlY2siLCJvSXNzdWVNYW5hZ2VyIiwib0NvcmVGYWNhZGUiLCJnZXRJc3N1ZUJ5Q2F0ZWdvcnkiLCJJc3N1ZUNhdGVnb3J5IiwiQW5ub3RhdGlvbiIsImdldFJ1bGVzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FBQ0EsTUFBTUEsZ0JBQWdCLEdBQUc7QUFDeEJDLElBQUFBLEVBQUUsRUFBRSxpQkFEb0I7QUFFeEJDLElBQUFBLEtBQUssRUFBRSx1Q0FGaUI7QUFHeEJDLElBQUFBLFVBQVUsRUFBRSxNQUhZO0FBSXhCQyxJQUFBQSxTQUFTLEVBQUUsQ0FBQ0MsU0FBUyxDQUFDQyxXQUFYLENBSmE7QUFLeEJDLElBQUFBLFVBQVUsRUFBRSxDQUFDQyxVQUFVLENBQUNDLEtBQVosQ0FMWTtBQU14QkMsSUFBQUEsV0FBVyxFQUNWLDJIQVB1QjtBQVF4QkMsSUFBQUEsVUFBVSxFQUFFLHlEQVJZO0FBU3hCQyxJQUFBQSxjQUFjLEVBQUUsQ0FBQztBQUFFLGNBQVEsMkJBQVY7QUFBdUMsY0FBUTtBQUEvQyxLQUFELENBVFE7QUFVeEJDLElBQUFBLEtBQUssRUFBRSxVQUFTQyxhQUFULEVBQTZCQyxXQUE3QixFQUErRDtBQUNyRUMsTUFBQUEsa0JBQWtCLENBQUNGLGFBQUQsRUFBZ0JDLFdBQWhCLEVBQTZCRSxhQUFhLENBQUNDLFVBQTNDLENBQWxCO0FBQ0E7QUFadUIsR0FBekI7O0FBY08sV0FBU0MsUUFBVCxHQUFvQjtBQUMxQixXQUFPLENBQUNuQixnQkFBRCxDQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3JpZXMsIGdldElzc3VlQnlDYXRlZ29yeSwgQXVkaWVuY2VzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3N1cHBvcnQvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcblxuY29uc3Qgb0Fubm90YXRpb25Jc3N1ZSA9IHtcblx0aWQ6IFwiYW5ub3RhdGlvbklzc3VlXCIsXG5cdHRpdGxlOiBcIkFubm90YXRpb25zOiBJbmNvcnJlY3QgcGF0aCBvciB0YXJnZXRcIixcblx0bWludmVyc2lvbjogXCIxLjg1XCIsXG5cdGF1ZGllbmNlczogW0F1ZGllbmNlcy5BcHBsaWNhdGlvbl0sXG5cdGNhdGVnb3JpZXM6IFtDYXRlZ29yaWVzLlVzYWdlXSxcblx0ZGVzY3JpcHRpb246XG5cdFx0XCJUaGlzIHJ1bGUgaWRlbnRpZmllcyB0aGUgaW5jb3JyZWN0IHBhdGggb3IgdGFyZ2V0cyBkZWZpbmVkIGluIHRoZSBtZXRhZGF0YSBvZiB0aGUgYW5ub3RhdGlvbi54bWwgZmlsZSBvciBDRFMgYW5ub3RhdGlvbnMuXCIsXG5cdHJlc29sdXRpb246IFwiUGxlYXNlIHJldmlldyB0aGUgbWVzc2FnZSBkZXRhaWxzIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiLFxuXHRyZXNvbHV0aW9udXJsczogW3sgXCJ0ZXh0XCI6IFwiQ0RTIEFubm90YXRpb25zIHJlZmVyZW5jZVwiLCBcImhyZWZcIjogXCJodHRwczovL2NhcC5jbG91ZC5zYXAvZG9jcy9jZHMvY29tbW9uXCIgfV0sXG5cdGNoZWNrOiBmdW5jdGlvbihvSXNzdWVNYW5hZ2VyOiBhbnksIG9Db3JlRmFjYWRlOiBhbnkgLypvU2NvcGU6IGFueSovKSB7XG5cdFx0Z2V0SXNzdWVCeUNhdGVnb3J5KG9Jc3N1ZU1hbmFnZXIsIG9Db3JlRmFjYWRlLCBJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24pO1xuXHR9XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJ1bGVzKCkge1xuXHRyZXR1cm4gW29Bbm5vdGF0aW9uSXNzdWVdO1xufVxuIl19
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFubm90YXRpb25Jc3N1ZS5zdXBwb3J0LnRzIl0sIm5hbWVzIjpbIm9JbmNvcnJlY3RQYXRoQW5ub3RhdGlvbklzc3VlIiwiaWQiLCJ0aXRsZSIsIm1pbnZlcnNpb24iLCJhdWRpZW5jZXMiLCJBdWRpZW5jZXMiLCJBcHBsaWNhdGlvbiIsImNhdGVnb3JpZXMiLCJDYXRlZ29yaWVzIiwiVXNhZ2UiLCJkZXNjcmlwdGlvbiIsInJlc29sdXRpb24iLCJyZXNvbHV0aW9udXJscyIsImNoZWNrIiwib0lzc3VlTWFuYWdlciIsIm9Db3JlRmFjYWRlIiwiZ2V0SXNzdWVCeUNhdGVnb3J5IiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJvSWdub3JlZENvbXB1dGVkRFZBbm5vdGF0aW9uSXNzdWUiLCJnZXRSdWxlcyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7OztBQUNBLE1BQU1BLDZCQUE2QixHQUFHO0FBQ3JDQyxJQUFBQSxFQUFFLEVBQUUsaUJBRGlDO0FBRXJDQyxJQUFBQSxLQUFLLEVBQUUsdUNBRjhCO0FBR3JDQyxJQUFBQSxVQUFVLEVBQUUsTUFIeUI7QUFJckNDLElBQUFBLFNBQVMsRUFBRSxDQUFDQyxTQUFTLENBQUNDLFdBQVgsQ0FKMEI7QUFLckNDLElBQUFBLFVBQVUsRUFBRSxDQUFDQyxVQUFVLENBQUNDLEtBQVosQ0FMeUI7QUFNckNDLElBQUFBLFdBQVcsRUFDViwySEFQb0M7QUFRckNDLElBQUFBLFVBQVUsRUFBRSx5REFSeUI7QUFTckNDLElBQUFBLGNBQWMsRUFBRSxDQUFDO0FBQUUsY0FBUSwyQkFBVjtBQUF1QyxjQUFRO0FBQS9DLEtBQUQsQ0FUcUI7QUFVckNDLElBQUFBLEtBQUssRUFBRSxVQUFTQyxhQUFULEVBQTZCQyxXQUE3QixFQUErRDtBQUNyRUMsTUFBQUEsa0JBQWtCLENBQUNGLGFBQUQsRUFBZ0JDLFdBQWhCLEVBQTZCRSxhQUFhLENBQUNDLFVBQTNDLENBQWxCO0FBQ0E7QUFab0MsR0FBdEM7QUFlQSxNQUFNQyxpQ0FBaUMsR0FBRztBQUN6Q2xCLElBQUFBLEVBQUUsRUFBRSx3QkFEcUM7QUFFekNDLElBQUFBLEtBQUssRUFBRSxnQ0FGa0M7QUFHekNDLElBQUFBLFVBQVUsRUFBRSxNQUg2QjtBQUl6Q0MsSUFBQUEsU0FBUyxFQUFFLENBQUNDLFNBQVMsQ0FBQ0MsV0FBWCxDQUo4QjtBQUt6Q0MsSUFBQUEsVUFBVSxFQUFFLENBQUNDLFVBQVUsQ0FBQ0MsS0FBWixDQUw2QjtBQU16Q0MsSUFBQUEsV0FBVyxFQUFFLDhDQU40QjtBQU96Q0MsSUFBQUEsVUFBVSxFQUFFLG9GQVA2QjtBQVF6Q0UsSUFBQUEsS0FBSyxFQUFFLFVBQVNDLGFBQVQsRUFBNkJDLFdBQTdCLEVBQStEO0FBQ3JFQyxNQUFBQSxrQkFBa0IsQ0FBQ0YsYUFBRCxFQUFnQkMsV0FBaEIsRUFBNkJFLGFBQWEsQ0FBQ0MsVUFBM0MsRUFBdUQsbUJBQXZELENBQWxCO0FBQ0E7QUFWd0MsR0FBMUM7O0FBYU8sV0FBU0UsUUFBVCxHQUFvQjtBQUMxQixXQUFPLENBQUNwQiw2QkFBRCxFQUFnQ21CLGlDQUFoQyxDQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3JpZXMsIGdldElzc3VlQnlDYXRlZ29yeSwgQXVkaWVuY2VzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3N1cHBvcnQvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcblxuY29uc3Qgb0luY29ycmVjdFBhdGhBbm5vdGF0aW9uSXNzdWUgPSB7XG5cdGlkOiBcImFubm90YXRpb25Jc3N1ZVwiLFxuXHR0aXRsZTogXCJBbm5vdGF0aW9uczogSW5jb3JyZWN0IHBhdGggb3IgdGFyZ2V0XCIsXG5cdG1pbnZlcnNpb246IFwiMS44NVwiLFxuXHRhdWRpZW5jZXM6IFtBdWRpZW5jZXMuQXBwbGljYXRpb25dLFxuXHRjYXRlZ29yaWVzOiBbQ2F0ZWdvcmllcy5Vc2FnZV0sXG5cdGRlc2NyaXB0aW9uOlxuXHRcdFwiVGhpcyBydWxlIGlkZW50aWZpZXMgdGhlIGluY29ycmVjdCBwYXRoIG9yIHRhcmdldHMgZGVmaW5lZCBpbiB0aGUgbWV0YWRhdGEgb2YgdGhlIGFubm90YXRpb24ueG1sIGZpbGUgb3IgQ0RTIGFubm90YXRpb25zLlwiLFxuXHRyZXNvbHV0aW9uOiBcIlBsZWFzZSByZXZpZXcgdGhlIG1lc3NhZ2UgZGV0YWlscyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIixcblx0cmVzb2x1dGlvbnVybHM6IFt7IFwidGV4dFwiOiBcIkNEUyBBbm5vdGF0aW9ucyByZWZlcmVuY2VcIiwgXCJocmVmXCI6IFwiaHR0cHM6Ly9jYXAuY2xvdWQuc2FwL2RvY3MvY2RzL2NvbW1vblwiIH1dLFxuXHRjaGVjazogZnVuY3Rpb24ob0lzc3VlTWFuYWdlcjogYW55LCBvQ29yZUZhY2FkZTogYW55IC8qb1Njb3BlOiBhbnkqLykge1xuXHRcdGdldElzc3VlQnlDYXRlZ29yeShvSXNzdWVNYW5hZ2VyLCBvQ29yZUZhY2FkZSwgSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uKTtcblx0fVxufTtcblxuY29uc3Qgb0lnbm9yZWRDb21wdXRlZERWQW5ub3RhdGlvbklzc3VlID0ge1xuXHRpZDogXCJpZ25vcmVkQW5ub3RhdGlvbklzc3VlXCIsXG5cdHRpdGxlOiBcIkFubm90YXRpb25zOiBJZ25vcmUgQW5ub3RhdGlvblwiLFxuXHRtaW52ZXJzaW9uOiBcIjEuOTlcIixcblx0YXVkaWVuY2VzOiBbQXVkaWVuY2VzLkFwcGxpY2F0aW9uXSxcblx0Y2F0ZWdvcmllczogW0NhdGVnb3JpZXMuVXNhZ2VdLFxuXHRkZXNjcmlwdGlvbjogXCJUaGlzIHJ1bGUgaWRlbnRpZmllcyB0aGUgaWdub3JlZCBhbm5vdGF0aW9uc1wiLFxuXHRyZXNvbHV0aW9uOiBcIk9ubHkgb25lIGFubm90YXRpb24gZnJvbSBlaXRoZXIgQ29yZS5Db21wdXRlZCBvciBDb21wdXRlZERlZmF1bHRWYWx1ZSBtdXN0IGJlIHVzZWRcIixcblx0Y2hlY2s6IGZ1bmN0aW9uKG9Jc3N1ZU1hbmFnZXI6IGFueSwgb0NvcmVGYWNhZGU6IGFueSAvKm9TY29wZTogYW55Ki8pIHtcblx0XHRnZXRJc3N1ZUJ5Q2F0ZWdvcnkob0lzc3VlTWFuYWdlciwgb0NvcmVGYWNhZGUsIElzc3VlQ2F0ZWdvcnkuQW5ub3RhdGlvbiwgXCJJZ25vcmVkQW5ub3RhdGlvblwiKTtcblx0fVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJ1bGVzKCkge1xuXHRyZXR1cm4gW29JbmNvcnJlY3RQYXRoQW5ub3RhdGlvbklzc3VlLCBvSWdub3JlZENvbXB1dGVkRFZBbm5vdGF0aW9uSXNzdWVdO1xufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { Categories, getIssueByCategory, Audiences } from "sap/fe/core/support/CommonHelper";
2
2
  import { IssueCategory } from "sap/fe/core/converters/helpers/IssueManager";
3
3
 
4
- const oAnnotationIssue = {
4
+ const oIncorrectPathAnnotationIssue = {
5
5
  id: "annotationIssue",
6
6
  title: "Annotations: Incorrect path or target",
7
7
  minversion: "1.85",
@@ -15,6 +15,20 @@ const oAnnotationIssue = {
15
15
  getIssueByCategory(oIssueManager, oCoreFacade, IssueCategory.Annotation);
16
16
  }
17
17
  };
18
+
19
+ const oIgnoredComputedDVAnnotationIssue = {
20
+ id: "ignoredAnnotationIssue",
21
+ title: "Annotations: Ignore Annotation",
22
+ minversion: "1.99",
23
+ audiences: [Audiences.Application],
24
+ categories: [Categories.Usage],
25
+ description: "This rule identifies the ignored annotations",
26
+ resolution: "Only one annotation from either Core.Computed or ComputedDefaultValue must be used",
27
+ check: function(oIssueManager: any, oCoreFacade: any /*oScope: any*/) {
28
+ getIssueByCategory(oIssueManager, oCoreFacade, IssueCategory.Annotation, "IgnoredAnnotation");
29
+ }
30
+ };
31
+
18
32
  export function getRules() {
19
- return [oAnnotationIssue];
33
+ return [oIncorrectPathAnnotationIssue, oIgnoredComputedDVAnnotationIssue];
20
34
  }
@@ -14,7 +14,7 @@ sap.ui.define(["sap/fe/core/support/CommonHelper", "sap/fe/core/converters/helpe
14
14
  var oCollectionFacetUnsupportedLevelIssue = {
15
15
  id: "collectionFacetUnsupportedLevel",
16
16
  title: "CollectionFacet: Unsupported Levels",
17
- minversion: "1.86",
17
+ minversion: "1.80",
18
18
  audiences: [Audiences.Application],
19
19
  categories: [Categories.Usage],
20
20
  description: "Collection facets at level 3 or lower (level 4, 5…) are not supported and will not be visible on the UI.",
@@ -35,4 +35,4 @@ sap.ui.define(["sap/fe/core/support/CommonHelper", "sap/fe/core/converters/helpe
35
35
  _exports.getRules = getRules;
36
36
  return _exports;
37
37
  }, false);
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWwuc3VwcG9ydC50cyJdLCJuYW1lcyI6WyJvQ29sbGVjdGlvbkZhY2V0VW5zdXBwb3J0ZWRMZXZlbElzc3VlIiwiaWQiLCJ0aXRsZSIsIm1pbnZlcnNpb24iLCJhdWRpZW5jZXMiLCJBdWRpZW5jZXMiLCJBcHBsaWNhdGlvbiIsImNhdGVnb3JpZXMiLCJDYXRlZ29yaWVzIiwiVXNhZ2UiLCJkZXNjcmlwdGlvbiIsInJlc29sdXRpb24iLCJyZXNvbHV0aW9udXJscyIsImNoZWNrIiwib0lzc3VlTWFuYWdlciIsIm9Db3JlRmFjYWRlIiwiZ2V0SXNzdWVCeUNhdGVnb3J5IiwiSXNzdWVDYXRlZ29yeSIsIkZhY2V0cyIsImdldFJ1bGVzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FBQUEsTUFBTUEscUNBQXFDLEdBQUc7QUFDN0NDLElBQUFBLEVBQUUsRUFBRSxpQ0FEeUM7QUFFN0NDLElBQUFBLEtBQUssRUFBRSxxQ0FGc0M7QUFHN0NDLElBQUFBLFVBQVUsRUFBRSxNQUhpQztBQUk3Q0MsSUFBQUEsU0FBUyxFQUFFLENBQUNDLFNBQVMsQ0FBQ0MsV0FBWCxDQUprQztBQUs3Q0MsSUFBQUEsVUFBVSxFQUFFLENBQUNDLFVBQVUsQ0FBQ0MsS0FBWixDQUxpQztBQU03Q0MsSUFBQUEsV0FBVyxFQUFFLDBHQU5nQztBQU83Q0MsSUFBQUEsVUFBVSxFQUFFLDBFQVBpQztBQVE3Q0MsSUFBQUEsY0FBYyxFQUFFLENBQUM7QUFBRSxjQUFRLGtCQUFWO0FBQThCLGNBQVE7QUFBdEMsS0FBRCxDQVI2QjtBQVM3Q0MsSUFBQUEsS0FBSyxFQUFFLFVBQVNDLGFBQVQsRUFBNkJDLFdBQTdCLEVBQStEO0FBQ3JFQyxNQUFBQSxrQkFBa0IsQ0FBQ0YsYUFBRCxFQUFnQkMsV0FBaEIsRUFBNkJFLGFBQWEsQ0FBQ0MsTUFBM0MsRUFBbUQsa0JBQW5ELENBQWxCO0FBQ0E7QUFYNEMsR0FBOUM7O0FBYU8sV0FBU0MsUUFBVCxHQUFvQjtBQUMxQixXQUFPLENBQUNuQixxQ0FBRCxDQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3JpZXMsIGdldElzc3VlQnlDYXRlZ29yeSwgQXVkaWVuY2VzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3N1cHBvcnQvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmNvbnN0IG9Db2xsZWN0aW9uRmFjZXRVbnN1cHBvcnRlZExldmVsSXNzdWUgPSB7XG5cdGlkOiBcImNvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWxcIixcblx0dGl0bGU6IFwiQ29sbGVjdGlvbkZhY2V0OiBVbnN1cHBvcnRlZCBMZXZlbHNcIixcblx0bWludmVyc2lvbjogXCIxLjg2XCIsXG5cdGF1ZGllbmNlczogW0F1ZGllbmNlcy5BcHBsaWNhdGlvbl0sXG5cdGNhdGVnb3JpZXM6IFtDYXRlZ29yaWVzLlVzYWdlXSxcblx0ZGVzY3JpcHRpb246IFwiQ29sbGVjdGlvbiBmYWNldHMgYXQgbGV2ZWwgMyBvciBsb3dlciAobGV2ZWwgNCwgNeKApikgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgbm90IGJlIHZpc2libGUgb24gdGhlIFVJLlwiLFxuXHRyZXNvbHV0aW9uOiBcIkF0IGxldmVsIDMgeW91IGNhbiBvbmx5IHVzZSByZWZlcmVuY2UgZmFjZXRzLCBidXQgbm90IGNvbGxlY3Rpb24gZmFjZXRzLlwiLFxuXHRyZXNvbHV0aW9udXJsczogW3sgXCJ0ZXh0XCI6IFwiQ29sbGVjdGlvbkZhY2V0c1wiLCBcImhyZWZcIjogXCJodHRwczovL3VpNS5zYXAuY29tLyMvdG9waWMvZmFjZmVhMDkwMThkNDM3NmFjYWNlZGRiN2UzZjAzYjZcIiB9XSxcblx0Y2hlY2s6IGZ1bmN0aW9uKG9Jc3N1ZU1hbmFnZXI6IGFueSwgb0NvcmVGYWNhZGU6IGFueSAvKm9TY29wZTogYW55Ki8pIHtcblx0XHRnZXRJc3N1ZUJ5Q2F0ZWdvcnkob0lzc3VlTWFuYWdlciwgb0NvcmVGYWNhZGUsIElzc3VlQ2F0ZWdvcnkuRmFjZXRzLCBcIlVuc3VwcG9ydGVkTGV2ZWxcIik7XG5cdH1cbn07XG5leHBvcnQgZnVuY3Rpb24gZ2V0UnVsZXMoKSB7XG5cdHJldHVybiBbb0NvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWxJc3N1ZV07XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWwuc3VwcG9ydC50cyJdLCJuYW1lcyI6WyJvQ29sbGVjdGlvbkZhY2V0VW5zdXBwb3J0ZWRMZXZlbElzc3VlIiwiaWQiLCJ0aXRsZSIsIm1pbnZlcnNpb24iLCJhdWRpZW5jZXMiLCJBdWRpZW5jZXMiLCJBcHBsaWNhdGlvbiIsImNhdGVnb3JpZXMiLCJDYXRlZ29yaWVzIiwiVXNhZ2UiLCJkZXNjcmlwdGlvbiIsInJlc29sdXRpb24iLCJyZXNvbHV0aW9udXJscyIsImNoZWNrIiwib0lzc3VlTWFuYWdlciIsIm9Db3JlRmFjYWRlIiwiZ2V0SXNzdWVCeUNhdGVnb3J5IiwiSXNzdWVDYXRlZ29yeSIsIkZhY2V0cyIsImdldFJ1bGVzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FBQUEsTUFBTUEscUNBQXFDLEdBQUc7QUFDN0NDLElBQUFBLEVBQUUsRUFBRSxpQ0FEeUM7QUFFN0NDLElBQUFBLEtBQUssRUFBRSxxQ0FGc0M7QUFHN0NDLElBQUFBLFVBQVUsRUFBRSxNQUhpQztBQUk3Q0MsSUFBQUEsU0FBUyxFQUFFLENBQUNDLFNBQVMsQ0FBQ0MsV0FBWCxDQUprQztBQUs3Q0MsSUFBQUEsVUFBVSxFQUFFLENBQUNDLFVBQVUsQ0FBQ0MsS0FBWixDQUxpQztBQU03Q0MsSUFBQUEsV0FBVyxFQUFFLDBHQU5nQztBQU83Q0MsSUFBQUEsVUFBVSxFQUFFLDBFQVBpQztBQVE3Q0MsSUFBQUEsY0FBYyxFQUFFLENBQUM7QUFBRSxjQUFRLGtCQUFWO0FBQThCLGNBQVE7QUFBdEMsS0FBRCxDQVI2QjtBQVM3Q0MsSUFBQUEsS0FBSyxFQUFFLFVBQVNDLGFBQVQsRUFBNkJDLFdBQTdCLEVBQStEO0FBQ3JFQyxNQUFBQSxrQkFBa0IsQ0FBQ0YsYUFBRCxFQUFnQkMsV0FBaEIsRUFBNkJFLGFBQWEsQ0FBQ0MsTUFBM0MsRUFBbUQsa0JBQW5ELENBQWxCO0FBQ0E7QUFYNEMsR0FBOUM7O0FBYU8sV0FBU0MsUUFBVCxHQUFvQjtBQUMxQixXQUFPLENBQUNuQixxQ0FBRCxDQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhdGVnb3JpZXMsIGdldElzc3VlQnlDYXRlZ29yeSwgQXVkaWVuY2VzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3N1cHBvcnQvQ29tbW9uSGVscGVyXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmNvbnN0IG9Db2xsZWN0aW9uRmFjZXRVbnN1cHBvcnRlZExldmVsSXNzdWUgPSB7XG5cdGlkOiBcImNvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWxcIixcblx0dGl0bGU6IFwiQ29sbGVjdGlvbkZhY2V0OiBVbnN1cHBvcnRlZCBMZXZlbHNcIixcblx0bWludmVyc2lvbjogXCIxLjgwXCIsXG5cdGF1ZGllbmNlczogW0F1ZGllbmNlcy5BcHBsaWNhdGlvbl0sXG5cdGNhdGVnb3JpZXM6IFtDYXRlZ29yaWVzLlVzYWdlXSxcblx0ZGVzY3JpcHRpb246IFwiQ29sbGVjdGlvbiBmYWNldHMgYXQgbGV2ZWwgMyBvciBsb3dlciAobGV2ZWwgNCwgNeKApikgYXJlIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgbm90IGJlIHZpc2libGUgb24gdGhlIFVJLlwiLFxuXHRyZXNvbHV0aW9uOiBcIkF0IGxldmVsIDMgeW91IGNhbiBvbmx5IHVzZSByZWZlcmVuY2UgZmFjZXRzLCBidXQgbm90IGNvbGxlY3Rpb24gZmFjZXRzLlwiLFxuXHRyZXNvbHV0aW9udXJsczogW3sgXCJ0ZXh0XCI6IFwiQ29sbGVjdGlvbkZhY2V0c1wiLCBcImhyZWZcIjogXCJodHRwczovL3VpNS5zYXAuY29tLyMvdG9waWMvZmFjZmVhMDkwMThkNDM3NmFjYWNlZGRiN2UzZjAzYjZcIiB9XSxcblx0Y2hlY2s6IGZ1bmN0aW9uKG9Jc3N1ZU1hbmFnZXI6IGFueSwgb0NvcmVGYWNhZGU6IGFueSAvKm9TY29wZTogYW55Ki8pIHtcblx0XHRnZXRJc3N1ZUJ5Q2F0ZWdvcnkob0lzc3VlTWFuYWdlciwgb0NvcmVGYWNhZGUsIElzc3VlQ2F0ZWdvcnkuRmFjZXRzLCBcIlVuc3VwcG9ydGVkTGV2ZWxcIik7XG5cdH1cbn07XG5leHBvcnQgZnVuY3Rpb24gZ2V0UnVsZXMoKSB7XG5cdHJldHVybiBbb0NvbGxlY3Rpb25GYWNldFVuc3VwcG9ydGVkTGV2ZWxJc3N1ZV07XG59XG4iXX0=
@@ -3,7 +3,7 @@ import { IssueCategory } from "sap/fe/core/converters/helpers/IssueManager";
3
3
  const oCollectionFacetUnsupportedLevelIssue = {
4
4
  id: "collectionFacetUnsupportedLevel",
5
5
  title: "CollectionFacet: Unsupported Levels",
6
- minversion: "1.86",
6
+ minversion: "1.80",
7
7
  audiences: [Audiences.Application],
8
8
  categories: [Categories.Usage],
9
9
  description: "Collection facets at level 3 or lower (level 4, 5…) are not supported and will not be visible on the UI.",