@openui5/sap.ui.documentation 1.136.3 → 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 (121) hide show
  1. package/README.md +1 -1
  2. package/REUSE.toml +8 -29
  3. package/THIRDPARTY.txt +72 -90
  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 +25 -0
  8. package/src/sap/ui/documentation/messagebundle_ar.properties +13 -0
  9. package/src/sap/ui/documentation/messagebundle_bg.properties +13 -0
  10. package/src/sap/ui/documentation/messagebundle_ca.properties +13 -0
  11. package/src/sap/ui/documentation/messagebundle_cnr.properties +13 -0
  12. package/src/sap/ui/documentation/messagebundle_cs.properties +13 -0
  13. package/src/sap/ui/documentation/messagebundle_cy.properties +13 -0
  14. package/src/sap/ui/documentation/messagebundle_da.properties +13 -0
  15. package/src/sap/ui/documentation/messagebundle_de.properties +13 -0
  16. package/src/sap/ui/documentation/messagebundle_el.properties +13 -0
  17. package/src/sap/ui/documentation/messagebundle_en.properties +13 -0
  18. package/src/sap/ui/documentation/messagebundle_en_GB.properties +13 -0
  19. package/src/sap/ui/documentation/messagebundle_en_US_saprigi.properties +13 -0
  20. package/src/sap/ui/documentation/messagebundle_es.properties +13 -0
  21. package/src/sap/ui/documentation/messagebundle_es_MX.properties +13 -0
  22. package/src/sap/ui/documentation/messagebundle_et.properties +13 -0
  23. package/src/sap/ui/documentation/messagebundle_fi.properties +13 -0
  24. package/src/sap/ui/documentation/messagebundle_fr.properties +13 -0
  25. package/src/sap/ui/documentation/messagebundle_fr_CA.properties +13 -0
  26. package/src/sap/ui/documentation/messagebundle_hi.properties +13 -0
  27. package/src/sap/ui/documentation/messagebundle_hr.properties +13 -0
  28. package/src/sap/ui/documentation/messagebundle_hu.properties +13 -0
  29. package/src/sap/ui/documentation/messagebundle_id.properties +13 -0
  30. package/src/sap/ui/documentation/messagebundle_it.properties +13 -0
  31. package/src/sap/ui/documentation/messagebundle_iw.properties +13 -0
  32. package/src/sap/ui/documentation/messagebundle_ja.properties +13 -0
  33. package/src/sap/ui/documentation/messagebundle_kk.properties +13 -0
  34. package/src/sap/ui/documentation/messagebundle_ko.properties +13 -0
  35. package/src/sap/ui/documentation/messagebundle_lt.properties +13 -0
  36. package/src/sap/ui/documentation/messagebundle_lv.properties +13 -0
  37. package/src/sap/ui/documentation/messagebundle_mk.properties +13 -0
  38. package/src/sap/ui/documentation/messagebundle_ms.properties +13 -0
  39. package/src/sap/ui/documentation/messagebundle_nl.properties +13 -0
  40. package/src/sap/ui/documentation/messagebundle_no.properties +13 -0
  41. package/src/sap/ui/documentation/messagebundle_pl.properties +13 -0
  42. package/src/sap/ui/documentation/messagebundle_pt.properties +13 -0
  43. package/src/sap/ui/documentation/messagebundle_pt_PT.properties +13 -0
  44. package/src/sap/ui/documentation/messagebundle_ro.properties +13 -0
  45. package/src/sap/ui/documentation/messagebundle_ru.properties +13 -0
  46. package/src/sap/ui/documentation/messagebundle_sh.properties +13 -0
  47. package/src/sap/ui/documentation/messagebundle_sk.properties +13 -0
  48. package/src/sap/ui/documentation/messagebundle_sl.properties +13 -0
  49. package/src/sap/ui/documentation/messagebundle_sr.properties +13 -0
  50. package/src/sap/ui/documentation/messagebundle_sv.properties +13 -0
  51. package/src/sap/ui/documentation/messagebundle_th.properties +13 -0
  52. package/src/sap/ui/documentation/messagebundle_tr.properties +13 -0
  53. package/src/sap/ui/documentation/messagebundle_uk.properties +13 -0
  54. package/src/sap/ui/documentation/messagebundle_vi.properties +13 -0
  55. package/src/sap/ui/documentation/messagebundle_zh_CN.properties +13 -0
  56. package/src/sap/ui/documentation/messagebundle_zh_TW.properties +13 -0
  57. package/src/sap/ui/documentation/sdk/controller/App.controller.js +4 -2
  58. package/src/sap/ui/documentation/sdk/controller/Code.controller.js +86 -3
  59. package/src/sap/ui/documentation/sdk/controller/DemoApps.controller.js +22 -1
  60. package/src/sap/ui/documentation/sdk/controller/Sample.controller.js +211 -71
  61. package/src/sap/ui/documentation/sdk/controller/SubApiDetail.controller.js +6 -3
  62. package/src/sap/ui/documentation/sdk/controller/TopicDetail.controller.js +0 -33
  63. package/src/sap/ui/documentation/sdk/controller/TopicDetailInitial.controller.js +1 -1
  64. package/src/sap/ui/documentation/sdk/controller/TopicMaster.controller.js +19 -0
  65. package/src/sap/ui/documentation/sdk/controller/util/ControlsInfo.js +2 -2
  66. package/src/sap/ui/documentation/sdk/controller/util/Highlighter.js +11 -5
  67. package/src/sap/ui/documentation/sdk/controller/util/ResourcesInfo.js +1 -1
  68. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ar.properties +0 -3
  69. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_bg.properties +0 -3
  70. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ca.properties +0 -3
  71. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_cs.properties +0 -3
  72. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_cy.properties +0 -3
  73. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_da.properties +0 -3
  74. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_el.properties +0 -3
  75. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_en_GB.properties +0 -3
  76. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_es.properties +0 -3
  77. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_es_MX.properties +0 -3
  78. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_et.properties +0 -3
  79. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_fi.properties +0 -3
  80. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_fr_CA.properties +0 -3
  81. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_hi.properties +0 -3
  82. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_hr.properties +0 -3
  83. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_hu.properties +0 -3
  84. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_id.properties +0 -3
  85. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_it.properties +0 -3
  86. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_iw.properties +0 -3
  87. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ja.properties +0 -3
  88. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_kk.properties +0 -3
  89. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ko.properties +0 -3
  90. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_lt.properties +0 -3
  91. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_lv.properties +0 -3
  92. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_mk.properties +0 -3
  93. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ms.properties +0 -3
  94. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_nl.properties +0 -3
  95. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_no.properties +0 -3
  96. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_pl.properties +0 -3
  97. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_pt.properties +0 -3
  98. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_pt_PT.properties +0 -3
  99. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ro.properties +0 -3
  100. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_ru.properties +0 -3
  101. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_sk.properties +0 -3
  102. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_sl.properties +0 -3
  103. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_sv.properties +0 -3
  104. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_th.properties +0 -3
  105. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_tr.properties +0 -3
  106. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_uk.properties +0 -3
  107. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_vi.properties +0 -3
  108. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_zh_CN.properties +0 -3
  109. package/src/sap/ui/documentation/sdk/cookieSettingsDialog/i18n/i18n_zh_TW.properties +0 -3
  110. package/src/sap/ui/documentation/sdk/css/samplesViewer.css +8 -0
  111. package/src/sap/ui/documentation/sdk/index.html +3 -1
  112. package/src/sap/ui/documentation/sdk/index.js +27 -33
  113. package/src/sap/ui/documentation/sdk/samples/Component.js +143 -0
  114. package/src/sap/ui/documentation/sdk/samples/Page.designtime.js +55 -0
  115. package/src/sap/ui/documentation/sdk/samples/manifest.json +19 -0
  116. package/src/sap/ui/documentation/sdk/thirdparty/highlight.js/highlight.js +3 -3
  117. package/src/sap/ui/documentation/sdk/util/DocumentationRouter.js +1 -1
  118. package/src/sap/ui/documentation/sdk/view/App.view.xml +2 -1
  119. package/src/sap/ui/documentation/sdk/view/Code.view.xml +11 -6
  120. package/src/sap/ui/documentation/sdk/view/Sample.view.xml +5 -2
  121. package/src/sap/ui/documentation/sdk/view/warningSampleDialog.fragment.xml +27 -0
