@ui5/webcomponents-base 0.0.0-dcd8e5389 → 0.0.0-ddc5fe31b
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 +1 -1
- package/CHANGELOG.md +492 -0
- package/README.md +6 -1
- package/bundle.esm.js +4 -1
- package/dist/.tsbuildinfo +1 -0
- package/dist/AssetRegistry.d.ts +2 -2
- package/dist/AssetRegistry.js +2 -2
- package/dist/AssetRegistry.js.map +1 -1
- package/dist/Boot.js +1 -1
- package/dist/Boot.js.map +1 -1
- package/dist/CustomElementsScope.d.ts +4 -4
- package/dist/CustomElementsScope.js +2 -2
- package/dist/CustomElementsScope.js.map +1 -1
- package/dist/CustomElementsScopeUtils.d.ts +8 -1
- package/dist/CustomElementsScopeUtils.js +13 -1
- package/dist/CustomElementsScopeUtils.js.map +1 -1
- package/dist/Device.d.ts +2 -1
- package/dist/Device.js +10 -1
- package/dist/Device.js.map +1 -1
- package/dist/EventProvider.js +1 -1
- package/dist/EventProvider.js.map +1 -1
- package/dist/FontFace.js +1 -1
- package/dist/FontFace.js.map +1 -1
- package/dist/IgnoreCustomElements.d.ts +27 -0
- package/dist/IgnoreCustomElements.js +39 -0
- package/dist/IgnoreCustomElements.js.map +1 -0
- package/dist/InitialConfiguration.d.ts +2 -1
- package/dist/InitialConfiguration.js +7 -2
- package/dist/InitialConfiguration.js.map +1 -1
- package/dist/Keys.d.ts +5 -1
- package/dist/Keys.js +109 -106
- package/dist/Keys.js.map +1 -1
- package/dist/ManagedStyles.d.ts +5 -4
- package/dist/ManagedStyles.js +95 -15
- package/dist/ManagedStyles.js.map +1 -1
- package/dist/MediaRange.d.ts +0 -6
- package/dist/MediaRange.js +5 -15
- package/dist/MediaRange.js.map +1 -1
- package/dist/StaticAreaItem.d.ts +3 -4
- package/dist/StaticAreaItem.js +9 -8
- package/dist/StaticAreaItem.js.map +1 -1
- package/dist/UI5Element.d.ts +28 -25
- package/dist/UI5Element.js +48 -37
- package/dist/UI5Element.js.map +1 -1
- package/dist/UI5ElementMetadata.d.ts +4 -11
- package/dist/UI5ElementMetadata.js +3 -11
- package/dist/UI5ElementMetadata.js.map +1 -1
- package/dist/asset-registries/Icons.d.ts +4 -3
- package/dist/asset-registries/Icons.js +28 -17
- package/dist/asset-registries/Icons.js.map +1 -1
- package/dist/asset-registries/Illustrations.d.ts +1 -0
- package/dist/asset-registries/Illustrations.js +50 -20
- package/dist/asset-registries/Illustrations.js.map +1 -1
- package/dist/asset-registries/LocaleData.js.map +1 -1
- package/dist/asset-registries/Themes.d.ts +4 -3
- package/dist/asset-registries/Themes.js +26 -10
- package/dist/asset-registries/Themes.js.map +1 -1
- package/dist/asset-registries/i18n.js +2 -1
- package/dist/asset-registries/i18n.js.map +1 -1
- package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.d.ts +1 -2
- package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.js +1 -2
- package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
- package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
- package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
- package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
- package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
- package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
- package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +2 -2
- package/dist/config/AnimationMode.js +1 -1
- package/dist/config/AnimationMode.js.map +1 -1
- package/dist/config/CalendarType.d.ts +8 -1
- package/dist/config/CalendarType.js +18 -2
- package/dist/config/CalendarType.js.map +1 -1
- package/dist/config/Icons.d.ts +2 -17
- package/dist/config/Icons.js +1 -60
- package/dist/config/Icons.js.map +1 -1
- package/dist/config/ThemeRoot.d.ts +29 -0
- package/dist/config/ThemeRoot.js +59 -0
- package/dist/config/ThemeRoot.js.map +1 -0
- package/dist/connectToComponent.d.ts +9 -0
- package/dist/connectToComponent.js +59 -0
- package/dist/connectToComponent.js.map +1 -0
- package/dist/css/FontFace.css +47 -17
- package/dist/custom-elements-internal.json +2765 -0
- package/dist/custom-elements.json +2528 -0
- package/dist/decorators/customElement.d.ts +1 -1
- package/dist/decorators/customElement.js +1 -1
- package/dist/decorators/customElement.js.map +1 -1
- package/dist/decorators/event.d.ts +5 -2
- package/dist/decorators/event.js.map +1 -1
- package/dist/delegate/ItemNavigation.d.ts +1 -0
- package/dist/delegate/ItemNavigation.js +4 -5
- package/dist/delegate/ItemNavigation.js.map +1 -1
- package/dist/delegate/ResizeHandler.d.ts +4 -6
- package/dist/delegate/ResizeHandler.js +4 -6
- package/dist/delegate/ResizeHandler.js.map +1 -1
- package/dist/delegate/ScrollEnablement.js +2 -2
- package/dist/delegate/ScrollEnablement.js.map +1 -1
- package/dist/features/OpenUI5Enablement.d.ts +1 -1
- package/dist/features/OpenUI5Support.d.ts +13 -3
- package/dist/features/OpenUI5Support.js +89 -33
- package/dist/features/OpenUI5Support.js.map +1 -1
- package/dist/generated/AssetParameters.d.ts +6 -0
- package/dist/generated/AssetParameters.js +3 -10
- package/dist/generated/AssetParameters.js.map +1 -0
- package/dist/generated/VersionInfo.d.ts +10 -0
- package/dist/generated/VersionInfo.js +9 -8
- package/dist/generated/VersionInfo.js.map +1 -0
- package/dist/generated/css/FontFace.css.js +1 -1
- package/dist/generated/css/FontFace.css.js.map +1 -1
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +3 -3
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -1
- package/dist/getSharedResource.js +7 -1
- package/dist/getSharedResource.js.map +1 -1
- package/dist/i18nBundle.d.ts +2 -4
- package/dist/i18nBundle.js +3 -5
- package/dist/i18nBundle.js.map +1 -1
- package/dist/locale/RTLAwareRegistry.d.ts +1 -1
- package/dist/locale/RTLAwareRegistry.js.map +1 -1
- package/dist/renderer/LitRenderer.d.ts +2 -2
- package/dist/sap/base/Log.js +698 -188
- package/dist/sap/base/assert.js +28 -1
- package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
- package/dist/sap/base/security/URLListValidator.js +253 -6
- package/dist/sap/base/security/encodeCSS.js +34 -8
- package/dist/sap/base/security/encodeXML.js +47 -17
- package/dist/sap/base/security/sanitizeHTML.js +35 -13
- package/dist/sap/base/strings/toHex.js +27 -2
- package/dist/sap/base/util/now.js +24 -3
- package/dist/sap/base/util/uid.js +27 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +112 -97
- package/dist/ssr-dom-shim.d.ts +1 -0
- package/dist/ssr-dom-shim.js +12 -0
- package/dist/ssr-dom-shim.js.map +1 -0
- package/dist/ssr-dom.d.ts +0 -0
- package/dist/ssr-dom.js +3 -0
- package/dist/ssr-dom.js.map +1 -0
- package/dist/theming/applyTheme.js +8 -7
- package/dist/theming/applyTheme.js.map +1 -1
- package/dist/types/AnimationMode.d.ts +0 -8
- package/dist/types/AnimationMode.js +0 -8
- package/dist/types/AnimationMode.js.map +1 -1
- package/dist/types/CSSColor.d.ts +0 -4
- package/dist/types/CSSColor.js +0 -4
- package/dist/types/CSSColor.js.map +1 -1
- package/dist/types/CSSSize.d.ts +11 -0
- package/dist/types/CSSSize.js +14 -0
- package/dist/types/CSSSize.js.map +1 -0
- package/dist/types/CalendarType.d.ts +0 -9
- package/dist/types/CalendarType.js +0 -9
- package/dist/types/CalendarType.js.map +1 -1
- package/dist/types/DOMReference.d.ts +0 -4
- package/dist/types/DOMReference.js +0 -4
- package/dist/types/DOMReference.js.map +1 -1
- package/dist/types/DataType.d.ts +1 -6
- package/dist/types/DataType.js +1 -6
- package/dist/types/DataType.js.map +1 -1
- package/dist/types/Float.d.ts +0 -3
- package/dist/types/Float.js +0 -3
- package/dist/types/Float.js.map +1 -1
- package/dist/types/Integer.d.ts +0 -3
- package/dist/types/Integer.js +0 -3
- package/dist/types/Integer.js.map +1 -1
- package/dist/types/InvisibleMessageMode.d.ts +5 -10
- package/dist/types/InvisibleMessageMode.js +4 -11
- package/dist/types/InvisibleMessageMode.js.map +1 -1
- package/dist/types/ItemNavigationBehavior.d.ts +0 -6
- package/dist/types/ItemNavigationBehavior.js +0 -6
- package/dist/types/ItemNavigationBehavior.js.map +1 -1
- package/dist/types/NavigationMode.d.ts +0 -8
- package/dist/types/NavigationMode.js +0 -8
- package/dist/types/NavigationMode.js.map +1 -1
- package/dist/types/ValueState.d.ts +0 -14
- package/dist/types/ValueState.js +0 -14
- package/dist/types/ValueState.js.map +1 -1
- package/dist/updateShadowRoot.js +2 -1
- package/dist/updateShadowRoot.js.map +1 -1
- package/dist/util/ColorConversion.js +200 -195
- package/dist/util/ColorConversion.js.map +1 -1
- package/dist/util/PopupUtils.js +1 -1
- package/dist/util/PopupUtils.js.map +1 -1
- package/dist/util/detectNavigatorLanguage.d.ts +2 -2
- package/dist/util/detectNavigatorLanguage.js +6 -1
- package/dist/util/detectNavigatorLanguage.js.map +1 -1
- package/dist/util/getClassCopy.d.ts +52 -33
- package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
- package/dist/util/getDesigntimePropertyAsArray.js +2 -1
- package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
- package/dist/util/getParentElement.d.ts +2 -0
- package/dist/util/getParentElement.js +5 -0
- package/dist/util/getParentElement.js.map +1 -0
- package/dist/util/getSingletonElementInstance.d.ts +10 -1
- package/dist/util/getSingletonElementInstance.js +11 -2
- package/dist/util/getSingletonElementInstance.js.map +1 -1
- package/dist/util/isElementContainingBlock.d.ts +2 -0
- package/dist/util/isElementContainingBlock.js +11 -0
- package/dist/util/isElementContainingBlock.js.map +1 -0
- package/index.js +3 -3
- package/lib/generate-asset-parameters/index.js +2 -2
- package/lib/generate-version-info/index.js +2 -2
- package/package-scripts.cjs +12 -18
- package/package.json +14 -6
- package/src/css/FontFace.css +47 -17
- package/tsconfig.json +4 -0
- package/used-modules.txt +4 -0
- package/dist/api.json +0 -1
- package/dist/assets/Boot.34b7cea0.css +0 -1
- package/dist/assets/Boot.f21d1bf8.js +0 -9
- package/dist/assets/bundle.esm.fff719c1.js +0 -50
- package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
- package/dist/config/ThemeRoots.d.ts +0 -4
- package/dist/config/ThemeRoots.js +0 -28
- package/dist/config/ThemeRoots.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IconCollection } from "../../config/Icons.js";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the effective theme dependant icon collection:
|
|
4
|
+
*
|
|
5
|
+
* - "no collection" resolves to "SAP-icons-v4" in "Quartz" and "Belize", and to "SAP-icons-v5" in "Horizon"
|
|
6
|
+
* - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz", "Belize", and resolves to "tnt-v3" in "Horizon"
|
|
7
|
+
* - "business-suite" (and its alias "BusinessSuiteInAppSymbols") resolves to "business-suite-v1" in "Quartz", "Belize", and resolves to "business-suite-v2" in "Horizon"
|
|
8
|
+
*
|
|
9
|
+
* @param { IconCollection } collectionName
|
|
10
|
+
* @returns { IconCollection } the effective collection name
|
|
11
|
+
*/
|
|
12
|
+
declare const getEffectiveIconCollection: (collectionName?: IconCollection) => IconCollection;
|
|
13
|
+
export default getEffectiveIconCollection;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { getTheme } from "../../config/Theme.js";
|
|
2
|
+
import { getDefaultIconCollection } from "../../config/Icons.js";
|
|
3
|
+
import { getIconCollectionByAlias } from "./IconCollectionsAlias.js";
|
|
4
|
+
import { getIconCollectionForTheme } from "./IconCollectionsByTheme.js";
|
|
5
|
+
/**
|
|
6
|
+
* Returns the effective theme dependant icon collection:
|
|
7
|
+
*
|
|
8
|
+
* - "no collection" resolves to "SAP-icons-v4" in "Quartz" and "Belize", and to "SAP-icons-v5" in "Horizon"
|
|
9
|
+
* - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz", "Belize", and resolves to "tnt-v3" in "Horizon"
|
|
10
|
+
* - "business-suite" (and its alias "BusinessSuiteInAppSymbols") resolves to "business-suite-v1" in "Quartz", "Belize", and resolves to "business-suite-v2" in "Horizon"
|
|
11
|
+
*
|
|
12
|
+
* @param { IconCollection } collectionName
|
|
13
|
+
* @returns { IconCollection } the effective collection name
|
|
14
|
+
*/
|
|
15
|
+
const getEffectiveIconCollection = (collectionName) => {
|
|
16
|
+
const defaultIconCollection = getDefaultIconCollection(getTheme());
|
|
17
|
+
// no collection + default collection, configured via setDefaultIconCollection - return the configured icon collection.
|
|
18
|
+
if (!collectionName && defaultIconCollection) {
|
|
19
|
+
return getIconCollectionByAlias(defaultIconCollection);
|
|
20
|
+
}
|
|
21
|
+
// no collection - return "SAP-icons-v4" or "SAP-icons-v5".
|
|
22
|
+
if (!collectionName) {
|
|
23
|
+
return getIconCollectionForTheme("SAP-icons");
|
|
24
|
+
}
|
|
25
|
+
// has collection - return "SAP-icons-v4", "SAP-icons-v5", "tnt-v1", "tnt-v2", "business-suite-v1", "business-suite-v2", or custom ones.
|
|
26
|
+
return getIconCollectionForTheme(collectionName);
|
|
27
|
+
};
|
|
28
|
+
export default getEffectiveIconCollection;
|
|
29
|
+
//# sourceMappingURL=getIconCollectionByTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getIconCollectionByTheme.js","sourceRoot":"","sources":["../../../src/asset-registries/util/getIconCollectionByTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,0BAA0B,GAAG,CAAC,cAA+B,EAAkB,EAAE;IACtF,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE,uHAAuH;IACvH,IAAI,CAAC,cAAc,IAAI,qBAAqB,EAAE;QAC7C,OAAO,wBAAwB,CAAC,qBAAqB,CAAC,CAAC;KACvD;IAED,4DAA4D;IAC5D,IAAI,CAAC,cAAc,EAAE;QACpB,OAAO,yBAAyB,CAAC,WAAW,CAAC,CAAC;KAC9C;IAED,wIAAwI;IACxI,OAAO,yBAAyB,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,eAAe,0BAA0B,CAAC","sourcesContent":["import { getTheme } from \"../../config/Theme.js\";\nimport type { IconCollection } from \"../../config/Icons.js\";\nimport { getDefaultIconCollection } from \"../../config/Icons.js\";\nimport { getIconCollectionByAlias } from \"./IconCollectionsAlias.js\";\nimport { getIconCollectionForTheme } from \"./IconCollectionsByTheme.js\";\n\n/**\n * Returns the effective theme dependant icon collection:\n *\n * - \"no collection\" resolves to \"SAP-icons-v4\" in \"Quartz\" and \"Belize\", and to \"SAP-icons-v5\" in \"Horizon\"\n * - \"tnt\" (and its alias \"SAP-icons-TNT\") resolves to \"tnt-v2\" in \"Quartz\", \"Belize\", and resolves to \"tnt-v3\" in \"Horizon\"\n * - \"business-suite\" (and its alias \"BusinessSuiteInAppSymbols\") resolves to \"business-suite-v1\" in \"Quartz\", \"Belize\", and resolves to \"business-suite-v2\" in \"Horizon\"\n *\n * @param { IconCollection } collectionName\n * @returns { IconCollection } the effective collection name\n */\nconst getEffectiveIconCollection = (collectionName?: IconCollection): IconCollection => {\n\tconst defaultIconCollection = getDefaultIconCollection(getTheme());\n\n\t// no collection + default collection, configured via setDefaultIconCollection - return the configured icon collection.\n\tif (!collectionName && defaultIconCollection) {\n\t\treturn getIconCollectionByAlias(defaultIconCollection);\n\t}\n\n\t// no collection - return \"SAP-icons-v4\" or \"SAP-icons-v5\".\n\tif (!collectionName) {\n\t\treturn getIconCollectionForTheme(\"SAP-icons\");\n\t}\n\n\t// has collection - return \"SAP-icons-v4\", \"SAP-icons-v5\", \"tnt-v1\", \"tnt-v2\", \"business-suite-v1\", \"business-suite-v2\", or custom ones.\n\treturn getIconCollectionForTheme(collectionName);\n};\n\nexport default getEffectiveIconCollection;\n"]}
|
|
@@ -4,11 +4,11 @@ import AnimationMode from "../types/AnimationMode.js";
|
|
|
4
4
|
* @public
|
|
5
5
|
* @returns { AnimationMode }
|
|
6
6
|
*/
|
|
7
|
-
declare const getAnimationMode: () => AnimationMode
|
|
7
|
+
declare const getAnimationMode: () => `${AnimationMode}`;
|
|
8
8
|
/**
|
|
9
9
|
* Sets the animation mode - "full", "basic", "minimal" or "none".
|
|
10
10
|
* @public
|
|
11
11
|
* @param { AnimationMode } animationMode
|
|
12
12
|
*/
|
|
13
|
-
declare const setAnimationMode: (animationMode: AnimationMode) => void;
|
|
13
|
+
declare const setAnimationMode: (animationMode: `${AnimationMode}`) => void;
|
|
14
14
|
export { getAnimationMode, setAnimationMode, };
|
|
@@ -18,7 +18,7 @@ const getAnimationMode = () => {
|
|
|
18
18
|
* @param { AnimationMode } animationMode
|
|
19
19
|
*/
|
|
20
20
|
const setAnimationMode = (animationMode) => {
|
|
21
|
-
if (
|
|
21
|
+
if (animationMode in AnimationMode) {
|
|
22
22
|
curAnimationMode = animationMode;
|
|
23
23
|
}
|
|
24
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationMode.js","sourceRoot":"","sources":["../../src/config/AnimationMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAEtD,IAAI,
|
|
1
|
+
{"version":3,"file":"AnimationMode.js","sourceRoot":"","sources":["../../src/config/AnimationMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,aAAa,MAAM,2BAA2B,CAAC;AAEtD,IAAI,gBAAoC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,GAAuB,EAAE;IACjD,IAAI,gBAAgB,KAAK,SAAS,EAAE;QACnC,gBAAgB,GAAG,0BAA0B,EAAE,CAAC;KAChD;IAED,OAAO,gBAAgB,CAAC;AACzB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,aAAiC,EAAE,EAAE;IAC9D,IAAI,aAAa,IAAI,aAAa,EAAE;QACnC,gBAAgB,GAAG,aAAa,CAAC;KACjC;AACF,CAAC,CAAC;AAEF,OAAO,EACN,gBAAgB,EAChB,gBAAgB,GAChB,CAAC","sourcesContent":["import { getAnimationMode as getConfiguredAnimationMode } from \"../InitialConfiguration.js\";\nimport AnimationMode from \"../types/AnimationMode.js\";\n\nlet curAnimationMode: `${AnimationMode}`;\n\n/**\n * Returns the animation mode - \"full\", \"basic\", \"minimal\" or \"none\".\n * @public\n * @returns { AnimationMode }\n */\nconst getAnimationMode = (): `${AnimationMode}` => {\n\tif (curAnimationMode === undefined) {\n\t\tcurAnimationMode = getConfiguredAnimationMode();\n\t}\n\n\treturn curAnimationMode;\n};\n\n/**\n * Sets the animation mode - \"full\", \"basic\", \"minimal\" or \"none\".\n * @public\n * @param { AnimationMode } animationMode\n */\nconst setAnimationMode = (animationMode: `${AnimationMode}`) => {\n\tif (animationMode in AnimationMode) {\n\t\tcurAnimationMode = animationMode;\n\t}\n};\n\nexport {\n\tgetAnimationMode,\n\tsetAnimationMode,\n};\n"]}
|
|
@@ -5,4 +5,11 @@ import CalendarType from "../types/CalendarType.js";
|
|
|
5
5
|
* @returns { CalendarType } the effective calendar type
|
|
6
6
|
*/
|
|
7
7
|
declare const getCalendarType: () => CalendarType;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Returns the configured secondary calendar type.
|
|
10
|
+
* @public
|
|
11
|
+
* @returns { CalendarType | undefined } the effective calendar type
|
|
12
|
+
* @since 1.18.0
|
|
13
|
+
*/
|
|
14
|
+
declare const getSecondaryCalendarType: () => CalendarType | undefined;
|
|
15
|
+
export { getCalendarType, getSecondaryCalendarType, };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import CalendarType from "../types/CalendarType.js";
|
|
2
|
-
import { getCalendarType as getConfiguredCalendarType } from "../InitialConfiguration.js";
|
|
2
|
+
import { getCalendarType as getConfiguredCalendarType, getSecondaryCalendarType as getConfiguredSecondaryCalendarType, } from "../InitialConfiguration.js";
|
|
3
3
|
let calendarType;
|
|
4
|
+
let secondaryCalendarType;
|
|
4
5
|
/**
|
|
5
6
|
* Returns the configured or default calendar type.
|
|
6
7
|
* @public
|
|
@@ -15,5 +16,20 @@ const getCalendarType = () => {
|
|
|
15
16
|
}
|
|
16
17
|
return CalendarType.Gregorian;
|
|
17
18
|
};
|
|
18
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Returns the configured secondary calendar type.
|
|
21
|
+
* @public
|
|
22
|
+
* @returns { CalendarType | undefined } the effective calendar type
|
|
23
|
+
* @since 1.18.0
|
|
24
|
+
*/
|
|
25
|
+
const getSecondaryCalendarType = () => {
|
|
26
|
+
if (secondaryCalendarType === undefined) {
|
|
27
|
+
secondaryCalendarType = getConfiguredSecondaryCalendarType();
|
|
28
|
+
}
|
|
29
|
+
if (secondaryCalendarType && secondaryCalendarType in CalendarType) {
|
|
30
|
+
return secondaryCalendarType;
|
|
31
|
+
}
|
|
32
|
+
return secondaryCalendarType;
|
|
33
|
+
};
|
|
34
|
+
export { getCalendarType, getSecondaryCalendarType, };
|
|
19
35
|
//# sourceMappingURL=CalendarType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarType.js","sourceRoot":"","sources":["../../src/config/CalendarType.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"CalendarType.js","sourceRoot":"","sources":["../../src/config/CalendarType.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EACN,eAAe,IAAI,yBAAyB,EAC5C,wBAAwB,IAAI,kCAAkC,GAC9D,MAAM,4BAA4B,CAAC;AAEpC,IAAI,YAAsC,CAAC;AAC3C,IAAI,qBAA+C,CAAC;AAEpD;;;;GAIG;AACH,MAAM,eAAe,GAAG,GAAiB,EAAE;IAC1C,IAAI,YAAY,KAAK,SAAS,EAAE;QAC/B,YAAY,GAAG,yBAAyB,EAAE,CAAC;KAC3C;IAED,IAAI,YAAY,IAAI,YAAY,IAAI,YAAY,EAAE;QACjD,OAAO,YAAY,CAAC;KACpB;IAED,OAAO,YAAY,CAAC,SAAS,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG,GAA6B,EAAE;IAC/D,IAAI,qBAAqB,KAAK,SAAS,EAAE;QACxC,qBAAqB,GAAG,kCAAkC,EAAE,CAAC;KAC7D;IAED,IAAI,qBAAqB,IAAI,qBAAqB,IAAI,YAAY,EAAE;QACnE,OAAO,qBAAqB,CAAC;KAC7B;IAED,OAAO,qBAAqB,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,EACN,eAAe,EACf,wBAAwB,GACxB,CAAC","sourcesContent":["import CalendarType from \"../types/CalendarType.js\";\nimport {\n\tgetCalendarType as getConfiguredCalendarType,\n\tgetSecondaryCalendarType as getConfiguredSecondaryCalendarType,\n} from \"../InitialConfiguration.js\";\n\nlet calendarType: CalendarType | undefined;\nlet secondaryCalendarType: CalendarType | undefined;\n\n/**\n * Returns the configured or default calendar type.\n * @public\n * @returns { CalendarType } the effective calendar type\n */\nconst getCalendarType = (): CalendarType => {\n\tif (calendarType === undefined) {\n\t\tcalendarType = getConfiguredCalendarType();\n\t}\n\n\tif (calendarType && calendarType in CalendarType) {\n\t\treturn calendarType;\n\t}\n\n\treturn CalendarType.Gregorian;\n};\n\n/**\n * Returns the configured secondary calendar type.\n * @public\n * @returns { CalendarType | undefined } the effective calendar type\n * @since 1.18.0\n */\nconst getSecondaryCalendarType = (): CalendarType | undefined => {\n\tif (secondaryCalendarType === undefined) {\n\t\tsecondaryCalendarType = getConfiguredSecondaryCalendarType();\n\t}\n\n\tif (secondaryCalendarType && secondaryCalendarType in CalendarType) {\n\t\treturn secondaryCalendarType;\n\t}\n\n\treturn secondaryCalendarType;\n};\n\nexport {\n\tgetCalendarType,\n\tgetSecondaryCalendarType,\n};\n"]}
|
package/dist/config/Icons.d.ts
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
type IconCollection =
|
|
2
|
-
declare enum RegisteredIconCollection {
|
|
3
|
-
SAPIconsV4 = "SAP-icons-v4",
|
|
4
|
-
SAPIconsV5 = "SAP-icons-v5",
|
|
5
|
-
SAPIconsTNTV2 = "tnt-v2",
|
|
6
|
-
SAPIconsTNTV3 = "tnt-v3",
|
|
7
|
-
SAPBSIconsV1 = "business-suite-v1",
|
|
8
|
-
SAPBSIconsV2 = "business-suite-v2"
|
|
9
|
-
}
|
|
1
|
+
type IconCollection = string;
|
|
10
2
|
/**
|
|
11
3
|
* Sets the default icon collection for a given theme.
|
|
12
4
|
*
|
|
@@ -44,12 +36,5 @@ declare const setDefaultIconCollection: (theme: string, collectionName: IconColl
|
|
|
44
36
|
* @returns { string | undefined }
|
|
45
37
|
*/
|
|
46
38
|
declare const getDefaultIconCollection: (theme: string) => string | undefined;
|
|
47
|
-
|
|
48
|
-
* Returns the effective icon collection,
|
|
49
|
-
* based on the default icon collection configuration and the current theme:
|
|
50
|
-
* @param { IconCollection } collectionName
|
|
51
|
-
* @returns { IconCollection } the effective collection name
|
|
52
|
-
*/
|
|
53
|
-
declare const getEffectiveIconCollection: (collectionName?: IconCollection) => IconCollection;
|
|
54
|
-
export { setDefaultIconCollection, getDefaultIconCollection, getEffectiveIconCollection, RegisteredIconCollection, };
|
|
39
|
+
export { setDefaultIconCollection, getDefaultIconCollection, };
|
|
55
40
|
export type { IconCollection, };
|
package/dist/config/Icons.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
|
-
import { getTheme, isLegacyThemeFamily } from "./Theme.js";
|
|
2
|
-
import { getIconCollectionByAlias } from "../assets-meta/IconCollectionsAlias.js";
|
|
3
1
|
const IconCollectionConfiguration = new Map();
|
|
4
|
-
// All registered icon collections - all icon collections resolves to these options at the end
|
|
5
|
-
var RegisteredIconCollection;
|
|
6
|
-
(function (RegisteredIconCollection) {
|
|
7
|
-
RegisteredIconCollection["SAPIconsV4"] = "SAP-icons-v4";
|
|
8
|
-
RegisteredIconCollection["SAPIconsV5"] = "SAP-icons-v5";
|
|
9
|
-
RegisteredIconCollection["SAPIconsTNTV2"] = "tnt-v2";
|
|
10
|
-
RegisteredIconCollection["SAPIconsTNTV3"] = "tnt-v3";
|
|
11
|
-
RegisteredIconCollection["SAPBSIconsV1"] = "business-suite-v1";
|
|
12
|
-
RegisteredIconCollection["SAPBSIconsV2"] = "business-suite-v2";
|
|
13
|
-
})(RegisteredIconCollection || (RegisteredIconCollection = {}));
|
|
14
2
|
/**
|
|
15
3
|
* Sets the default icon collection for a given theme.
|
|
16
4
|
*
|
|
@@ -52,52 +40,5 @@ const setDefaultIconCollection = (theme, collectionName) => {
|
|
|
52
40
|
const getDefaultIconCollection = (theme) => {
|
|
53
41
|
return IconCollectionConfiguration.get(theme);
|
|
54
42
|
};
|
|
55
|
-
|
|
56
|
-
* Returns the effective icon collection,
|
|
57
|
-
* based on the default icon collection configuration and the current theme:
|
|
58
|
-
* @param { IconCollection } collectionName
|
|
59
|
-
* @returns { IconCollection } the effective collection name
|
|
60
|
-
*/
|
|
61
|
-
const getEffectiveIconCollection = (collectionName) => {
|
|
62
|
-
const currentTheme = getTheme();
|
|
63
|
-
const currentThemeConfiguration = IconCollectionConfiguration.get(currentTheme);
|
|
64
|
-
// when no collection is set and default collection is configured - return the configured icon collection
|
|
65
|
-
if (!collectionName && currentThemeConfiguration) {
|
|
66
|
-
return getIconCollectionByAlias(currentThemeConfiguration);
|
|
67
|
-
}
|
|
68
|
-
// when collection is set - return the theme dependant icon collection
|
|
69
|
-
// when collection is not set and there is no default icon collection configured - return theme dependant icon collection
|
|
70
|
-
return getIconCollectionByTheme(collectionName);
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Returns the icon theme dependant collection, based on the collection name and current theme as follows:
|
|
74
|
-
*
|
|
75
|
-
* - "no collection" resolves to "SAP-icons-v4" in "Quartz" and "Belize", and to "SAP-icons-v5" in "Horizon" (or as confugred via setDefaultIconCollection)
|
|
76
|
-
* - "SAP-icons-v4" (and its alias "SAP-icons") forces "SAP-icons v4" in any theme and resolves to itself "SAP-icons-v4"
|
|
77
|
-
* - "SAP-icons-v5" (and its alias "horizon") forces "SAP-icons v5" in any theme and resolves to itself "SAP-icons-v5"
|
|
78
|
-
* - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz", "Belize", and resolves to "tnt-v3" in "Horizon"
|
|
79
|
-
* - "tnt-v2" forces "TNT icons v2" in any theme and resolves to itself "tnt-v2"
|
|
80
|
-
* - "tnt-v3" forces "TNT icons v3" in any theme and resolves to itself "tnt-v3"
|
|
81
|
-
* - "business-suite" (and its alias "BusinessSuiteInAppSymbols") resolves to "business-suite-v1" in "Quartz", "Belize", and resolves to "business-suite-v2" in "Horizon"
|
|
82
|
-
* - "business-suite-v1" forces "Business Suite icons v1" in any theme and resolves to itself "business-suite-v1"
|
|
83
|
-
* - "business-suite-v2" forces "Business Suite icons v2" in any theme and resolves to itself "business-suite-v2"
|
|
84
|
-
*
|
|
85
|
-
* <b>Note:</b> "SAP-icons-v4", "SAP-icons-v5", "tnt-v2", "tnt-v3", "business-suite-v1" and "business-suite-v2" are just returned
|
|
86
|
-
* @param { IconCollection } collectionName
|
|
87
|
-
* @returns { RegisteredIconCollection } the registered collection name
|
|
88
|
-
*/
|
|
89
|
-
const getIconCollectionByTheme = (collectionName) => {
|
|
90
|
-
const legacyThemeFamily = isLegacyThemeFamily();
|
|
91
|
-
if (!collectionName) {
|
|
92
|
-
return legacyThemeFamily ? RegisteredIconCollection.SAPIconsV4 : RegisteredIconCollection.SAPIconsV5;
|
|
93
|
-
}
|
|
94
|
-
if (collectionName === "tnt") {
|
|
95
|
-
return legacyThemeFamily ? RegisteredIconCollection.SAPIconsTNTV2 : RegisteredIconCollection.SAPIconsTNTV3;
|
|
96
|
-
}
|
|
97
|
-
if (collectionName === "business-suite") {
|
|
98
|
-
return legacyThemeFamily ? RegisteredIconCollection.SAPBSIconsV1 : RegisteredIconCollection.SAPBSIconsV2;
|
|
99
|
-
}
|
|
100
|
-
return collectionName;
|
|
101
|
-
};
|
|
102
|
-
export { setDefaultIconCollection, getDefaultIconCollection, getEffectiveIconCollection, RegisteredIconCollection, };
|
|
43
|
+
export { setDefaultIconCollection, getDefaultIconCollection, };
|
|
103
44
|
//# sourceMappingURL=Icons.js.map
|
package/dist/config/Icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icons.js","sourceRoot":"","sources":["../../src/config/Icons.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"Icons.js","sourceRoot":"","sources":["../../src/config/Icons.ts"],"names":[],"mappings":"AAAA,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAkB,CAAC;AAK9D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAE,cAA8B,EAAE,EAAE;IAClF,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAsB,EAAE;IACtE,OAAO,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,OAAO,EACN,wBAAwB,EACxB,wBAAwB,GACxB,CAAC","sourcesContent":["const IconCollectionConfiguration = new Map<string, string>();\n\n// All supported icon collections + unknown custom ones\ntype IconCollection = string;\n\n/**\n * Sets the default icon collection for a given theme.\n *\n * SAP Icons is the default icon collection (that resolves to SAP-icons version 5.x in Horizon theme family and SAP-icons version 4.x in all other themes)\n * and to display icons from other collections, you have to specify the icon collection in addition to the icon name, for example: \"tnt/actor\", \"business-suite/1x2-grid-layout\", etc.\n * This method allows setting another (built-in or custom) icon collection as default per theme.\n *\n * <b>Usage</b>\n * <b>For example</b>, to make \"SAP-icons version 5.x\" the default icon collection in \"sap_fiori_3\":\n *\n * <pre>\n * setDefaultIconCollection(\"sap_fiori_3\", \"SAP-icons-v5\");\n *\n * <ui5-icon name=\"home\"></ui5-icon>\n * </pre>\n *\n * <b>For example</b>, to make a custom icon collection (with name \"my-custom-collection\") the default icon collection in \"sap_fiori_3\":\n *\n * <pre>\n * setDefaultIconCollection(\"sap_fiori_3\", \"my-custom-collection\");\n *\n * <ui5-icon name=\"custom-icon-name\"></ui5-icon>\n * </pre>\n *\n * @public\n * @param { string } theme\n * @param { string } collectionName\n */\nconst setDefaultIconCollection = (theme: string, collectionName: IconCollection) => {\n\tIconCollectionConfiguration.set(theme, collectionName);\n};\n\n/**\n * Returns the configured default icon collection for a given theme.\n *\n * @param { string } theme\n * @public\n * @returns { string | undefined }\n */\nconst getDefaultIconCollection = (theme: string): string | undefined => {\n\treturn IconCollectionConfiguration.get(theme);\n};\n\nexport {\n\tsetDefaultIconCollection,\n\tgetDefaultIconCollection,\n};\n\nexport type {\n\tIconCollection,\n};\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the current theme root.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
* @since 1.14.0
|
|
6
|
+
* @returns { string } the current theme root
|
|
7
|
+
*/
|
|
8
|
+
declare const getThemeRoot: () => string | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Sets theme root for the current theme.
|
|
11
|
+
* When set, the framework will validate the theme root and fetch the theme styles (CSS variables) from this location.
|
|
12
|
+
*
|
|
13
|
+
* <b>Note:</b> The feature is specific to custom themes, created with the `UI Theme Designer`.
|
|
14
|
+
* The provided theme root is used only as a base to construct the actual location of the theme styles: `{themeRoot}/.../css_variables.css`.
|
|
15
|
+
*
|
|
16
|
+
* <br/>
|
|
17
|
+
*
|
|
18
|
+
* <b>Note:</b> Certain security restrictions will apply before fetching the theme assets.
|
|
19
|
+
* Absolute URLs to a different origin than the current page will result in using the current page as an origin.
|
|
20
|
+
* To allow specific origins, use <meta name="sap-allowedThemeOrigins" content="https://my-example-host.com/"> tag inside the <head> of the page.
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
* @since 1.14.0
|
|
24
|
+
* @param { string } themeRoot the new theme root
|
|
25
|
+
* @returns { Promise<void> }
|
|
26
|
+
*/
|
|
27
|
+
declare const setThemeRoot: (themeRoot: string) => Promise<void> | undefined;
|
|
28
|
+
declare const attachCustomThemeStylesToHead: (theme: string) => Promise<void>;
|
|
29
|
+
export { getThemeRoot, setThemeRoot, attachCustomThemeStylesToHead, };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import createLinkInHead from "../util/createLinkInHead.js";
|
|
2
|
+
import validateThemeRoot from "../validateThemeRoot.js";
|
|
3
|
+
import { getThemeRoot as getConfiguredThemeRoot } from "../InitialConfiguration.js";
|
|
4
|
+
import { getTheme } from "./Theme.js";
|
|
5
|
+
let currThemeRoot;
|
|
6
|
+
/**
|
|
7
|
+
* Returns the current theme root.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
* @since 1.14.0
|
|
11
|
+
* @returns { string } the current theme root
|
|
12
|
+
*/
|
|
13
|
+
const getThemeRoot = () => {
|
|
14
|
+
if (currThemeRoot === undefined) {
|
|
15
|
+
currThemeRoot = getConfiguredThemeRoot();
|
|
16
|
+
}
|
|
17
|
+
return currThemeRoot;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Sets theme root for the current theme.
|
|
21
|
+
* When set, the framework will validate the theme root and fetch the theme styles (CSS variables) from this location.
|
|
22
|
+
*
|
|
23
|
+
* <b>Note:</b> The feature is specific to custom themes, created with the `UI Theme Designer`.
|
|
24
|
+
* The provided theme root is used only as a base to construct the actual location of the theme styles: `{themeRoot}/.../css_variables.css`.
|
|
25
|
+
*
|
|
26
|
+
* <br/>
|
|
27
|
+
*
|
|
28
|
+
* <b>Note:</b> Certain security restrictions will apply before fetching the theme assets.
|
|
29
|
+
* Absolute URLs to a different origin than the current page will result in using the current page as an origin.
|
|
30
|
+
* To allow specific origins, use <meta name="sap-allowedThemeOrigins" content="https://my-example-host.com/"> tag inside the <head> of the page.
|
|
31
|
+
*
|
|
32
|
+
* @public
|
|
33
|
+
* @since 1.14.0
|
|
34
|
+
* @param { string } themeRoot the new theme root
|
|
35
|
+
* @returns { Promise<void> }
|
|
36
|
+
*/
|
|
37
|
+
const setThemeRoot = (themeRoot) => {
|
|
38
|
+
if (currThemeRoot === themeRoot) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
currThemeRoot = themeRoot;
|
|
42
|
+
if (!validateThemeRoot(themeRoot)) {
|
|
43
|
+
console.warn(`The ${themeRoot} is not valid. Check the allowed origins as suggested in the "setThemeRoot" description.`); // eslint-disable-line
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
return attachCustomThemeStylesToHead(getTheme());
|
|
47
|
+
};
|
|
48
|
+
const formatThemeLink = (theme) => {
|
|
49
|
+
return `${getThemeRoot()}Base/baseLib/${theme}/css_variables.css`; // theme root is always set at this point.
|
|
50
|
+
};
|
|
51
|
+
const attachCustomThemeStylesToHead = async (theme) => {
|
|
52
|
+
const link = document.querySelector(`[sap-ui-webcomponents-theme="${theme}"]`);
|
|
53
|
+
if (link) {
|
|
54
|
+
document.head.removeChild(link);
|
|
55
|
+
}
|
|
56
|
+
await createLinkInHead(formatThemeLink(theme), { "sap-ui-webcomponents-theme": theme });
|
|
57
|
+
};
|
|
58
|
+
export { getThemeRoot, setThemeRoot, attachCustomThemeStylesToHead, };
|
|
59
|
+
//# sourceMappingURL=ThemeRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeRoot.js","sourceRoot":"","sources":["../../src/config/ThemeRoot.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,IAAI,aAAiC,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,GAAuB,EAAE;IAC7C,IAAI,aAAa,KAAK,SAAS,EAAE;QAChC,aAAa,GAAG,sBAAsB,EAAE,CAAC;KACzC;IAED,OAAO,aAAa,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,YAAY,GAAG,CAAC,SAAiB,EAA6B,EAAE;IACrE,IAAI,aAAa,KAAK,SAAS,EAAE;QAChC,OAAO;KACP;IAED,aAAa,GAAG,SAAS,CAAC;IAE1B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,OAAO,SAAS,0FAA0F,CAAC,CAAC,CAAC,sBAAsB;QAChJ,OAAO;KACP;IAED,OAAO,6BAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE;IACzC,OAAO,GAAG,YAAY,EAAG,gBAAgB,KAAK,oBAAoB,CAAC,CAAC,0CAA0C;AAC/G,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;IAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,gCAAgC,KAAK,IAAI,CAAC,CAAC;IAE/E,IAAI,IAAI,EAAE;QACT,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,MAAM,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,6BAA6B,GAC7B,CAAC","sourcesContent":["import createLinkInHead from \"../util/createLinkInHead.js\";\nimport validateThemeRoot from \"../validateThemeRoot.js\";\nimport { getThemeRoot as getConfiguredThemeRoot } from \"../InitialConfiguration.js\";\nimport { getTheme } from \"./Theme.js\";\n\nlet currThemeRoot: string | undefined;\n\n/**\n * Returns the current theme root.\n *\n * @public\n * @since 1.14.0\n * @returns { string } the current theme root\n */\nconst getThemeRoot = (): string | undefined => {\n\tif (currThemeRoot === undefined) {\n\t\tcurrThemeRoot = getConfiguredThemeRoot();\n\t}\n\n\treturn currThemeRoot;\n};\n\n/**\n * Sets theme root for the current theme.\n * When set, the framework will validate the theme root and fetch the theme styles (CSS variables) from this location.\n *\n * <b>Note:</b> The feature is specific to custom themes, created with the `UI Theme Designer`.\n * The provided theme root is used only as a base to construct the actual location of the theme styles: `{themeRoot}/.../css_variables.css`.\n *\n * <br/>\n *\n * <b>Note:</b> Certain security restrictions will apply before fetching the theme assets.\n * Absolute URLs to a different origin than the current page will result in using the current page as an origin.\n * To allow specific origins, use <meta name=\"sap-allowedThemeOrigins\" content=\"https://my-example-host.com/\"> tag inside the <head> of the page.\n *\n * @public\n * @since 1.14.0\n * @param { string } themeRoot the new theme root\n * @returns { Promise<void> }\n */\nconst setThemeRoot = (themeRoot: string): Promise<void> | undefined => {\n\tif (currThemeRoot === themeRoot) {\n\t\treturn;\n\t}\n\n\tcurrThemeRoot = themeRoot;\n\n\tif (!validateThemeRoot(themeRoot)) {\n\t\tconsole.warn(`The ${themeRoot} is not valid. Check the allowed origins as suggested in the \"setThemeRoot\" description.`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\treturn attachCustomThemeStylesToHead(getTheme());\n};\n\nconst formatThemeLink = (theme: string) => {\n\treturn `${getThemeRoot()!}Base/baseLib/${theme}/css_variables.css`; // theme root is always set at this point.\n};\n\nconst attachCustomThemeStylesToHead = async (theme: string): Promise<void> => {\n\tconst link = document.querySelector(`[sap-ui-webcomponents-theme=\"${theme}\"]`);\n\n\tif (link) {\n\t\tdocument.head.removeChild(link);\n\t}\n\n\tawait createLinkInHead(formatThemeLink(theme), { \"sap-ui-webcomponents-theme\": theme });\n};\n\nexport {\n\tgetThemeRoot,\n\tsetThemeRoot,\n\tattachCustomThemeStylesToHead,\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type UI5Element from "./UI5Element.js";
|
|
2
|
+
type ConnectOptions = {
|
|
3
|
+
host: UI5Element;
|
|
4
|
+
propName: string;
|
|
5
|
+
onConnect?: (friend: HTMLElement) => void;
|
|
6
|
+
onDisconnect?: (friend: HTMLElement) => void;
|
|
7
|
+
};
|
|
8
|
+
declare const connectToComponent: (options: ConnectOptions) => HTMLElement | undefined;
|
|
9
|
+
export default connectToComponent;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { renderDeferred } from "./Render.js";
|
|
2
|
+
const MISSING_ELEMENT_POLL_TIMEOUT = 500; // how often to poll for not-yet-in-DOM friend elements
|
|
3
|
+
const connections = new Map();
|
|
4
|
+
const intervals = new Map();
|
|
5
|
+
const connectToComponent = (options) => {
|
|
6
|
+
const host = options.host;
|
|
7
|
+
const propName = options.propName;
|
|
8
|
+
const friend = host[propName];
|
|
9
|
+
let connectedTo;
|
|
10
|
+
if (friend === undefined || friend === "") {
|
|
11
|
+
connectedTo = undefined; // do not return early even if a "menu" property is not set - it may have been set before and cleanup must run
|
|
12
|
+
}
|
|
13
|
+
else if (friend instanceof HTMLElement) {
|
|
14
|
+
connectedTo = friend;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const rootNode = host.getRootNode();
|
|
18
|
+
connectedTo = (rootNode.getElementById && rootNode.getElementById(friend)) || undefined;
|
|
19
|
+
}
|
|
20
|
+
const key = `${host._id}-${propName}`;
|
|
21
|
+
const prevConnectedTo = connections.get(key);
|
|
22
|
+
// Not connected - return undefined
|
|
23
|
+
if (!connectedTo) {
|
|
24
|
+
if (prevConnectedTo) { // but first disconnect, if needed
|
|
25
|
+
options.onDisconnect && options.onDisconnect(prevConnectedTo);
|
|
26
|
+
connections.delete(key);
|
|
27
|
+
}
|
|
28
|
+
// if friend element not in DOM yet, start polling
|
|
29
|
+
if (typeof friend === "string" && friend && !intervals.has(key)) {
|
|
30
|
+
const interval = setInterval(() => {
|
|
31
|
+
const rootNode = host.getRootNode();
|
|
32
|
+
const found = (rootNode.getElementById && rootNode.getElementById(friend));
|
|
33
|
+
if (found) {
|
|
34
|
+
clearInterval(intervals.get(key));
|
|
35
|
+
intervals.delete(key);
|
|
36
|
+
renderDeferred(host);
|
|
37
|
+
}
|
|
38
|
+
}, MISSING_ELEMENT_POLL_TIMEOUT);
|
|
39
|
+
intervals.set(key, interval);
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// If connected, but still polling, stop polling
|
|
44
|
+
if (intervals.has(key)) {
|
|
45
|
+
clearInterval(intervals.get(key));
|
|
46
|
+
intervals.delete(key);
|
|
47
|
+
}
|
|
48
|
+
// Connected - either for the first time, or to something else
|
|
49
|
+
if (prevConnectedTo !== connectedTo) {
|
|
50
|
+
if (prevConnectedTo) {
|
|
51
|
+
options.onDisconnect && options.onDisconnect(prevConnectedTo);
|
|
52
|
+
}
|
|
53
|
+
options.onConnect && options.onConnect(connectedTo);
|
|
54
|
+
connections.set(key, connectedTo);
|
|
55
|
+
}
|
|
56
|
+
return connections.get(key);
|
|
57
|
+
};
|
|
58
|
+
export default connectToComponent;
|
|
59
|
+
//# sourceMappingURL=connectToComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectToComponent.js","sourceRoot":"","sources":["../src/connectToComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,4BAA4B,GAAG,GAAG,CAAC,CAAC,uDAAuD;AACjG,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;AACnD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;AAS9C,MAAM,kBAAkB,GAAG,CAAC,OAAuB,EAA2B,EAAE;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,QAA6B,CAAqC,CAAC;IAEvF,IAAI,WAAoC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE;QAC1C,WAAW,GAAG,SAAS,CAAC,CAAC,8GAA8G;KACvI;SAAM,IAAI,MAAM,YAAY,WAAW,EAAE;QACzC,WAAW,GAAG,MAAM,CAAC;KACrB;SAAM;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAc,CAAC;QAChD,WAAW,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC;KACxF;IAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;IACtC,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE7C,mCAAmC;IACnC,IAAI,CAAC,WAAW,EAAE;QACjB,IAAI,eAAe,EAAE,EAAE,kCAAkC;YACxD,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9D,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACxB;QAED,kDAAkD;QAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAc,CAAC;gBAChD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAE3E,IAAI,KAAK,EAAE;oBACV,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtB,cAAc,CAAC,IAAI,CAAC,CAAC;iBACrB;YACF,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACjC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;SAC7B;QAED,OAAO;KACP;IAED,gDAAgD;IAChD,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvB,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACtB;IAED,8DAA8D;IAC9D,IAAI,eAAe,KAAK,WAAW,EAAE;QACpC,IAAI,eAAe,EAAE;YACpB,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SAC9D;QACD,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;KAClC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["import type UI5Element from \"./UI5Element.js\";\nimport { renderDeferred } from \"./Render.js\";\nimport { Interval } from \"./types.js\";\n\nconst MISSING_ELEMENT_POLL_TIMEOUT = 500; // how often to poll for not-yet-in-DOM friend elements\nconst connections = new Map<string, HTMLElement>();\nconst intervals = new Map<string, Interval>();\n\ntype ConnectOptions = {\n\thost: UI5Element;\n\tpropName: string;\n\tonConnect?: (friend: HTMLElement) => void;\n\tonDisconnect?: (friend: HTMLElement) => void;\n}\n\nconst connectToComponent = (options: ConnectOptions): HTMLElement | undefined => {\n\tconst host = options.host;\n\tconst propName = options.propName;\n\tconst friend = host[propName as keyof typeof host] as HTMLElement | string | undefined;\n\n\tlet connectedTo: HTMLElement | undefined;\n\tif (friend === undefined || friend === \"\") {\n\t\tconnectedTo = undefined; // do not return early even if a \"menu\" property is not set - it may have been set before and cleanup must run\n\t} else if (friend instanceof HTMLElement) {\n\t\tconnectedTo = friend;\n\t} else {\n\t\tconst rootNode = host.getRootNode() as Document;\n\t\tconnectedTo = (rootNode.getElementById && rootNode.getElementById(friend)) || undefined;\n\t}\n\n\tconst key = `${host._id}-${propName}`;\n\tconst prevConnectedTo = connections.get(key);\n\n\t// Not connected - return undefined\n\tif (!connectedTo) {\n\t\tif (prevConnectedTo) { // but first disconnect, if needed\n\t\t\toptions.onDisconnect && options.onDisconnect(prevConnectedTo);\n\t\t\tconnections.delete(key);\n\t\t}\n\n\t\t// if friend element not in DOM yet, start polling\n\t\tif (typeof friend === \"string\" && friend && !intervals.has(key)) {\n\t\t\tconst interval = setInterval(() => {\n\t\t\t\tconst rootNode = host.getRootNode() as Document;\n\t\t\t\tconst found = (rootNode.getElementById && rootNode.getElementById(friend));\n\n\t\t\t\tif (found) {\n\t\t\t\t\tclearInterval(intervals.get(key));\n\t\t\t\t\tintervals.delete(key);\n\t\t\t\t\trenderDeferred(host);\n\t\t\t\t}\n\t\t\t}, MISSING_ELEMENT_POLL_TIMEOUT);\n\t\t\tintervals.set(key, interval);\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// If connected, but still polling, stop polling\n\tif (intervals.has(key)) {\n\t\tclearInterval(intervals.get(key));\n\t\tintervals.delete(key);\n\t}\n\n\t// Connected - either for the first time, or to something else\n\tif (prevConnectedTo !== connectedTo) {\n\t\tif (prevConnectedTo) {\n\t\t\toptions.onDisconnect && options.onDisconnect(prevConnectedTo);\n\t\t}\n\t\toptions.onConnect && options.onConnect(connectedTo);\n\t\tconnections.set(key, connectedTo);\n\t}\n\n\treturn connections.get(key);\n};\n\nexport default connectToComponent;\n"]}
|
package/dist/css/FontFace.css
CHANGED
|
@@ -2,65 +2,95 @@
|
|
|
2
2
|
font-family: "72";
|
|
3
3
|
font-style: normal;
|
|
4
4
|
font-weight: 400;
|
|
5
|
-
src: local("72")
|
|
6
|
-
|
|
5
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"), local("72");
|
|
6
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
@font-face {
|
|
10
10
|
font-family: "72full";
|
|
11
11
|
font-style: normal;
|
|
12
12
|
font-weight: 400;
|
|
13
|
-
src: local('72-full')
|
|
14
|
-
url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2");
|
|
15
|
-
|
|
13
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"), local('72-full');
|
|
16
14
|
}
|
|
17
15
|
|
|
18
16
|
@font-face {
|
|
19
17
|
font-family: "72";
|
|
20
18
|
font-style: normal;
|
|
21
19
|
font-weight: 700;
|
|
22
|
-
src: local('72-Bold')
|
|
23
|
-
|
|
20
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"), local('72-Bold');
|
|
21
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
@font-face {
|
|
27
25
|
font-family: "72full";
|
|
28
26
|
font-style: normal;
|
|
29
27
|
font-weight: 700;
|
|
30
|
-
src:
|
|
31
|
-
url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2");
|
|
28
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2");
|
|
32
29
|
}
|
|
33
30
|
|
|
34
31
|
@font-face {
|
|
35
32
|
font-family: '72-Bold';
|
|
36
33
|
font-style: normal;
|
|
37
|
-
src: local('72-Bold')
|
|
38
|
-
|
|
34
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"), local('72-Bold');
|
|
35
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
39
36
|
}
|
|
40
37
|
|
|
41
38
|
@font-face {
|
|
42
39
|
font-family: '72-Boldfull';
|
|
43
40
|
font-style: normal;
|
|
44
|
-
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/
|
|
41
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2");
|
|
45
42
|
}
|
|
46
43
|
|
|
47
44
|
@font-face {
|
|
48
45
|
font-family: '72-Light';
|
|
49
46
|
font-style: normal;
|
|
50
|
-
src: local('72-Light')
|
|
51
|
-
|
|
47
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light.woff2?ui5-webcomponents) format("woff2"), local('72-Light');
|
|
48
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
52
49
|
}
|
|
53
50
|
|
|
54
51
|
@font-face {
|
|
55
52
|
font-family: '72-Lightfull';
|
|
56
53
|
font-style: normal;
|
|
57
|
-
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/
|
|
54
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@font-face {
|
|
58
|
+
font-family: '72Mono';
|
|
59
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular.woff2?ui5-webcomponents) format('woff2'), local('72Mono');
|
|
60
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@font-face {
|
|
64
|
+
font-family: '72Monofull';
|
|
65
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular-full.woff2?ui5-webcomponents) format('woff2');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@font-face {
|
|
69
|
+
font-family: '72Mono-Bold';
|
|
70
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold.woff2?ui5-webcomponents) format('woff2'), local('72Mono-Bold');
|
|
71
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@font-face {
|
|
75
|
+
font-family: '72Mono-Boldfull';
|
|
76
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold-full.woff2?ui5-webcomponents) format('woff2');
|
|
58
77
|
}
|
|
59
78
|
|
|
60
79
|
@font-face {
|
|
61
80
|
font-family: "72Black";
|
|
62
81
|
font-style: bold;
|
|
63
82
|
font-weight: 900;
|
|
64
|
-
src: local('72Black')
|
|
65
|
-
|
|
83
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"), local('72Black');
|
|
84
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
66
85
|
}
|
|
86
|
+
|
|
87
|
+
@font-face {
|
|
88
|
+
font-family: '72Blackfull';
|
|
89
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black-full.woff2?ui5-webcomponents) format('woff2');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@font-face {
|
|
93
|
+
font-family: "72-SemiboldDuplex";
|
|
94
|
+
src: url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-SemiboldDuplex.woff2?ui5-webcomponents) format("woff2"), local('72-SemiboldDuplex');
|
|
95
|
+
unicode-range: U+00, U+0D, U+20-7E, U+A0-FF, U+131, U+152-153, U+161, U+178, U+17D-17E, U+192, U+237, U+2C6, U+2DC, U+3BC, U+1E9E, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122;
|
|
96
|
+
}
|