@openui5/sap.ui.documentation 1.138.0 → 1.139.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 (75) hide show
  1. package/README.md +1 -1
  2. package/REUSE.toml +8 -1
  3. package/THIRDPARTY.txt +72 -66
  4. package/package.json +8 -8
  5. package/src/sap/ui/documentation/.library +1 -1
  6. package/src/sap/ui/documentation/library.js +2 -2
  7. package/src/sap/ui/documentation/messagebundle.properties +11 -0
  8. package/src/sap/ui/documentation/messagebundle_ar.properties +6 -0
  9. package/src/sap/ui/documentation/messagebundle_bg.properties +7 -1
  10. package/src/sap/ui/documentation/messagebundle_ca.properties +6 -0
  11. package/src/sap/ui/documentation/messagebundle_cnr.properties +6 -0
  12. package/src/sap/ui/documentation/messagebundle_cs.properties +6 -0
  13. package/src/sap/ui/documentation/messagebundle_cy.properties +6 -0
  14. package/src/sap/ui/documentation/messagebundle_da.properties +6 -0
  15. package/src/sap/ui/documentation/messagebundle_de.properties +6 -0
  16. package/src/sap/ui/documentation/messagebundle_el.properties +6 -0
  17. package/src/sap/ui/documentation/messagebundle_en.properties +6 -0
  18. package/src/sap/ui/documentation/messagebundle_en_GB.properties +6 -0
  19. package/src/sap/ui/documentation/messagebundle_es.properties +6 -0
  20. package/src/sap/ui/documentation/messagebundle_es_MX.properties +6 -0
  21. package/src/sap/ui/documentation/messagebundle_et.properties +6 -0
  22. package/src/sap/ui/documentation/messagebundle_fi.properties +6 -0
  23. package/src/sap/ui/documentation/messagebundle_fr.properties +6 -0
  24. package/src/sap/ui/documentation/messagebundle_fr_CA.properties +6 -0
  25. package/src/sap/ui/documentation/messagebundle_hi.properties +6 -0
  26. package/src/sap/ui/documentation/messagebundle_hr.properties +6 -0
  27. package/src/sap/ui/documentation/messagebundle_hu.properties +6 -0
  28. package/src/sap/ui/documentation/messagebundle_id.properties +6 -0
  29. package/src/sap/ui/documentation/messagebundle_it.properties +6 -0
  30. package/src/sap/ui/documentation/messagebundle_iw.properties +6 -0
  31. package/src/sap/ui/documentation/messagebundle_ja.properties +6 -0
  32. package/src/sap/ui/documentation/messagebundle_kk.properties +6 -0
  33. package/src/sap/ui/documentation/messagebundle_ko.properties +6 -0
  34. package/src/sap/ui/documentation/messagebundle_lt.properties +6 -0
  35. package/src/sap/ui/documentation/messagebundle_lv.properties +6 -0
  36. package/src/sap/ui/documentation/messagebundle_mk.properties +6 -0
  37. package/src/sap/ui/documentation/messagebundle_ms.properties +6 -0
  38. package/src/sap/ui/documentation/messagebundle_nl.properties +6 -0
  39. package/src/sap/ui/documentation/messagebundle_no.properties +6 -0
  40. package/src/sap/ui/documentation/messagebundle_pl.properties +6 -0
  41. package/src/sap/ui/documentation/messagebundle_pt.properties +6 -0
  42. package/src/sap/ui/documentation/messagebundle_pt_PT.properties +6 -0
  43. package/src/sap/ui/documentation/messagebundle_ro.properties +6 -0
  44. package/src/sap/ui/documentation/messagebundle_ru.properties +6 -0
  45. package/src/sap/ui/documentation/messagebundle_sh.properties +6 -0
  46. package/src/sap/ui/documentation/messagebundle_sk.properties +6 -0
  47. package/src/sap/ui/documentation/messagebundle_sl.properties +6 -0
  48. package/src/sap/ui/documentation/messagebundle_sr.properties +6 -0
  49. package/src/sap/ui/documentation/messagebundle_sv.properties +6 -0
  50. package/src/sap/ui/documentation/messagebundle_th.properties +15 -9
  51. package/src/sap/ui/documentation/messagebundle_tr.properties +6 -0
  52. package/src/sap/ui/documentation/messagebundle_uk.properties +6 -0
  53. package/src/sap/ui/documentation/messagebundle_vi.properties +6 -0
  54. package/src/sap/ui/documentation/messagebundle_zh_CN.properties +6 -0
  55. package/src/sap/ui/documentation/messagebundle_zh_TW.properties +6 -0
  56. package/src/sap/ui/documentation/sdk/controller/App.controller.js +4 -2
  57. package/src/sap/ui/documentation/sdk/controller/Code.controller.js +82 -0
  58. package/src/sap/ui/documentation/sdk/controller/Sample.controller.js +13 -23
  59. package/src/sap/ui/documentation/sdk/controller/SubApiDetail.controller.js +4 -4
  60. package/src/sap/ui/documentation/sdk/controller/TopicDetail.controller.js +0 -33
  61. package/src/sap/ui/documentation/sdk/controller/TopicDetailInitial.controller.js +1 -1
  62. package/src/sap/ui/documentation/sdk/controller/TopicMaster.controller.js +19 -0
  63. package/src/sap/ui/documentation/sdk/controller/util/Highlighter.js +11 -5
  64. package/src/sap/ui/documentation/sdk/css/samplesViewer.css +8 -0
  65. package/src/sap/ui/documentation/sdk/index.html +3 -1
  66. package/src/sap/ui/documentation/sdk/index.js +27 -33
  67. package/src/sap/ui/documentation/sdk/model/messagesData.json +1 -1
  68. package/src/sap/ui/documentation/sdk/samples/Component.js +143 -0
  69. package/src/sap/ui/documentation/sdk/samples/Page.designtime.js +55 -0
  70. package/src/sap/ui/documentation/sdk/samples/manifest.json +19 -0
  71. package/src/sap/ui/documentation/sdk/thirdparty/highlight.js/highlight.js +3 -3
  72. package/src/sap/ui/documentation/sdk/view/App.view.xml +6 -2
  73. package/src/sap/ui/documentation/sdk/view/Code.view.xml +0 -1
  74. package/src/sap/ui/documentation/sdk/view/Sample.view.xml +3 -1
  75. package/src/sap/ui/documentation/sdk/view/warningSampleDialog.fragment.xml +27 -0
