@openui5/sap.ui.webc.common 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 (27) hide show
  1. package/package.json +2 -2
  2. package/src/sap/ui/webc/common/.library +1 -1
  3. package/src/sap/ui/webc/common/WebComponent.js +24 -3
  4. package/src/sap/ui/webc/common/WebComponentMetadata.js +2 -2
  5. package/src/sap/ui/webc/common/WebComponentRenderer.js +12 -5
  6. package/src/sap/ui/webc/common/library.js +3 -3
  7. package/src/sap/ui/webc/common/thirdparty/base/Boot.js +22 -15
  8. package/src/sap/ui/webc/common/thirdparty/base/CustomElementsRegistry.js +48 -5
  9. package/src/sap/ui/webc/common/thirdparty/base/Device.js +6 -1
  10. package/src/sap/ui/webc/common/thirdparty/base/Keys.js +22 -0
  11. package/src/sap/ui/webc/common/thirdparty/base/Runtimes.js +65 -0
  12. package/src/sap/ui/webc/common/thirdparty/base/StaticAreaItem.js +3 -0
  13. package/src/sap/ui/webc/common/thirdparty/base/UI5Element.js +7 -2
  14. package/src/sap/ui/webc/common/thirdparty/base/UI5ElementMetadata.js +3 -0
  15. package/src/sap/ui/webc/common/thirdparty/base/features/F6Navigation.js +80 -0
  16. package/src/sap/ui/webc/common/thirdparty/base/generated/VersionInfo.js +15 -0
  17. package/src/sap/ui/webc/common/thirdparty/base/theming/applyTheme.js +8 -4
  18. package/src/sap/ui/webc/common/thirdparty/base/theming/getThemeDesignerTheme.js +18 -5
  19. package/src/sap/ui/webc/common/thirdparty/base/util/FocusableElements.js +8 -6
  20. package/src/sap/ui/webc/common/thirdparty/base/util/TabbableElements.js +3 -0
  21. package/src/sap/ui/webc/common/thirdparty/base/util/isNodeHidden.js +1 -1
  22. package/src/sap/ui/webc/common/thirdparty/icons/{SAP-icons-e7d3b275.js → SAP-icons-027beaa9.js} +3 -0
  23. package/src/sap/ui/webc/common/thirdparty/icons/{SAP-icons-253bf13b.js → SAP-icons-340ee996.js} +3 -0
  24. package/src/sap/ui/webc/common/thirdparty/icons/json-imports/Icons.js +2 -2
  25. package/src/sap/ui/webc/common/thirdparty/icons/qr-code.js +8 -0
  26. package/src/sap/ui/webc/common/thirdparty/icons/v4/qr-code.js +13 -0
  27. package/src/sap/ui/webc/common/thirdparty/icons/v5/qr-code.js +13 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.webc.common",
3
- "version": "1.98.0",
3
+ "version": "1.99.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.webc.common",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -16,6 +16,6 @@
16
16
  "url": "https://github.com/SAP/openui5.git"
17
17
  },
18
18
  "dependencies": {
19
- "@openui5/sap.ui.core": "1.98.0"
19
+ "@openui5/sap.ui.core": "1.99.0"
20
20
  }
21
21
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
  <name>sap.ui.webc.common</name>
5
5
  <vendor>SAP SE</vendor>
6
- <version>1.98.0</version>
6
+ <version>1.99.0</version>
7
7
  <copyright>OpenUI5
8
8
  * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
