@ui5/webcomponents-base 0.0.0-d9b978d1d → 0.0.0-da0d3eb88

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 (251) hide show
  1. package/CHANGELOG.md +653 -0
  2. package/README.md +0 -8
  3. package/config/wdio.conf.cjs +0 -8
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/Boot.d.ts +3 -2
  6. package/dist/Boot.js +8 -6
  7. package/dist/Boot.js.map +1 -1
  8. package/dist/Device.d.ts +1 -2
  9. package/dist/Device.js +5 -12
  10. package/dist/Device.js.map +1 -1
  11. package/dist/IgnoreCustomElements.d.ts +3 -5
  12. package/dist/IgnoreCustomElements.js +3 -5
  13. package/dist/IgnoreCustomElements.js.map +1 -1
  14. package/dist/InitialConfiguration.d.ts +1 -2
  15. package/dist/InitialConfiguration.js +1 -5
  16. package/dist/InitialConfiguration.js.map +1 -1
  17. package/dist/Keys.d.ts +3 -1
  18. package/dist/Keys.js +5 -1
  19. package/dist/Keys.js.map +1 -1
  20. package/dist/ManagedStyles.js +24 -98
  21. package/dist/ManagedStyles.js.map +1 -1
  22. package/dist/MediaRange.d.ts +6 -12
  23. package/dist/MediaRange.js +21 -31
  24. package/dist/MediaRange.js.map +1 -1
  25. package/dist/UI5Element.d.ts +36 -54
  26. package/dist/UI5Element.js +152 -101
  27. package/dist/UI5Element.js.map +1 -1
  28. package/dist/UI5ElementMetadata.d.ts +12 -13
  29. package/dist/UI5ElementMetadata.js +24 -13
  30. package/dist/UI5ElementMetadata.js.map +1 -1
  31. package/dist/asset-registries/Icons.js +1 -1
  32. package/dist/asset-registries/Icons.js.map +1 -1
  33. package/dist/asset-registries/Illustrations.d.ts +1 -0
  34. package/dist/asset-registries/Illustrations.js +12 -19
  35. package/dist/asset-registries/Illustrations.js.map +1 -1
  36. package/dist/asset-registries/LocaleData.js +1 -1
  37. package/dist/asset-registries/LocaleData.js.map +1 -1
  38. package/dist/asset-registries/i18n.d.ts +2 -2
  39. package/dist/asset-registries/i18n.js +2 -2
  40. package/dist/asset-registries/i18n.js.map +1 -1
  41. package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +1 -1
  42. package/dist/asset-registries/util/IconCollectionsByTheme.js +1 -1
  43. package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -1
  44. package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +3 -3
  45. package/dist/asset-registries/util/getIconCollectionByTheme.js +3 -3
  46. package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -1
  47. package/dist/config/AnimationMode.js +2 -1
  48. package/dist/config/AnimationMode.js.map +1 -1
  49. package/dist/config/Icons.d.ts +7 -7
  50. package/dist/config/Icons.js +7 -7
  51. package/dist/config/Icons.js.map +1 -1
  52. package/dist/config/Language.d.ts +1 -1
  53. package/dist/config/Language.js +6 -3
  54. package/dist/config/Language.js.map +1 -1
  55. package/dist/config/Theme.d.ts +4 -3
  56. package/dist/config/Theme.js +13 -6
  57. package/dist/config/Theme.js.map +1 -1
  58. package/dist/config/ThemeRoot.d.ts +2 -4
  59. package/dist/config/ThemeRoot.js +2 -4
  60. package/dist/config/ThemeRoot.js.map +1 -1
  61. package/dist/config/Timezone.d.ts +1 -1
  62. package/dist/config/Timezone.js +1 -1
  63. package/dist/config/Timezone.js.map +1 -1
  64. package/dist/css/SystemCSSVars.css +0 -8
  65. package/dist/decorators/customElement.d.ts +3 -3
  66. package/dist/decorators/customElement.js +11 -6
  67. package/dist/decorators/customElement.js.map +1 -1
  68. package/dist/decorators/event.d.ts +5 -2
  69. package/dist/decorators/event.js.map +1 -1
  70. package/dist/decorators.d.ts +5 -0
  71. package/dist/decorators.js +6 -0
  72. package/dist/decorators.js.map +1 -0
  73. package/dist/delegate/ItemNavigation.d.ts +8 -8
  74. package/dist/delegate/ItemNavigation.js +9 -9
  75. package/dist/delegate/ItemNavigation.js.map +1 -1
  76. package/dist/delegate/ResizeHandler.d.ts +4 -6
  77. package/dist/delegate/ResizeHandler.js +4 -6
  78. package/dist/delegate/ResizeHandler.js.map +1 -1
  79. package/dist/features/InputElementsFormSupport.d.ts +18 -0
  80. package/dist/features/InputElementsFormSupport.js +40 -0
  81. package/dist/features/InputElementsFormSupport.js.map +1 -0
  82. package/dist/features/OpenUI5Support.d.ts +0 -2
  83. package/dist/features/OpenUI5Support.js +6 -21
  84. package/dist/features/OpenUI5Support.js.map +1 -1
  85. package/dist/features/patchPatcher.d.ts +11 -0
  86. package/dist/features/patchPatcher.js +11 -0
  87. package/dist/features/patchPatcher.js.map +1 -0
  88. package/dist/features/patchPopup.d.ts +14 -0
  89. package/dist/features/patchPopup.js +50 -0
  90. package/dist/features/patchPopup.js.map +1 -0
  91. package/dist/generated/AssetParameters.js +1 -1
  92. package/dist/generated/AssetParameters.js.map +1 -1
  93. package/dist/generated/VersionInfo.js +5 -5
  94. package/dist/generated/VersionInfo.js.map +1 -1
  95. package/dist/generated/css/SystemCSSVars.css.js +1 -1
  96. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  97. package/dist/i18nBundle.d.ts +1 -3
  98. package/dist/i18nBundle.js +1 -4
  99. package/dist/i18nBundle.js.map +1 -1
  100. package/dist/locale/applyDirection.d.ts +3 -2
  101. package/dist/locale/applyDirection.js +3 -2
  102. package/dist/locale/applyDirection.js.map +1 -1
  103. package/dist/locale/getEffectiveDir.d.ts +1 -1
  104. package/dist/locale/getEffectiveDir.js +3 -19
  105. package/dist/locale/getEffectiveDir.js.map +1 -1
  106. package/dist/renderer/LitRenderer.js +2 -8
  107. package/dist/renderer/LitRenderer.js.map +1 -1
  108. package/dist/renderer/directives/style-map.d.ts +13 -0
  109. package/dist/renderer/directives/style-map.js +59 -59
  110. package/dist/renderer/directives/style-map.js.map +1 -0
  111. package/dist/renderer/executeTemplate.d.ts +8 -0
  112. package/dist/renderer/executeTemplate.js +1 -0
  113. package/dist/renderer/executeTemplate.js.map +1 -1
  114. package/dist/sap/base/Log.js +698 -188
  115. package/dist/sap/base/assert.js +28 -1
  116. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  117. package/dist/sap/base/security/URLListValidator.js +253 -6
  118. package/dist/sap/base/security/encodeCSS.js +34 -8
  119. package/dist/sap/base/security/encodeXML.js +47 -17
  120. package/dist/sap/base/security/sanitizeHTML.js +35 -13
  121. package/dist/sap/base/strings/toHex.js +27 -2
  122. package/dist/sap/base/util/now.js +24 -3
  123. package/dist/sap/base/util/uid.js +27 -0
  124. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  125. package/dist/ssr-dom-shim.d.ts +1 -0
  126. package/dist/ssr-dom-shim.js +12 -0
  127. package/dist/ssr-dom-shim.js.map +1 -0
  128. package/dist/ssr-dom.d.ts +0 -0
  129. package/dist/ssr-dom.js +0 -0
  130. package/dist/theming/getConstructableStyle.d.ts +1 -1
  131. package/dist/theming/getConstructableStyle.js +3 -3
  132. package/dist/theming/getConstructableStyle.js.map +1 -1
  133. package/dist/theming/getEffectiveStyle.d.ts +1 -1
  134. package/dist/theming/getEffectiveStyle.js +5 -12
  135. package/dist/theming/getEffectiveStyle.js.map +1 -1
  136. package/dist/types/AnimationMode.d.ts +0 -8
  137. package/dist/types/AnimationMode.js +0 -8
  138. package/dist/types/AnimationMode.js.map +1 -1
  139. package/dist/types/AriaHasPopup.d.ts +32 -0
  140. package/dist/types/AriaHasPopup.js +34 -0
  141. package/dist/types/AriaHasPopup.js.map +1 -0
  142. package/dist/types/AriaLandmarkRole.d.ts +79 -0
  143. package/dist/types/AriaLandmarkRole.js +81 -0
  144. package/dist/types/AriaLandmarkRole.js.map +1 -0
  145. package/dist/types/AriaRole.d.ts +27 -0
  146. package/dist/types/AriaRole.js +29 -0
  147. package/dist/types/AriaRole.js.map +1 -0
  148. package/dist/types/CSSColor.d.ts +0 -4
  149. package/dist/types/CSSColor.js +0 -4
  150. package/dist/types/CSSColor.js.map +1 -1
  151. package/dist/types/CSSSize.d.ts +0 -4
  152. package/dist/types/CSSSize.js +0 -4
  153. package/dist/types/CSSSize.js.map +1 -1
  154. package/dist/types/CalendarType.d.ts +0 -9
  155. package/dist/types/CalendarType.js +0 -9
  156. package/dist/types/CalendarType.js.map +1 -1
  157. package/dist/types/DOMReference.d.ts +1 -5
  158. package/dist/types/DOMReference.js +1 -5
  159. package/dist/types/DOMReference.js.map +1 -1
  160. package/dist/types/DataType.d.ts +1 -6
  161. package/dist/types/DataType.js +1 -6
  162. package/dist/types/DataType.js.map +1 -1
  163. package/dist/types/Float.d.ts +0 -3
  164. package/dist/types/Float.js +0 -3
  165. package/dist/types/Float.js.map +1 -1
  166. package/dist/types/Integer.d.ts +0 -3
  167. package/dist/types/Integer.js +0 -3
  168. package/dist/types/Integer.js.map +1 -1
  169. package/dist/types/InvisibleMessageMode.d.ts +0 -6
  170. package/dist/types/InvisibleMessageMode.js +0 -6
  171. package/dist/types/InvisibleMessageMode.js.map +1 -1
  172. package/dist/types/ItemNavigationBehavior.d.ts +0 -6
  173. package/dist/types/ItemNavigationBehavior.js +0 -6
  174. package/dist/types/ItemNavigationBehavior.js.map +1 -1
  175. package/dist/types/MovePlacement.d.ts +20 -0
  176. package/dist/types/MovePlacement.js +22 -0
  177. package/dist/types/MovePlacement.js.map +1 -0
  178. package/dist/types/NavigationMode.d.ts +0 -8
  179. package/dist/types/NavigationMode.js +0 -8
  180. package/dist/types/NavigationMode.js.map +1 -1
  181. package/dist/types/Orientation.d.ts +16 -0
  182. package/dist/types/Orientation.js +18 -0
  183. package/dist/types/Orientation.js.map +1 -0
  184. package/dist/types/ValueState.d.ts +3 -17
  185. package/dist/types/ValueState.js +3 -17
  186. package/dist/types/ValueState.js.map +1 -1
  187. package/dist/types.d.ts +24 -1
  188. package/dist/types.js.map +1 -1
  189. package/dist/updateShadowRoot.d.ts +1 -2
  190. package/dist/updateShadowRoot.js +5 -29
  191. package/dist/updateShadowRoot.js.map +1 -1
  192. package/dist/util/InvisibleMessage.js +2 -2
  193. package/dist/util/InvisibleMessage.js.map +1 -1
  194. package/dist/util/PopupUtils.d.ts +1 -3
  195. package/dist/util/PopupUtils.js +1 -15
  196. package/dist/util/PopupUtils.js.map +1 -1
  197. package/dist/util/clamp.js +2 -1
  198. package/dist/util/clamp.js.map +1 -1
  199. package/dist/util/createLinkInHead.d.ts +1 -1
  200. package/dist/util/createLinkInHead.js +1 -1
  201. package/dist/util/createLinkInHead.js.map +1 -1
  202. package/dist/util/detectNavigatorLanguage.d.ts +2 -2
  203. package/dist/util/detectNavigatorLanguage.js +6 -1
  204. package/dist/util/detectNavigatorLanguage.js.map +1 -1
  205. package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
  206. package/dist/util/dragAndDrop/DragRegistry.js +68 -0
  207. package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
  208. package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
  209. package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
  210. package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
  211. package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
  212. package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
  213. package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
  214. package/dist/util/getClassCopy.d.ts +17 -12
  215. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
  216. package/dist/util/getDesigntimePropertyAsArray.js +2 -1
  217. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
  218. package/index.js +1 -17
  219. package/package-scripts.cjs +18 -14
  220. package/package.json +20 -8
  221. package/src/css/SystemCSSVars.css +0 -8
  222. package/tsconfig.json +3 -0
  223. package/.eslintignore +0 -16
  224. package/.eslintrc.cjs +0 -3
  225. package/bundle.esm.js +0 -67
  226. package/dist/CSP.d.ts +0 -30
  227. package/dist/CSP.js +0 -51
  228. package/dist/CSP.js.map +0 -1
  229. package/dist/StaticArea.js +0 -7
  230. package/dist/StaticArea.js.map +0 -1
  231. package/dist/StaticAreaItem.d.ts +0 -37
  232. package/dist/StaticAreaItem.js +0 -102
  233. package/dist/StaticAreaItem.js.map +0 -1
  234. package/dist/api.json +0 -1
  235. package/dist/config/RTL.d.ts +0 -7
  236. package/dist/config/RTL.js +0 -37
  237. package/dist/config/RTL.js.map +0 -1
  238. package/dist/theming/getEffectiveLinksHrefs.d.ts +0 -3
  239. package/dist/theming/getEffectiveLinksHrefs.js +0 -17
  240. package/dist/theming/getEffectiveLinksHrefs.js.map +0 -1
  241. package/dist/theming/preloadLinks.d.ts +0 -3
  242. package/dist/theming/preloadLinks.js +0 -19
  243. package/dist/theming/preloadLinks.js.map +0 -1
  244. package/dist/util/createStyleInHead.d.ts +0 -8
  245. package/dist/util/createStyleInHead.js +0 -18
  246. package/dist/util/createStyleInHead.js.map +0 -1
  247. package/lib/generate-asset-parameters/index.js +0 -27
  248. package/lib/generate-styles/index.js +0 -31
  249. package/lib/generate-version-info/index.js +0 -32
  250. package/src/renderer/directives/style-map.js +0 -72
  251. package/used-modules.txt +0 -10