@@ -22,9 +22,9 @@
22
22
  if (!bIsStandAlone) {
23
23
  window.parent.postMessage(data, getUrlParam('sap-ui-xx-dk-origin'));
24
24
  }
25
- };
25
+ },
26
26
 
27
- const loadComponentModule = function(sCompName) {
27
+ loadComponentModule = function(sCompName) {
28
28
  return new Promise((resolve) => {
29
29
  const componentModule =
30
30
  `${sCompName.replace(/\./g, "/")}/Component`;
@@ -94,8 +94,10 @@
94
94
  ]).then(async function(){
95
95
 
96
96
  Log.info("Samples paths added successfully");
97
- var sCompId = 'sampleComp-' + sSampleId;
98
- var sCompName = sSampleId;
97
+ var sInnerCompId = 'sampleComp-' + sSampleId,
98
+ sInnerCompName = sSampleId,
99
+ oOuterComponent,
100
+ oOuterContainer;
99
101
 
100
102
  sap.ui.require([
101
103
  "sap/ui/fl/Utils",
@@ -120,17 +122,29 @@
120
122
  });
121
123
 
122
124
  // preprocessing: load Component.js before the factory call to prevent 404s to the "Component-preload.js" (does not exist in demokit samples)
123
- await loadComponentModule(sCompName);
125
+ await loadComponentModule(sInnerCompName);
124
126
 
125
127
  Component.create({
126
- id: sCompId,
127
- name: sCompName
128
- }).then(function (oComponent) {
129
- var oConfig = oComponent.getManifestEntry("/sap.ui5/config");
128
+ id: "wrapperComp",
129
+ name: "sap.ui.documentation.sdk.samples",
130
+ settings: {
131
+ innerComponentName: sInnerCompName,
132
+ innerComponentId: sInnerCompId
133
+ }
134
+ }).then(function (oWrapperComponent) {
135
+
136
+ oOuterComponent = oWrapperComponent;
130
137
 
131
- var oContainer = new ComponentContainer({component : oComponent, height: "100%"})
138
+ oOuterContainer = new ComponentContainer({component : oOuterComponent, height: "100%"})
132
139
  .placeAt("content");
133
140
 
141
+ return oOuterComponent.createInnerComponent();
142
+ }).then(function(oInnerComponent) {
143
+
144
+ oOuterContainer.invalidate(); // required to ensure that the inner component is rendered
145
+
146
+ var oConfig = oInnerComponent.getManifestEntry("/sap.ui5/config");
147
+
134
148
  var bOpenStandalone = window.location.search.includes("dk-sample-standalone");
135
149
  // if dk-sample-standalone is used,
136
150
  // display message for samples with own index.html
@@ -139,7 +153,7 @@
139
153
  "sap/m/IllustratedMessage",
140
154
  "sap/m/IllustratedMessageType"
141
155
  ], function (IllustratedMessage, IllustratedMessageType) {
142
- oContainer.destroy();
156
+ oOuterContainer.destroy();
143
157
  new IllustratedMessage({
144
158
  title: "Sample unsupported",
145
159
  description: "Samples with own index.html are currently unsupported by dk-sample-standalone.",
@@ -148,7 +162,6 @@
148
162
  });
149
163
  }
150
164
  var oMessage = {};
151
- var objRta = null;
152
165
  oMessage.type = "INIT";
153
166
  oMessage.data = {
154
167
  "msg": "fired after component container is placed in DOM"
@@ -158,7 +171,7 @@
158
171
  postMessageToOrigin(oMessage);
159
172
  window.addEventListener("message", function(eMessage){
160
173
  if (eMessage.data.type === "EXIT") {
161
- oComponent.destroy();
174
+ oOuterComponent.destroy();
162
175
  } else if (eMessage.data.type === "RTA") {
163
176
  enableRta();
164
177
  } else if (eMessage.data.type === "SETTINGS") {
@@ -180,32 +193,13 @@
180
193
  });
181
194
 
182
195
  function enableRta() {
183
- if (objRta) {
184
- objRta.stop();
185
- objRta = null;
186
- return;
187
- }
188
196
  sap.ui.require([
189
197
  "sap/ui/rta/api/startKeyUserAdaptation"
190
198
  ], function (
191
199
  startKeyUserAdaptation
192
200
  ) {
193
201
  startKeyUserAdaptation({
194
- rootControl: oContainer.getComponentInstance()
195
- }).then(function (oRta) {
196
- objRta = oRta;
197
- oContainer.$().css({
198
- "padding-top": "2.5rem",
199
- "box-sizing": "border-box"
200
- });
201
- oRta.attachStop(function () {
202
- oContainer.$().css({
203
- "padding-top": "0",
204
- "box-sizing": "content-box"
205
- });
206
- oRta.destroy();
207
- objRta = null;
208
- });
202
+ rootControl: oOuterContainer.getComponentInstance()
209
203
  });
210
204
  });
211
205
  }
@@ -9,7 +9,7 @@
9
9
  "id": "IM2",
10
10
  "type": "Warning",
11
11
  "versionValidator": ".*.legacy-free(-SNAPSHOT)?$",
12
- "text": "This version ({0}) is intended for experimentation only and should not be used for productive purposes. For more information, see",
12
+ "text": "This version ({0}) is intended for experimentation only and must not be used for productive purposes. For more information, see",
13
13
  "expire": "2027-04-30",
14
14
  "linkText": "the SAP Community blog post",
15
15
  "mandatory": true,
@@ -0,0 +1,143 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ /**
8
+ * @namespace sap.ui.documentation.sdk.samples
9
+ * @classdesc
10
+ * A UI5 component wrapper for dynamically loading and embedding an inner component
11
+ * corresponding to a Demokit sample.
12
+ * The purpose of this component is to provide the required setup for Runtime Adaptation (RTA),
13
+ * namely:
14
+ * (1) wrapper component is of "type": "application" in the manifest,
15
+ * (2) the wrapper component registers to the "start" and "stop" events of RTA via its custom design time metadata
16
+ *
17
+ * @extends sap.ui.core.UIComponent
18
+ *
19
+ * @param {object} mSettings - Configuration settings for the component.
20
+ * @param {string} mSettings.innerComponentName - The name of the inner component to load.
21
+ * @param {string} mSettings.innerComponentId - The ID to assign to the inner component.
22
+ *
23
+ */
24
+ sap.ui.define([
25
+ "sap/ui/core/Component",
26
+ "sap/ui/core/UIComponent",
27
+ "sap/ui/core/ComponentContainer",
28
+ "sap/ui/core/CustomData",
29
+ "sap/ui/core/Manifest",
30
+ "sap/m/Page"
31
+ ], function (Component, UIComponent, ComponentContainer, CustomData, Manifest, Page) {
32
+ "use strict";
33
+
34
+ /**
35
+ * An object containing configuration settings.
36
+ * @type {Object}
37
+ */
38
+ let oSettings = {};
39
+
40
+ return UIComponent.extend("sap.ui.documentation.sdk.samples", {
41
+ metadata: {
42
+ manifest: "json",
43
+ properties: {
44
+ innerComponentName: { type: "string" },
45
+ innerComponentId: { type: "string" }
46
+ }
47
+ },
48
+
49
+ constructor: function (mSettings) {
50
+ oSettings = mSettings;
51
+ UIComponent.prototype.constructor.apply(this, arguments);
52
+ },
53
+
54
+ init: function () {
55
+ UIComponent.prototype.init.apply(this, arguments);
56
+ },
57
+
58
+ /**
59
+ * @override
60
+ * Returns the manifest object for the component.
61
+ * This method checks if the manifest contains the <code>appVariantId</code> for its inner component.
62
+ * If not, it adds the <code>appVariantId</code> to the manifest.
63
+ *
64
+ * The <code>appVariantId</code> coincides with the name of the currently nested inner component.
65
+ * This is required to ensure that any RTA changes made to the inner component are
66
+ * saved in local storage as belonging to that same inner component.
67
+ * @returns {sap.ui.core.Manifest} The manifest object for the component.
68
+ */
69
+ getManifestObject: function () {
70
+ var oManifest = UIComponent.prototype.getManifestObject.call(this),
71
+ sAppVariantId = oSettings.innerComponentName;
72
+
73
+ if (!this._checkManifestContainsAppVariant(oManifest, sAppVariantId)) {
74
+ this._addVariantToManifest(oManifest, sAppVariantId);
75
+ }
76
+
77
+ return oManifest;
78
+ },
79
+
80
+ _checkManifestContainsAppVariant: function (oManifest, sAppVariantId) {
81
+ var oUI5Entry = oManifest.getEntry("sap.ui5");
82
+ return (oUI5Entry && oUI5Entry.appVariantId === sAppVariantId);
83
+ },
84
+
85
+ _addVariantToManifest: function (oManifest, appVariantId) {
86
+ oManifest.getEntry = function (sPath) {
87
+ var oEntry = Manifest.prototype.getEntry.call(oManifest, sPath);
88
+ if (sPath === "sap.ui5") {
89
+ oEntry = Object.assign({}, oEntry, {
90
+ appVariantId
91
+ });
92
+ }
93
+ return oEntry;
94
+ };
95
+ },
96
+
97
+ createInnerComponent: function () {
98
+ var sName = oSettings.innerComponentName;
99
+ var sId = oSettings.innerComponentId;
100
+
101
+ return Component.create({
102
+ id: sId,
103
+ name: sName
104
+ }).then(function (oComponent) {
105
+ this._oInnerComponent = oComponent;
106
+ this._createComponentContainer();
107
+ return oComponent;
108
+ }.bind(this));
109
+ },
110
+
111
+ _createComponentContainer: function() {
112
+ var oContainer = new ComponentContainer({
113
+ component: this._oInnerComponent,
114
+ propagateModel: true,
115
+ height: "100%"
116
+ });
117
+
118
+ var oRootControl = new Page({
119
+ content: [oContainer],
120
+ showHeader: false,
121
+ customData: [
122
+ new CustomData({
123
+ key: "sap-ui-custom-settings",
124
+ value: {
125
+ "sap.ui.dt": {
126
+ "designtime": "sap/ui/documentation/sdk/samples/Page.designtime"
127
+ }
128
+ }
129
+ })
130
+ ]
131
+ });
132
+
133
+ // Set the container as the root control of the wrapper
134
+ this.setAggregation("rootControl", oRootControl);
135
+ },
136
+
137
+ exit: function() {
138
+ if (this._oInnerComponent) {
139
+ this._oInnerComponent.destroy();
140
+ }
141
+ }
142
+ });
143
+ });
@@ -0,0 +1,55 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ /**
8
+ * Design Time Metadata extension for the UI Component.
9
+ *
10
+ * This module extends the default PageDesigntime metadata with additional tooling methods
11
+ * for starting and stopping RTA (Runtime Adaptation) via postMessage communication.
12
+ *
13
+ * @module sap/ui/documentation/sdk/samples/Page.designtime
14
+ *
15
+ * @requires sap/m/designtime/Page.designtime
16
+ *
17
+ * @returns {object} Extended PageDesigntime metadata object with `tool` property.
18
+ *
19
+ * @property {object} tool - Tooling methods for RTA integration.
20
+ * @property {Function} tool.start - Sends a "RTA_START" message to the parent window with a status message.
21
+ * @property {Function} tool.stop - Sends a "RTA_STOP" message to the parent window with a status message.
22
+ */
23
+ // Provides the Design Time Metadata for the UI Component
24
+ sap.ui.define(["sap/m/designtime/Page.designtime"],
25
+ function (PageDesigntime) {
26
+ "use strict";
27
+
28
+ const getUrlParam = function(sParamName) {
29
+ return new window.URLSearchParams(window.location.search).get(sParamName);
30
+ },
31
+ postMessageToOrigin = function(oData) {
32
+ window.parent.postMessage(oData, getUrlParam('sap-ui-xx-dk-origin'));
33
+ };
34
+
35
+ return Object.assign({}, PageDesigntime, {
36
+ tool: {
37
+ start:function() {
38
+ postMessageToOrigin({
39
+ type: "RTA_START",
40
+ data: {
41
+ "msg": "RTA started"
42
+ }
43
+ });
44
+ },
45
+ stop:function() {
46
+ postMessageToOrigin({
47
+ type: "RTA_STOP",
48
+ data: {
49
+ "msg": "RTA stopped"
50
+ }
51
+ });
52
+ }
53
+ }
54
+ });
55
+ });
@@ -0,0 +1,19 @@
1
+ {
2
+ "sap.app": {
3
+ "id": "sap.ui.documentation.sdk.samples",
4
+ "type": "application",
5
+ "title": "Wrapper Component for RTA",
6
+ "applicationVersion": {
7
+ "version": "1.0.0"
8
+ }
9
+ },
10
+ "sap.ui5": {
11
+ "dependencies": {
12
+ "minUI5Version": "1.60.0",
13
+ "libs": {
14
+ "sap.ui.core": {},
15
+ "sap.m": {}
16
+ }
17
+ }
18
+ }
19
+ }
@@ -998,10 +998,10 @@ var hljs = (function () {
998
998
  * @param {string} message
999
999
  */
1000
1000
  const deprecated = (version, message) => {
1001
- if (seenDeprecations[`1.138.0/${message}`]) return;
1001
+ if (seenDeprecations[`1.139.0/${message}`]) return;
1002
1002
 
1003
- console.log(`Deprecated as of 1.138.0. ${message}`);
1004
- seenDeprecations[`1.138.0/${message}`] = true;
1003
+ console.log(`Deprecated as of 1.139.0. ${message}`);
1004
+ seenDeprecations[`1.139.0/${message}`] = true;
1005
1005
  };
1006
1006
 
1007
1007
  /* eslint-disable no-throw-literal */
@@ -85,7 +85,10 @@
85
85
  type="Default"
86
86
  icon="sap-icon://dimension"
87
87
  text="{= ${appView>/bDesktopSize}
88
- ? [${i18n>APP_VERSION_VERSION}, ${versionData>/version}].join(' ')
88
+ ? [${i18n>APP_VERSION_VERSION}, ${versionData>/fullVersion}].join(' ')
89
+ : '' }"
90
+ tooltip="{= ${appView>/bDesktopSize}
91
+ ? [${i18n>APP_VERSION_VERSION}, ${versionData>/fullVersion}].join(' ')
89
92
  : '' }"
90
93
  press="onChangeVersionButtonPress"
91
94
  visible="{= ${appView>/bShowVersionSwitchButton} }">
@@ -197,7 +200,8 @@
197
200
  icon="sap-icon://bell"
198
201
  press="onNewsButtonPress"
199
202
  text="{i18n>APP_INFORMATION_BTN_NEWS}"
200
- tooltip="{i18n>APP_NEWS_BTN_TOOLTIP}">
203
+ tooltip="{i18n>APP_NEWS_BTN_TOOLTIP}"
204
+ visible="{= !${versionData>/isURLVersioned} }">
201
205
  <customData>
202
206
  <BadgeCustomData key="badge" value="{news>/newsCount}" />
203
207
  </customData>
@@ -136,7 +136,6 @@
136
136
  </subHeader>
137
137
  <fileEditor:FileEditor
138
138
  id="fileEditor"
139
- fileChange="onFileEditorFileChange"
140
139
  fileSwitch="onFileSwitch"
141
140
  visible="{= ${settings>/editorType} === 'text' }" />
142
141
  </Page>
@@ -68,7 +68,9 @@
68
68
  class="sapUiHideOnPhone"
69
69
  tooltip="{i18n>SAMPLE_ADAPT_BTN_TOOLTIP}"
70
70
  press="onToggleAdaptationMode"
71
- visible="{= ${/rtaLoaded} &amp;&amp; !${/iframe} &amp;&amp; !${/external} }" />
71
+ visible="{= ${/rtaLoaded} &amp;&amp; !${/iframe} &amp;&amp; !${/external} }"
72
+ enabled="{= !${/rtaStarted}}"/>
73
+
72
74
  <Button
73
75
  id="code"
74
76
  icon="sap-icon://source-code"
@@ -0,0 +1,27 @@
1
+ <core:FragmentDefinition
2
+ xmlns="sap.m"
3
+ xmlns:core="sap.ui.core">
4
+ <Dialog
5
+ title="{i18n>CACHE_CLEANUP_DIALOG_TITLE}"
6
+ class="sapUiContentPadding"
7
+ contentWidth="400px"
8
+ id="cacheCleanupDialog"
9
+ type="Message"
10
+ state="{= ${settings>/showWarning} ? 'Warning' : 'Error'}" >
11
+ <content>
12
+ <VBox class="sapUiTinyMarginTop">
13
+ <MessageStrip
14
+ class="sapUiTinyMarginBottom"
15
+ showIcon="true"
16
+ type="{= ${settings>/showWarning} ? 'Warning' : 'Error'}"
17
+ text="{= ${settings>/showWarning} ? ${i18n>CACHE_CLEANUP_DIALOG_WARNING_MESSAGE} : ${i18n>CACHE_CLEANUP_DIALOG_ERROR_MESSAGE}}" />
18
+ <Text
19
+ class="sapUiSmallMarginTop"
20
+ text="{i18n>CACHE_CLEANUP_DIALOG_DESCRIPTION}" />
21
+ </VBox>
22
+ </content>
23
+ <beginButton>
24
+ <Button text="{i18n>CACHE_CLEANUP_DIALOG_OK_BTN}" press="handleDialogClose" type="Emphasized" />
25
+ </beginButton>
26
+ </Dialog>
27
+ </core:FragmentDefinition>