@@ -58,6 +58,15 @@ sap.ui.define([
58
58
  "sap-ui-language"
59
59
  ];
60
60
 
61
+ // Constants for better maintainability
62
+ var CONSTANTS = {
63
+ LEGACY_THEME_VERSION_THRESHOLD: 68,
64
+ LEGACY_DEFAULT_THEME: "sap_belize",
65
+ SETTINGS_TIMEOUT: 3000,
66
+ BUSY_DIALOG_TIMEOUT: 1000,
67
+ EXTERNAL_SAMPLE_RENDERING_DELAY: 100
68
+ };
69
+
61
70
  return SampleBaseController.extend("sap.ui.documentation.sdk.controller.Sample", {
62
71
  /* =========================================================== */
63
72
  /* lifecycle methods */
@@ -73,6 +82,7 @@ sap.ui.define([
73
82
  showNavButton : true,
74
83
  showNewTab: false,
75
84
  rtaLoaded: false,
85
+ rtaStarted: false,
76
86
  density: this.getOwnerComponent().getContentDensityClass(),
77
87
  rtl: Localization.getRTL(),
78
88
  theme: Theming.getTheme(),
@@ -147,10 +157,9 @@ sap.ui.define([
147
157
 
148
158
  // check whether to open sample standalone
149
159
  if (bShouldRedirect) {
150
- this._handleRedirect();
160
+ this._handleRedirect(oSample);
151
161
  }
152
162
 
153
-
154
163
  // If we are in a scenario without contexts - this is the case for tutorials
155
164
  if (oSample.previousSampleId || oSample.nextSampleId) {
156
165
  oModelData.previousSampleId = oSample.previousSampleId;
@@ -180,7 +189,11 @@ sap.ui.define([
180
189
  oModelData.name = oSample.name;
181
190
  oModelData.details = oSample.details;
182
191
  oModelData.description = oSample.description;
183
- oModelData.showSettings = true;
192
+ oModelData.showSettings = !oSample.external; // Disable settings for external samples
193
+ oModelData.external = oSample.external;
194
+ oModelData.externalAppRef = oSample.externalAppRef;
195
+ oModelData.externalSourceRef = oSample.externalSourceRef;
196
+ oModelData.externalResourceRef = oSample.externalResourceRef;
184
197
 
185
198
  var sLocalStorageDKSamples = this._getChangedSamplesLocalStorage();
186
199
  if (sLocalStorageDKSamples && JSON.parse(sLocalStorageDKSamples).indexOf(oSample.id) > -1) {
@@ -238,20 +251,67 @@ sap.ui.define([
238
251
  /**
239
252
  * Handles redirection from DemoKit to the sample page, rather than loading it as an iFrame.
240
253
  * The 'dk-sample-standalone' query parameter must be in the URI to take effect.
254
+ * @param {object} oSample - The sample object containing metadata
241
255
  * @private
242
256
  */
243
- _handleRedirect : function () {
257
+ _handleRedirect : function (oSample) {
258
+ if (this._isExternalSample(oSample)) {
259
+ URLHelper.redirect(oSample.externalAppRef, false);
260
+ return;
261
+ }
262
+
244
263
  this._initIframeURL();
245
264
  this._applySearchParamValueToIframeURL('sap-ui-theme', this._sDefaultSampleTheme);
246
265
  this.sIFrameUrl += "&dk-sample-standalone";
247
266
  URLHelper.redirect(this.sIFrameUrl, false);
248
267
  },
249
268
 
269
+ /**
270
+ * Checks if the given sample is external
271
+ * @param {object} oSample - The sample object
272
+ * @returns {boolean} True if the sample is external
273
+ * @private
274
+ */
275
+ _isExternalSample: function(oSample) {
276
+ return oSample && oSample.external;
277
+ },
278
+
279
+ /**
280
+ * Gets the iframe content window safely
281
+ * @returns {Window|null} The iframe content window or null if not available
282
+ * @private
283
+ */
284
+ _getIframeContentWindow: function() {
285
+ var oIframeDomRef = this._oHtmlControl && this._oHtmlControl.getDomRef();
286
+ return oIframeDomRef ? oIframeDomRef.contentWindow : null;
287
+ },
288
+
289
+ /**
290
+ * Posts a message to the iframe content window safely
291
+ * @param {object} oMessage - The message to post
292
+ * @private
293
+ */
294
+ _postMessageToIframe: function(oMessage) {
295
+ var oContentWindow = this._getIframeContentWindow();
296
+ if (oContentWindow) {
297
+ oContentWindow.postMessage(oMessage, this.getOwnerComponent()._sSampleIframeOrigin);
298
+ }
299
+ },
300
+
250
301
  /**
251
302
  * Initializes the URL of the sample itself, loaded either in an iFrame or standalone.
252
303
  * @private
253
304
  */
254
305
  _initIframeURL : function () {
306
+ var oModelData = this.oModel && this.oModel.getData();
307
+
308
+ // Check if this is an external sample
309
+ if (oModelData && this._isExternalSample(oModelData) && oModelData.externalAppRef) {
310
+ this.sIFrameUrl = oModelData.externalAppRef;
311
+ // No need to proceed further for external samples
312
+ return;
313
+ }
314
+
255
315
  var sSampleOrigin = ResourcesUtil.getConfig(),
256
316
  sSampleVersion = ResourcesUtil.getResourcesVersion(),
257
317
  sSampleSearchParams = "";
@@ -341,22 +401,23 @@ sap.ui.define([
341
401
 
342
402
  loadSampleSettings: function(fnCallback) {
343
403
  return new Promise(function (resolve, reject) {
344
- var oIframe = this._oHtmlControl.getDomRef();
345
- oIframe.contentWindow.postMessage({
404
+ this._postMessageToIframe({
346
405
  type: "SETTINGS",
347
406
  reason: "get"
348
- }, this.getOwnerComponent()._sSampleIframeOrigin);
349
-
350
- window.addEventListener("message", loadSettings);
407
+ });
351
408
 
352
- function loadSettings(eMessage) {
409
+ var fnLoadSettings = function(eMessage) {
353
410
  fnCallback(eMessage);
354
- window.removeEventListener("message", loadSettings);
411
+ window.removeEventListener("message", fnLoadSettings);
355
412
  resolve();
356
- }
413
+ };
414
+
415
+ window.addEventListener("message", fnLoadSettings);
416
+
357
417
  setTimeout(function() {
418
+ window.removeEventListener("message", fnLoadSettings);
358
419
  reject("The sample iframe is not loading settings");
359
- },3000);
420
+ }, CONSTANTS.SETTINGS_TIMEOUT);
360
421
  }.bind(this));
361
422
  },
362
423
 
@@ -411,29 +472,37 @@ sap.ui.define([
411
472
  * @private
412
473
  */
413
474
  _applyAppConfiguration: function(sThemeActive, sDensityMode, bRTL){
414
- var oIframe = this._oHtmlControl.getDomRef();
475
+ var oModelData = this.oModel.getData();
476
+
477
+ // Skip settings application for external samples
478
+ if (this._isExternalSample(oModelData)) {
479
+ return;
480
+ }
415
481
 
416
482
  if (this.getModel().getProperty('/iframe')) {
417
483
  this._setStandAloneIndexIframeSetting(sThemeActive, sDensityMode, bRTL);
418
484
  } else {
419
- sDensityMode = this._presetDensity(sDensityMode);
420
- oIframe.contentWindow.postMessage({
485
+ this._postMessageToIframe({
421
486
  type: "SETTINGS",
422
487
  reason: "set",
423
488
  data: {
424
- "density": sDensityMode,
489
+ "density": this._presetDensity(sDensityMode),
425
490
  "RTL": bRTL,
426
491
  "theme": sThemeActive
427
492
  }
428
- }, this.getOwnerComponent()._sSampleIframeOrigin);
493
+ });
429
494
  }
430
495
  },
431
496
 
432
- _setStandAloneIndexIframeSetting(sThemeActive, sDensityMode, bRTL) {
497
+ _setStandAloneIndexIframeSetting: function(sThemeActive, sDensityMode, bRTL) {
433
498
  this._applySearchParamValueToIframeURL('sap-ui-theme', sThemeActive);
434
499
  this._applySearchParamValueToIframeURL('sap-ui-density', sDensityMode);
435
500
  this._applySearchParamValueToIframeURL('sap-ui-rtl', bRTL);
436
- this._oHtmlControl.getDomRef().src = this.sIFrameUrl;
501
+
502
+ var oIframeDomRef = this._oHtmlControl && this._oHtmlControl.getDomRef();
503
+ if (oIframeDomRef) {
504
+ oIframeDomRef.src = this.sIFrameUrl;
505
+ }
437
506
  },
438
507
 
439
508
  /**
@@ -444,7 +513,7 @@ sap.ui.define([
444
513
  this._oBusyDialog.open();
445
514
  setTimeout(function () {
446
515
  this._oBusyDialog.close();
447
- }.bind(this), 1000);
516
+ }.bind(this), CONSTANTS.BUSY_DIALOG_TIMEOUT);
448
517
  },
449
518
 
450
519
  _updateFileContent: function(sRef, sFile, bForceFetch) {
@@ -465,19 +534,37 @@ sap.ui.define([
465
534
  },
466
535
 
467
536
  onNewTab: function () {
537
+ var oModelData = this.oModel.getData();
538
+
539
+ // For external samples, open the external URL directly
540
+ if (this._isExternalSample(oModelData) && oModelData.externalAppRef) {
541
+ URLHelper.redirect(oModelData.externalAppRef, true);
542
+ return;
543
+ }
544
+
468
545
  if (this.oModel.getProperty("/iframe")) {
469
546
  URLHelper.redirect(this.sIFrameUrl, true);
470
547
  return;
471
548
  }
472
549
 
550
+ this._openNewTabWithSettings();
551
+ },
552
+
553
+ /**
554
+ * Opens a new tab with current sample settings applied
555
+ * @private
556
+ */
557
+ _openNewTabWithSettings: function() {
473
558
  this.loadSampleSettings(function(eMessage){
474
559
  this._applySearchParamValueToIframeURL('sap-ui-theme', eMessage.data.data.theme);
475
560
  this._applySearchParamValueToIframeURL('sap-ui-rtl', eMessage.data.data.RTL);
476
561
  this._applySearchParamValueToIframeURL('sap-ui-density', eMessage.data.data.density);
477
- }.bind(this)).then(function(){
562
+ }.bind(this))
563
+ .then(function(){
478
564
  URLHelper.redirect(this.sIFrameUrl, true);
479
- }.bind(this)).catch(function(err){
480
- Log.error(err);
565
+ }.bind(this))
566
+ .catch(function(err){
567
+ Log.error("Failed to load sample settings for new tab", err);
481
568
  });
482
569
  },
483
570
 
@@ -543,14 +630,10 @@ sap.ui.define([
543
630
 
544
631
  this._oHtmlControl = this._createHTMLControl()
545
632
  .addEventDelegate({
546
- onBeforeRendering: function () {
547
- window.removeEventListener("message", this.onMessage.bind(this));
548
- }.bind(this)
633
+ onBeforeRendering: this._onBeforeIframeRendering.bind(this)
549
634
  })
550
635
  .addEventDelegate({
551
- onAfterRendering: function () {
552
- window.addEventListener("message",this.onMessage.bind(this));
553
- }.bind(this)
636
+ onAfterRendering: this._onAfterIframeRendering.bind(this)
554
637
  });
555
638
 
556
639
  this._getPage().removeAllContent();
@@ -559,6 +642,31 @@ sap.ui.define([
559
642
  }.bind(this));
560
643
  },
561
644
 
645
+ /**
646
+ * Handler executed before the iframe rendering
647
+ * @private
648
+ */
649
+ _onBeforeIframeRendering: function() {
650
+ window.removeEventListener("message", this.onMessage.bind(this));
651
+ },
652
+
653
+ /**
654
+ * Handler executed after the iframe rendering
655
+ * @private
656
+ */
657
+ _onAfterIframeRendering: function() {
658
+ var oModelData = this.oModel.getData();
659
+
660
+ // For external samples, resolve immediately after rendering since they don't use our messaging protocol
661
+ if (this._isExternalSample(oModelData)) {
662
+ setTimeout(function() {
663
+ this.fResolve({});
664
+ }.bind(this), CONSTANTS.EXTERNAL_SAMPLE_RENDERING_DELAY);
665
+ } else {
666
+ window.addEventListener("message", this.onMessage.bind(this));
667
+ }
668
+ },
669
+
562
670
  _createHTMLControl: function () {
563
671
  return new HTML({
564
672
  id : "sampleFrame",
@@ -571,6 +679,12 @@ sap.ui.define([
571
679
  },
572
680
 
573
681
  onMessage: function(eMessage) {
682
+ var oModelData = this.oModel.getData();
683
+
684
+ if (this._isExternalSample(oModelData)) {
685
+ return;
686
+ }
687
+
574
688
  if (eMessage.origin !== this.getOwnerComponent()._sSampleIframeOrigin) {
575
689
  return;
576
690
  }
@@ -586,6 +700,10 @@ sap.ui.define([
586
700
  this.fnMessageLoad(eMessage);
587
701
  } else if (eMessage.data.type === "RTA") {
588
702
  this._loadRTA.call(this);
703
+ } else if (eMessage.data.type === "RTA_START") {
704
+ this._onRTAStarted.call(this);
705
+ } else if (eMessage.data.type === "RTA_STOP") {
706
+ this._onRTAStopped.call(this);
589
707
  }
590
708
  },
591
709
 
@@ -596,16 +714,21 @@ sap.ui.define([
596
714
  this.sIFrameUrl = sap.ui.require.toUrl(this._sId.replace(/\./g, "/")) + "/" + eMessage.data.config.sample.iframe;
597
715
  this._setStandAloneIndexIframeSetting(oSettingsData.theme, oSettingsData.density, oSettingsData.rtl);
598
716
  }
599
- this._oHtmlControl.getDomRef().contentWindow.postMessage({
600
- type: "SETTINGS",
601
- reason: "set",
602
- data: {
603
- "density": oSettingsData.density,
604
- "RTL": oSettingsData.rtl,
605
- "theme": oSettingsData.theme
606
- }
607
- }, this.getOwnerComponent()._sSampleIframeOrigin);
608
- this.fResolve(eMessage.data.config.sample);
717
+
718
+ // Skip settings initialization for external samples
719
+ if (!this._isExternalSample(oSettingsData)) {
720
+ this._postMessageToIframe({
721
+ type: "SETTINGS",
722
+ reason: "set",
723
+ data: {
724
+ "density": oSettingsData.density,
725
+ "RTL": oSettingsData.rtl,
726
+ "theme": oSettingsData.theme
727
+ }
728
+ });
729
+ }
730
+
731
+ this.fResolve(eMessage.data.config?.sample || {});
609
732
  },
610
733
  fnMessageLoad: function() {
611
734
  Log.info("Sample Iframe for sample " + this._sId + " is loaded");
@@ -615,40 +738,30 @@ sap.ui.define([
615
738
  this.fReject(eMessage.data.data.msg);
616
739
  },
617
740
 
618
- _createComponent : function () {
619
-
620
- // create component only once
621
- var sCompId = 'sampleComp-' + this._sId;
622
- var sCompName = this._sId;
623
- var oMainComponent = this.getOwnerComponent();
624
-
625
- var oComp = Component.getComponentById(sCompId);
626
-
627
- if (oComp) {
628
- oComp.destroy();
629
- }
630
-
631
- return oMainComponent.runAsOwner(function(){
632
- return Component.create({
633
- id: sCompId,
634
- name: sCompName
635
- }).then(function (oComponent) {
636
- return new ComponentContainer({component : oComponent});
637
- });
638
- });
639
- },
640
-
641
741
  setDefaultSampleTheme: function() {
642
742
  var sSampleVersion = ResourcesUtil.getResourcesVersion();
643
- this._sDefaultSampleTheme = sSampleVersion && parseInt(sSampleVersion.slice(3,5)) < 68 ?
644
- "sap_belize" : Theming.getTheme();
743
+ this._sDefaultSampleTheme = sSampleVersion && parseInt(sSampleVersion.slice(3,5)) < CONSTANTS.LEGACY_THEME_VERSION_THRESHOLD ?
744
+ CONSTANTS.LEGACY_DEFAULT_THEME : Theming.getTheme();
645
745
  },
646
746
 
647
747
  onNavBack : function (oEvt) {
648
748
  this.oRouter.navTo("entity", { id : this.entityId });
649
749
  },
650
750
 
651
- onNavToCode : function (evt) {
751
+ /**
752
+ * Handles the navigation to the code view or to the external source code
753
+ * @override
754
+ */
755
+ onNavToCode: function () {
756
+ var oModelData = this.oModel.getData();
757
+
758
+ // For external samples, redirect to the external source code repository
759
+ if (this._isExternalSample(oModelData) && oModelData.externalSourceRef) {
760
+ URLHelper.redirect(oModelData.externalSourceRef, true);
761
+ return;
762
+ }
763
+
764
+ // For internal samples, navigate to the code view as usual
652
765
  this.oRouter.navTo("code", {
653
766
  entityId: this.entityId,
654
767
  sampleId: this._sId
@@ -659,6 +772,26 @@ sap.ui.define([
659
772
  ToggleFullScreenHandler.updateMode(oEvt, this.getView(), this);
660
773
  },
661
774
 
775
+ /**
776
+ * Handles the download of the sample source code.
777
+ * If the sample is external, it redirects to the external URL instead.
778
+ * @override
779
+ */
780
+ onDownload: function () {
781
+ var oModelData = this.oModel.getData();
782
+
783
+ // For external samples, open the external URL directly since they don't have downloadable source files
784
+ if (this._isExternalSample(oModelData) && oModelData.externalResourceRef) {
785
+ URLHelper.redirect(oModelData.externalResourceRef, true);
786
+ return;
787
+ }
788
+
789
+ // Call the parent's download method for internal samples
790
+ if (SampleBaseController.prototype.onDownload) {
791
+ SampleBaseController.prototype.onDownload.call(this);
792
+ }
793
+ },
794
+
662
795
  _oRTA : null,
663
796
 
664
797
  _applySearchParamValueToIframeURL: function(sSearchParam, sNewVal) {
@@ -694,18 +827,26 @@ sap.ui.define([
694
827
  }, this);
695
828
  },
696
829
 
830
+ _onRTAStarted: function () {
831
+ this.oModel.setProperty("/rtaStarted", true);
832
+ },
833
+
834
+ _onRTAStopped: function () {
835
+ this.oModel.setProperty("/rtaStarted", false);
836
+ },
837
+
697
838
  onToggleAdaptationMode : function (oEvt) {
698
- if (!this._oHtmlControl || !this._oHtmlControl.getDomRef()) {
839
+ var oContentWindow = this._getIframeContentWindow();
840
+ if (!oContentWindow) {
699
841
  return false;
700
842
  }
701
843
 
702
- var oIframe = this._oHtmlControl.getDomRef();
703
- oIframe.contentWindow.postMessage({
844
+ this._postMessageToIframe({
704
845
  type: "RTA",
705
846
  data: {
706
847
  "msg": "Start the RTA"
707
848
  }
708
- }, this.getOwnerComponent()._sSampleIframeOrigin);
849
+ });
709
850
  },
710
851
 
711
852
  onRouteNotFound: function() {
@@ -713,7 +854,6 @@ sap.ui.define([
713
854
 
714
855
  this.oRouter.myNavToWithoutHash("sap.ui.documentation.sdk.view.SampleNotFound", "XML", false);
715
856
  setTimeout(this.appendPageTitle.bind(this, sNotFoundTitle));
716
- return;
717
857
  }
718
858
  });
719
859
  }
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  return BaseController.extend("sap.ui.documentation.sdk.controller.SubApiDetail", {
37
37
 
38
38
  NOT_AVAILABLE: 'N/A',
39
- PUBLIC_GITHUB_FRAMEWORK_DOMAIN: 'https://github.com/SAP/openui5/blob/master/src/',
39
+ PUBLIC_GITHUB_FRAMEWORK_DOMAIN: 'https://github.com/UI5/openui5/blob/master/src/',
40
40
  SECTION_MAP: {
41
41
  "properties": "controlProperties",
42
42
  "fields": "properties",
@@ -534,12 +534,15 @@ sap.ui.define([
534
534
  const versionData = this.getModel("versionData").getData();
535
535
  const isModuleAvailable = oControlData.module !== this.NOT_AVAILABLE;
536
536
  const library = versionData?.libraries?.find((lib) => lib.name === oEntityData.lib);
537
+ const sVersion = library?.version?.includes("-SNAPSHOT") ? "HEAD" : library?.version;
538
+ const bIsOpenUI5Lib = library.npmPackageName?.startsWith("@openui5");
537
539
 
538
- if (!isModuleAvailable || !library?.version) {
540
+
541
+ if (!isModuleAvailable || !sVersion || !bIsOpenUI5Lib) {
539
542
  return _getObjectAttributeBlock("Module", oControlData.module);
540
543
  }
541
544
 
542
- const sGitHubUrl = `https://github.com/SAP/openui5/blob/${library.version}/src/${oEntityData.lib}/src/${oControlData.module}.js`;
545
+ const sGitHubUrl = `https://github.com/UI5/openui5/blob/${sVersion}/src/${oEntityData.lib}/src/${oControlData.module}.js`;
543
546
 
544
547
  return _getHBox({
545
548
  items: [
@@ -52,12 +52,6 @@ sap.ui.define([
52
52
  ) {
53
53
  "use strict";
54
54
 
55
- var GIT_HUB_DOCS_URL = "https://sap.github.io/openui5-docs/#/",
56
- REGEX = {
57
- SPECIAL_CHARS: /[\\\/:*\?"<>|]/g,
58
- SPACES: /\s+/g
59
- };
60
-
61
55
  return BaseController.extend("sap.ui.documentation.sdk.controller.TopicDetail", {
62
56
 
63
57
 
@@ -577,34 +571,7 @@ sap.ui.define([
577
571
 
578
572
  onEditGitHubPress: function(oEvent) {
579
573
  openWindow(this.jsonDefModel.getProperty("/mdEditLink"));
580
- },
581
-
582
- /**
583
- * Transforms a URL from the SAPUI5 documentation into the corresponding URL in the GitHub repo,
584
- * following the rules:
585
- * The GitHub URL starts with <code>GIT_HUB_DOCS_URL</code>
586
- * and the filename is calculated from the topic title in the following way:
587
- * 1) Special symbols are removed \ / : * ? “ < > |
588
- * 2) All empty spaces are replaced with “_” and one additional “_” is added at the end
589
- * 3) The first seven symbols from the ID used in the Demo Kit URLs are added at the end
590
- * 4) The file type is added at the end “.md”
591
- *
592
- * @param {string} sUrl the url of the file in the internal repo
593
- * @param {string} sTitle the title of the file
594
- * @returns {string} the url of the file in the GitHub repo
595
- * @private
596
- * @deprecated since v1.107.0
597
- */
598
- _formatToGitHubUrl: function(sUrl, sTitle) {
599
- var sGitHubFileName = sTitle.trim()
600
- .replace(REGEX.SPECIAL_CHARS, "") // remove special chars
601
- .replace(REGEX.SPACES, "_"); // replace remaining spaces with delimiter char
602
- sGitHubFileName += "_"; // end the text with a single delimiter char
603
- sGitHubFileName += sUrl.split("/").pop().substring(0, 7); // concat the first 7 symbols of the original filename
604
- sGitHubFileName += ".md";
605
- return GIT_HUB_DOCS_URL + sGitHubFileName;
606
574
  }
607
-
608
575
  });
609
576
 
610
577
  }
@@ -11,7 +11,7 @@ sap.ui.define([
11
11
  ], function(BaseController, Device, jQuery) {
12
12
  "use strict";
13
13
 
14
- var GIT_HUB_URL = "https://github.com/SAP/openui5-docs";
14
+ var GIT_HUB_URL = "https://github.com/UI5/docs";
15
15
 
16
16
  return BaseController.extend("sap.ui.documentation.sdk.controller.TopicDetailInitial", {
17
17
 
@@ -62,9 +62,28 @@ sap.ui.define([
62
62
 
63
63
  oSearchDataModel.setProperty("/topicQuery", sQuery);
64
64
 
65
+ if (!sQuery && this._lastQuery) {
66
+ this._clearTopicDetailHighlighting();
67
+ }
68
+
69
+ this._lastQuery = sQuery;
70
+
65
71
  this.onTreeFilter({ getParameter: function() { return sQuery; } });
66
72
  },
67
73
 
74
+ _clearTopicDetailHighlighting: function() {
75
+ try {
76
+ var oSplitApp = this.getView().getParent().getParent();
77
+ var oDetailPage = oSplitApp.getCurrentDetailPage();
78
+ var oController = oDetailPage && oDetailPage.getController();
79
+ if (oController && oController.highlighter) {
80
+ oController.highlighter.highlight("");
81
+ }
82
+ } catch (e) {
83
+ // Fail silently
84
+ }
85
+ },
86
+
68
87
  _onTopicMatched: function (event) {
69
88
 
70
89
  try {
@@ -216,8 +216,8 @@ sap.ui.define(["sap/ui/thirdparty/jquery", 'sap/ui/documentation/library', "sap/
216
216
 
217
217
  oEnt.library = oDoc.library;
218
218
 
219
- // add entity
220
- if (aCategoryAllowList.indexOf(oEnt.category) > -1) {
219
+ // add entity (exclude hidden entities)
220
+ if (aCategoryAllowList.indexOf(oEnt.category) > -1 && !oEnt.hidden) {
221
221
  data.entities.push(oEnt);
222
222
  }
223
223
  });
@@ -143,7 +143,7 @@ function() {
143
143
  this._highlightSubTree(oNode);
144
144
 
145
145
  } else if (oNode.nodeType === document.TEXT_NODE) {
146
- sText = oNode.data.replace(/[\n\t]+/g, " ");
146
+ sText = oNode.data;
147
147
  oMatches = Object.create(null); // Object containing matched queries and their indices.
148
148
  aBlockedIndices = []; // Array which serves for preservation of the already matched indices.
149
149
 
@@ -233,7 +233,10 @@ function() {
233
233
  fnSort = function(a, b) {return parseInt(a) > parseInt(b);},
234
234
  aIndices = Object.keys(oTokensToHighlight).sort(fnSort),
235
235
  iIndex,
236
- iStartIndex = 0;
236
+ iStartIndex = 0,
237
+ fnShouldHighlightToken = function(sToken, oTokensToHighlight) {
238
+ return Object.values(oTokensToHighlight).indexOf(sToken) > -1;
239
+ };
237
240
 
238
241
  // split the <code>sText</code> into tokens,
239
242
  // including both the tokens to highlight
@@ -261,10 +264,13 @@ function() {
261
264
  // wrap each token in a span
262
265
  // and append to the root span
263
266
  for (iIndex in aAllTokens) {
264
- var oNextNode = document.createElement("span");
265
- oNextNode.innerText = aAllTokens[iIndex];
266
- if (Object.values(oTokensToHighlight).indexOf(aAllTokens[iIndex]) > -1) {
267
+ var sNextToken = aAllTokens[iIndex], oNextNode;
268
+ if (fnShouldHighlightToken(sNextToken, oTokensToHighlight)) {
269
+ oNextNode = document.createElement("span");
270
+ oNextNode.innerText = sNextToken;
267
271
  oNextNode.classList.add("defaultHighlightedText");
272
+ } else {
273
+ oNextNode = document.createTextNode(sNextToken);
268
274
  }
269
275
 
270
276
  oRootNode.appendChild(oNextNode);
@@ -41,7 +41,7 @@ sap.ui.define([],
41
41
  {
42
42
  "id": "linter",
43
43
  "text": "UI5 linter",
44
- "href": "https://github.com/SAP/ui5-linter"
44
+ "href": "https://github.com/UI5/linter"
45
45
  },
46
46
  {
47
47
  "id": "fpmExplorer",
@@ -3,9 +3,6 @@ COOKIE_SETTINGS_DIALOG_TITLE=\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0645\u
3
3
  COOKIE_SETTINGS_DIALOG_REQUIRED_COOKIES_TITLE=\u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0627\u0644\u0644\u0627\u0632\u0645\u0629
4
4
  COOKIE_SETTINGS_DIALOG_REQUIRED_COOKIES_SUMMARY=\u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0647\u0630\u0647 \u0645\u0637\u0644\u0648\u0628\u0629 \u0644\u062A\u0645\u0643\u064A\u0646 \u0648\u0638\u0627\u0626\u0641 \u0627\u0644\u0645\u0648\u0642\u0639 \u0627\u0644\u0623\u0633\u0627\u0633\u064A\u0629.
5
5
  COOKIE_SETTINGS_DIALOG_REQUIRED_COOKIES_TEXT=\u0646\u062D\u0646 \u0646\u0633\u062A\u062E\u062F\u0645 \u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0644\u062A\u062D\u0633\u064A\u0646 \u062A\u062C\u0631\u0628\u062A\u0643 \u0639\u0644\u0649 \u0645\u0648\u0642\u0639\u0646\u0627. \u0645\u0646 \u062E\u0644\u0627\u0644 \u0627\u0644\u0627\u0633\u062A\u0645\u0631\u0627\u0631 \u0641\u064A \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0642\u0639\u060C \u0625\u0646\u0643 \u062A\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0646\u0627.
6
- COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_TITLE=\u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0627\u0644\u0648\u0638\u064A\u0641\u064A\u0629
7
- COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_SUMMARY=\u064A\u062A\u0645 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0647\u0630\u0647 \u0644\u0644\u0627\u062D\u062A\u0641\u0627\u0638 \u0628\u062A\u0641\u0636\u064A\u0644\u0627\u062A\u0643 \u0639\u0644\u0649 \u0645\u0638\u0647\u0631 \u0627\u0644\u0645\u0648\u0642\u0639 \u0648\u0644\u063A\u0629 \u0627\u0644\u0639\u0631\u0636.
8
- COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_TEXT=\u0644\u062A\u062D\u0633\u064A\u0646 \u062A\u062C\u0631\u0628\u0629 \u0627\u0644\u062A\u0635\u0641\u062D \u0627\u0644\u062E\u0627\u0635\u0629 \u0628\u0643\u060C \u0646\u0633\u062A\u062E\u062F\u0645 \u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0644\u062A\u0630\u0643\u0631 \u062A\u0641\u0636\u064A\u0644\u0627\u062A\u0643 \u0644\u0645\u0638\u0647\u0631 \u0627\u0644\u0645\u0648\u0642\u0639 (\u0646\u0633\u0642 \u0641\u0627\u062A\u062D \u0623\u0645 \u062F\u0627\u0643\u0646) \u0648\u0644\u063A\u0629 \u0627\u0644\u0639\u0631\u0636. \u062A\u062A\u0623\u0643\u062F \u0645\u0644\u0641\u0627\u062A \u062A\u0639\u0631\u064A\u0641 \u0627\u0644\u0627\u0631\u062A\u0628\u0627\u0637 \u0647\u0630\u0647 \u0645\u0646 \u0623\u0646\u0647 \u062A\u0645 \u062A\u0637\u0628\u064A\u0642 \u0625\u0639\u062F\u0627\u062F\u0627\u062A\u0643 \u0627\u0644\u0645\u062E\u062A\u0627\u0631\u0629 \u0641\u064A \u0643\u0644 \u0645\u0631\u0629 \u062A\u0632\u0648\u0631 \u0641\u064A\u0647\u0627 \u0627\u0644\u0635\u0641\u062D\u0629 \u0623\u0648 \u062A\u0642\u0648\u0645 \u0628\u062A\u062D\u062F\u064A\u062B\u0647\u0627\u060C \u0648\u0647\u0648 \u0645\u0627 \u064A\u0648\u0641\u0631 \u0644\u0643 \u062A\u062C\u0631\u0628\u0629 \u0645\u062E\u0635\u0635\u0629 \u0648\u0645\u062A\u0633\u0642\u0629.
9
6
  COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_MORE_INFO=\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0625\u0636\u0627\u0641\u064A\u0629
10
7
  COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_ACCEPT_ALL=\u0642\u0628\u0648\u0644 \u0627\u0644\u0643\u0644
11
8
  COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_REJECT_ALL=\u0631\u0641\u0636 \u0627\u0644\u0643\u0644
@@ -3,9 +3,6 @@ COOKIE_SETTINGS_DIALOG_TITLE=\u0412\u0430\u0448\u0438\u0442\u0435 \u043D\u0430\u
3
3
  COOKIE_SETTINGS_DIALOG_REQUIRED_COOKIES_TITLE=\u0417\u0430\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u0438 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438
4
4
  COOKIE_SETTINGS_DIALOG_REQUIRED_COOKIES_SUMMARY=\u0422\u0435\u0437\u0438 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438 \u0437\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0438 \u0437\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u0430\u0442\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u043E\u0441\u0442 \u043D\u0430 \u0441\u0430\u0439\u0442\u0430.
5
5
  COOKIE_SETTINGS_DIALOG_REQUIRED_COOKIES_TEXT=\u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043C\u0435 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438, \u0437\u0430 \u0434\u0430 \u043F\u043E\u0434\u043E\u0431\u0440\u0438\u043C \u0432\u0430\u0448\u0435\u0442\u043E \u043F\u0440\u0435\u0436\u0438\u0432\u044F\u0432\u0430\u043D\u0435. \u041E\u0441\u0442\u0430\u0432\u0430\u0439\u043A\u0438 \u043D\u0430 \u0442\u043E\u0437\u0438 \u0443\u0435\u0431\u0441\u0430\u0439\u0442, \u0432\u0438\u0435 \u0441\u0435 \u0441\u044A\u0433\u043B\u0430\u0441\u044F\u0432\u0430\u0442\u0435 \u0441 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435\u0442\u043E \u043D\u0430 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438\u0442\u0435.
6
- COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_TITLE=\u0424\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u043D\u0438 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438
7
- COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_SUMMARY=\u0422\u0435\u0437\u0438 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438 \u0441\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0442 \u0437\u0430 \u0437\u0430\u043F\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0438\u044F\u0442\u0430 \u0432\u0438 \u0437\u0430 \u0438\u0437\u0433\u043B\u0435\u0434\u0430 \u043D\u0430 \u0441\u0430\u0439\u0442\u0430 \u0438 \u0435\u0437\u0438\u043A\u0430, \u043D\u0430 \u043A\u043E\u0439\u0442\u043E \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430.
8
- COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_TEXT=\u0417\u0430 \u0434\u0430 \u0441\u0435 \u043F\u043E\u0434\u043E\u0431\u0440\u0438 \u0438\u0437\u0436\u0438\u0432\u044F\u0432\u0430\u043D\u0435\u0442\u043E \u0432\u0438, \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043C\u0435 \u0431\u0438\u0441\u043A\u0432\u0438\u0442\u043A\u0438, \u0437\u0430 \u0434\u0430 \u0437\u0430\u043F\u0430\u043C\u0435\u0442\u0438\u043C \u0432\u0430\u0448\u0438\u0442\u0435 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0438\u044F \u0437\u0430 \u0438\u0437\u0433\u043B\u0435\u0434\u0430 \u043D\u0430 \u0441\u0430\u0439\u0442\u0430 (\u0441\u0432\u0435\u0442\u043B\u0430 \u0438\u043B\u0438 \u0442\u044A\u043C\u043D\u0430 \u0442\u0435\u043C\u0430) \u0438 \u0435\u0437\u0438\u043A\u0430, \u043D\u0430 \u043A\u043E\u0439\u0442\u043E \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430. \u0422\u0435 \u0433\u0430\u0440\u0430\u043D\u0442\u0438\u0440\u0430\u0442, \u0447\u0435 \u0438\u0437\u0431\u0440\u0430\u043D\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u0435 \u043F\u0440\u0438\u043B\u0430\u0433\u0430\u0442 \u0432\u0441\u0435\u043A\u0438 \u043F\u044A\u0442, \u043A\u043E\u0433\u0430\u0442\u043E \u043F\u043E\u0441\u0435\u0449\u0430\u0432\u0430\u0442\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430\u0442\u0430 \u0438\u043B\u0438 \u044F \u043E\u043F\u0440\u0435\u0441\u043D\u044F\u0432\u0430\u0442\u0435, \u043E\u0441\u0438\u0433\u0443\u0440\u044F\u0432\u0430\u0439\u043A\u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u043D\u043E \u0438 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u043E \u0438\u0437\u0436\u0438\u0432\u044F\u0432\u0430\u043D\u0435.
9
6
  COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_MORE_INFO=\u041F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F
10
7
  COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_ACCEPT_ALL=\u041F\u0440\u0438\u0435\u043C\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438
11
8
  COOKIE_SETTINGS_DIALOG_FUNCTIONAL_COOKIES_REJECT_ALL=\u041E\u0442\u043A\u0430\u0437\u0432\u0430\u043D\u0435 \u043D\u0430 \u0432\u0441\u0438\u0447\u043A\u0438