@@ -1,8 +1,5 @@
1
- import createStyleInHead from "./util/createStyleInHead.js";
2
- import createLinkInHead from "./util/createLinkInHead.js";
3
- import { shouldUseLinks, getUrl } from "./CSP.js";
4
- import { isSafari } from "./Device.js";
5
1
  import { getCurrentRuntimeIndex, compareRuntimes } from "./Runtimes.js";
2
+ const isSSR = typeof document === "undefined";
6
3
  const getStyleId = (name, value) => {
7
4
  return value ? `${name}|${value}` : name;
8
5
  };
@@ -15,114 +12,43 @@ const shouldUpdate = (runtimeIndex) => {
15
12
  const createStyle = (data, name, value = "", theme) => {
16
13
  const content = typeof data === "string" ? data : data.content;
17
14
  const currentRuntimeIndex = getCurrentRuntimeIndex();
18
- if (shouldUseLinks()) {
19
- const attributes = {};
20
- attributes[name] = value;
21
- if (theme) {
22
- attributes["data-ui5-runtime-index"] = currentRuntimeIndex;
23
- attributes["data-ui5-theme"] = theme;
24
- }
25
- const href = getUrl(data.packageName, data.fileName);
26
- createLinkInHead(href, attributes);
27
- }
28
- else if (document.adoptedStyleSheets && !isSafari()) {
29
- const stylesheet = new CSSStyleSheet();
30
- stylesheet.replaceSync(content);
31
- stylesheet._ui5StyleId = getStyleId(name, value); // set an id so that we can find the style later
32
- if (theme) {
33
- stylesheet._ui5RuntimeIndex = currentRuntimeIndex;
34
- stylesheet._ui5Theme = theme;
35
- }
36
- document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
37
- }
38
- else {
39
- const attributes = {};
40
- attributes[name] = value;
41
- if (theme) {
42
- attributes["data-ui5-runtime-index"] = currentRuntimeIndex;
43
- attributes["data-ui5-theme"] = theme;
44
- }
45
- createStyleInHead(content, attributes);
46
- }
15
+ const stylesheet = new CSSStyleSheet();
16
+ stylesheet.replaceSync(content);
17
+ stylesheet._ui5StyleId = getStyleId(name, value); // set an id so that we can find the style later
18
+ if (theme) {
19
+ stylesheet._ui5RuntimeIndex = currentRuntimeIndex;
20
+ stylesheet._ui5Theme = theme;
21
+ }
22
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
47
23
  };
48
24
  const updateStyle = (data, name, value = "", theme) => {
49
25
  const content = typeof data === "string" ? data : data.content;
50
26
  const currentRuntimeIndex = getCurrentRuntimeIndex();
51
- if (shouldUseLinks()) {
52
- const link = document.querySelector(`head>link[${name}="${value}"]`);
53
- const href = getUrl(data.packageName, data.fileName);
54
- if (!theme) {
55
- link.href = href;
56
- }
57
- else {
58
- const linkRuntimeIndex = link.getAttribute("data-ui5-runtime-index") || undefined;
59
- const linkTheme = link.getAttribute("data-ui5-theme");
60
- if (linkTheme !== theme || shouldUpdate(linkRuntimeIndex)) {
61
- link.href = href;
62
- link.setAttribute("data-ui5-runtime-index", String(currentRuntimeIndex));
63
- link.setAttribute("data-ui5-theme", theme);
64
- }
65
- }
27
+ const stylesheet = document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
28
+ if (!stylesheet) {
29
+ return;
66
30
  }
67
- else if (document.adoptedStyleSheets && !isSafari()) {
68
- const stylesheet = document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
69
- if (!stylesheet) {
70
- return;
71
- }
72
- if (!theme) {
73
- stylesheet.replaceSync(content || "");
74
- }
75
- else {
76
- const stylesheetRuntimeIndex = stylesheet._ui5RuntimeIndex;
77
- const stylesheetTheme = stylesheet._ui5Theme;
78
- if (stylesheetTheme !== theme || shouldUpdate(stylesheetRuntimeIndex)) {
79
- stylesheet.replaceSync(content || "");
80
- stylesheet._ui5RuntimeIndex = String(currentRuntimeIndex);
81
- stylesheet._ui5Theme = theme;
82
- }
83
- }
31
+ if (!theme) {
32
+ stylesheet.replaceSync(content || "");
84
33
  }
85
34
  else {
86
- const style = document.querySelector(`head>style[${name}="${value}"]`);
87
- if (!style) {
88
- return;
89
- }
90
- if (!theme) {
91
- style.textContent = content || "";
92
- }
93
- else {
94
- const styleRuntimeIndex = style.getAttribute("data-ui5-runtime-index") || undefined;
95
- const styleTheme = style.getAttribute("data-ui5-theme");
96
- if (styleTheme !== theme || shouldUpdate(styleRuntimeIndex)) {
97
- style.textContent = content || "";
98
- style.setAttribute("data-ui5-runtime-index", String(currentRuntimeIndex));
99
- style.setAttribute("data-ui5-theme", theme);
100
- }
35
+ const stylesheetRuntimeIndex = stylesheet._ui5RuntimeIndex;
36
+ const stylesheetTheme = stylesheet._ui5Theme;
37
+ if (stylesheetTheme !== theme || shouldUpdate(stylesheetRuntimeIndex)) {
38
+ stylesheet.replaceSync(content || "");
39
+ stylesheet._ui5RuntimeIndex = String(currentRuntimeIndex);
40
+ stylesheet._ui5Theme = theme;
101
41
  }
102
42
  }
103
43
  };
104
44
  const hasStyle = (name, value = "") => {
105
- if (shouldUseLinks()) {
106
- return !!document.querySelector(`head>link[${name}="${value}"]`);
107
- }
108
- const styleElement = document.querySelector(`head>style[${name}="${value}"]`);
109
- if (document.adoptedStyleSheets && !isSafari()) {
110
- return !!styleElement || !!document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
45
+ if (isSSR) {
46
+ return true;
111
47
  }
112
- return !!styleElement;
48
+ return !!document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
113
49
  };
114
50
  const removeStyle = (name, value = "") => {
115
- if (shouldUseLinks()) {
116
- const linkElement = document.querySelector(`head>link[${name}="${value}"]`);
117
- linkElement?.parentElement?.removeChild(linkElement);
118
- }
119
- else if (document.adoptedStyleSheets && !isSafari()) {
120
- document.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => sh._ui5StyleId !== getStyleId(name, value));
121
- }
122
- else {
123
- const styleElement = document.querySelector(`head > style[${name}="${value}"]`);
124
- styleElement?.parentElement?.removeChild(styleElement);
125
- }
51
+ document.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => sh._ui5StyleId !== getStyleId(name, value));
126
52
  };
127
53
  const createOrUpdateStyle = (data, name, value = "", theme) => {
128
54
  if (hasStyle(name, value)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ManagedStyles.js","sourceRoot":"","sources":["../src/ManagedStyles.ts"],"names":[],"mappings":"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","sourcesContent":["import createStyleInHead from \"./util/createStyleInHead.js\";\nimport createLinkInHead from \"./util/createLinkInHead.js\";\nimport { shouldUseLinks, getUrl } from \"./CSP.js\";\nimport { StyleData, StyleDataCSP } from \"./types.js\";\nimport { isSafari } from \"./Device.js\";\nimport { getCurrentRuntimeIndex, compareRuntimes } from \"./Runtimes.js\";\n\nconst getStyleId = (name: string, value: string) => {\n\treturn value ? `${name}|${value}` : name;\n};\n\nconst shouldUpdate = (runtimeIndex: string | undefined) => {\n\tif (runtimeIndex === undefined) {\n\t\treturn true;\n\t}\n\treturn compareRuntimes(getCurrentRuntimeIndex(), parseInt(runtimeIndex)) === 1; // 1 means the current is newer, 0 means the same, -1 means the resource's runtime is newer\n};\n\nconst createStyle = (data: StyleData, name: string, value = \"\", theme?: string) => {\n\tconst content = typeof data === \"string\" ? data : data.content;\n\tconst currentRuntimeIndex = getCurrentRuntimeIndex();\n\n\tif (shouldUseLinks()) {\n\t\tconst attributes = {} as Record<string, any>;\n\t\tattributes[name] = value;\n\t\tif (theme) {\n\t\t\tattributes[\"data-ui5-runtime-index\"] = currentRuntimeIndex;\n\t\t\tattributes[\"data-ui5-theme\"] = theme;\n\t\t}\n\t\tconst href = getUrl((data as StyleDataCSP).packageName, (data as StyleDataCSP).fileName);\n\t\tcreateLinkInHead(href, attributes);\n\t} else if (document.adoptedStyleSheets && !isSafari()) {\n\t\tconst stylesheet = new CSSStyleSheet();\n\t\tstylesheet.replaceSync(content);\n\t\t(stylesheet as Record<string, any>)._ui5StyleId = getStyleId(name, value); // set an id so that we can find the style later\n\t\tif (theme) {\n\t\t\t(stylesheet as Record<string, any>)._ui5RuntimeIndex = currentRuntimeIndex;\n\t\t\t(stylesheet as Record<string, any>)._ui5Theme = theme;\n\t\t}\n\t\tdocument.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];\n\t} else {\n\t\tconst attributes = {} as Record<string, any>;\n\t\tattributes[name] = value;\n\t\tif (theme) {\n\t\t\tattributes[\"data-ui5-runtime-index\"] = currentRuntimeIndex;\n\t\t\tattributes[\"data-ui5-theme\"] = theme;\n\t\t}\n\t\tcreateStyleInHead(content, attributes);\n\t}\n};\n\nconst updateStyle = (data: StyleData, name: string, value = \"\", theme?: string) => {\n\tconst content = typeof data === \"string\" ? data : data.content;\n\tconst currentRuntimeIndex = getCurrentRuntimeIndex();\n\n\tif (shouldUseLinks()) {\n\t\tconst link = document.querySelector(`head>link[${name}=\"${value}\"]`) as HTMLLinkElement;\n\t\tconst href = getUrl((data as StyleDataCSP).packageName, (data as StyleDataCSP).fileName);\n\n\t\tif (!theme) {\n\t\t\tlink.href = href;\n\t\t} else {\n\t\t\tconst linkRuntimeIndex = link.getAttribute(\"data-ui5-runtime-index\") || undefined;\n\t\t\tconst linkTheme = link.getAttribute(\"data-ui5-theme\");\n\t\t\tif (linkTheme !== theme || shouldUpdate(linkRuntimeIndex)) {\n\t\t\t\tlink.href = href;\n\t\t\t\tlink.setAttribute(\"data-ui5-runtime-index\", String(currentRuntimeIndex));\n\t\t\t\tlink.setAttribute(\"data-ui5-theme\", theme);\n\t\t\t}\n\t\t}\n\t} else if (document.adoptedStyleSheets && !isSafari()) {\n\t\tconst stylesheet = document.adoptedStyleSheets.find(sh => (sh as Record<string, any>)._ui5StyleId === getStyleId(name, value));\n\t\tif (!stylesheet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!theme) {\n\t\t\tstylesheet.replaceSync(content || \"\");\n\t\t} else {\n\t\t\tconst stylesheetRuntimeIndex: string | undefined = (stylesheet as Record<string, any>)._ui5RuntimeIndex;\n\t\t\tconst stylesheetTheme: string | undefined = (stylesheet as Record<string, any>)._ui5Theme;\n\t\t\tif (stylesheetTheme !== theme || shouldUpdate(stylesheetRuntimeIndex)) {\n\t\t\t\tstylesheet.replaceSync(content || \"\");\n\t\t\t\t(stylesheet as Record<string, any>)._ui5RuntimeIndex = String(currentRuntimeIndex);\n\t\t\t\t(stylesheet as Record<string, any>)._ui5Theme = theme;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst style = document.querySelector(`head>style[${name}=\"${value}\"]`);\n\t\tif (!style) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!theme) {\n\t\t\tstyle.textContent = content || \"\";\n\t\t} else {\n\t\t\tconst styleRuntimeIndex = style.getAttribute(\"data-ui5-runtime-index\") || undefined;\n\t\t\tconst styleTheme = style.getAttribute(\"data-ui5-theme\");\n\t\t\tif (styleTheme !== theme || shouldUpdate(styleRuntimeIndex)) {\n\t\t\t\tstyle.textContent = content || \"\";\n\t\t\t\tstyle.setAttribute(\"data-ui5-runtime-index\", String(currentRuntimeIndex));\n\t\t\t\tstyle.setAttribute(\"data-ui5-theme\", theme);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst hasStyle = (name: string, value = \"\"): boolean => {\n\tif (shouldUseLinks()) {\n\t\treturn !!document.querySelector(`head>link[${name}=\"${value}\"]`);\n\t}\n\n\tconst styleElement = document.querySelector(`head>style[${name}=\"${value}\"]`);\n\n\tif (document.adoptedStyleSheets && !isSafari()) {\n\t\treturn !!styleElement || !!document.adoptedStyleSheets.find(sh => (sh as Record<string, any>)._ui5StyleId === getStyleId(name, value));\n\t}\n\n\treturn !!styleElement;\n};\n\nconst removeStyle = (name: string, value = \"\") => {\n\tif (shouldUseLinks()) {\n\t\tconst linkElement = document.querySelector(`head>link[${name}=\"${value}\"]`);\n\t\tlinkElement?.parentElement?.removeChild(linkElement);\n\t} else if (document.adoptedStyleSheets && !isSafari()) {\n\t\tdocument.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => (sh as Record<string, any>)._ui5StyleId !== getStyleId(name, value));\n\t} else {\n\t\tconst styleElement = document.querySelector(`head > style[${name}=\"${value}\"]`);\n\t\tstyleElement?.parentElement?.removeChild(styleElement);\n\t}\n};\n\nconst createOrUpdateStyle = (data: StyleData, name: string, value = \"\", theme?: string) => {\n\tif (hasStyle(name, value)) {\n\t\tupdateStyle(data, name, value, theme);\n\t} else {\n\t\tcreateStyle(data, name, value, theme);\n\t}\n};\n\nconst mergeStyles = (style1?: StyleData, style2?: StyleData) => {\n\tif (style1 === undefined) {\n\t\treturn style2;\n\t}\n\tif (style2 === undefined) {\n\t\treturn style1;\n\t}\n\tconst style2Content = typeof style2 === \"string\" ? style2 : style2.content;\n\tif (typeof style1 === \"string\") {\n\t\treturn `${style1} ${style2Content}`;\n\t}\n\treturn {\n\t\tcontent: `${style1.content} ${style2Content}`,\n\t\tpackageName: style1.packageName,\n\t\tfileName: style1.fileName,\n\t};\n};\n\nexport {\n\tcreateStyle,\n\thasStyle,\n\tupdateStyle,\n\tremoveStyle,\n\tcreateOrUpdateStyle,\n\tmergeStyles,\n};\n\nexport type {\n\tStyleData,\n\tStyleDataCSP,\n};\n"]}
1
+ {"version":3,"file":"ManagedStyles.js","sourceRoot":"","sources":["../src/ManagedStyles.ts"],"names":[],"mappings":"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","sourcesContent":["import { StyleData, StyleDataCSP } from \"./types.js\";\nimport { getCurrentRuntimeIndex, compareRuntimes } from \"./Runtimes.js\";\n\nconst isSSR = typeof document === \"undefined\";\n\nconst getStyleId = (name: string, value: string) => {\n\treturn value ? `${name}|${value}` : name;\n};\n\nconst shouldUpdate = (runtimeIndex: string | undefined) => {\n\tif (runtimeIndex === undefined) {\n\t\treturn true;\n\t}\n\treturn compareRuntimes(getCurrentRuntimeIndex(), parseInt(runtimeIndex)) === 1; // 1 means the current is newer, 0 means the same, -1 means the resource's runtime is newer\n};\n\nconst createStyle = (data: StyleData, name: string, value = \"\", theme?: string) => {\n\tconst content = typeof data === \"string\" ? data : data.content;\n\tconst currentRuntimeIndex = getCurrentRuntimeIndex();\n\n\tconst stylesheet = new CSSStyleSheet();\n\tstylesheet.replaceSync(content);\n\t(stylesheet as Record<string, any>)._ui5StyleId = getStyleId(name, value); // set an id so that we can find the style later\n\tif (theme) {\n\t\t(stylesheet as Record<string, any>)._ui5RuntimeIndex = currentRuntimeIndex;\n\t\t(stylesheet as Record<string, any>)._ui5Theme = theme;\n\t}\n\tdocument.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];\n};\n\nconst updateStyle = (data: StyleData, name: string, value = \"\", theme?: string) => {\n\tconst content = typeof data === \"string\" ? data : data.content;\n\tconst currentRuntimeIndex = getCurrentRuntimeIndex();\n\n\tconst stylesheet = document.adoptedStyleSheets.find(sh => (sh as Record<string, any>)._ui5StyleId === getStyleId(name, value));\n\tif (!stylesheet) {\n\t\treturn;\n\t}\n\n\tif (!theme) {\n\t\tstylesheet.replaceSync(content || \"\");\n\t} else {\n\t\tconst stylesheetRuntimeIndex: string | undefined = (stylesheet as Record<string, any>)._ui5RuntimeIndex;\n\t\tconst stylesheetTheme: string | undefined = (stylesheet as Record<string, any>)._ui5Theme;\n\t\tif (stylesheetTheme !== theme || shouldUpdate(stylesheetRuntimeIndex)) {\n\t\t\tstylesheet.replaceSync(content || \"\");\n\t\t\t(stylesheet as Record<string, any>)._ui5RuntimeIndex = String(currentRuntimeIndex);\n\t\t\t(stylesheet as Record<string, any>)._ui5Theme = theme;\n\t\t}\n\t}\n};\n\nconst hasStyle = (name: string, value = \"\"): boolean => {\n\tif (isSSR) {\n\t\treturn true;\n\t}\n\n\treturn !!document.adoptedStyleSheets.find(sh => (sh as Record<string, any>)._ui5StyleId === getStyleId(name, value));\n};\n\nconst removeStyle = (name: string, value = \"\") => {\n\tdocument.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => (sh as Record<string, any>)._ui5StyleId !== getStyleId(name, value));\n};\n\nconst createOrUpdateStyle = (data: StyleData, name: string, value = \"\", theme?: string) => {\n\tif (hasStyle(name, value)) {\n\t\tupdateStyle(data, name, value, theme);\n\t} else {\n\t\tcreateStyle(data, name, value, theme);\n\t}\n};\n\nconst mergeStyles = (style1?: StyleData, style2?: StyleData) => {\n\tif (style1 === undefined) {\n\t\treturn style2;\n\t}\n\tif (style2 === undefined) {\n\t\treturn style1;\n\t}\n\tconst style2Content = typeof style2 === \"string\" ? style2 : style2.content;\n\tif (typeof style1 === \"string\") {\n\t\treturn `${style1} ${style2Content}`;\n\t}\n\treturn {\n\t\tcontent: `${style1.content} ${style2Content}`,\n\t\tpackageName: style1.packageName,\n\t\tfileName: style1.fileName,\n\t};\n};\n\nexport {\n\tcreateStyle,\n\thasStyle,\n\tupdateStyle,\n\tremoveStyle,\n\tcreateOrUpdateStyle,\n\tmergeStyles,\n};\n\nexport type {\n\tStyleData,\n\tStyleDataCSP,\n};\n"]}
@@ -2,8 +2,6 @@ type Range = Map<string, Array<number>>;
2
2
  /**
3
3
  * Enumeration containing the names and settings of predefined screen width media query range sets.
4
4
  *
5
- * @namespace
6
- * @name MediaRange.RANGESETS
7
5
  * @public
8
6
  */
9
7
  declare enum RANGESETS {
@@ -11,23 +9,19 @@ declare enum RANGESETS {
11
9
  * A 4-step range set (S-M-L-XL).
12
10
  *
13
11
  * The ranges of this set are:
14
- * <ul>
15
- * <li><code>"S"</code>: For screens smaller than 600 pixels.</li>
16
- * <li><code>"M"</code>: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.</li>
17
- * <li><code>"L"</code>: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.</li>
18
- * <li><code>"XL"</code>: For screens greater than or equal to 1440 pixels.</li>
19
- * </ul>
20
12
  *
21
- * @name MediaRange.RANGESETS.RANGE_4STEPS
13
+ * - `"S"`: For screens smaller than 600 pixels.
14
+ * - `"M"`: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.
15
+ * - `"L"`: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.
16
+ * - `"XL"`: For screens greater than or equal to 1440 pixels.
17
+ *
18
+ *
22
19
  * @public
23
20
  */
24
21
  RANGE_4STEPS = "4Step"
25
22
  }
26
23
  /**
27
24
  * API for screen width changes.
28
- *
29
- * @namespace
30
- * @name MediaRange
31
25
  */
32
26
  declare const MediaRange: {
33
27
  RANGESETS: typeof RANGESETS;
@@ -7,8 +7,6 @@ DEAFULT_RANGE_SET.set("XL", [1440, Infinity]);
7
7
  /**
8
8
  * Enumeration containing the names and settings of predefined screen width media query range sets.
9
9
  *
10
- * @namespace
11
- * @name MediaRange.RANGESETS
12
10
  * @public
13
11
  */
14
12
  var RANGESETS;
@@ -17,14 +15,13 @@ var RANGESETS;
17
15
  * A 4-step range set (S-M-L-XL).
18
16
  *
19
17
  * The ranges of this set are:
20
- * <ul>
21
- * <li><code>"S"</code>: For screens smaller than 600 pixels.</li>
22
- * <li><code>"M"</code>: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.</li>
23
- * <li><code>"L"</code>: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.</li>
24
- * <li><code>"XL"</code>: For screens greater than or equal to 1440 pixels.</li>
25
- * </ul>
26
18
  *
27
- * @name MediaRange.RANGESETS.RANGE_4STEPS
19
+ * - `"S"`: For screens smaller than 600 pixels.
20
+ * - `"M"`: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.
21
+ * - `"L"`: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.
22
+ * - `"XL"`: For screens greater than or equal to 1440 pixels.
23
+ *
24
+ *
28
25
  * @public
29
26
  */
30
27
  RANGESETS["RANGE_4STEPS"] = "4Step";
@@ -32,23 +29,22 @@ var RANGESETS;
32
29
  /**
33
30
  * Initializes a screen width media query range set.
34
31
  *
35
- * This initialization step makes the range set ready to be used for one of the other functions in namespace <code>MediaRange</code>.
32
+ * This initialization step makes the range set ready to be used for one of the other functions in namespace `MediaRange`.
36
33
  *
37
34
  * A range set can be defined as shown in the following example:
38
- * <pre>
35
+ * ```
39
36
  * MediaRange.initRangeSet("MyRangeSet", [200, 400], ["Small", "Medium", "Large"]);
40
- * </pre>
37
+ * ```
41
38
  * This example defines the following named ranges:
42
- * <ul>
43
- * <li><code>"Small"</code>: For screens smaller than 200 pixels.</li>
44
- * <li><code>"Medium"</code>: For screens greater than or equal to 200 pixels and smaller than 400 pixels.</li>
45
- * <li><code>"Large"</code>: For screens greater than or equal to 400 pixels.</li>
46
- * </ul>
47
39
  *
48
- * @param {string} name The name of the range set to be initialized.
40
+ * - `"Small"`: For screens smaller than 200 pixels.
41
+ * - `"Medium"`: For screens greater than or equal to 200 pixels and smaller than 400 pixels.
42
+ * - `"Large"`: For screens greater than or equal to 400 pixels.
43
+ *
44
+ *
45
+ * @param name The name of the range set to be initialized.
49
46
  * The name must be a valid id and consist only of letters and numeric digits.
50
- * @param {Range} [range] The given range set.
51
- * @name MediaRange.initRangeSet
47
+ * @param range The given range set.
52
48
  */
53
49
  const initRangeSet = (name, range) => {
54
50
  mediaRanges.set(name, range);
@@ -56,16 +52,13 @@ const initRangeSet = (name, range) => {
56
52
  /**
57
53
  * Returns information about the current active range of the range set with the given name.
58
54
  *
59
- * If the optional parameter <code>width</code> is given, the active range will be determined for that width,
55
+ * If the optional parameter `width` is given, the active range will be determined for that width,
60
56
  * otherwise it is determined for the current window size.
61
57
  *
62
- * @param {string} name The name of the range set. The range set must be initialized beforehand ({@link MediaRange.initRangeSet})
63
- * @param {number} [width] An optional width, based on which the range should be determined;
64
- * If <code>width</code> is not provided, the window size will be used.
65
- * @returns {string} The name of the current active interval of the range set.
66
- *
67
- * @name MediaRange.getCurrentRange
68
- * @function
58
+ * @param name The name of the range set. The range set must be initialized beforehand ({@link MediaRange.initRangeSet})
59
+ * @param [width] An optional width, based on which the range should be determined;
60
+ * If `width` is not provided, the window size will be used.
61
+ * @returns The name of the current active interval of the range set.
69
62
  * @public
70
63
  */
71
64
  const getCurrentRange = (name, width = window.innerWidth) => {
@@ -84,9 +77,6 @@ const getCurrentRange = (name, width = window.innerWidth) => {
84
77
  };
85
78
  /**
86
79
  * API for screen width changes.
87
- *
88
- * @namespace
89
- * @name MediaRange
90
80
  */
91
81
  const MediaRange = {
92
82
  RANGESETS,
@@ -1 +1 @@
1
- {"version":3,"file":"MediaRange.js","sourceRoot":"","sources":["../src/MediaRange.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;AAE7C,MAAM,iBAAiB,GAAU,IAAI,GAAG,EAAyB,CAAC;AAClE,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACxC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE9C;;;;;;GAMG;AACF,IAAK,SAgBL;AAhBA,WAAK,SAAS;IACd;;;;;;;;;;;;;OAaG;IACH,mCAAsB,CAAA;AACvB,CAAC,EAhBK,SAAS,KAAT,SAAS,QAgBd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAY,EAAE,EAAE;IACnD,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,KAAK,GAAG,MAAM,CAAC,UAAU,EAAU,EAAE;IAC3E,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,QAAQ,EAAE;QACd,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAE,CAAC;KACpD;IAED,IAAI,gBAAgB,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEzC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YAC7D,gBAAgB,GAAG,GAAG,CAAC;SACvB;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;GAKG;AAEH,MAAM,UAAU,GAAG;IAClB,SAAS;IACT,YAAY;IACZ,eAAe;CACf,CAAC;AAEF,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAE9E,eAAe,UAAU,CAAC","sourcesContent":["type Range = Map<string, Array<number>>;\n\nconst mediaRanges = new Map<string, Range>();\n\nconst DEAFULT_RANGE_SET: Range = new Map<string, Array<number>>();\nDEAFULT_RANGE_SET.set(\"S\", [0, 599]);\nDEAFULT_RANGE_SET.set(\"M\", [600, 1023]);\nDEAFULT_RANGE_SET.set(\"L\", [1024, 1439]);\nDEAFULT_RANGE_SET.set(\"XL\", [1440, Infinity]);\n\n/**\n * Enumeration containing the names and settings of predefined screen width media query range sets.\n *\n * @namespace\n * @name MediaRange.RANGESETS\n * @public\n */\n enum RANGESETS {\n\t/**\n\t * A 4-step range set (S-M-L-XL).\n\t *\n\t * The ranges of this set are:\n\t * <ul>\n\t * <li><code>\"S\"</code>: For screens smaller than 600 pixels.</li>\n\t * <li><code>\"M\"</code>: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.</li>\n\t * <li><code>\"L\"</code>: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.</li>\n\t * <li><code>\"XL\"</code>: For screens greater than or equal to 1440 pixels.</li>\n\t * </ul>\n\t *\n\t * @name MediaRange.RANGESETS.RANGE_4STEPS\n\t * @public\n\t */\n\tRANGE_4STEPS = \"4Step\",\n}\n\n/**\n * Initializes a screen width media query range set.\n *\n * This initialization step makes the range set ready to be used for one of the other functions in namespace <code>MediaRange</code>.\n *\n * A range set can be defined as shown in the following example:\n * <pre>\n * MediaRange.initRangeSet(\"MyRangeSet\", [200, 400], [\"Small\", \"Medium\", \"Large\"]);\n * </pre>\n * This example defines the following named ranges:\n * <ul>\n * <li><code>\"Small\"</code>: For screens smaller than 200 pixels.</li>\n * <li><code>\"Medium\"</code>: For screens greater than or equal to 200 pixels and smaller than 400 pixels.</li>\n * <li><code>\"Large\"</code>: For screens greater than or equal to 400 pixels.</li>\n * </ul>\n *\n * @param {string} name The name of the range set to be initialized.\n * The name must be a valid id and consist only of letters and numeric digits.\n * @param {Range} [range] The given range set.\n * @name MediaRange.initRangeSet\n */\nconst initRangeSet = (name: string, range: Range) => {\n\tmediaRanges.set(name, range);\n};\n\n/**\n * Returns information about the current active range of the range set with the given name.\n *\n * If the optional parameter <code>width</code> is given, the active range will be determined for that width,\n * otherwise it is determined for the current window size.\n *\n * @param {string} name The name of the range set. The range set must be initialized beforehand ({@link MediaRange.initRangeSet})\n * @param {number} [width] An optional width, based on which the range should be determined;\n * If <code>width</code> is not provided, the window size will be used.\n * @returns {string} The name of the current active interval of the range set.\n *\n * @name MediaRange.getCurrentRange\n * @function\n * @public\n */\nconst getCurrentRange = (name: string, width = window.innerWidth): string => {\n\tlet rangeSet = mediaRanges.get(name);\n\n\tif (!rangeSet) {\n\t\trangeSet = mediaRanges.get(RANGESETS.RANGE_4STEPS)!;\n\t}\n\n\tlet currentRangeName;\n\tconst effectiveWidth = Math.floor(width);\n\n\trangeSet.forEach((value, key) => {\n\t\tif (effectiveWidth >= value[0] && effectiveWidth <= value[1]) {\n\t\t\tcurrentRangeName = key;\n\t\t}\n\t});\n\n\treturn currentRangeName || [...rangeSet.keys()][0];\n};\n\n/**\n * API for screen width changes.\n *\n * @namespace\n * @name MediaRange\n */\n\nconst MediaRange = {\n\tRANGESETS,\n\tinitRangeSet,\n\tgetCurrentRange,\n};\n\nMediaRange.initRangeSet(MediaRange.RANGESETS.RANGE_4STEPS, DEAFULT_RANGE_SET);\n\nexport default MediaRange;\n"]}
1
+ {"version":3,"file":"MediaRange.js","sourceRoot":"","sources":["../src/MediaRange.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;AAE7C,MAAM,iBAAiB,GAAU,IAAI,GAAG,EAAyB,CAAC;AAClE,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACxC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACzC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE9C;;;;GAIG;AACF,IAAK,SAeL;AAfA,WAAK,SAAS;IACd;;;;;;;;;;;;OAYG;IACH,mCAAsB,CAAA;AACvB,CAAC,EAfK,SAAS,KAAT,SAAS,QAed;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAY,EAAE,EAAE;IACnD,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,KAAK,GAAG,MAAM,CAAC,UAAU,EAAU,EAAE;IAC3E,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,QAAQ,EAAE;QACd,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAE,CAAC;KACpD;IAED,IAAI,gBAAgB,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEzC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/B,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YAC7D,gBAAgB,GAAG,GAAG,CAAC;SACvB;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,GAAG;IAClB,SAAS;IACT,YAAY;IACZ,eAAe;CACf,CAAC;AAEF,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAE9E,eAAe,UAAU,CAAC","sourcesContent":["type Range = Map<string, Array<number>>;\n\nconst mediaRanges = new Map<string, Range>();\n\nconst DEAFULT_RANGE_SET: Range = new Map<string, Array<number>>();\nDEAFULT_RANGE_SET.set(\"S\", [0, 599]);\nDEAFULT_RANGE_SET.set(\"M\", [600, 1023]);\nDEAFULT_RANGE_SET.set(\"L\", [1024, 1439]);\nDEAFULT_RANGE_SET.set(\"XL\", [1440, Infinity]);\n\n/**\n * Enumeration containing the names and settings of predefined screen width media query range sets.\n *\n * @public\n */\n enum RANGESETS {\n\t/**\n\t * A 4-step range set (S-M-L-XL).\n\t *\n\t * The ranges of this set are:\n\t *\n\t * - `\"S\"`: For screens smaller than 600 pixels.\n\t * - `\"M\"`: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.\n\t * - `\"L\"`: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.\n\t * - `\"XL\"`: For screens greater than or equal to 1440 pixels.\n\t *\n\t *\n\t * @public\n\t */\n\tRANGE_4STEPS = \"4Step\",\n}\n\n/**\n * Initializes a screen width media query range set.\n *\n * This initialization step makes the range set ready to be used for one of the other functions in namespace `MediaRange`.\n *\n * A range set can be defined as shown in the following example:\n * ```\n * MediaRange.initRangeSet(\"MyRangeSet\", [200, 400], [\"Small\", \"Medium\", \"Large\"]);\n * ```\n * This example defines the following named ranges:\n *\n * - `\"Small\"`: For screens smaller than 200 pixels.\n * - `\"Medium\"`: For screens greater than or equal to 200 pixels and smaller than 400 pixels.\n * - `\"Large\"`: For screens greater than or equal to 400 pixels.\n *\n *\n * @param name The name of the range set to be initialized.\n * The name must be a valid id and consist only of letters and numeric digits.\n * @param range The given range set.\n */\nconst initRangeSet = (name: string, range: Range) => {\n\tmediaRanges.set(name, range);\n};\n\n/**\n * Returns information about the current active range of the range set with the given name.\n *\n * If the optional parameter `width` is given, the active range will be determined for that width,\n * otherwise it is determined for the current window size.\n *\n * @param name The name of the range set. The range set must be initialized beforehand ({@link MediaRange.initRangeSet})\n * @param [width] An optional width, based on which the range should be determined;\n * If `width` is not provided, the window size will be used.\n * @returns The name of the current active interval of the range set.\n * @public\n */\nconst getCurrentRange = (name: string, width = window.innerWidth): string => {\n\tlet rangeSet = mediaRanges.get(name);\n\n\tif (!rangeSet) {\n\t\trangeSet = mediaRanges.get(RANGESETS.RANGE_4STEPS)!;\n\t}\n\n\tlet currentRangeName;\n\tconst effectiveWidth = Math.floor(width);\n\n\trangeSet.forEach((value, key) => {\n\t\tif (effectiveWidth >= value[0] && effectiveWidth <= value[1]) {\n\t\t\tcurrentRangeName = key;\n\t\t}\n\t});\n\n\treturn currentRangeName || [...rangeSet.keys()][0];\n};\n\n/**\n * API for screen width changes.\n */\nconst MediaRange = {\n\tRANGESETS,\n\tinitRangeSet,\n\tgetCurrentRange,\n};\n\nMediaRange.initRangeSet(MediaRange.RANGESETS.RANGE_4STEPS, DEAFULT_RANGE_SET);\n\nexport default MediaRange;\n"]}
@@ -1,9 +1,9 @@
1
+ import "@ui5/webcomponents-base/dist/ssr-dom.js";
1
2
  import UI5ElementMetadata, { Slot, SlotValue, State, PropertyValue, Metadata } from "./UI5ElementMetadata.js";
2
3
  import EventProvider from "./EventProvider.js";
3
- import StaticAreaItem from "./StaticAreaItem.js";
4
4
  import type { TemplateFunction, TemplateFunctionResult } from "./renderer/executeTemplate.js";
5
- import type { PromiseResolve, ComponentStylesData, ClassMap } from "./types.js";
6
- type Renderer = (templateResult: TemplateFunctionResult, container: HTMLElement | DocumentFragment, styleStrOrHrefsArr: string | Array<string> | undefined, forStaticArea: boolean, options: RendererOptions) => void;
5
+ import type { AccessibilityInfo, PromiseResolve, ComponentStylesData, ClassMap } from "./types.js";
6
+ type Renderer = (templateResult: TemplateFunctionResult, container: HTMLElement | DocumentFragment, options: RendererOptions) => void;
7
7
  type RendererOptions = {
8
8
  /**
9
9
  * An object to use as the `this` value for event listeners. It's often
@@ -26,12 +26,9 @@ type InvalidationInfo = ChangeInfo & {
26
26
  type ChildChangeListener = (param: InvalidationInfo) => void;
27
27
  type SlotChangeListener = (this: HTMLSlotElement, ev: Event) => void;
28
28
  /**
29
+ * @class
29
30
  * Base class for all UI5 Web Components
30
31
  *
31
- * @class
32
- * @constructor
33
- * @author SAP SE
34
- * @alias sap.ui.webc.base.UI5Element
35
32
  * @extends HTMLElement
36
33
  * @public
37
34
  */
@@ -44,22 +41,18 @@ declare abstract class UI5Element extends HTMLElement {
44
41
  _inDOM: boolean;
45
42
  _fullyConnected: boolean;
46
43
  _childChangeListeners: Map<string, ChildChangeListener>;
44
+ _slotsAssignedNodes: WeakMap<HTMLSlotElement, Array<SlotValue>>;
47
45
  _slotChangeListeners: Map<string, SlotChangeListener>;
48
46
  _domRefReadyPromise: Promise<void> & {
49
47
  _deferredResolve?: PromiseResolve;
50
48
  };
51
49
  _doNotSyncAttributes: Set<string>;
52
50
  _state: State;
51
+ _internals?: ElementInternals;
53
52
  _getRealDomRef?: () => HTMLElement;
54
- staticAreaItem?: StaticAreaItem;
55
53
  static template?: TemplateFunction;
56
- static staticAreaTemplate?: TemplateFunction;
57
54
  static _metadata: UI5ElementMetadata;
58
- /**
59
- * @deprecated
60
- */
61
- static render: Renderer;
62
- static renderer?: Renderer;
55
+ static renderer: Renderer;
63
56
  constructor();
64
57
  /**
65
58
  * Returns a unique ID for this UI5 Element
@@ -69,7 +62,6 @@ declare abstract class UI5Element extends HTMLElement {
69
62
  */
70
63
  get _id(): string;
71
64
  render(): object;
72
- renderStatic(): object;
73
65
  /**
74
66
  * Do not call this method from derivatives of UI5Element, use "onEnterDOM" only
75
67
  * @private
@@ -125,22 +117,22 @@ declare abstract class UI5Element extends HTMLElement {
125
117
  /**
126
118
  * Attach a callback that will be executed whenever the component is invalidated
127
119
  *
128
- * @param {InvalidationInfo} callback
120
+ * @param callback
129
121
  * @public
130
122
  */
131
123
  attachInvalidate(callback: (param: InvalidationInfo) => void): void;
132
124
  /**
133
125
  * Detach the callback that is executed whenever the component is invalidated
134
126
  *
135
- * @param {InvalidationInfo} callback
127
+ * @param callback
136
128
  * @public
137
129
  */
138
130
  detachInvalidate(callback: (param: InvalidationInfo) => void): void;
139
131
  /**
140
132
  * Callback that is executed whenever a monitored child changes its state
141
133
  *
142
- * @param {sting} slotName the slot in which a child was invalidated
143
- * @param { ChangeInfo } childChangeInfo the changeInfo object for the child in the given slot
134
+ * @param slotName the slot in which a child was invalidated
135
+ * @param childChangeInfo the changeInfo object for the child in the given slot
144
136
  * @private
145
137
  */
146
138
  _onChildChange(slotName: string, childChangeInfo: ChangeInfo): void;
@@ -149,6 +141,8 @@ declare abstract class UI5Element extends HTMLElement {
149
141
  * @private
150
142
  */
151
143
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
144
+ formAssociatedCallback(): void;
145
+ static get formAssociated(): boolean;
152
146
  /**
153
147
  * @private
154
148
  */
@@ -165,22 +159,20 @@ declare abstract class UI5Element extends HTMLElement {
165
159
  * Returns a singleton event listener for the "change" event of a child in a given slot
166
160
  *
167
161
  * @param slotName the name of the slot, where the child is
168
- * @returns {ChildChangeListener}
169
162
  * @private
170
163
  */
171
- _getChildChangeListener(slotName: string): ChildChangeListener | undefined;
164
+ _getChildChangeListener(slotName: string): ChildChangeListener;
172
165
  /**
173
166
  * Returns a singleton slotchange event listener that invalidates the component due to changes in the given slot
174
167
  *
175
168
  * @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is
176
- * @returns {SlotChangeListener}
177
169
  * @private
178
170
  */
179
171
  _getSlotChangeListener(slotName: string): SlotChangeListener;
180
172
  /**
181
173
  * @private
182
174
  */
183
- _attachSlotChange(child: HTMLSlotElement, slotName: string): void;
175
+ _attachSlotChange(slot: HTMLSlotElement, slotName: string, invalidateOnChildChange: boolean): void;
184
176
  /**
185
177
  * @private
186
178
  */
@@ -207,9 +199,9 @@ declare abstract class UI5Element extends HTMLElement {
207
199
  * 1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot
208
200
  * 2) textcontent: text nodes in the slot changed value (or nested text nodes were added or changed value). Can only trigger for slots of "type: Node"
209
201
  * 3) slotchange: a slot element, slotted inside that slot had its "slotchange" event listener called. This practically means that transitively slotted children changed.
210
- * Can only trigger if the child of a slot is a slot element itself.
202
+ * Can only trigger if the child of a slot is a slot element itself.
211
203
  * 4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.
212
- * Can only trigger for slots with "invalidateOnChildChange" metadata descriptor
204
+ * Can only trigger for slots with "invalidateOnChildChange" metadata descriptor
213
205
  *
214
206
  * - newValue: the new value of the property (for type="property" only)
215
207
  *
@@ -257,7 +249,7 @@ declare abstract class UI5Element extends HTMLElement {
257
249
  getFocusDomRefAsync(): Promise<HTMLElement | undefined>;
258
250
  /**
259
251
  * Set the focus to the element, returned by "getFocusDomRef()" (marked by "data-sap-focus-ref")
260
- * @param {FocusOptions} focusOptions additional options for the focus
252
+ * @param focusOptions additional options for the focus
261
253
  * @public
262
254
  */
263
255
  focus(focusOptions?: FocusOptions): Promise<void>;
@@ -268,7 +260,7 @@ declare abstract class UI5Element extends HTMLElement {
268
260
  * @param data - additional data for the event
269
261
  * @param cancelable - true, if the user can call preventDefault on the event object
270
262
  * @param bubbles - true, if the event bubbles
271
- * @returns {boolean} false, if the event was cancelled (preventDefault called), true otherwise
263
+ * @returns false, if the event was cancelled (preventDefault called), true otherwise
272
264
  */
273
265
  fireEvent<T>(name: string, data?: T, cancelable?: boolean, bubbles?: boolean): boolean;
274
266
  _fireEvent<T>(name: string, data?: T, cancelable?: boolean, bubbles?: boolean): boolean;
@@ -277,18 +269,18 @@ declare abstract class UI5Element extends HTMLElement {
277
269
  * Useful when there are transitive slots in nested component scenarios and you don't want to get a list of the slots, but rather of their content.
278
270
  * @public
279
271
  */
280
- getSlottedNodes<T = Node>(slotName: string): T[];
272
+ getSlottedNodes<T = Node>(slotName: string): Array<T>;
281
273
  /**
282
274
  * Attach a callback that will be executed whenever the component's state is finalized
283
275
  *
284
- * @param {} callback
276
+ * @param callback
285
277
  * @public
286
278
  */
287
279
  attachComponentStateFinalized(callback: () => void): void;
288
280
  /**
289
281
  * Detach the callback that is executed whenever the component's state is finalized
290
282
  *
291
- * @param {} callback
283
+ * @param callback
292
284
  * @public
293
285
  */
294
286
  detachComponentStateFinalized(callback: () => void): void;
@@ -297,33 +289,30 @@ declare abstract class UI5Element extends HTMLElement {
297
289
  * Returns: "rtl", "ltr" or undefined
298
290
  *
299
291
  * @public
300
- * @returns {String|undefined}
292
+ * @default undefined
301
293
  */
302
294
  get effectiveDir(): string | undefined;
303
295
  /**
304
296
  * Used to duck-type UI5 elements without using instanceof
305
- * @returns {boolean}
306
297
  * @public
298
+ * @default true
307
299
  */
308
300
  get isUI5Element(): boolean;
309
301
  get classes(): ClassMap;
310
302
  /**
311
- * Do not override this method in derivatives of UI5Element, use metadata properties instead
303
+ * Returns the component accessibility info.
312
304
  * @private
313
305
  */
314
- static get observedAttributes(): string[];
306
+ get accessibilityInfo(): AccessibilityInfo;
315
307
  /**
308
+ * Do not override this method in derivatives of UI5Element, use metadata properties instead
316
309
  * @private
317
310
  */
318
- static _needsShadowDOM(): boolean;
311
+ static get observedAttributes(): string[];
319
312
  /**
320
313
  * @private
321
314
  */
322
- static _needsStaticArea(): boolean;
323
- /**
324
- * @public
325
- */
326
- getStaticAreaItemDomRef(): Promise<ShadowRoot | null>;
315
+ static _needsShadowDOM(): boolean;
327
316
  /**
328
317
  * @private
329
318
  */
@@ -337,12 +326,7 @@ declare abstract class UI5Element extends HTMLElement {
337
326
  * Returns the CSS for this UI5 Web Component Class
338
327
  * @protected
339
328
  */
340
- static get styles(): ComponentStylesData;
341
- /**
342
- * Returns the Static Area CSS for this UI5 Web Component Class
343
- * @protected
344
- */
345
- static get staticAreaStyles(): ComponentStylesData;
329
+ static styles: ComponentStylesData;
346
330
  /**
347
331
  * Returns an array with the dependencies for this UI5 Web Component, which could be:
348
332
  * - composed components (used in its shadow root or static area item)
@@ -356,39 +340,37 @@ declare abstract class UI5Element extends HTMLElement {
356
340
  *
357
341
  * @public
358
342
  */
359
- static getUniqueDependencies(this: typeof UI5Element): (typeof UI5Element)[];
343
+ static getUniqueDependencies(this: typeof UI5Element): Array<typeof UI5Element>;
360
344
  /**
361
345
  * Returns a promise that resolves whenever all dependencies for this UI5 Web Component have resolved
362
- *
363
- * @returns {Promise}
364
346
  */
365
347
  static whenDependenciesDefined(): Promise<Array<typeof UI5Element>>;
366
348
  /**
367
349
  * Hook that will be called upon custom element definition
368
350
  *
369
351
  * @protected
370
- * @returns {Promise<void>}
371
352
  */
372
353
  static onDefine(): Promise<void>;
373
354
  /**
374
355
  * Registers a UI5 Web Component in the browser window object
375
356
  * @public
376
- * @returns {Promise<UI5Element>}
377
357
  */
378
358
  static define(): Promise<typeof UI5Element>;
379
359
  /**
380
360
  * Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')
381
361
  * Note: not to be confused with the "get metadata()" method, which returns an object for this class's metadata only
382
362
  * @public
383
- * @returns {UI5ElementMetadata}
384
363
  */
385
364
  static getMetadata(): UI5ElementMetadata;
365
+ get validity(): ValidityState | undefined;
366
+ get validationMessage(): string | undefined;
367
+ checkValidity(): boolean | undefined;
368
+ reportValidity(): boolean | undefined;
386
369
  }
387
370
  /**
388
371
  * Always use duck-typing to cover all runtimes on the page.
389
- * @returns {boolean}
390
372
  */
391
373
  declare const instanceOfUI5Element: (object: any) => object is UI5Element;
392
374
  export default UI5Element;
393
- export { instanceOfUI5Element };
375
+ export { instanceOfUI5Element, };
394
376
  export type { ChangeInfo, Renderer, RendererOptions, };