@ui5/webcomponents-base 1.24.0 → 2.0.0-rc.1
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.
- package/.eslintignore +0 -1
- package/CHANGELOG.md +279 -0
- package/README.md +0 -8
- package/bundle.esm.js +0 -1
- package/config/wdio.conf.cjs +0 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/Device.d.ts +1 -2
- package/dist/Device.js +5 -12
- package/dist/Device.js.map +1 -1
- package/dist/ManagedStyles.js +21 -99
- package/dist/ManagedStyles.js.map +1 -1
- package/dist/UI5Element.d.ts +5 -26
- package/dist/UI5Element.js +24 -54
- package/dist/UI5Element.js.map +1 -1
- package/dist/UI5ElementMetadata.d.ts +2 -0
- package/dist/UI5ElementMetadata.js +3 -0
- package/dist/UI5ElementMetadata.js.map +1 -1
- package/dist/custom-elements-internal.json +0 -76
- package/dist/custom-elements.json +0 -76
- package/dist/decorators/customElement.d.ts +1 -2
- package/dist/decorators/customElement.js +6 -4
- package/dist/decorators/customElement.js.map +1 -1
- package/dist/features/OpenUI5Support.d.ts +0 -2
- package/dist/features/OpenUI5Support.js +2 -23
- package/dist/features/OpenUI5Support.js.map +1 -1
- package/dist/generated/VersionInfo.js +5 -5
- package/dist/generated/VersionInfo.js.map +1 -1
- package/dist/renderer/LitRenderer.js +2 -8
- package/dist/renderer/LitRenderer.js.map +1 -1
- package/dist/theming/getConstructableStyle.d.ts +1 -1
- package/dist/theming/getConstructableStyle.js +3 -3
- package/dist/theming/getConstructableStyle.js.map +1 -1
- package/dist/theming/getEffectiveStyle.d.ts +1 -1
- package/dist/theming/getEffectiveStyle.js +5 -12
- package/dist/theming/getEffectiveStyle.js.map +1 -1
- package/dist/updateShadowRoot.d.ts +1 -2
- package/dist/updateShadowRoot.js +5 -29
- package/dist/updateShadowRoot.js.map +1 -1
- package/dist/util/PopupUtils.d.ts +1 -3
- package/dist/util/PopupUtils.js +1 -15
- package/dist/util/PopupUtils.js.map +1 -1
- package/dist/util/dragAndDrop/DragRegistry.d.ts +1 -1
- package/dist/util/dragAndDrop/DragRegistry.js.map +1 -1
- package/dist/util/getClassCopy.d.ts +1 -8
- package/index.js +0 -14
- package/package-scripts.cjs +1 -1
- package/package.json +3 -3
- package/dist/CSP.d.ts +0 -33
- package/dist/CSP.js +0 -54
- package/dist/CSP.js.map +0 -1
- package/dist/StaticAreaItem.d.ts +0 -35
- package/dist/StaticAreaItem.js +0 -100
- package/dist/StaticAreaItem.js.map +0 -1
- package/dist/theming/getEffectiveLinksHrefs.d.ts +0 -3
- package/dist/theming/getEffectiveLinksHrefs.js +0 -17
- package/dist/theming/getEffectiveLinksHrefs.js.map +0 -1
- package/dist/theming/preloadLinks.d.ts +0 -3
- package/dist/theming/preloadLinks.js +0 -19
- package/dist/theming/preloadLinks.js.map +0 -1
- package/dist/util/createStyleInHead.d.ts +0 -8
- package/dist/util/createStyleInHead.js +0 -18
- package/dist/util/createStyleInHead.js.map +0 -1
package/dist/Device.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
declare const supportsTouch: () => boolean;
|
|
2
|
-
declare const isIE: () => boolean;
|
|
3
2
|
declare const isSafari: () => boolean;
|
|
4
3
|
declare const isChrome: () => boolean;
|
|
5
4
|
declare const isFirefox: () => boolean;
|
|
@@ -10,4 +9,4 @@ declare const isCombi: () => boolean;
|
|
|
10
9
|
declare const isIOS: () => boolean;
|
|
11
10
|
declare const isMac: () => boolean;
|
|
12
11
|
declare const isAndroid: () => boolean;
|
|
13
|
-
export { supportsTouch,
|
|
12
|
+
export { supportsTouch, isSafari, isChrome, isFirefox, isPhone, isTablet, isDesktop, isCombi, isIOS, isAndroid, isMac, };
|
package/dist/Device.js
CHANGED
|
@@ -12,17 +12,11 @@ const internals = {
|
|
|
12
12
|
}
|
|
13
13
|
return "ontouchstart" in window || navigator.maxTouchPoints > 0;
|
|
14
14
|
},
|
|
15
|
-
get ie() {
|
|
16
|
-
if (isSSR) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
return /(msie|trident)/i.test(internals.userAgent);
|
|
20
|
-
},
|
|
21
15
|
get chrome() {
|
|
22
16
|
if (isSSR) {
|
|
23
17
|
return false;
|
|
24
18
|
}
|
|
25
|
-
return
|
|
19
|
+
return /(Chrome|CriOS)/.test(internals.userAgent);
|
|
26
20
|
},
|
|
27
21
|
get firefox() {
|
|
28
22
|
if (isSSR) {
|
|
@@ -34,13 +28,13 @@ const internals = {
|
|
|
34
28
|
if (isSSR) {
|
|
35
29
|
return false;
|
|
36
30
|
}
|
|
37
|
-
return !internals.
|
|
31
|
+
return !internals.chrome && /(Version|PhantomJS)\/(\d+\.\d+).*Safari/.test(internals.userAgent);
|
|
38
32
|
},
|
|
39
33
|
get webkit() {
|
|
40
34
|
if (isSSR) {
|
|
41
35
|
return false;
|
|
42
36
|
}
|
|
43
|
-
return
|
|
37
|
+
return /webkit/.test(internals.userAgent);
|
|
44
38
|
},
|
|
45
39
|
get windows() {
|
|
46
40
|
if (isSSR) {
|
|
@@ -138,10 +132,9 @@ const detectTablet = () => {
|
|
|
138
132
|
tablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);
|
|
139
133
|
return;
|
|
140
134
|
}
|
|
141
|
-
tablet =
|
|
135
|
+
tablet = internals.userAgent.indexOf("Touch") !== -1 || (internals.android && !internals.androidPhone);
|
|
142
136
|
};
|
|
143
137
|
const supportsTouch = () => internals.touch;
|
|
144
|
-
const isIE = () => internals.ie;
|
|
145
138
|
const isSafari = () => internals.safari;
|
|
146
139
|
const isChrome = () => internals.chrome;
|
|
147
140
|
const isFirefox = () => internals.firefox;
|
|
@@ -171,5 +164,5 @@ const isMac = () => {
|
|
|
171
164
|
const isAndroid = () => {
|
|
172
165
|
return internals.android || internals.androidPhone;
|
|
173
166
|
};
|
|
174
|
-
export { supportsTouch,
|
|
167
|
+
export { supportsTouch, isSafari, isChrome, isFirefox, isPhone, isTablet, isDesktop, isCombi, isIOS, isAndroid, isMac, };
|
|
175
168
|
//# sourceMappingURL=Device.js.map
|
package/dist/Device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC;AAE9C,MAAM,SAAS,GAAG;IACjB,IAAI,SAAS;QACZ,IAAI,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACV;QACD,OAAO,SAAS,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK;QACR,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,cAAc,IAAI,MAAM,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,EAAE;QACL,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM;QACT,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO;QACV,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM;QACT,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,yCAAyC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClH,CAAC;IACD,IAAI,MAAM;QACT,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,OAAO;QACV,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK;QACR,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,GAAG;QACN,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,QAAQ,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,OAAO;QACV,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,YAAY;QACf,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,OAAO,SAAS,CAAC,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,IAAI;QACP,IAAI,KAAK,EAAE;YACV,OAAO,KAAK,CAAC;SACb;QACD,4IAA4I;QAC5I,oHAAoH;QACpH,2HAA2H;QAC3H,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,IAAI,QAAQ,CAAC,CAAC;IAClH,CAAC;CACD,CAAC;AAEF,IAAI,cAAsB,CAAC;AAC3B,IAAI,aAAqB,CAAC;AAC1B,IAAI,MAAe,CAAC;AAEpB,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC9B,IAAI,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACb;IAED,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;QACvB,OAAO,KAAK,CAAC;KACb;IAED,IAAI,cAAc,KAAK,SAAS,EAAE;QACjC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACnE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtD;IAED,OAAO,cAAc,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC/B,IAAI,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACb;IAED,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QACtB,OAAO,KAAK,CAAC;KACb;IAED,IAAI,aAAa,KAAK,SAAS,EAAE;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;IAED,OAAO,aAAa,IAAI,MAAM,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,EAAE;IACzB,IAAI,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACb;IAED,IAAI,MAAM,KAAK,SAAS,EAAE;QACzB,OAAO;KACP;IAED,IAAI,SAAS,CAAC,IAAI,EAAE;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,OAAO;KACP;IAED,IAAI,SAAS,CAAC,KAAK,EAAE;QACpB,IAAI,iBAAiB,EAAE,EAAE;YACxB,MAAM,GAAG,IAAI,CAAC;YACd,OAAO;SACP;QAED,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE;YAC1C,MAAM,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7D,OAAO;SACP;QAED,IAAI,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C;QACvH,IAAI,SAAS,CAAC,OAAO,IAAI,kBAAkB,EAAE,EAAE;YAC9C,aAAa,GAAG,CAAC,CAAC;SAClB;QAED,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QACtG,OAAO;KACP;IAED,MAAM,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC1H,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,GAAY,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;AACrD,MAAM,IAAI,GAAG,GAAY,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;AACzC,MAAM,QAAQ,GAAG,GAAY,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;AACjD,MAAM,QAAQ,GAAG,GAAY,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;AACjD,MAAM,SAAS,GAAG,GAAY,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;AAEnD,MAAM,QAAQ,GAAG,GAAY,EAAE;IAC9B,YAAY,EAAE,CAAC;IACf,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC,IAAI,MAAM,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,GAAY,EAAE;IAC7B,YAAY,EAAE,CAAC;IACf,OAAO,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,GAAY,EAAE;IAC/B,IAAI,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACb;IACD,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,GAAY,EAAE;IAC7B,OAAO,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,GAAY,EAAE;IAC3B,OAAO,SAAS,CAAC,GAAG,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,GAAY,EAAE;IAC3B,OAAO,SAAS,CAAC,KAAK,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,GAAY,EAAE;IAC/B,OAAO,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC;AACpD,CAAC,CAAC;AAEF,OAAO,EACN,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,KAAK,GACL,CAAC","sourcesContent":["const isSSR = typeof document === \"undefined\";\n\nconst internals = {\n\tget userAgent() {\n\t\tif (isSSR) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn navigator.userAgent;\n\t},\n\tget touch() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n\t},\n\tget ie() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn /(msie|trident)/i.test(internals.userAgent);\n\t},\n\tget chrome() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !internals.ie && /(Chrome|CriOS)/.test(internals.userAgent);\n\t},\n\tget firefox() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn /Firefox/.test(internals.userAgent);\n\t},\n\tget safari() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !internals.ie && !internals.chrome && /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/.test(internals.userAgent);\n\t},\n\tget webkit() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !internals.ie && /webkit/.test(internals.userAgent);\n\t},\n\tget windows() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn navigator.platform.indexOf(\"Win\") !== -1;\n\t},\n\tget macOS() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !!navigator.userAgent.match(/Macintosh|Mac OS X/i);\n\t},\n\tget iOS() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !!(navigator.platform.match(/iPhone|iPad|iPod/)) || !!(internals.userAgent.match(/Mac/) && \"ontouchend\" in document);\n\t},\n\tget android() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !internals.windows && /Android/.test(internals.userAgent);\n\t},\n\tget androidPhone() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn internals.android && /(?=android)(?=.*mobile)/i.test(internals.userAgent);\n\t},\n\tget ipad() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\t// With iOS 13 the string 'iPad' was removed from the user agent string through a browser setting, which is applied on all sites by default:\n\t\t// \"Request Desktop Website -> All websites\" (for more infos see: https://forums.developer.apple.com/thread/119186).\n\t\t// Therefore the OS is detected as MACINTOSH instead of iOS and the device is a tablet if the Device.support.touch is true.\n\t\treturn /ipad/i.test(internals.userAgent) || (/Macintosh/i.test(internals.userAgent) && \"ontouchend\" in document);\n\t},\n};\n\nlet windowsVersion: number;\nlet webkitVersion: number;\nlet tablet: boolean;\n\nconst isWindows8OrAbove = () => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\n\tif (!internals.windows) {\n\t\treturn false;\n\t}\n\n\tif (windowsVersion === undefined) {\n\t\tconst matches = internals.userAgent.match(/Windows NT (\\d+).(\\d)/);\n\t\twindowsVersion = matches ? parseFloat(matches[1]) : 0;\n\t}\n\n\treturn windowsVersion >= 8;\n};\n\nconst isWebkit537OrAbove = () => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\n\tif (!internals.webkit) {\n\t\treturn false;\n\t}\n\n\tif (webkitVersion === undefined) {\n\t\tconst matches = internals.userAgent.match(/(webkit)[ /]([\\w.]+)/);\n\t\twebkitVersion = matches ? parseFloat(matches[1]) : 0;\n\t}\n\n\treturn webkitVersion >= 537.10;\n};\n\nconst detectTablet = () => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\n\tif (tablet !== undefined) {\n\t\treturn;\n\t}\n\n\tif (internals.ipad) {\n\t\ttablet = true;\n\t\treturn;\n\t}\n\n\tif (internals.touch) {\n\t\tif (isWindows8OrAbove()) {\n\t\t\ttablet = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (internals.chrome && internals.android) {\n\t\t\ttablet = !/Mobile Safari\\/[.0-9]+/.test(internals.userAgent);\n\t\t\treturn;\n\t\t}\n\n\t\tlet densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\n\t\tif (internals.android && isWebkit537OrAbove()) {\n\t\t\tdensityFactor = 1;\n\t\t}\n\n\t\ttablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);\n\t\treturn;\n\t}\n\n\ttablet = (internals.ie && internals.userAgent.indexOf(\"Touch\") !== -1) || (internals.android && !internals.androidPhone);\n};\n\nconst supportsTouch = (): boolean => internals.touch;\nconst isIE = (): boolean => internals.ie;\nconst isSafari = (): boolean => internals.safari;\nconst isChrome = (): boolean => internals.chrome;\nconst isFirefox = (): boolean => internals.firefox;\n\nconst isTablet = (): boolean => {\n\tdetectTablet();\n\treturn (internals.touch || isWindows8OrAbove()) && tablet;\n};\n\nconst isPhone = (): boolean => {\n\tdetectTablet();\n\treturn internals.touch && !tablet;\n};\n\nconst isDesktop = (): boolean => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\treturn (!isTablet() && !isPhone()) || isWindows8OrAbove();\n};\n\nconst isCombi = (): boolean => {\n\treturn isTablet() && isDesktop();\n};\n\nconst isIOS = (): boolean => {\n\treturn internals.iOS;\n};\n\nconst isMac = (): boolean => {\n\treturn internals.macOS;\n};\n\nconst isAndroid = (): boolean => {\n\treturn internals.android || internals.androidPhone;\n};\n\nexport {\n\tsupportsTouch,\n\tisIE,\n\tisSafari,\n\tisChrome,\n\tisFirefox,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n\tisIOS,\n\tisAndroid,\n\tisMac,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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","sourcesContent":["const isSSR = typeof document === \"undefined\";\n\nconst internals = {\n\tget userAgent() {\n\t\tif (isSSR) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn navigator.userAgent;\n\t},\n\tget touch() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n\t},\n\n\tget chrome() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn /(Chrome|CriOS)/.test(internals.userAgent);\n\t},\n\tget firefox() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn /Firefox/.test(internals.userAgent);\n\t},\n\tget safari() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !internals.chrome && /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/.test(internals.userAgent);\n\t},\n\tget webkit() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn /webkit/.test(internals.userAgent);\n\t},\n\tget windows() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn navigator.platform.indexOf(\"Win\") !== -1;\n\t},\n\tget macOS() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !!navigator.userAgent.match(/Macintosh|Mac OS X/i);\n\t},\n\tget iOS() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !!(navigator.platform.match(/iPhone|iPad|iPod/)) || !!(internals.userAgent.match(/Mac/) && \"ontouchend\" in document);\n\t},\n\tget android() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !internals.windows && /Android/.test(internals.userAgent);\n\t},\n\tget androidPhone() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\treturn internals.android && /(?=android)(?=.*mobile)/i.test(internals.userAgent);\n\t},\n\tget ipad() {\n\t\tif (isSSR) {\n\t\t\treturn false;\n\t\t}\n\t\t// With iOS 13 the string 'iPad' was removed from the user agent string through a browser setting, which is applied on all sites by default:\n\t\t// \"Request Desktop Website -> All websites\" (for more infos see: https://forums.developer.apple.com/thread/119186).\n\t\t// Therefore the OS is detected as MACINTOSH instead of iOS and the device is a tablet if the Device.support.touch is true.\n\t\treturn /ipad/i.test(internals.userAgent) || (/Macintosh/i.test(internals.userAgent) && \"ontouchend\" in document);\n\t},\n};\n\nlet windowsVersion: number;\nlet webkitVersion: number;\nlet tablet: boolean;\n\nconst isWindows8OrAbove = () => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\n\tif (!internals.windows) {\n\t\treturn false;\n\t}\n\n\tif (windowsVersion === undefined) {\n\t\tconst matches = internals.userAgent.match(/Windows NT (\\d+).(\\d)/);\n\t\twindowsVersion = matches ? parseFloat(matches[1]) : 0;\n\t}\n\n\treturn windowsVersion >= 8;\n};\n\nconst isWebkit537OrAbove = () => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\n\tif (!internals.webkit) {\n\t\treturn false;\n\t}\n\n\tif (webkitVersion === undefined) {\n\t\tconst matches = internals.userAgent.match(/(webkit)[ /]([\\w.]+)/);\n\t\twebkitVersion = matches ? parseFloat(matches[1]) : 0;\n\t}\n\n\treturn webkitVersion >= 537.10;\n};\n\nconst detectTablet = () => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\n\tif (tablet !== undefined) {\n\t\treturn;\n\t}\n\n\tif (internals.ipad) {\n\t\ttablet = true;\n\t\treturn;\n\t}\n\n\tif (internals.touch) {\n\t\tif (isWindows8OrAbove()) {\n\t\t\ttablet = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (internals.chrome && internals.android) {\n\t\t\ttablet = !/Mobile Safari\\/[.0-9]+/.test(internals.userAgent);\n\t\t\treturn;\n\t\t}\n\n\t\tlet densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\n\t\tif (internals.android && isWebkit537OrAbove()) {\n\t\t\tdensityFactor = 1;\n\t\t}\n\n\t\ttablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);\n\t\treturn;\n\t}\n\n\ttablet = internals.userAgent.indexOf(\"Touch\") !== -1 || (internals.android && !internals.androidPhone);\n};\n\nconst supportsTouch = (): boolean => internals.touch;\nconst isSafari = (): boolean => internals.safari;\nconst isChrome = (): boolean => internals.chrome;\nconst isFirefox = (): boolean => internals.firefox;\n\nconst isTablet = (): boolean => {\n\tdetectTablet();\n\treturn (internals.touch || isWindows8OrAbove()) && tablet;\n};\n\nconst isPhone = (): boolean => {\n\tdetectTablet();\n\treturn internals.touch && !tablet;\n};\n\nconst isDesktop = (): boolean => {\n\tif (isSSR) {\n\t\treturn false;\n\t}\n\treturn (!isTablet() && !isPhone()) || isWindows8OrAbove();\n};\n\nconst isCombi = (): boolean => {\n\treturn isTablet() && isDesktop();\n};\n\nconst isIOS = (): boolean => {\n\treturn internals.iOS;\n};\n\nconst isMac = (): boolean => {\n\treturn internals.macOS;\n};\n\nconst isAndroid = (): boolean => {\n\treturn internals.android || internals.androidPhone;\n};\n\nexport {\n\tsupportsTouch,\n\tisSafari,\n\tisChrome,\n\tisFirefox,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n\tisIOS,\n\tisAndroid,\n\tisMac,\n};\n"]}
|
package/dist/ManagedStyles.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
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";
|
|
6
2
|
const isSSR = typeof document === "undefined";
|
|
7
3
|
const getStyleId = (name, value) => {
|
|
@@ -16,89 +12,32 @@ const shouldUpdate = (runtimeIndex) => {
|
|
|
16
12
|
const createStyle = (data, name, value = "", theme) => {
|
|
17
13
|
const content = typeof data === "string" ? data : data.content;
|
|
18
14
|
const currentRuntimeIndex = getCurrentRuntimeIndex();
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
createLinkInHead(href, attributes);
|
|
28
|
-
}
|
|
29
|
-
else if (document.adoptedStyleSheets && !isSafari()) {
|
|
30
|
-
const stylesheet = new CSSStyleSheet();
|
|
31
|
-
stylesheet.replaceSync(content);
|
|
32
|
-
stylesheet._ui5StyleId = getStyleId(name, value); // set an id so that we can find the style later
|
|
33
|
-
if (theme) {
|
|
34
|
-
stylesheet._ui5RuntimeIndex = currentRuntimeIndex;
|
|
35
|
-
stylesheet._ui5Theme = theme;
|
|
36
|
-
}
|
|
37
|
-
document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
const attributes = {};
|
|
41
|
-
attributes[name] = value;
|
|
42
|
-
if (theme) {
|
|
43
|
-
attributes["data-ui5-runtime-index"] = currentRuntimeIndex;
|
|
44
|
-
attributes["data-ui5-theme"] = theme;
|
|
45
|
-
}
|
|
46
|
-
createStyleInHead(content, attributes);
|
|
47
|
-
}
|
|
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];
|
|
48
23
|
};
|
|
49
24
|
const updateStyle = (data, name, value = "", theme) => {
|
|
50
25
|
const content = typeof data === "string" ? data : data.content;
|
|
51
26
|
const currentRuntimeIndex = getCurrentRuntimeIndex();
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (!theme) {
|
|
56
|
-
link.href = href;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
const linkRuntimeIndex = link.getAttribute("data-ui5-runtime-index") || undefined;
|
|
60
|
-
const linkTheme = link.getAttribute("data-ui5-theme");
|
|
61
|
-
if (linkTheme !== theme || shouldUpdate(linkRuntimeIndex)) {
|
|
62
|
-
link.href = href;
|
|
63
|
-
link.setAttribute("data-ui5-runtime-index", String(currentRuntimeIndex));
|
|
64
|
-
link.setAttribute("data-ui5-theme", theme);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
27
|
+
const stylesheet = document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
|
|
28
|
+
if (!stylesheet) {
|
|
29
|
+
return;
|
|
67
30
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (!stylesheet) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
if (!theme) {
|
|
74
|
-
stylesheet.replaceSync(content || "");
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
const stylesheetRuntimeIndex = stylesheet._ui5RuntimeIndex;
|
|
78
|
-
const stylesheetTheme = stylesheet._ui5Theme;
|
|
79
|
-
if (stylesheetTheme !== theme || shouldUpdate(stylesheetRuntimeIndex)) {
|
|
80
|
-
stylesheet.replaceSync(content || "");
|
|
81
|
-
stylesheet._ui5RuntimeIndex = String(currentRuntimeIndex);
|
|
82
|
-
stylesheet._ui5Theme = theme;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
31
|
+
if (!theme) {
|
|
32
|
+
stylesheet.replaceSync(content || "");
|
|
85
33
|
}
|
|
86
34
|
else {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
const styleRuntimeIndex = style.getAttribute("data-ui5-runtime-index") || undefined;
|
|
96
|
-
const styleTheme = style.getAttribute("data-ui5-theme");
|
|
97
|
-
if (styleTheme !== theme || shouldUpdate(styleRuntimeIndex)) {
|
|
98
|
-
style.textContent = content || "";
|
|
99
|
-
style.setAttribute("data-ui5-runtime-index", String(currentRuntimeIndex));
|
|
100
|
-
style.setAttribute("data-ui5-theme", theme);
|
|
101
|
-
}
|
|
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;
|
|
102
41
|
}
|
|
103
42
|
}
|
|
104
43
|
};
|
|
@@ -106,27 +45,10 @@ const hasStyle = (name, value = "") => {
|
|
|
106
45
|
if (isSSR) {
|
|
107
46
|
return true;
|
|
108
47
|
}
|
|
109
|
-
|
|
110
|
-
return !!document.querySelector(`head>link[${name}="${value}"]`);
|
|
111
|
-
}
|
|
112
|
-
const styleElement = document.querySelector(`head>style[${name}="${value}"]`);
|
|
113
|
-
if (document.adoptedStyleSheets && !isSafari()) {
|
|
114
|
-
return !!styleElement || !!document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
|
|
115
|
-
}
|
|
116
|
-
return !!styleElement;
|
|
48
|
+
return !!document.adoptedStyleSheets.find(sh => sh._ui5StyleId === getStyleId(name, value));
|
|
117
49
|
};
|
|
118
50
|
const removeStyle = (name, value = "") => {
|
|
119
|
-
|
|
120
|
-
const linkElement = document.querySelector(`head>link[${name}="${value}"]`);
|
|
121
|
-
linkElement?.parentElement?.removeChild(linkElement);
|
|
122
|
-
}
|
|
123
|
-
else if (document.adoptedStyleSheets && !isSafari()) {
|
|
124
|
-
document.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => sh._ui5StyleId !== getStyleId(name, value));
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
const styleElement = document.querySelector(`head > style[${name}="${value}"]`);
|
|
128
|
-
styleElement?.parentElement?.removeChild(styleElement);
|
|
129
|
-
}
|
|
51
|
+
document.adoptedStyleSheets = document.adoptedStyleSheets.filter(sh => sh._ui5StyleId !== getStyleId(name, value));
|
|
130
52
|
};
|
|
131
53
|
const createOrUpdateStyle = (data, name, value = "", theme) => {
|
|
132
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 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\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 (isSSR) {\n\t\treturn true;\n\t}\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"]}
|
package/dist/UI5Element.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import "@ui5/webcomponents-base/dist/ssr-dom.js";
|
|
2
2
|
import UI5ElementMetadata, { Slot, SlotValue, State, PropertyValue, Metadata } from "./UI5ElementMetadata.js";
|
|
3
3
|
import EventProvider from "./EventProvider.js";
|
|
4
|
-
import StaticAreaItem from "./StaticAreaItem.js";
|
|
5
4
|
import type { TemplateFunction, TemplateFunctionResult } from "./renderer/executeTemplate.js";
|
|
6
5
|
import type { AccessibilityInfo, PromiseResolve, ComponentStylesData, ClassMap } from "./types.js";
|
|
7
|
-
type Renderer = (templateResult: TemplateFunctionResult, container: HTMLElement | DocumentFragment,
|
|
6
|
+
type Renderer = (templateResult: TemplateFunctionResult, container: HTMLElement | DocumentFragment, options: RendererOptions) => void;
|
|
8
7
|
type RendererOptions = {
|
|
9
8
|
/**
|
|
10
9
|
* An object to use as the `this` value for event listeners. It's often
|
|
@@ -49,15 +48,9 @@ declare abstract class UI5Element extends HTMLElement {
|
|
|
49
48
|
_doNotSyncAttributes: Set<string>;
|
|
50
49
|
_state: State;
|
|
51
50
|
_getRealDomRef?: () => HTMLElement;
|
|
52
|
-
staticAreaItem?: StaticAreaItem;
|
|
53
51
|
static template?: TemplateFunction;
|
|
54
|
-
static staticAreaTemplate?: TemplateFunction;
|
|
55
52
|
static _metadata: UI5ElementMetadata;
|
|
56
|
-
|
|
57
|
-
* @deprecated
|
|
58
|
-
*/
|
|
59
|
-
static render: Renderer;
|
|
60
|
-
static renderer?: Renderer;
|
|
53
|
+
static renderer: Renderer;
|
|
61
54
|
constructor();
|
|
62
55
|
/**
|
|
63
56
|
* Returns a unique ID for this UI5 Element
|
|
@@ -67,7 +60,6 @@ declare abstract class UI5Element extends HTMLElement {
|
|
|
67
60
|
*/
|
|
68
61
|
get _id(): string;
|
|
69
62
|
render(): object;
|
|
70
|
-
renderStatic(): object;
|
|
71
63
|
/**
|
|
72
64
|
* Do not call this method from derivatives of UI5Element, use "onEnterDOM" only
|
|
73
65
|
* @private
|
|
@@ -203,9 +195,9 @@ declare abstract class UI5Element extends HTMLElement {
|
|
|
203
195
|
* 1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot
|
|
204
196
|
* 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"
|
|
205
197
|
* 3) slotchange: a slot element, slotted inside that slot had its "slotchange" event listener called. This practically means that transitively slotted children changed.
|
|
206
|
-
*
|
|
198
|
+
* Can only trigger if the child of a slot is a slot element itself.
|
|
207
199
|
* 4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.
|
|
208
|
-
*
|
|
200
|
+
* Can only trigger for slots with "invalidateOnChildChange" metadata descriptor
|
|
209
201
|
*
|
|
210
202
|
* - newValue: the new value of the property (for type="property" only)
|
|
211
203
|
*
|
|
@@ -317,14 +309,6 @@ declare abstract class UI5Element extends HTMLElement {
|
|
|
317
309
|
* @private
|
|
318
310
|
*/
|
|
319
311
|
static _needsShadowDOM(): boolean;
|
|
320
|
-
/**
|
|
321
|
-
* @private
|
|
322
|
-
*/
|
|
323
|
-
static _needsStaticArea(): boolean;
|
|
324
|
-
/**
|
|
325
|
-
* @public
|
|
326
|
-
*/
|
|
327
|
-
getStaticAreaItemDomRef(): Promise<ShadowRoot | null>;
|
|
328
312
|
/**
|
|
329
313
|
* @private
|
|
330
314
|
*/
|
|
@@ -339,11 +323,6 @@ declare abstract class UI5Element extends HTMLElement {
|
|
|
339
323
|
* @protected
|
|
340
324
|
*/
|
|
341
325
|
static styles: ComponentStylesData;
|
|
342
|
-
/**
|
|
343
|
-
* Returns the Static Area CSS for this UI5 Web Component Class
|
|
344
|
-
* @protected
|
|
345
|
-
*/
|
|
346
|
-
static get staticAreaStyles(): ComponentStylesData;
|
|
347
326
|
/**
|
|
348
327
|
* Returns an array with the dependencies for this UI5 Web Component, which could be:
|
|
349
328
|
* - composed components (used in its shadow root or static area item)
|
|
@@ -385,5 +364,5 @@ declare abstract class UI5Element extends HTMLElement {
|
|
|
385
364
|
*/
|
|
386
365
|
declare const instanceOfUI5Element: (object: any) => object is UI5Element;
|
|
387
366
|
export default UI5Element;
|
|
388
|
-
export { instanceOfUI5Element };
|
|
367
|
+
export { instanceOfUI5Element, };
|
|
389
368
|
export type { ChangeInfo, Renderer, RendererOptions, };
|
package/dist/UI5Element.js
CHANGED
|
@@ -4,11 +4,9 @@ import merge from "./thirdparty/merge.js";
|
|
|
4
4
|
import { boot } from "./Boot.js";
|
|
5
5
|
import UI5ElementMetadata from "./UI5ElementMetadata.js";
|
|
6
6
|
import EventProvider from "./EventProvider.js";
|
|
7
|
-
import getSingletonElementInstance from "./util/getSingletonElementInstance.js";
|
|
8
|
-
import StaticAreaItem from "./StaticAreaItem.js";
|
|
9
7
|
import updateShadowRoot from "./updateShadowRoot.js";
|
|
10
8
|
import { shouldIgnoreCustomElement } from "./IgnoreCustomElements.js";
|
|
11
|
-
import { renderDeferred, renderImmediately, cancelRender } from "./Render.js";
|
|
9
|
+
import { renderDeferred, renderImmediately, cancelRender, } from "./Render.js";
|
|
12
10
|
import { registerTag, isTagRegistered, recordTagRegistrationFailure } from "./CustomElementsRegistry.js";
|
|
13
11
|
import { observeDOMNode, unobserveDOMNode } from "./DOMObserver.js";
|
|
14
12
|
import { skipOriginalEvent } from "./config/NoConflict.js";
|
|
@@ -18,7 +16,6 @@ import isValidPropertyName from "./util/isValidPropertyName.js";
|
|
|
18
16
|
import { getSlotName, getSlottedNodesList } from "./util/SlotsHelper.js";
|
|
19
17
|
import arraysAreEqual from "./util/arraysAreEqual.js";
|
|
20
18
|
import { markAsRtlAware } from "./locale/RTLAwareRegistry.js";
|
|
21
|
-
import preloadLinks from "./theming/preloadLinks.js";
|
|
22
19
|
import executeTemplate from "./renderer/executeTemplate.js";
|
|
23
20
|
let autoId = 0;
|
|
24
21
|
const elementTimeouts = new Map();
|
|
@@ -40,6 +37,22 @@ function _invalidate(changeInfo) {
|
|
|
40
37
|
renderDeferred(this);
|
|
41
38
|
this._invalidationEventProvider.fireEvent("invalidate", { ...changeInfo, target: this });
|
|
42
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* looks up a property descsriptor including in the prototype chain
|
|
42
|
+
* @param proto the starting prototype
|
|
43
|
+
* @param name the property to look for
|
|
44
|
+
* @returns the property descriptor if found directly or in the prototype chaing, undefined if not found
|
|
45
|
+
*/
|
|
46
|
+
function getPropertyDescriptor(proto, name) {
|
|
47
|
+
do {
|
|
48
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, name);
|
|
49
|
+
if (descriptor) {
|
|
50
|
+
return descriptor;
|
|
51
|
+
}
|
|
52
|
+
// go up the prototype chain
|
|
53
|
+
proto = Object.getPrototypeOf(proto);
|
|
54
|
+
} while (proto && proto !== HTMLElement.prototype);
|
|
55
|
+
}
|
|
43
56
|
/**
|
|
44
57
|
* @class
|
|
45
58
|
* Base class for all UI5 Web Components
|
|
@@ -68,7 +81,8 @@ class UI5Element extends HTMLElement {
|
|
|
68
81
|
this._state = { ...ctor.getMetadata().getInitialState() };
|
|
69
82
|
this._upgradeAllProperties();
|
|
70
83
|
if (ctor._needsShadowDOM()) {
|
|
71
|
-
|
|
84
|
+
const defaultOptions = { mode: "open" };
|
|
85
|
+
this.attachShadow({ ...defaultOptions, ...ctor.getMetadata().getShadowRootOptions() });
|
|
72
86
|
}
|
|
73
87
|
}
|
|
74
88
|
/**
|
|
@@ -87,10 +101,6 @@ class UI5Element extends HTMLElement {
|
|
|
87
101
|
const template = this.constructor.template;
|
|
88
102
|
return executeTemplate(template, this);
|
|
89
103
|
}
|
|
90
|
-
renderStatic() {
|
|
91
|
-
const template = this.constructor.staticAreaTemplate;
|
|
92
|
-
return executeTemplate(template, this);
|
|
93
|
-
}
|
|
94
104
|
/**
|
|
95
105
|
* Do not call this method from derivatives of UI5Element, use "onEnterDOM" only
|
|
96
106
|
* @private
|
|
@@ -131,9 +141,6 @@ class UI5Element extends HTMLElement {
|
|
|
131
141
|
this.onExitDOM();
|
|
132
142
|
this._fullyConnected = false;
|
|
133
143
|
}
|
|
134
|
-
if (this.staticAreaItem && this.staticAreaItem.parentElement) {
|
|
135
|
-
this.staticAreaItem.parentElement.removeChild(this.staticAreaItem);
|
|
136
|
-
}
|
|
137
144
|
cancelRender(this);
|
|
138
145
|
}
|
|
139
146
|
/**
|
|
@@ -510,9 +517,9 @@ class UI5Element extends HTMLElement {
|
|
|
510
517
|
* 1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot
|
|
511
518
|
* 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"
|
|
512
519
|
* 3) slotchange: a slot element, slotted inside that slot had its "slotchange" event listener called. This practically means that transitively slotted children changed.
|
|
513
|
-
*
|
|
520
|
+
* Can only trigger if the child of a slot is a slot element itself.
|
|
514
521
|
* 4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.
|
|
515
|
-
*
|
|
522
|
+
* Can only trigger for slots with "invalidateOnChildChange" metadata descriptor
|
|
516
523
|
*
|
|
517
524
|
* - newValue: the new value of the property (for type="property" only)
|
|
518
525
|
*
|
|
@@ -563,9 +570,6 @@ class UI5Element extends HTMLElement {
|
|
|
563
570
|
if (ctor._needsShadowDOM()) {
|
|
564
571
|
updateShadowRoot(this);
|
|
565
572
|
}
|
|
566
|
-
if (this.staticAreaItem) {
|
|
567
|
-
this.staticAreaItem.update();
|
|
568
|
-
}
|
|
569
573
|
// Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM
|
|
570
574
|
if (hasIndividualSlots) {
|
|
571
575
|
this._assignIndividualSlotsToChildren();
|
|
@@ -605,11 +609,7 @@ class UI5Element extends HTMLElement {
|
|
|
605
609
|
if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
|
|
606
610
|
return;
|
|
607
611
|
}
|
|
608
|
-
|
|
609
|
-
if (children.length !== 1) {
|
|
610
|
-
console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line
|
|
611
|
-
}
|
|
612
|
-
return children[0];
|
|
612
|
+
return this.shadowRoot.children[0];
|
|
613
613
|
}
|
|
614
614
|
/**
|
|
615
615
|
* Returns the DOM Element marked with "data-sap-focus-ref" inside the template.
|
|
@@ -752,28 +752,6 @@ class UI5Element extends HTMLElement {
|
|
|
752
752
|
static _needsShadowDOM() {
|
|
753
753
|
return !!this.template || Object.prototype.hasOwnProperty.call(this.prototype, "render");
|
|
754
754
|
}
|
|
755
|
-
/**
|
|
756
|
-
* @private
|
|
757
|
-
*/
|
|
758
|
-
static _needsStaticArea() {
|
|
759
|
-
return !!this.staticAreaTemplate || Object.prototype.hasOwnProperty.call(this.prototype, "renderStatic");
|
|
760
|
-
}
|
|
761
|
-
/**
|
|
762
|
-
* @public
|
|
763
|
-
*/
|
|
764
|
-
getStaticAreaItemDomRef() {
|
|
765
|
-
if (!this.constructor._needsStaticArea()) {
|
|
766
|
-
throw new Error("This component does not use the static area");
|
|
767
|
-
}
|
|
768
|
-
if (!this.staticAreaItem) {
|
|
769
|
-
this.staticAreaItem = StaticAreaItem.createInstance();
|
|
770
|
-
this.staticAreaItem.setOwnerElement(this);
|
|
771
|
-
}
|
|
772
|
-
if (!this.staticAreaItem.parentElement) {
|
|
773
|
-
getSingletonElementInstance("ui5-static-area").appendChild(this.staticAreaItem);
|
|
774
|
-
}
|
|
775
|
-
return this.staticAreaItem.getDomRef();
|
|
776
|
-
}
|
|
777
755
|
/**
|
|
778
756
|
* @private
|
|
779
757
|
*/
|
|
@@ -798,7 +776,7 @@ class UI5Element extends HTMLElement {
|
|
|
798
776
|
if (propData.multiple && propData.defaultValue) {
|
|
799
777
|
throw new Error(`Cannot set a default value for property "${prop}". All multiple properties are empty arrays by default.`);
|
|
800
778
|
}
|
|
801
|
-
const descriptor =
|
|
779
|
+
const descriptor = getPropertyDescriptor(proto, prop);
|
|
802
780
|
// if the decorator is on a setter, proxy the new setter to it
|
|
803
781
|
let origSet;
|
|
804
782
|
if (descriptor?.set) {
|
|
@@ -895,13 +873,6 @@ class UI5Element extends HTMLElement {
|
|
|
895
873
|
}
|
|
896
874
|
}
|
|
897
875
|
}
|
|
898
|
-
/**
|
|
899
|
-
* Returns the Static Area CSS for this UI5 Web Component Class
|
|
900
|
-
* @protected
|
|
901
|
-
*/
|
|
902
|
-
static get staticAreaStyles() {
|
|
903
|
-
return "";
|
|
904
|
-
}
|
|
905
876
|
/**
|
|
906
877
|
* Returns an array with the dependencies for this UI5 Web Component, which could be:
|
|
907
878
|
* - composed components (used in its shadow root or static area item)
|
|
@@ -958,7 +929,6 @@ class UI5Element extends HTMLElement {
|
|
|
958
929
|
this._generateAccessors();
|
|
959
930
|
registerTag(tag);
|
|
960
931
|
customElements.define(tag, this);
|
|
961
|
-
preloadLinks(this);
|
|
962
932
|
}
|
|
963
933
|
return this;
|
|
964
934
|
}
|
|
@@ -999,5 +969,5 @@ const instanceOfUI5Element = (object) => {
|
|
|
999
969
|
return "isUI5Element" in object;
|
|
1000
970
|
};
|
|
1001
971
|
export default UI5Element;
|
|
1002
|
-
export { instanceOfUI5Element };
|
|
972
|
+
export { instanceOfUI5Element, };
|
|
1003
973
|
//# sourceMappingURL=UI5Element.js.map
|