9
9
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
@@ -13,7 +13,8 @@ sap.ui.define([
13
13
  "sap/ui/core/Core",
14
14
  "sap/base/strings/hyphenate",
15
15
  "sap/base/strings/camelize",
16
- "sap/ui/core/library"
16
+ "sap/ui/core/library",
17
+ "sap/ui/core/LabelEnablement"
17
18
  ],
18
19
  function(
19
20
  Control,
@@ -23,7 +24,8 @@ sap.ui.define([
23
24
  Core,
24
25
  hyphenate,
25
26
  camelize,
26
- coreLibrary
27
+ coreLibrary,
28
+ LabelEnablement
27
29
  ) {
28
30
  "use strict";
29
31
 
@@ -104,7 +106,7 @@ sap.ui.define([
104
106
  *
105
107
  * @extends sap.ui.core.Control
106
108
  * @author SAP SE
107
- * @version 1.98.0
109
+ * @version 1.99.0
108
110
  * @public
109
111
  * @since 1.92.0
110
112
  * @alias sap.ui.webc.common.WebComponent
@@ -394,5 +396,24 @@ sap.ui.define([
394
396
  return sTextDirection.toLowerCase();
395
397
  };
396
398
 
399
+ /**
400
+ * Generates a string containing the ID's from the association ariaLabelledBy.
401
+ * @param {string[]} aAriaLabelledBy an array of IDs associated with this control
402
+ * @returns {string} sAriaLabelledBy
403
+ */
404
+ WebComponent.prototype._getAriaLabelledByForRendering = function (aAriaLabelledBy) {
405
+ var aFilteredIds = LabelEnablement.getReferencingLabels(this);
406
+
407
+ if (Array.isArray(aAriaLabelledBy)) {
408
+ aAriaLabelledBy.forEach(function (sId) {
409
+ if (aFilteredIds.indexOf(sId) < 0) {
410
+ aFilteredIds.unshift(sId);
411
+ }
412
+ });
413
+ }
414
+
415
+ return aFilteredIds.join(" ");
416
+ };
417
+
397
418
  return WebComponent;
398
419
  });
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  *
23
23
  * @class
24
24
  * @author SAP SE
25
- * @version 1.98.0
25
+ * @version 1.99.0
26
26
  * @since 1.92.0
27
27
  * @experimental Since 1.92.0 The API might change. It is not intended for productive usage yet!
28
28
  * @alias sap.ui.webc.common.WebComponentMetadata
@@ -74,12 +74,12 @@ sap.ui.define([
74
74
  var OriginalAssociation = ElementMetadata.prototype.metaFactoryAssociation;
75
75
  var WebComponentAssociation = function(oClass, name, info) {
76
76
  OriginalAssociation.apply(this, arguments);
77
-
78
77
  if (!info.mapping || typeof info.mapping !== "object") {
79
78
  this._sMapping = ""; // For associations, "mapping" must be an object, because "to" is required
80
79
  } else {
81
80
  this._sMapping = "property"; // Associations map only to properties, no matter what is set, it's always "property" mapping
82
81
  this._sMapTo = info.mapping.to; // The property, to which the association is related
82
+ this._fnMappingFormatter = info.mapping.formatter;
83
83
  }
84
84
  };
85
85
  WebComponentAssociation.prototype = Object.create(OriginalAssociation.prototype);
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  /**
27
27
  * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
28
28
  * @param {sap.ui.core.RenderManager} oRm the RenderManager that can be used for writing to the Render-Output-Buffer
29
- * @param {sap.ui.core.Control} oWebComponent an object representation of the control that should be rendered
29
+ * @param {sap.ui.webc.common.WebComponent} oWebComponent an object representation of the control that should be rendered
30
30
  */
31
31
  WebComponentRenderer.render = function(oRm, oWebComponent){
32
32
  var sTag = oWebComponent.getMetadata().getTag();
@@ -193,10 +193,17 @@ sap.ui.define([
193
193
  for (var sAssocName in oAssociations) {
194
194
  var oAssocData = oAssociations[sAssocName];
195
195
  var vAssocValue = oAssocData.get(oWebComponent);
196
- var sPropName = oAssocData._sMapTo; // The name of the property to be set with the association's ID value
197
- var sPropValue = typeof vAssocValue === "object" ? vAssocValue.getId() : vAssocValue; // The ID, held by the association
198
- if (sPropValue) { // Only set the property, if the association is set
199
- oRm.attr(sPropName, sPropValue);
196
+ var sPropName = hyphenate(oAssocData._sMapTo); // The name of the property to be set with the association's ID value
197
+ if (oAssocData._fnMappingFormatter) {
198
+ vAssocValue = oWebComponent[oAssocData._fnMappingFormatter].call(oWebComponent, vAssocValue);
199
+ }
200
+
201
+ if (!oAssocData.multiple && vAssocValue && typeof vAssocValue === "object") {
202
+ vAssocValue = vAssocValue.getId(); // The value will be the control ID, held by the association
203
+ }
204
+
205
+ if (vAssocValue) { // Only set the property, if the association is set
206
+ oRm.attr(sPropName, vAssocValue);
200
207
  }
201
208
  }
202
209
  };
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  // delegate further initialization of this library to the Core
24
24
  sap.ui.getCore().initLibrary({
25
25
  name : "sap.ui.webc.common",
26
- version: "1.98.0",
26
+ version: "1.99.0",
27
27
  dependencies : ["sap.ui.core"],
28
28
  noLibraryCSS: true,
29
29
  designtime: "sap/ui/webc/common/designtime/library.designtime",
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @namespace
47
47
  * @alias sap.ui.webc
48
48
  * @author SAP SE
49
- * @version 1.98.0
49
+ * @version 1.99.0
50
50
  * @public
51
51
  * @since 1.92.0
52
52
  * @experimental Since 1.92.0
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  * @namespace
59
59
  * @alias sap.ui.webc.common
60
60
  * @author SAP SE
61
- * @version 1.98.0
61
+ * @version 1.99.0
62
62
  * @public
63
63
  * @since 1.92.0
64
64
  * @experimental Since 1.92.0
@@ -1,25 +1,32 @@
1
- sap.ui.define(['exports', './EventProvider', './util/whenDOMReady', './FontFace', './SystemCSSVars', './config/Theme', './theming/applyTheme', './FeaturesRegistry'], function (exports, EventProvider, whenDOMReady, FontFace, SystemCSSVars, Theme, applyTheme, FeaturesRegistry) { 'use strict';
1
+ sap.ui.define(['exports', './EventProvider', './util/whenDOMReady', './FontFace', './SystemCSSVars', './config/Theme', './theming/applyTheme', './Runtimes', './FeaturesRegistry'], function (exports, EventProvider, whenDOMReady, FontFace, SystemCSSVars, Theme, applyTheme, Runtimes, FeaturesRegistry) { 'use strict';
2
2
 
3
- let booted = false;
3
+ let bootPromise;
4
4
  const eventProvider = new EventProvider();
5
5
  const attachBoot = listener => {
6
6
  eventProvider.attachEvent("boot", listener);
7
7
  };
8
8
  const boot = async () => {
9
- if (booted) {
10
- return;
9
+ if (bootPromise) {
10
+ return bootPromise;
11
11
  }
12
- const OpenUI5Support = FeaturesRegistry.getFeature("OpenUI5Support");
13
- if (OpenUI5Support) {
14
- await OpenUI5Support.init();
15
- }
16
- await whenDOMReady();
17
- await applyTheme(Theme.getTheme());
18
- OpenUI5Support && OpenUI5Support.attachListeners();
19
- FontFace();
20
- SystemCSSVars();
21
- await eventProvider.fireEventAsync("boot");
22
- booted = true;
12
+ bootPromise = new Promise(async resolve => {
13
+ Runtimes.registerCurrentRuntime();
14
+ const OpenUI5Support = FeaturesRegistry.getFeature("OpenUI5Support");
15
+ const F6Navigation = FeaturesRegistry.getFeature("F6Navigation");
16
+ if (OpenUI5Support) {
17
+ await OpenUI5Support.init();
18
+ } else if (F6Navigation) {
19
+ F6Navigation.init();
20
+ }
21
+ await whenDOMReady();
22
+ await applyTheme(Theme.getTheme());
23
+ OpenUI5Support && OpenUI5Support.attachListeners();
24
+ FontFace();
25
+ SystemCSSVars();
26
+ await eventProvider.fireEventAsync("boot");
27
+ resolve();
28
+ });
29
+ return bootPromise;
23
30
  };
24
31
 
25
32
  exports.attachBoot = attachBoot;
@@ -1,10 +1,13 @@
1
- sap.ui.define(['exports', './util/setToArray'], function (exports, setToArray) { 'use strict';
1
+ sap.ui.define(['exports', './util/setToArray', './getSharedResource', './Runtimes'], function (exports, setToArray, getSharedResource, Runtimes) { 'use strict';
2
2
 
3
+ const Tags = getSharedResource("Tags", new Map());
3
4
  const Definitions = new Set();
4
- const Failures = new Set();
5
+ let Failures = {};
5
6
  let failureTimeout;
7
+ const UNKNOWN_RUNTIME = "unknown";
6
8
  const registerTag = tag => {
7
9
  Definitions.add(tag);
10
+ Tags.set(tag, Runtimes.getCurrentRuntimeIndex());
8
11
  };
9
12
  const isTagRegistered = tag => {
10
13
  return Definitions.has(tag);
@@ -13,17 +16,57 @@ sap.ui.define(['exports', './util/setToArray'], function (exports, setToArray) {
13
16
  return setToArray(Definitions);
14
17
  };
15
18
  const recordTagRegistrationFailure = tag => {
16
- Failures.add(tag);
19
+ let tagRegRuntimeIndex = Tags.get(tag);
20
+ if (tagRegRuntimeIndex === undefined) {
21
+ tagRegRuntimeIndex = UNKNOWN_RUNTIME;
22
+ }
23
+ Failures[tagRegRuntimeIndex] = Failures[tagRegRuntimeIndex] || new Set();
24
+ Failures[tagRegRuntimeIndex].add(tag);
17
25
  if (!failureTimeout) {
18
26
  failureTimeout = setTimeout(() => {
19
27
  displayFailedRegistrations();
28
+ Failures = {};
20
29
  failureTimeout = undefined;
21
30
  }, 1000);
22
31
  }
23
32
  };
24
33
  const displayFailedRegistrations = () => {
25
- console.warn(`The following tags have already been defined by a different UI5 Web Components version: ${setToArray(Failures).join(", ")}`);
26
- Failures.clear();
34
+ const allRuntimes = Runtimes.getAllRuntimes();
35
+ const currentRuntimeIndex = Runtimes.getCurrentRuntimeIndex();
36
+ const currentRuntime = allRuntimes[currentRuntimeIndex];
37
+ let message = `Multiple UI5 Web Components instances detected.`;
38
+ if (allRuntimes.length > 1) {
39
+ message = `${message}\nLoading order (versions before 1.1.0 not listed): ${allRuntimes.map(runtime => `\n${runtime.description}`).join("")}`;
40
+ }
41
+ Object.keys(Failures).forEach(otherRuntimeIndex => {
42
+ let comparison;
43
+ let otherRuntime;
44
+ if (otherRuntimeIndex === UNKNOWN_RUNTIME) {
45
+ comparison = 1;
46
+ otherRuntime = {
47
+ description: `Older unknown runtime`,
48
+ };
49
+ } else {
50
+ comparison = Runtimes.compareRuntimes(currentRuntimeIndex, otherRuntimeIndex);
51
+ otherRuntime = allRuntimes[otherRuntimeIndex];
52
+ }
53
+ let compareWord;
54
+ if (comparison > 0) {
55
+ compareWord = "an older";
56
+ } else if (comparison < 0) {
57
+ compareWord = "a newer";
58
+ } else {
59
+ compareWord = "the same";
60
+ }
61
+ message = `${message}\n\n"${currentRuntime.description}" failed to define ${Failures[otherRuntimeIndex].size} tag(s) as they were defined by a runtime of ${compareWord} version "${otherRuntime.description}": ${setToArray(Failures[otherRuntimeIndex]).sort().join(", ")}.`;
62
+ if (comparison > 0) {
63
+ message = `${message}\nWARNING! If your code uses features of the above web components, unavailable in ${otherRuntime.description}, it might not work as expected!`;
64
+ } else {
65
+ message = `${message}\nSince the above web components were defined by the same or newer version runtime, they should be compatible with your code.`;
66
+ }
67
+ });
68
+ message = `${message}\n\nTo prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/master/docs/2-advanced/03-scoping.md.`;
69
+ console.warn(message);
27
70
  };
28
71
 
29
72
  exports.getAllRegisteredTags = getAllRegisteredTags;
@@ -7,9 +7,10 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
7
7
  const safari = !ie && !chrome && /(Version|PhantomJS)\/(\d+\.\d+).*Safari/.test(ua);
8
8
  const webkit = !ie && /webkit/.test(ua);
9
9
  const windows = navigator.platform.indexOf("Win") !== -1;
10
+ const iOS = navigator.platform.match(/iPhone|iPad|iPod/) || (navigator.userAgent.match(/Mac/) && "ontouchend" in document);
10
11
  const android = !windows && /Android/.test(ua);
11
12
  const androidPhone = android && /(?=android)(?=.*mobile)/i.test(ua);
12
- const ipad = /ipad/i.test(ua);
13
+ const ipad = /ipad/i.test(ua) || (/Macintosh/i.test(ua) && "ontouchend" in document);
13
14
  let windowsVersion;
14
15
  let webkitVersion;
15
16
  let tablet;
@@ -77,11 +78,15 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
77
78
  const isCombi = () => {
78
79
  return isTablet() && isDesktop();
79
80
  };
81
+ const isIOS = () => {
82
+ return iOS;
83
+ };
80
84
 
81
85
  exports.isChrome = isChrome;
82
86
  exports.isCombi = isCombi;
83
87
  exports.isDesktop = isDesktop;
84
88
  exports.isIE = isIE;
89
+ exports.isIOS = isIOS;
85
90
  exports.isPhone = isPhone;
86
91
  exports.isSafari = isSafari;
87
92
  exports.isTablet = isTablet;
@@ -118,14 +118,20 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
118
118
  const isDownCtrl = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, false);
119
119
  const isUpShift = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, false, true);
120
120
  const isDownShift = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, false, true);
121
+ const isUpAlt = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, true, false);
122
+ const isDownAlt = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, true, false);
121
123
  const isLeftShift = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, false, false, true);
122
124
  const isRightShift = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, false, false, true);
125
+ const isLeftShiftCtrl = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, true, false, true);
126
+ const isRightShiftCtrl = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, true, false, true);
123
127
  const isUpShiftCtrl = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, true);
124
128
  const isDownShiftCtrl = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, true);
125
129
  const isHome = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && !hasModifierKeys(event);
126
130
  const isEnd = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && !hasModifierKeys(event);
127
131
  const isHomeCtrl = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && checkModifierKeys(event, true, false, false);
132
+ const isHomeShift = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && checkModifierKeys(event, false, false, true);
128
133
  const isEndCtrl = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && checkModifierKeys(event, true, false, false);
134
+ const isEndShift = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && checkModifierKeys(event, false, false, true);
129
135
  const isEscape = event => (event.key ? event.key === "Escape" || event.key === "Esc" : event.keyCode === KeyCodes.ESCAPE) && !hasModifierKeys(event);
130
136
  const isTabNext = event => (event.key ? event.key === "Tab" : event.keyCode === KeyCodes.TAB) && !hasModifierKeys(event);
131
137
  const isTabPrevious = event => (event.key ? event.key === "Tab" : event.keyCode === KeyCodes.TAB) && checkModifierKeys(event, false, false, true);
@@ -151,33 +157,46 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
151
157
  return event.key === "F4" && !hasModifierKeys(event);
152
158
  };
153
159
  const isF4Shift = event => (event.key ? event.key === "F4" : event.keyCode === KeyCodes.F4) && checkModifierKeys(event, false, false, true);
160
+ const isF6Next = event => ((event.key ? event.key === "F6" : event.keyCode === KeyCodes.F6) && checkModifierKeys(event, false, false, false))
161
+ || ((event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, true, false));
162
+ const isF6Previous = event => ((event.key ? event.key === "F6" : event.keyCode === KeyCodes.F6) && checkModifierKeys(event, false, false, true))
163
+ || ((event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_Up) && checkModifierKeys(event, true, true, false));
154
164
  const isF7 = event => (event.key ? event.key === "F7" : event.keyCode === KeyCodes.F7) && !hasModifierKeys(event);
155
165
  const isShowByArrows = event => {
156
166
  return ((event.key === "ArrowDown" || event.key === "Down") || (event.key === "ArrowUp" || event.key === "Up")) && checkModifierKeys(event, false, true, false);
157
167
  };
168
+ const isShift = event => event.key === "Shift" || event.keyCode === KeyCodes.SHIFT;
169
+ const isCtrlA = event => ((event.key === "A" || event.key === "a") || event.which === KeyCodes.A) && checkModifierKeys(event, true, false, false);
158
170
  const hasModifierKeys = event => event.shiftKey || event.altKey || getCtrlKey(event);
159
171
  const getCtrlKey = event => !!(event.metaKey || event.ctrlKey);
160
172
  const checkModifierKeys = (event, bCtrlKey, bAltKey, bShiftKey) => event.shiftKey === bShiftKey && event.altKey === bAltKey && getCtrlKey(event) === bCtrlKey;
161
173
 
162
174
  exports.isBackSpace = isBackSpace;
175
+ exports.isCtrlA = isCtrlA;
163
176
  exports.isDelete = isDelete;
164
177
  exports.isDown = isDown;
178
+ exports.isDownAlt = isDownAlt;
165
179
  exports.isDownCtrl = isDownCtrl;
166
180
  exports.isDownShift = isDownShift;
167
181
  exports.isDownShiftCtrl = isDownShiftCtrl;
168
182
  exports.isEnd = isEnd;
169
183
  exports.isEndCtrl = isEndCtrl;
184
+ exports.isEndShift = isEndShift;
170
185
  exports.isEnter = isEnter;
171
186
  exports.isEnterShift = isEnterShift;
172
187
  exports.isEscape = isEscape;
173
188
  exports.isF4 = isF4;
174
189
  exports.isF4Shift = isF4Shift;
190
+ exports.isF6Next = isF6Next;
191
+ exports.isF6Previous = isF6Previous;
175
192
  exports.isF7 = isF7;
176
193
  exports.isHome = isHome;
177
194
  exports.isHomeCtrl = isHomeCtrl;
195
+ exports.isHomeShift = isHomeShift;
178
196
  exports.isLeft = isLeft;
179
197
  exports.isLeftCtrl = isLeftCtrl;
180
198
  exports.isLeftShift = isLeftShift;
199
+ exports.isLeftShiftCtrl = isLeftShiftCtrl;
181
200
  exports.isMinus = isMinus;
182
201
  exports.isPageDown = isPageDown;
183
202
  exports.isPageDownAlt = isPageDownAlt;
@@ -191,12 +210,15 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
191
210
  exports.isRight = isRight;
192
211
  exports.isRightCtrl = isRightCtrl;
193
212
  exports.isRightShift = isRightShift;
213
+ exports.isRightShiftCtrl = isRightShiftCtrl;
214
+ exports.isShift = isShift;
194
215
  exports.isShow = isShow;
195
216
  exports.isSpace = isSpace;
196
217
  exports.isSpaceShift = isSpaceShift;
197
218
  exports.isTabNext = isTabNext;
198
219
  exports.isTabPrevious = isTabPrevious;
199
220
  exports.isUp = isUp;
221
+ exports.isUpAlt = isUpAlt;
200
222
  exports.isUpCtrl = isUpCtrl;
201
223
  exports.isUpShift = isUpShift;
202
224
  exports.isUpShiftCtrl = isUpShiftCtrl;
@@ -0,0 +1,65 @@
1
+ sap.ui.define(['exports', './generated/VersionInfo', './getSharedResource'], function (exports, VersionInfo, getSharedResource) { 'use strict';
2
+
3
+ let currentRuntimeIndex;
4
+ let currentRuntimeAlias = "";
5
+ const compareCache = new Map();
6
+ const Runtimes = getSharedResource("Runtimes", []);
7
+ const registerCurrentRuntime = () => {
8
+ if (currentRuntimeIndex === undefined) {
9
+ currentRuntimeIndex = Runtimes.length;
10
+ Runtimes.push({
11
+ ...VersionInfo,
12
+ alias: currentRuntimeAlias,
13
+ description: `Runtime ${currentRuntimeIndex} - ver ${VersionInfo.version}${currentRuntimeAlias ? ` (${currentRuntimeAlias})` : ""}`,
14
+ });
15
+ }
16
+ };
17
+ const getCurrentRuntimeIndex = () => {
18
+ return currentRuntimeIndex;
19
+ };
20
+ const compareRuntimes = (index1, index2) => {
21
+ const cacheIndex = `${index1},${index2}`;
22
+ if (compareCache.has(cacheIndex)) {
23
+ return compareCache.get(cacheIndex);
24
+ }
25
+ const runtime1 = Runtimes[index1];
26
+ const runtime2 = Runtimes[index2];
27
+ if (!runtime1 || !runtime2) {
28
+ throw new Error("Invalid runtime index supplied");
29
+ }
30
+ if (runtime1.isNext || runtime2.isNext) {
31
+ return runtime1.buildTime - runtime2.buildTime;
32
+ }
33
+ const majorDiff = runtime1.major - runtime2.major;
34
+ if (majorDiff) {
35
+ return majorDiff;
36
+ }
37
+ const minorDiff = runtime1.minor - runtime2.minor;
38
+ if (minorDiff) {
39
+ return minorDiff;
40
+ }
41
+ const patchDiff = runtime1.patch - runtime2.patch;
42
+ if (patchDiff) {
43
+ return patchDiff;
44
+ }
45
+ const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: "base" });
46
+ const result = collator.compare(runtime1.suffix, runtime2.suffix);
47
+ compareCache.set(cacheIndex, result);
48
+ return result;
49
+ };
50
+ const setRuntimeAlias = alias => {
51
+ currentRuntimeAlias = alias;
52
+ };
53
+ const getAllRuntimes = () => {
54
+ return Runtimes;
55
+ };
56
+
57
+ exports.compareRuntimes = compareRuntimes;
58
+ exports.getAllRuntimes = getAllRuntimes;
59
+ exports.getCurrentRuntimeIndex = getCurrentRuntimeIndex;
60
+ exports.registerCurrentRuntime = registerCurrentRuntime;
61
+ exports.setRuntimeAlias = setRuntimeAlias;
62
+
63
+ Object.defineProperty(exports, '__esModule', { value: true });
64
+
65
+ });
@@ -9,6 +9,9 @@ sap.ui.define(['./StaticArea', './updateShadowRoot', './Render', './util/getEffe
9
9
  setOwnerElement(ownerElement) {
10
10
  this.ownerElement = ownerElement;
11
11
  this.classList.add(this.ownerElement._id);
12
+ if (this.ownerElement.hasAttribute("data-ui5-static-stable")) {
13
+ this.setAttribute("data-ui5-stable", this.ownerElement.getAttribute("data-ui5-static-stable"));
14
+ }
12
15
  }
13
16
  update() {
14
17
  if (this._rendered) {
@@ -41,6 +41,9 @@ sap.ui.define(['./thirdparty/merge', './Boot', './UI5ElementMetadata', './EventP
41
41
  }
42
42
  async connectedCallback() {
43
43
  this.setAttribute(this.constructor.getMetadata().getPureTag(), "");
44
+ if (this.constructor.getMetadata().supportsF6FastNavigation()) {
45
+ this.setAttribute("data-sap-ui-fastnavgroup", "true");
46
+ }
44
47
  const slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();
45
48
  this._inDOM = true;
46
49
  if (slotsAreManaged) {
@@ -142,7 +145,8 @@ sap.ui.define(['./thirdparty/merge', './Boot', './UI5ElementMetadata', './EventP
142
145
  }
143
146
  child = this.constructor.getMetadata().constructor.validateSlotValue(child, slotData);
144
147
  if (child.isUI5Element && slotData.invalidateOnChildChange) {
145
- child.attachInvalidate(this._getChildChangeListener(slotName));
148
+ const method = (child.attachInvalidate || child._attachChange).bind(child);
149
+ method(this._getChildChangeListener(slotName));
146
150
  }
147
151
  if (SlotsHelper.isSlot(child)) {
148
152
  this._attachSlotChange(child, slotName);
@@ -183,7 +187,8 @@ sap.ui.define(['./thirdparty/merge', './Boot', './UI5ElementMetadata', './EventP
183
187
  const children = this._state[propertyName];
184
188
  children.forEach(child => {
185
189
  if (child && child.isUI5Element) {
186
- child.detachInvalidate(this._getChildChangeListener(slotName));
190
+ const method = (child.detachInvalidate || child._detachChange).bind(child);
191
+ method(this._getChildChangeListener(slotName));
187
192
  }
188
193
  if (SlotsHelper.isSlot(child)) {
189
194
  this._detachSlotChange(child, slotName);
@@ -97,6 +97,9 @@ sap.ui.define(['./types/DataType', './util/isDescendantOf', './util/StringHelper
97
97
  slotsAreManaged() {
98
98
  return !!this.metadata.managedSlots;
99
99
  }
100
+ supportsF6FastNavigation() {
101
+ return !!this.metadata.fastNavigation;
102
+ }
100
103
  getProperties() {
101
104
  return this.metadata.properties || {};
102
105
  }
@@ -0,0 +1,80 @@
1
+ sap.ui.define(['../FeaturesRegistry', '../Keys', '../util/FocusableElements'], function (FeaturesRegistry, Keys, FocusableElements) { 'use strict';
2
+
3
+ class F6Navigation {
4
+ init() {
5
+ this.keydownHandler = this._keydownHandler.bind(this);
6
+ this.attachEventListeners();
7
+ this.selectedGroup = null;
8
+ this.groups = [];
9
+ }
10
+ attachEventListeners() {
11
+ document.addEventListener("keydown", this.keydownHandler);
12
+ }
13
+ async _keydownHandler(event) {
14
+ if (Keys.isF6Next(event)) {
15
+ this.updateGroups();
16
+ if (this.groups.length < 1) {
17
+ return;
18
+ }
19
+ const nextIndex = this.groups.indexOf(this.selectedGroup);
20
+ let nextElement = null;
21
+ if (nextIndex > -1) {
22
+ if (nextIndex + 1 >= this.groups.length) {
23
+ nextElement = this.groups[0];
24
+ } else {
25
+ nextElement = this.groups[nextIndex + 1];
26
+ }
27
+ } else {
28
+ nextElement = this.groups[0];
29
+ }
30
+ const elementToFocus = await FocusableElements.getFirstFocusableElement(nextElement.isUI5Element ? nextElement.getDomRef() : nextElement, true);
31
+ elementToFocus.focus();
32
+ }
33
+ if (Keys.isF6Previous(event)) {
34
+ this.updateGroups();
35
+ if (this.groups.length < 1) {
36
+ return;
37
+ }
38
+ const nextIndex = this.groups.indexOf(this.selectedGroup);
39
+ let nextElement = null;
40
+ if (nextIndex > -1) {
41
+ if (nextIndex - 1 < 0) {
42
+ nextElement = this.groups[this.groups.length - 1];
43
+ } else {
44
+ const firstFocusable = await FocusableElements.getFirstFocusableElement(this.groups[nextIndex - 1], true);
45
+ const shouldSkipParent = firstFocusable === await FocusableElements.getFirstFocusableElement(this.groups[nextIndex], true);
46
+ nextElement = this.groups[shouldSkipParent ? nextIndex - 2 : nextIndex - 1];
47
+ }
48
+ } else {
49
+ nextElement = this.groups[this.groups.length - 1];
50
+ }
51
+ const elementToFocus = await FocusableElements.getFirstFocusableElement(nextElement.isUI5Element ? nextElement.getDomRef() : nextElement, true);
52
+ elementToFocus.focus();
53
+ }
54
+ }
55
+ removeEventListeners() {
56
+ document.removeEventListener("keydown", this.keydownHandler);
57
+ }
58
+ updateGroups() {
59
+ this.setSelectedGroup(document.activeElement);
60
+ this.setGroups();
61
+ }
62
+ setGroups() {
63
+ this.groups = Array.from(document.querySelectorAll("[data-sap-ui-fastnavgroup='true']")).filter(group => group.clientWidth && window.getComputedStyle(group).visibility !== "hidden");
64
+ }
65
+ setSelectedGroup(element) {
66
+ while (element && element.getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== document.querySelector("html")) {
67
+ element = element.parentElement ? element.parentNode : element.parentNode.host;
68
+ }
69
+ this.selectedGroup = element;
70
+ }
71
+ destroy() {
72
+ this.removeEventListeners();
73
+ }
74
+ }
75
+ const F6HelperInstance = new F6Navigation();
76
+ FeaturesRegistry.registerFeature("F6Navigation", F6HelperInstance);
77
+
78
+ return F6Navigation;
79
+
80
+ });
@@ -0,0 +1,15 @@
1
+ sap.ui.define(function () { 'use strict';
2
+
3
+ const VersionInfo = {
4
+ version: "1.1.2",
5
+ major: 1,
6
+ minor: 1,
7
+ patch: 2,
8
+ suffix: "",
9
+ isNext: false,
10
+ buildTime: 1644236777,
11
+ };
12
+
13
+ return VersionInfo;
14
+
15
+ });
@@ -9,8 +9,10 @@ sap.ui.define(['../asset-registries/Themes', '../ManagedStyles', './getThemeDesi
9
9
  if (!isThemeBaseRegistered()) {
10
10
  return;
11
11
  }
12
- const cssText = await Themes.getThemeProperties(BASE_THEME_PACKAGE, theme);
13
- ManagedStyles.createOrUpdateStyle(cssText, "data-ui5-theme-properties", BASE_THEME_PACKAGE);
12
+ const cssData = await Themes.getThemeProperties(BASE_THEME_PACKAGE, theme);
13
+ if (cssData) {
14
+ ManagedStyles.createOrUpdateStyle(cssData, "data-ui5-theme-properties", BASE_THEME_PACKAGE);
15
+ }
14
16
  };
15
17
  const deleteThemeBase = () => {
16
18
  ManagedStyles.removeStyle("data-ui5-theme-properties", BASE_THEME_PACKAGE);
@@ -21,8 +23,10 @@ sap.ui.define(['../asset-registries/Themes', '../ManagedStyles', './getThemeDesi
21
23
  if (packageName === BASE_THEME_PACKAGE) {
22
24
  return;
23
25
  }
24
- const cssText = await Themes.getThemeProperties(packageName, theme);
25
- ManagedStyles.createOrUpdateStyle(cssText, "data-ui5-theme-properties", packageName);
26
+ const cssData = await Themes.getThemeProperties(packageName, theme);
27
+ if (cssData) {
28
+ ManagedStyles.createOrUpdateStyle(cssData, "data-ui5-theme-properties", packageName);
29
+ }
26
30
  });
27
31
  };
28
32
  const detectExternalTheme = () => {
@@ -1,5 +1,6 @@
1
1
  sap.ui.define(function () { 'use strict';
2
2
 
3
+ const warnings = new Set();
3
4
  const getThemeMetadata = () => {
4
5
  let el = document.querySelector(".sapThemeMetaData-Base-baseLib") || document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");
5
6
  if (el) {
@@ -8,9 +9,12 @@ sap.ui.define(function () { 'use strict';
8
9
  el = document.createElement("span");
9
10
  el.style.display = "none";
10
11
  el.classList.add("sapThemeMetaData-Base-baseLib");
11
- el.classList.add("sapThemeMetaData-UI5-sap-ui-core");
12
12
  document.body.appendChild(el);
13
- const metadata = getComputedStyle(el).backgroundImage;
13
+ let metadata = getComputedStyle(el).backgroundImage;
14
+ if (metadata === "none") {
15
+ el.classList.add("sapThemeMetaData-UI5-sap-ui-core");
16
+ metadata = getComputedStyle(el).backgroundImage;
17
+ }
14
18
  document.body.removeChild(el);
15
19
  return metadata;
16
20
  };
@@ -23,14 +27,20 @@ sap.ui.define(function () { 'use strict';
23
27
  try {
24
28
  paramsString = decodeURIComponent(paramsString);
25
29
  } catch (ex) {
26
- console.warn("Malformed theme metadata string, unable to decodeURIComponent");
30
+ if (!warnings.has("decode")) {
31
+ console.warn("Malformed theme metadata string, unable to decodeURIComponent");
32
+ warnings.add("decode");
33
+ }
27
34
  return;
28
35
  }
29
36
  }
30
37
  try {
31
38
  return JSON.parse(paramsString);
32
39
  } catch (ex) {
33
- console.warn("Malformed theme metadata string, unable to parse JSON");
40
+ if (!warnings.has("parse")) {
41
+ console.warn("Malformed theme metadata string, unable to parse JSON");
42
+ warnings.add("parse");
43
+ }
34
44
  }
35
45
  }
36
46
  };
@@ -41,7 +51,10 @@ sap.ui.define(function () { 'use strict';
41
51
  themeName = metadata.Path.match(/\.([^.]+)\.css_variables$/)[1];
42
52
  baseThemeName = metadata.Extends[0];
43
53
  } catch (ex) {
44
- console.warn("Malformed theme metadata Object", metadata);
54
+ if (!warnings.has("object")) {
55
+ console.warn("Malformed theme metadata Object", metadata);
56
+ warnings.add("object");
57
+ }
45
58
  return;
46
59
  }
47
60
  return {
@@ -3,30 +3,32 @@ sap.ui.define(['exports', './isNodeHidden', './isNodeClickable'], function (expo
3
3
  const isFocusTrap = el => {
4
4
  return el.hasAttribute("data-ui5-focus-trap");
5
5
  };
6
- const getFirstFocusableElement = async container => {
6
+ const getFirstFocusableElement = async (container, startFromContainer) => {
7
7
  if (!container || isNodeHidden(container)) {
8
8
  return null;
9
9
  }
10
- return findFocusableElement(container, true);
10
+ return findFocusableElement(container, true, startFromContainer);
11
11
  };
12
- const getLastFocusableElement = async container => {
12
+ const getLastFocusableElement = async (container, startFromContainer) => {
13
13
  if (!container || isNodeHidden(container)) {
14
14
  return null;
15
15
  }
16
- return findFocusableElement(container, false);
16
+ return findFocusableElement(container, false, startFromContainer);
17
17
  };
18
18
  const isElemFocusable = el => {
19
19
  return el.hasAttribute("data-ui5-focus-redirect") || !isNodeHidden(el);
20
20
  };
21
- const findFocusableElement = async (container, forward) => {
21
+ const findFocusableElement = async (container, forward, startFromContainer) => {
22
22
  let child;
23
23
  if (container.shadowRoot) {
24
24
  child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
25
25
  } else if (container.assignedNodes && container.assignedNodes()) {
26
26
  const assignedElements = container.assignedNodes();
27
27
  child = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];
28
+ } else if (startFromContainer) {
29
+ child = container;
28
30
  } else {
29
- child = forward ? container.firstChild : container.lastChild;
31
+ child = forward ? container.firstElementChild : container.lastElementChild;
30
32
  }
31
33
  let focusableDescendant;
32
34
  while (child) {
@@ -20,6 +20,9 @@ sap.ui.define(['exports', './isNodeTabbable'], function (exports, isNodeTabbable
20
20
  const children = currentNode.shadowRoot.children;
21
21
  currentNode = Array.from(children).find(node => node.tagName !== "STYLE");
22
22
  }
23
+ if (!currentNode) {
24
+ return;
25
+ }
23
26
  if (isNodeTabbable(currentNode)) {
24
27
  tabbablesNodes.push(currentNode);
25
28
  }
@@ -4,7 +4,7 @@ sap.ui.define(function () { 'use strict';
4
4
  if (node.nodeName === "SLOT") {
5
5
  return false;
6
6
  }
7
- return (node.offsetWidth <= 0 && node.offsetHeight <= 0) || node.style.visibility === "hidden";
7
+ return (node.offsetWidth <= 0 && node.offsetHeight <= 0) || (node.style && node.style.visibility === "hidden");
8
8
  };
9
9
 
10
10
  return isNodeHidden;
@@ -1650,6 +1650,9 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
1650
1650
  path: "M256 410c20 0 38-18 38-39 0-20-18-38-38-38-21 0-39 18-39 38 0 21 18 39 39 39zm83-166c12-15 19-29 19-52 0-53-51-89-102-89s-103 36-103 89c0 16 13 26 29 26 15 0 25-10 25-26 0-18 18-38 51-38 34 0 52 20 52 38 0 11-3 18-8 23-7 9-37 22-46 28-8 6-32 19-32 39 0 15 16 31 35 26 27-6 20-24 34-32 15-7 34-20 46-32zM256 0c141 0 256 115 256 256S397 512 256 512 0 397 0 256 115 0 256 0zm0 461c112 0 205-92 205-205 0-112-93-205-205-205-113 0-205 93-205 205 0 113 92 205 205 205z",
1651
1651
  ltr: true
1652
1652
  },
1653
+ "qr-code": {
1654
+ path: "M205 0c14 0 25 12 25 26v179c0 14-11 26-25 26H26c-14 0-26-12-26-26V26C0 12 12 0 26 0h179zm-26 179V51H51v128h128zm26 103c14 0 25 11 25 25v180c0 14-11 25-25 25H26c-14 0-26-11-26-25V307c0-14 12-25 26-25h179zm-26 179V333H51v128h128zm-77-307c-14 0-25-12-25-26v-25c0-15 11-26 25-26h26c14 0 26 11 26 26v25c0 14-12 26-26 26h-26zm0 281c-14 0-25-11-25-25v-26c0-14 11-25 25-25h26c14 0 26 11 26 25v26c0 14-12 25-26 25h-26zm384-128c15 0 26 12 26 26s-11 26-26 26h-51c-14 0-25-12-25-26v-31h-57c-14 0-26-12-26-26s12-25 26-25h82c14 0 26 11 26 25v31h25zm0-307c15 0 26 12 26 26v179c0 14-11 26-26 26H307c-14 0-25-12-25-26V26c0-14 11-26 25-26h179zm-25 179V51H333v128h128zm25 256c15 0 26 12 26 26v26c0 14-11 25-26 25h-25c-14 0-26-11-26-25v-26c0-14 12-26 26-26h25zm-102 26c14 0 26 11 26 26 0 14-12 25-26 25H282c-14 0-26-11-26-25v-52c0-14 12-25 26-25s25 11 25 25v26h77zm-26-51h-25c-14 0-26-12-26-26v-25c0-15 12-26 26-26h25c15 0 26 11 26 26v25c0 14-11 26-26 26zm26-256c-14 0-26-12-26-26v-25c0-15 12-26 26-26h26c14 0 25 11 25 26v25c0 14-11 26-25 26h-26z"
1655
+ },
1653
1656
  "radar-chart": {
1654
1657
  path: "M473.5 131c7 5 13 12 13 23v203c0 10-6 18-13 23l-204 127c-7 5-17 5-27 0l-204-127c-8-5-13-13-13-23V154c0-8 5-18 13-23l204-127c7-5 17-5 27 0zm-41 213V169l-178-112-178 112v175l178 112zm-249-206l51-50c8-8 15-11 23-11 7 0 13 5 18 13l53 89h53c10 0 21 8 23 18 3 10 0 23-7 28l-31 23 36 58c7 13 2 28-8 36l-102 63c-7 5-15 5-23 3-7-3-12-8-15-15l-15-49-46 33c-7 5-15 5-23 3-7-3-12-8-15-15l-51-153c-2-8-2-15 3-23 5-7 12-10 20-10h56l-5-15c-3-10 0-21 5-26zm8 178l30-23-20-63h-38zm109-81l-3-5h-43l10 30zm46 76l-21-33-43 33 10 33zm-79-132l-18-33-15 15 5 18h28z"
1655
1658
  },
@@ -1653,6 +1653,9 @@ sap.ui.define(['exports'], function (exports) { 'use strict';
1653
1653
  path: "M256 0q53 0 100 20t81.5 54.5T492 156t20 100-20 99.5-54.5 81.5-81.5 55-100 20-99.5-20T75 437t-55-81.5T0 256t20-100 55-81.5T156.5 20 256 0zm0 480q46 0 87-17.5t71.5-48 48-71.5 17.5-87-17.5-87-48-71.5-71.5-48T256 32t-87 17.5-71.5 48-48 71.5T32 256t17.5 87 48 71.5 71.5 48 87 17.5zm-3-376q43 0 68.5 21.5T347 181q0 22-13 36.5T309 246q-8 9-15 15t-11.5 13.5-6.5 18 0 27.5h-49q0-16 .5-27.5t4.5-21 12-18.5 22-21l21-17q7-5 14-16t7-21q0-15-14.5-29T256 135t-38 14.5-19 37.5h-49q0-14 7.5-29t21-27 32.5-19.5 42-7.5zm3 248q14 0 23 9t9 23q0 13-9 22.5t-23 9.5q-13 0-22.5-9.5T224 384q0-14 9.5-23t22.5-9z",
1654
1654
  ltr: true
1655
1655
  },
1656
+ "qr-code": {
1657
+ path: "M481 0q14 0 23 9t9 23v98h-32V32h-97V0h97zM33 130H1V32q0-14 9-23t23-9h97v32H33v98zm290 91q-14 0-24.5-10.5T288 186V99q0-14 10.5-24.5T323 64h89q14 0 24.5 10.5T447 99v87q0 14-10.5 24.5T412 221h-89zm-53 21q0 12-8 20t-19 8H129v-28h114V64h27v178zM65 101q0-14 11-24.5T101 66h89q14 0 24.5 10.5T225 101v87q0 14-10.5 24.5T190 223h-89q-14 0-25-10.5T65 188v-87zm255 85q0 3 3 3h89q4 0 4-3V99q0-3-4-3h-89q-3 0-3 3v87zm-127-85q0-3-3-3h-89q-3 0-3 3v87q0 3 3 3h89q3 0 3-3v-87zm-32 59h-32v-32h32v32zm224 0h-32v-32h32v32zm-24 127v-22h-72v-28h72q12 0 19.5 8.5T388 265v22h-27zM68 240h38v32H68v-32zm122 47q15 0 25.5 10t10.5 25v86q0 15-10.5 25.5T190 444h-89q-14 0-24.5-10.5T66 408v-86q0-15 10.5-25t24.5-10h89zm67 1h64v32h-64v-32zm160 0h32v32h-32v-32zm-224 34q0-4-3-4h-89q-3 0-3 4v86q0 4 3 4h89q3 0 3-4v-86zm192 40h-44v22h-28v-22q0-12 8-19.5t20-7.5h44v27zm60 55q0 11-8 19.5t-19 8.5h-65v-28h65v-65h27v65zm-316-65h32v32h-32v-32zm115 43q0-12 8-20t19-8h18v28h-18v53h-27v-53zM33 480h96v32H33q-14 0-23-9t-9-23v-98h32v98zm448-98h32v98q0 14-9 23t-23 9h-97v-32h97v-98z"
1658
+ },
1656
1659
  "radar-chart": {
1657
1660
  path: "M257.5 0l217 138v236l-217 138-219-138V138zm-197 150v212l197 123 195-123V150l-195-123zm11 23q0-11 8-18.5t19-7.5q17 0 24 13h265q6-13 23-13 20 0 28 23 0 13-7 22t-21 9q-11 0-18-7l-258 143q0 11-8 19t-19 8q-12 0-20-7.5t-8-18.5q0-8 4.5-14.5T94.5 313l-6-114q-17-8-17-26zm39 25l7 114q2 0 3.5 1t3.5 2l243-132h-243q-5 11-14 15zm118 93l31 103q6 0 10 4l86-65q0-8 1-14.5t6-10.5l-35-70 20-11 38 73q11 0 17 8t6 19-6.5 19-20.5 8q-6 0-12-3l-87 64q0 13-4.5 23.5T256.5 449q-12 0-20-8.5t-8-19.5q0-13 10-20l-30-100zm-13-137l21-56q-8-8-8-19t7.5-19 20.5-8q11 0 19 8t8 19q0 7-5 15l31 60h-26q-5-10-11.5-24.5T257.5 107l-19 47h-23zm-18 45l3-10h25l-7 19q5 8 5 17 0 14-8 20l3 12-20 11-5-15q-11-1-17.5-9t-6.5-18q0-11 7-19t21-8zm130-10l3 8-20 10-9-18h26z"
1658
1661
  },
@@ -3,9 +3,9 @@ sap.ui.define(['require', 'sap/ui/webc/common/thirdparty/base/asset-registries/I
3
3
  const loadIconsBundle = async (collection) => {
4
4
  let iconData = null;
5
5
  if (collection === "SAP-icons-v5") {
6
- iconData = (await new Promise(function (resolve, reject) { require(['../SAP-icons-e7d3b275'], resolve, reject) })).default;
6
+ iconData = (await new Promise(function (resolve, reject) { require(['../SAP-icons-027beaa9'], resolve, reject) })).default;
7
7
  } else {
8
- iconData = (await new Promise(function (resolve, reject) { require(['../SAP-icons-253bf13b'], resolve, reject) })).default;
8
+ iconData = (await new Promise(function (resolve, reject) { require(['../SAP-icons-340ee996'], resolve, reject) })).default;
9
9
  }
10
10
  if (typeof iconData === "string" && iconData.endsWith(".json")) {
11
11
  throw new Error("[icons] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build or use `import \"@ui5/webcomponents-icons/dist/Assets-static.js\". Check the \"Assets\" documentation for more information.");
@@ -0,0 +1,8 @@
1
+ sap.ui.define(['sap/ui/webc/common/thirdparty/base/config/Theme', './v5/qr-code', './v4/qr-code'], function (Theme, qrCode$2, qrCode$1) { 'use strict';
2
+
3
+ const pathData = Theme.isTheme("sap_horizon") ? qrCode$1 : qrCode$2;
4
+ var qrCode = { pathData };
5
+
6
+ return qrCode;
7
+
8
+ });
@@ -0,0 +1,13 @@
1
+ sap.ui.define(['sap/ui/webc/common/thirdparty/base/asset-registries/Icons'], function (Icons) { 'use strict';
2
+
3
+ const name = "qr-code";
4
+ const pathData = "M481 0q14 0 23 9t9 23v98h-32V32h-97V0h97zM33 130H1V32q0-14 9-23t23-9h97v32H33v98zm290 91q-14 0-24.5-10.5T288 186V99q0-14 10.5-24.5T323 64h89q14 0 24.5 10.5T447 99v87q0 14-10.5 24.5T412 221h-89zm-53 21q0 12-8 20t-19 8H129v-28h114V64h27v178zM65 101q0-14 11-24.5T101 66h89q14 0 24.5 10.5T225 101v87q0 14-10.5 24.5T190 223h-89q-14 0-25-10.5T65 188v-87zm255 85q0 3 3 3h89q4 0 4-3V99q0-3-4-3h-89q-3 0-3 3v87zm-127-85q0-3-3-3h-89q-3 0-3 3v87q0 3 3 3h89q3 0 3-3v-87zm-32 59h-32v-32h32v32zm224 0h-32v-32h32v32zm-24 127v-22h-72v-28h72q12 0 19.5 8.5T388 265v22h-27zM68 240h38v32H68v-32zm122 47q15 0 25.5 10t10.5 25v86q0 15-10.5 25.5T190 444h-89q-14 0-24.5-10.5T66 408v-86q0-15 10.5-25t24.5-10h89zm67 1h64v32h-64v-32zm160 0h32v32h-32v-32zm-224 34q0-4-3-4h-89q-3 0-3 4v86q0 4 3 4h89q3 0 3-4v-86zm192 40h-44v22h-28v-22q0-12 8-19.5t20-7.5h44v27zm60 55q0 11-8 19.5t-19 8.5h-65v-28h65v-65h27v65zm-316-65h32v32h-32v-32zm115 43q0-12 8-20t19-8h18v28h-18v53h-27v-53zM33 480h96v32H33q-14 0-23-9t-9-23v-98h32v98zm448-98h32v98q0 14-9 23t-23 9h-97v-32h97v-98z";
5
+ const ltr = false;
6
+ const collection = "SAP-icons";
7
+ const packageName = "@ui5/webcomponents-icons";
8
+ Icons.registerIcon(name, { pathData, ltr, collection, packageName });
9
+ var pathDataV5 = { pathData };
10
+
11
+ return pathDataV5;
12
+
13
+ });
@@ -0,0 +1,13 @@
1
+ sap.ui.define(['sap/ui/webc/common/thirdparty/base/asset-registries/Icons'], function (Icons) { 'use strict';
2
+
3
+ const name = "qr-code";
4
+ const pathData = "M205 0c14 0 25 12 25 26v179c0 14-11 26-25 26H26c-14 0-26-12-26-26V26C0 12 12 0 26 0h179zm-26 179V51H51v128h128zm26 103c14 0 25 11 25 25v180c0 14-11 25-25 25H26c-14 0-26-11-26-25V307c0-14 12-25 26-25h179zm-26 179V333H51v128h128zm-77-307c-14 0-25-12-25-26v-25c0-15 11-26 25-26h26c14 0 26 11 26 26v25c0 14-12 26-26 26h-26zm0 281c-14 0-25-11-25-25v-26c0-14 11-25 25-25h26c14 0 26 11 26 25v26c0 14-12 25-26 25h-26zm384-128c15 0 26 12 26 26s-11 26-26 26h-51c-14 0-25-12-25-26v-31h-57c-14 0-26-12-26-26s12-25 26-25h82c14 0 26 11 26 25v31h25zm0-307c15 0 26 12 26 26v179c0 14-11 26-26 26H307c-14 0-25-12-25-26V26c0-14 11-26 25-26h179zm-25 179V51H333v128h128zm25 256c15 0 26 12 26 26v26c0 14-11 25-26 25h-25c-14 0-26-11-26-25v-26c0-14 12-26 26-26h25zm-102 26c14 0 26 11 26 26 0 14-12 25-26 25H282c-14 0-26-11-26-25v-52c0-14 12-25 26-25s25 11 25 25v26h77zm-26-51h-25c-14 0-26-12-26-26v-25c0-15 12-26 26-26h25c15 0 26 11 26 26v25c0 14-11 26-26 26zm26-256c-14 0-26-12-26-26v-25c0-15 12-26 26-26h26c14 0 25 11 25 26v25c0 14-11 26-25 26h-26z";
5
+ const ltr = false;
6
+ const collection = "SAP-icons-v5";
7
+ const packageName = "@ui5/webcomponents-icons";
8
+ Icons.registerIcon(name, { pathData, ltr, collection, packageName });
9
+ var pathDataV4 = { pathData };
10
+
11
+ return pathDataV4;
12
+
13
+ });