@ui5/webcomponents-base 0.0.0-201dc9cbe → 0.0.0-235d4ecde
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 +8 -3
- package/.npsrc.json +3 -0
- package/CHANGELOG.md +833 -0
- package/README.md +57 -7
- package/bundle.esm.js +26 -13
- package/config/wdio.conf.cjs +400 -0
- package/{src/AssetRegistry.js → dist/AssetRegistry.d.ts} +1 -7
- package/dist/AssetRegistry.js +2 -7
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +9 -0
- package/dist/Boot.js +57 -34
- package/dist/Boot.js.map +1 -0
- package/dist/CSP.d.ts +30 -0
- package/dist/CSP.js +51 -0
- package/dist/CSP.js.map +1 -0
- package/dist/CustomElementsRegistry.d.ts +5 -0
- package/dist/CustomElementsRegistry.js +69 -30
- package/dist/CustomElementsRegistry.js.map +1 -0
- package/dist/CustomElementsScope.d.ts +7 -0
- package/dist/CustomElementsScope.js +11 -108
- package/dist/CustomElementsScope.js.map +1 -0
- package/dist/CustomElementsScopeUtils.d.ts +62 -0
- package/dist/CustomElementsScopeUtils.js +102 -0
- package/dist/CustomElementsScopeUtils.js.map +1 -0
- package/dist/DOMObserver.d.ts +11 -0
- package/dist/DOMObserver.js +12 -50
- package/dist/DOMObserver.js.map +1 -0
- package/dist/Device.d.ts +12 -0
- package/dist/Device.js +159 -816
- package/dist/Device.js.map +1 -0
- package/dist/EventProvider.d.ts +25 -0
- package/dist/EventProvider.js +67 -88
- package/dist/EventProvider.js.map +1 -0
- package/dist/FeaturesRegistry.d.ts +3 -0
- package/dist/FeaturesRegistry.js +5 -7
- package/dist/FeaturesRegistry.js.map +1 -0
- package/dist/FontFace.d.ts +2 -0
- package/dist/FontFace.js +17 -110
- package/dist/FontFace.js.map +1 -0
- 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 +27 -0
- package/dist/InitialConfiguration.js +124 -118
- package/dist/InitialConfiguration.js.map +1 -0
- package/dist/Keys.d.ts +61 -0
- package/dist/Keys.js +178 -217
- package/dist/Keys.js.map +1 -0
- package/dist/ManagedStyles.d.ts +8 -0
- package/dist/ManagedStyles.js +78 -0
- package/dist/ManagedStyles.js.map +1 -0
- package/dist/MarkedEvents.d.ts +9 -0
- package/dist/MarkedEvents.js +15 -0
- package/dist/MarkedEvents.js.map +1 -0
- package/dist/MediaRange.d.ts +37 -0
- package/dist/MediaRange.js +98 -0
- package/dist/MediaRange.js.map +1 -0
- package/dist/PropertiesFileFormat.d.ts +8 -0
- package/dist/PropertiesFileFormat.js +72 -82
- package/dist/PropertiesFileFormat.js.map +1 -0
- package/dist/Render.d.ts +47 -0
- package/dist/Render.js +82 -113
- package/dist/Render.js.map +1 -0
- package/dist/RenderQueue.d.ts +19 -0
- package/dist/RenderQueue.js +52 -62
- package/dist/RenderQueue.js.map +1 -0
- package/dist/Runtimes.d.ts +27 -0
- package/dist/Runtimes.js +86 -0
- package/dist/Runtimes.js.map +1 -0
- package/dist/StaticArea.d.ts +3 -0
- package/dist/StaticArea.js +7 -0
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +37 -0
- package/dist/StaticAreaItem.js +90 -68
- package/dist/StaticAreaItem.js.map +1 -0
- package/dist/SystemCSSVars.d.ts +2 -0
- package/dist/SystemCSSVars.js +6 -28
- package/dist/SystemCSSVars.js.map +1 -0
- package/{src/Theming.js → dist/Theming.d.ts} +0 -1
- package/dist/Theming.js +1 -1
- package/dist/Theming.js.map +1 -0
- package/dist/UI5Element.d.ts +380 -0
- package/dist/UI5Element.js +929 -996
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -298
- package/dist/UI5ElementMetadata.js.map +1 -0
- package/dist/animations/AnimationQueue.d.ts +8 -0
- package/dist/animations/AnimationQueue.js +31 -38
- package/dist/animations/AnimationQueue.js.map +1 -0
- package/dist/animations/animate.d.ts +14 -0
- package/dist/animations/animate.js +46 -51
- package/dist/animations/animate.js.map +1 -0
- package/dist/animations/scroll.d.ts +5 -0
- package/dist/animations/scroll.js +18 -27
- package/dist/animations/scroll.js.map +1 -0
- package/dist/animations/slideDown.d.ts +5 -0
- package/dist/animations/slideDown.js +53 -78
- package/dist/animations/slideDown.js.map +1 -0
- package/dist/animations/slideUp.d.ts +5 -0
- package/dist/animations/slideUp.js +49 -70
- package/dist/animations/slideUp.js.map +1 -0
- package/dist/api.json +1 -0
- package/dist/asset-registries/Icons.d.ts +39 -0
- package/dist/asset-registries/Icons.js +120 -96
- package/dist/asset-registries/Icons.js.map +1 -0
- package/dist/asset-registries/Illustrations.d.ts +18 -0
- package/dist/asset-registries/Illustrations.js +85 -0
- package/dist/asset-registries/Illustrations.js.map +1 -0
- package/dist/asset-registries/LocaleData.d.ts +7 -0
- package/dist/asset-registries/LocaleData.js +106 -91
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +11 -0
- package/dist/asset-registries/Themes.js +40 -66
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +62 -81
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/asset-registries/util/IconCollectionsAlias.d.ts +30 -0
- package/dist/asset-registries/util/IconCollectionsAlias.js +37 -0
- 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/assets/Boot.34b7cea0.css +1 -0
- package/dist/assets/Boot.7b309c27.js +9 -0
- package/dist/assets/bundle.esm.cd5e6349.js +50 -0
- package/dist/config/AnimationMode.d.ts +14 -0
- package/dist/config/AnimationMode.js +21 -18
- package/dist/config/AnimationMode.js.map +1 -0
- package/dist/config/CalendarType.d.ts +8 -0
- package/dist/config/CalendarType.js +13 -12
- package/dist/config/CalendarType.js.map +1 -0
- package/dist/config/FormatSettings.d.ts +15 -0
- package/dist/config/FormatSettings.js +15 -9
- package/dist/config/FormatSettings.js.map +1 -0
- package/dist/config/Icons.d.ts +40 -0
- package/dist/config/Icons.js +44 -0
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +40 -0
- package/dist/config/Language.js +48 -48
- package/dist/config/Language.js.map +1 -0
- package/dist/config/NoConflict.d.ts +20 -0
- package/dist/config/NoConflict.js +41 -41
- package/dist/config/NoConflict.js.map +1 -0
- package/dist/config/RTL.d.ts +7 -0
- package/dist/config/RTL.js +26 -20
- package/dist/config/RTL.js.map +1 -0
- package/dist/config/Theme.d.ts +38 -0
- package/dist/config/Theme.js +64 -22
- package/dist/config/Theme.js.map +1 -0
- 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/config/Timezone.d.ts +17 -0
- package/dist/config/Timezone.js +30 -0
- package/dist/config/Timezone.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/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +84 -0
- package/dist/css/OverrideFontFace.css +32 -0
- package/dist/css/SystemCSSVars.css +17 -0
- package/dist/decorators/customElement.d.ts +23 -0
- package/dist/decorators/customElement.js +37 -0
- package/dist/decorators/customElement.js.map +1 -0
- package/dist/decorators/event.d.ts +10 -0
- package/dist/decorators/event.js +24 -0
- package/dist/decorators/event.js.map +1 -0
- package/dist/decorators/property.d.ts +9 -0
- package/dist/decorators/property.js +24 -0
- package/dist/decorators/property.js.map +1 -0
- package/dist/decorators/slot.d.ts +9 -0
- package/dist/decorators/slot.js +37 -0
- package/dist/decorators/slot.js.map +1 -0
- package/dist/delegate/ItemNavigation.d.ts +113 -0
- package/dist/delegate/ItemNavigation.js +280 -257
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +25 -0
- package/dist/delegate/ResizeHandler.js +72 -91
- package/dist/delegate/ResizeHandler.js.map +1 -0
- package/dist/delegate/ScrollEnablement.d.ts +49 -0
- package/dist/delegate/ScrollEnablement.js +159 -176
- package/dist/delegate/ScrollEnablement.js.map +1 -0
- package/dist/features/F6Navigation.d.ts +19 -0
- package/dist/features/F6Navigation.js +151 -0
- package/dist/features/F6Navigation.js.map +1 -0
- package/dist/features/LegacyDateFormats.d.ts +18 -0
- package/dist/features/LegacyDateFormats.js +20 -0
- package/dist/features/LegacyDateFormats.js.map +1 -0
- package/dist/features/OpenUI5Element.d.ts +9 -0
- package/dist/features/OpenUI5Element.js +5 -0
- package/dist/features/OpenUI5Element.js.map +1 -0
- package/dist/features/OpenUI5Enablement.d.ts +11 -0
- package/dist/features/OpenUI5Enablement.js +96 -0
- package/dist/features/OpenUI5Enablement.js.map +1 -0
- package/dist/features/OpenUI5Support.d.ts +36 -0
- package/dist/features/OpenUI5Support.js +151 -87
- package/dist/features/OpenUI5Support.js.map +1 -0
- package/dist/generated/AssetParameters.js +3 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
- package/dist/generated/css/BusyIndicator.css.js +7 -0
- package/dist/generated/css/BusyIndicator.css.js.map +1 -0
- package/dist/generated/css/FontFace.css.d.ts +3 -0
- package/dist/generated/css/FontFace.css.js +7 -0
- package/dist/generated/css/FontFace.css.js.map +1 -0
- package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
- package/dist/generated/css/OverrideFontFace.css.js +7 -0
- package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
- package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
- package/dist/generated/css/SystemCSSVars.css.js +7 -0
- package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +9 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +28 -18
- package/dist/getSharedResource.js.map +1 -0
- package/dist/global.d.ts +40 -0
- package/dist/i18nBundle.d.ts +43 -0
- package/dist/i18nBundle.js +68 -41
- package/dist/i18nBundle.js.map +1 -0
- package/dist/locale/Locale.d.ts +22 -0
- package/dist/locale/Locale.js +75 -87
- package/dist/locale/Locale.js.map +1 -0
- package/dist/locale/RTLAwareRegistry.d.ts +4 -0
- package/dist/locale/RTLAwareRegistry.js +6 -11
- package/dist/locale/RTLAwareRegistry.js.map +1 -0
- package/dist/locale/applyDirection.d.ts +10 -0
- package/dist/locale/applyDirection.js +7 -7
- package/dist/locale/applyDirection.js.map +1 -0
- package/dist/locale/directionChange.d.ts +15 -0
- package/dist/locale/directionChange.js +7 -15
- package/dist/locale/directionChange.js.map +1 -0
- package/dist/locale/getEffectiveDir.d.ts +2 -0
- package/dist/locale/getEffectiveDir.js +20 -24
- package/dist/locale/getEffectiveDir.js.map +1 -0
- package/dist/locale/getLocale.d.ts +7 -0
- package/dist/locale/getLocale.js +26 -29
- package/dist/locale/getLocale.js.map +1 -0
- package/dist/locale/languageChange.d.ts +5 -0
- package/dist/locale/languageChange.js +8 -16
- package/dist/locale/languageChange.js.map +1 -0
- package/dist/locale/nextFallbackLocale.d.ts +8 -0
- package/dist/locale/nextFallbackLocale.js +15 -19
- package/dist/locale/nextFallbackLocale.js.map +1 -0
- package/dist/locale/normalizeLocale.d.ts +7 -0
- package/dist/locale/normalizeLocale.js +34 -41
- package/dist/locale/normalizeLocale.js.map +1 -0
- package/dist/renderer/LitRenderer.d.ts +14 -0
- package/dist/renderer/LitRenderer.js +34 -24
- package/dist/renderer/LitRenderer.js.map +1 -0
- package/dist/renderer/directives/style-map.js +72 -0
- package/dist/renderer/executeTemplate.d.ts +13 -0
- package/dist/renderer/executeTemplate.js +20 -7
- package/dist/renderer/executeTemplate.js.map +1 -0
- package/dist/sap/base/Log.js +240 -0
- package/dist/sap/base/assert.js +7 -0
- package/dist/sap/base/security/URLListValidator.js +159 -0
- package/dist/sap/base/security/encodeCSS.js +14 -0
- package/dist/sap/base/security/encodeXML.js +23 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/strings/toHex.js +8 -0
- package/dist/sap/base/util/now.js +7 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
- package/dist/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +39 -31
- package/dist/theming/CustomStyle.js.map +1 -0
- package/dist/theming/ThemeLoaded.d.ts +5 -0
- package/dist/theming/ThemeLoaded.js +8 -16
- package/dist/theming/ThemeLoaded.js.map +1 -0
- package/dist/theming/ThemeRegistered.d.ts +4 -0
- package/dist/theming/ThemeRegistered.js +11 -0
- package/dist/theming/ThemeRegistered.js.map +1 -0
- package/dist/theming/applyTheme.d.ts +2 -0
- package/dist/theming/applyTheme.js +63 -65
- package/dist/theming/applyTheme.js.map +1 -0
- package/dist/theming/getConstructableStyle.d.ts +9 -0
- package/dist/theming/getConstructableStyle.js +12 -17
- package/dist/theming/getConstructableStyle.js.map +1 -0
- package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
- package/dist/theming/getEffectiveLinksHrefs.js +17 -0
- package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
- package/dist/theming/getEffectiveStyle.d.ts +3 -0
- package/dist/theming/getEffectiveStyle.js +25 -23
- package/dist/theming/getEffectiveStyle.js.map +1 -0
- package/dist/theming/getStylesString.d.ts +3 -0
- package/dist/theming/getStylesString.js +9 -11
- package/dist/theming/getStylesString.js.map +1 -0
- package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
- package/dist/theming/getThemeDesignerTheme.js +73 -60
- package/dist/theming/getThemeDesignerTheme.js.map +1 -0
- package/dist/theming/preloadLinks.d.ts +3 -0
- package/dist/theming/preloadLinks.js +19 -0
- package/dist/theming/preloadLinks.js.map +1 -0
- package/dist/thirdparty/_merge.d.ts +2 -0
- package/dist/thirdparty/_merge.js +7 -4
- package/dist/thirdparty/_merge.js.map +1 -0
- package/dist/thirdparty/isPlainObject.d.ts +2 -0
- package/dist/thirdparty/isPlainObject.js +11 -10
- package/dist/thirdparty/isPlainObject.js.map +1 -0
- package/dist/thirdparty/merge.d.ts +2 -0
- package/dist/thirdparty/merge.js +4 -8
- package/dist/thirdparty/merge.js.map +1 -0
- package/dist/types/AnimationMode.d.ts +32 -0
- package/dist/types/AnimationMode.js +33 -6
- package/dist/types/AnimationMode.js.map +1 -0
- package/dist/types/CSSColor.d.ts +15 -0
- package/dist/types/CSSColor.js +14 -5
- package/dist/types/CSSColor.js.map +1 -0
- package/dist/types/CalendarType.d.ts +37 -0
- package/dist/types/CalendarType.js +35 -18
- package/dist/types/CalendarType.js.map +1 -0
- package/dist/types/DOMReference.d.ts +17 -0
- package/dist/types/DOMReference.js +25 -0
- package/dist/types/DOMReference.js.map +1 -0
- package/dist/types/DataType.d.ts +25 -0
- package/dist/types/DataType.js +33 -14
- package/dist/types/DataType.js.map +1 -0
- package/dist/types/Float.d.ts +17 -0
- package/dist/types/Float.js +17 -6
- package/dist/types/Float.js.map +1 -0
- package/dist/types/Integer.d.ts +17 -0
- package/dist/types/Integer.js +17 -5
- package/dist/types/Integer.js.map +1 -0
- package/dist/types/InvisibleMessageMode.d.ts +25 -0
- package/dist/types/InvisibleMessageMode.js +27 -0
- package/dist/types/InvisibleMessageMode.js.map +1 -0
- package/dist/types/ItemNavigationBehavior.d.ts +24 -0
- package/dist/types/ItemNavigationBehavior.js +22 -12
- package/dist/types/ItemNavigationBehavior.js.map +1 -0
- package/dist/types/NavigationMode.d.ts +32 -0
- package/dist/types/NavigationMode.js +33 -6
- package/dist/types/NavigationMode.js.map +1 -0
- package/dist/types/ValueState.d.ts +42 -0
- package/dist/types/ValueState.js +41 -19
- package/dist/types/ValueState.js.map +1 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/updateShadowRoot.d.ts +8 -0
- package/dist/updateShadowRoot.js +32 -16
- package/dist/updateShadowRoot.js.map +1 -0
- package/dist/util/AriaLabelHelper.d.ts +15 -0
- package/dist/util/AriaLabelHelper.js +166 -36
- package/dist/util/AriaLabelHelper.js.map +1 -0
- package/dist/util/Caret.d.ts +7 -0
- package/dist/util/Caret.js +16 -38
- package/dist/util/Caret.js.map +1 -0
- package/dist/util/ColorConversion.d.ts +30 -0
- package/dist/util/ColorConversion.js +337 -0
- package/dist/util/ColorConversion.js.map +1 -0
- package/dist/util/FetchHelper.d.ts +3 -0
- package/dist/util/FetchHelper.js +19 -25
- package/dist/util/FetchHelper.js.map +1 -0
- package/dist/util/FocusableElements.d.ts +4 -0
- package/dist/util/FocusableElements.js +67 -68
- package/dist/util/FocusableElements.js.map +1 -0
- package/dist/util/HTMLSanitizer.d.ts +3 -0
- package/dist/util/HTMLSanitizer.js +6 -0
- package/dist/util/HTMLSanitizer.js.map +1 -0
- package/dist/util/InvisibleMessage.d.ts +10 -0
- package/dist/util/InvisibleMessage.js +56 -0
- package/dist/util/InvisibleMessage.js.map +1 -0
- package/dist/util/PopupUtils.d.ts +7 -0
- package/dist/util/PopupUtils.js +74 -0
- package/dist/util/PopupUtils.js.map +1 -0
- package/dist/util/SlotsHelper.d.ts +9 -0
- package/dist/util/SlotsHelper.js +22 -35
- package/dist/util/SlotsHelper.js.map +1 -0
- package/dist/util/StringHelper.d.ts +3 -0
- package/dist/util/StringHelper.js +17 -20
- package/dist/util/StringHelper.js.map +1 -0
- package/dist/util/TabbableElements.d.ts +17 -0
- package/dist/util/TabbableElements.js +53 -43
- package/dist/util/TabbableElements.js.map +1 -0
- package/dist/util/arraysAreEqual.d.ts +2 -0
- package/dist/util/arraysAreEqual.js +10 -12
- package/dist/util/arraysAreEqual.js.map +1 -0
- package/dist/util/clamp.d.ts +9 -0
- package/dist/util/clamp.js +12 -0
- package/dist/util/clamp.js.map +1 -0
- package/dist/util/createLinkInHead.d.ts +7 -0
- package/dist/util/createLinkInHead.js +21 -0
- package/dist/util/createLinkInHead.js.map +1 -0
- package/dist/util/createStyleInHead.d.ts +8 -0
- package/dist/util/createStyleInHead.js +10 -10
- package/dist/util/createStyleInHead.js.map +1 -0
- package/dist/util/debounce.d.ts +2 -0
- package/dist/util/debounce.js +6 -8
- package/dist/util/debounce.js.map +1 -0
- package/dist/util/detectNavigatorLanguage.d.ts +2 -0
- package/dist/util/detectNavigatorLanguage.js +7 -10
- package/dist/util/detectNavigatorLanguage.js.map +1 -0
- package/dist/util/escapeRegex.d.ts +8 -0
- package/dist/util/escapeRegex.js +11 -0
- package/dist/util/escapeRegex.js.map +1 -0
- package/dist/util/formatMessage.d.ts +2 -0
- package/dist/util/formatMessage.js +15 -19
- package/dist/util/formatMessage.js.map +1 -0
- package/dist/util/generateHighlightedMarkup.d.ts +9 -0
- package/dist/util/generateHighlightedMarkup.js +41 -0
- package/dist/util/generateHighlightedMarkup.js.map +1 -0
- package/dist/util/getActiveElement.d.ts +2 -0
- package/dist/util/getActiveElement.js +6 -8
- package/dist/util/getActiveElement.js.map +1 -0
- package/dist/util/getClassCopy.d.ts +400 -0
- package/dist/util/getClassCopy.js +10 -0
- package/dist/util/getClassCopy.js.map +1 -0
- package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
- package/dist/util/getDesigntimePropertyAsArray.js +4 -3
- package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
- package/dist/util/getEffectiveContentDensity.d.ts +2 -0
- package/dist/util/getEffectiveContentDensity.js +2 -3
- package/dist/util/getEffectiveContentDensity.js.map +1 -0
- package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
- package/dist/util/getEffectiveScrollbarStyle.js +4 -0
- package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
- package/dist/util/getFastNavigationGroups.d.ts +2 -0
- package/dist/util/getFastNavigationGroups.js +51 -0
- package/dist/util/getFastNavigationGroups.js.map +1 -0
- package/{src/util/getFileExtension.js → dist/util/getFileExtension.d.ts} +3 -12
- package/dist/util/getFileExtension.js +9 -11
- package/dist/util/getFileExtension.js.map +1 -0
- package/dist/util/getNormalizedTarget.d.ts +7 -0
- package/dist/util/getNormalizedTarget.js +14 -0
- package/dist/util/getNormalizedTarget.js.map +1 -0
- package/dist/util/getSingletonElementInstance.d.ts +11 -0
- package/dist/util/getSingletonElementInstance.js +17 -11
- package/dist/util/getSingletonElementInstance.js.map +1 -0
- package/dist/util/isElementClickable.d.ts +2 -0
- package/dist/util/isElementClickable.js +16 -0
- package/dist/util/isElementClickable.js.map +1 -0
- package/dist/util/isElementHidden.d.ts +2 -0
- package/dist/util/isElementHidden.js +8 -0
- package/dist/util/isElementHidden.js.map +1 -0
- package/dist/util/isElementInView.d.ts +6 -0
- package/dist/util/isElementInView.js +12 -0
- package/dist/util/isElementInView.js.map +1 -0
- package/dist/util/isElementTabbable.d.ts +9 -0
- package/dist/util/isElementTabbable.js +30 -0
- package/dist/util/isElementTabbable.js.map +1 -0
- package/dist/util/isValidPropertyName.d.ts +8 -0
- package/dist/util/isValidPropertyName.js +16 -17
- package/dist/util/isValidPropertyName.js.map +1 -0
- package/dist/util/whenDOMReady.d.ts +2 -0
- package/dist/util/whenDOMReady.js +11 -10
- package/dist/util/whenDOMReady.js.map +1 -0
- package/dist/util/willShowContent.d.ts +2 -0
- package/dist/util/willShowContent.js +7 -0
- package/dist/util/willShowContent.js.map +1 -0
- package/dist/validateThemeRoot.d.ts +2 -0
- package/dist/validateThemeRoot.js +48 -0
- package/dist/validateThemeRoot.js.map +1 -0
- package/index.js +228 -2
- package/lib/generate-asset-parameters/index.js +11 -6
- package/lib/generate-styles/index.js +31 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.cjs +71 -0
- package/package.json +21 -10
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +84 -0
- package/src/css/OverrideFontFace.css +32 -0
- package/src/css/SystemCSSVars.css +17 -0
- package/src/renderer/directives/style-map.js +72 -0
- package/tsconfig.json +14 -0
- package/used-modules.txt +10 -0
- package/config/rollup.config.js +0 -1
- package/config/wdio.conf.js +0 -1
- package/dist/RenderScheduler.js +0 -44
- package/dist/animations/config.js +0 -5
- package/dist/config/AssetsPath.js +0 -17
- package/dist/isLegacyBrowser.js +0 -3
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/renderer/scopeHTML.js +0 -32
- package/dist/resources/bundle.esm.js +0 -121
- package/dist/resources/bundle.esm.js.map +0 -1
- package/dist/test-resources/assets/Themes.js +0 -17
- package/dist/test-resources/elements/Child.js +0 -35
- package/dist/test-resources/elements/Generic.js +0 -84
- package/dist/test-resources/elements/GenericExt.js +0 -26
- package/dist/test-resources/elements/NoShadowDOM.js +0 -13
- package/dist/test-resources/elements/Parent.js +0 -41
- package/dist/test-resources/elements/WithStaticArea.js +0 -76
- package/dist/test-resources/pages/AllTestElements.html +0 -39
- package/dist/test-resources/pages/Configuration.html +0 -18
- package/dist/test-resources/pages/ConfigurationScript.html +0 -34
- package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
- package/dist/test-resources/pages/i18n.html +0 -35
- package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
- package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
- package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
- package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
- package/dist/test-resources/specs/StaticArea.spec.js +0 -34
- package/dist/test-resources/specs/Theming.spec.js +0 -31
- package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -240
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -73
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
- package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
- package/dist/theming/createThemePropertiesStyleTag.js +0 -20
- package/dist/types/CSSSize.js +0 -9
- package/dist/types/PopupState.js +0 -37
- package/dist/util/encodeCSS.js +0 -24
- package/dist/util/findNodeOwner.js +0 -35
- package/dist/util/isDescendantOf.js +0 -15
- package/dist/util/isNodeClickable.js +0 -19
- package/dist/util/isNodeHidden.js +0 -9
- package/dist/util/isNodeTabbable.js +0 -28
- package/dist/util/setToArray.js +0 -10
- package/package-scripts.js +0 -46
- package/src/Boot.js +0 -48
- package/src/CustomElementsRegistry.js +0 -39
- package/src/CustomElementsScope.js +0 -108
- package/src/DOMObserver.js +0 -61
- package/src/Device.js +0 -823
- package/src/EventProvider.js +0 -91
- package/src/FeaturesRegistry.js +0 -11
- package/src/FontFace.js +0 -118
- package/src/InitialConfiguration.js +0 -150
- package/src/Keys.js +0 -221
- package/src/PropertiesFileFormat.js +0 -95
- package/src/Render.js +0 -174
- package/src/RenderQueue.js +0 -66
- package/src/RenderScheduler.js +0 -44
- package/src/StaticAreaItem.js +0 -80
- package/src/SystemCSSVars.js +0 -31
- package/src/UI5Element.js +0 -1032
- package/src/UI5ElementMetadata.js +0 -311
- package/src/animations/AnimationQueue.js +0 -42
- package/src/animations/animate.js +0 -53
- package/src/animations/config.js +0 -5
- package/src/animations/scroll.js +0 -28
- package/src/animations/slideDown.js +0 -79
- package/src/animations/slideUp.js +0 -71
- package/src/asset-registries/Icons.js +0 -112
- package/src/asset-registries/LocaleData.js +0 -121
- package/src/asset-registries/Themes.js +0 -78
- package/src/asset-registries/i18n.js +0 -120
- package/src/config/AnimationMode.js +0 -23
- package/src/config/AssetsPath.js +0 -17
- package/src/config/CalendarType.js +0 -18
- package/src/config/FormatSettings.js +0 -13
- package/src/config/Language.js +0 -68
- package/src/config/NoConflict.js +0 -51
- package/src/config/RTL.js +0 -31
- package/src/config/Theme.js +0 -28
- package/src/delegate/ItemNavigation.js +0 -293
- package/src/delegate/ResizeHandler.js +0 -106
- package/src/delegate/ScrollEnablement.js +0 -182
- package/src/features/OpenUI5Support.js +0 -90
- package/src/getSharedResource.js +0 -30
- package/src/i18nBundle.js +0 -52
- package/src/isLegacyBrowser.js +0 -3
- package/src/locale/Locale.js +0 -91
- package/src/locale/RTLAwareRegistry.js +0 -14
- package/src/locale/applyDirection.js +0 -17
- package/src/locale/directionChange.js +0 -32
- package/src/locale/getEffectiveDir.js +0 -28
- package/src/locale/getLocale.js +0 -41
- package/src/locale/languageChange.js +0 -22
- package/src/locale/nextFallbackLocale.js +0 -28
- package/src/locale/normalizeLocale.js +0 -54
- package/src/renderer/LitRenderer.js +0 -31
- package/src/renderer/executeTemplate.js +0 -17
- package/src/renderer/ifDefined.js +0 -21
- package/src/renderer/scopeHTML.js +0 -32
- package/src/theming/CustomStyle.js +0 -40
- package/src/theming/ThemeLoaded.js +0 -22
- package/src/theming/applyTheme.js +0 -78
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- package/src/theming/getConstructableStyle.js +0 -30
- package/src/theming/getEffectiveStyle.js +0 -30
- package/src/theming/getStylesString.js +0 -13
- package/src/theming/getThemeDesignerTheme.js +0 -67
- package/src/thirdparty/_merge.js +0 -32
- package/src/thirdparty/isPlainObject.js +0 -18
- package/src/thirdparty/merge.js +0 -10
- package/src/types/AnimationMode.js +0 -7
- package/src/types/CSSColor.js +0 -9
- package/src/types/CSSSize.js +0 -9
- package/src/types/CalendarType.js +0 -22
- package/src/types/DataType.js +0 -25
- package/src/types/Float.js +0 -10
- package/src/types/Integer.js +0 -9
- package/src/types/ItemNavigationBehavior.js +0 -16
- package/src/types/NavigationMode.js +0 -7
- package/src/types/PopupState.js +0 -37
- package/src/types/ValueState.js +0 -22
- package/src/updateShadowRoot.js +0 -26
- package/src/util/AriaLabelHelper.js +0 -41
- package/src/util/Caret.js +0 -45
- package/src/util/FetchHelper.js +0 -31
- package/src/util/FocusableElements.js +0 -73
- package/src/util/SlotsHelper.js +0 -43
- package/src/util/StringHelper.js +0 -26
- package/src/util/TabbableElements.js +0 -47
- package/src/util/arraysAreEqual.js +0 -15
- package/src/util/createStyleInHead.js +0 -18
- package/src/util/debounce.js +0 -17
- package/src/util/detectNavigatorLanguage.js +0 -13
- package/src/util/encodeCSS.js +0 -24
- package/src/util/findNodeOwner.js +0 -35
- package/src/util/formatMessage.js +0 -23
- package/src/util/getActiveElement.js +0 -11
- package/src/util/getDesigntimePropertyAsArray.js +0 -4
- package/src/util/getEffectiveContentDensity.js +0 -5
- package/src/util/getSingletonElementInstance.js +0 -13
- package/src/util/isDescendantOf.js +0 -15
- package/src/util/isNodeClickable.js +0 -19
- package/src/util/isNodeHidden.js +0 -9
- package/src/util/isNodeTabbable.js +0 -28
- package/src/util/isValidPropertyName.js +0 -29
- package/src/util/setToArray.js +0 -10
- package/src/util/whenDOMReady.js +0 -13
- /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* @param {String} color Color in one of the following formats: RGBA or HEX
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Map of CSS colors to hex representation
|
|
7
|
+
*/
|
|
8
|
+
var CSSColors;
|
|
9
|
+
(function (CSSColors) {
|
|
10
|
+
CSSColors["aliceblue"] = "f0f8ff";
|
|
11
|
+
CSSColors["antiquewhite"] = "faebd7";
|
|
12
|
+
CSSColors["aqua"] = "00ffff";
|
|
13
|
+
CSSColors["aquamarine"] = "7fffd4";
|
|
14
|
+
CSSColors["azure"] = "f0ffff";
|
|
15
|
+
CSSColors["beige"] = "f5f5dc";
|
|
16
|
+
CSSColors["bisque"] = "ffe4c4";
|
|
17
|
+
CSSColors["black"] = "000000";
|
|
18
|
+
CSSColors["blanchedalmond"] = "ffebcd";
|
|
19
|
+
CSSColors["blue"] = "0000ff";
|
|
20
|
+
CSSColors["blueviolet"] = "8a2be2";
|
|
21
|
+
CSSColors["brown"] = "a52a2a";
|
|
22
|
+
CSSColors["burlywood"] = "deb887";
|
|
23
|
+
CSSColors["cadetblue"] = "5f9ea0";
|
|
24
|
+
CSSColors["chartreuse"] = "7fff00";
|
|
25
|
+
CSSColors["chocolate"] = "d2691e";
|
|
26
|
+
CSSColors["coral"] = "ff7f50";
|
|
27
|
+
CSSColors["cornflowerblue"] = "6495ed";
|
|
28
|
+
CSSColors["cornsilk"] = "fff8dc";
|
|
29
|
+
CSSColors["crimson"] = "dc143c";
|
|
30
|
+
CSSColors["cyan"] = "00ffff";
|
|
31
|
+
CSSColors["darkblue"] = "00008b";
|
|
32
|
+
CSSColors["darkcyan"] = "008b8b";
|
|
33
|
+
CSSColors["darkgoldenrod"] = "b8860b";
|
|
34
|
+
CSSColors["darkgray"] = "a9a9a9";
|
|
35
|
+
CSSColors["darkgrey"] = "a9a9a9";
|
|
36
|
+
CSSColors["darkgreen"] = "006400";
|
|
37
|
+
CSSColors["darkkhaki"] = "bdb76b";
|
|
38
|
+
CSSColors["darkmagenta"] = "8b008b";
|
|
39
|
+
CSSColors["darkolivegreen"] = "556b2f";
|
|
40
|
+
CSSColors["darkorange"] = "ff8c00";
|
|
41
|
+
CSSColors["darkorchid"] = "9932cc";
|
|
42
|
+
CSSColors["darkred"] = "8b0000";
|
|
43
|
+
CSSColors["darksalmon"] = "e9967a";
|
|
44
|
+
CSSColors["darkseagreen"] = "8fbc8f";
|
|
45
|
+
CSSColors["darkslateblue"] = "483d8b";
|
|
46
|
+
CSSColors["darkslategray"] = "2f4f4f";
|
|
47
|
+
CSSColors["darkslategrey"] = "2f4f4f";
|
|
48
|
+
CSSColors["darkturquoise"] = "00ced1";
|
|
49
|
+
CSSColors["darkviolet"] = "9400d3";
|
|
50
|
+
CSSColors["deeppink"] = "ff1493";
|
|
51
|
+
CSSColors["deepskyblue"] = "00bfff";
|
|
52
|
+
CSSColors["dimgray"] = "696969";
|
|
53
|
+
CSSColors["dimgrey"] = "696969";
|
|
54
|
+
CSSColors["dodgerblue"] = "1e90ff";
|
|
55
|
+
CSSColors["firebrick"] = "b22222";
|
|
56
|
+
CSSColors["floralwhite"] = "fffaf0";
|
|
57
|
+
CSSColors["forestgreen"] = "228b22";
|
|
58
|
+
CSSColors["fuchsia"] = "ff00ff";
|
|
59
|
+
CSSColors["gainsboro"] = "dcdcdc";
|
|
60
|
+
CSSColors["ghostwhite"] = "f8f8ff";
|
|
61
|
+
CSSColors["gold"] = "ffd700";
|
|
62
|
+
CSSColors["goldenrod"] = "daa520";
|
|
63
|
+
CSSColors["gray"] = "808080";
|
|
64
|
+
CSSColors["grey"] = "808080";
|
|
65
|
+
CSSColors["green"] = "008000";
|
|
66
|
+
CSSColors["greenyellow"] = "adff2f";
|
|
67
|
+
CSSColors["honeydew"] = "f0fff0";
|
|
68
|
+
CSSColors["hotpink"] = "ff69b4";
|
|
69
|
+
CSSColors["indianred"] = "cd5c5c";
|
|
70
|
+
CSSColors["indigo"] = "4b0082";
|
|
71
|
+
CSSColors["ivory"] = "fffff0";
|
|
72
|
+
CSSColors["khaki"] = "f0e68c";
|
|
73
|
+
CSSColors["lavender"] = "e6e6fa";
|
|
74
|
+
CSSColors["lavenderblush"] = "fff0f5";
|
|
75
|
+
CSSColors["lawngreen"] = "7cfc00";
|
|
76
|
+
CSSColors["lemonchiffon"] = "fffacd";
|
|
77
|
+
CSSColors["lightblue"] = "add8e6";
|
|
78
|
+
CSSColors["lightcoral"] = "f08080";
|
|
79
|
+
CSSColors["lightcyan"] = "e0ffff";
|
|
80
|
+
CSSColors["lightgoldenrodyellow"] = "fafad2";
|
|
81
|
+
CSSColors["lightgray"] = "d3d3d3";
|
|
82
|
+
CSSColors["lightgrey"] = "d3d3d3";
|
|
83
|
+
CSSColors["lightgreen"] = "90ee90";
|
|
84
|
+
CSSColors["lightpink"] = "ffb6c1";
|
|
85
|
+
CSSColors["lightsalmon"] = "ffa07a";
|
|
86
|
+
CSSColors["lightseagreen"] = "20b2aa";
|
|
87
|
+
CSSColors["lightskyblue"] = "87cefa";
|
|
88
|
+
CSSColors["lightslategray"] = "778899";
|
|
89
|
+
CSSColors["lightslategrey"] = "778899";
|
|
90
|
+
CSSColors["lightsteelblue"] = "b0c4de";
|
|
91
|
+
CSSColors["lightyellow"] = "ffffe0";
|
|
92
|
+
CSSColors["lime"] = "00ff00";
|
|
93
|
+
CSSColors["limegreen"] = "32cd32";
|
|
94
|
+
CSSColors["linen"] = "faf0e6";
|
|
95
|
+
CSSColors["magenta"] = "ff00ff";
|
|
96
|
+
CSSColors["maroon"] = "800000";
|
|
97
|
+
CSSColors["mediumaquamarine"] = "66cdaa";
|
|
98
|
+
CSSColors["mediumblue"] = "0000cd";
|
|
99
|
+
CSSColors["mediumorchid"] = "ba55d3";
|
|
100
|
+
CSSColors["mediumpurple"] = "9370db";
|
|
101
|
+
CSSColors["mediumseagreen"] = "3cb371";
|
|
102
|
+
CSSColors["mediumslateblue"] = "7b68ee";
|
|
103
|
+
CSSColors["mediumspringgreen"] = "00fa9a";
|
|
104
|
+
CSSColors["mediumturquoise"] = "48d1cc";
|
|
105
|
+
CSSColors["mediumvioletred"] = "c71585";
|
|
106
|
+
CSSColors["midnightblue"] = "191970";
|
|
107
|
+
CSSColors["mintcream"] = "f5fffa";
|
|
108
|
+
CSSColors["mistyrose"] = "ffe4e1";
|
|
109
|
+
CSSColors["moccasin"] = "ffe4b5";
|
|
110
|
+
CSSColors["navajowhite"] = "ffdead";
|
|
111
|
+
CSSColors["navy"] = "000080";
|
|
112
|
+
CSSColors["oldlace"] = "fdf5e6";
|
|
113
|
+
CSSColors["olive"] = "808000";
|
|
114
|
+
CSSColors["olivedrab"] = "6b8e23";
|
|
115
|
+
CSSColors["orange"] = "ffa500";
|
|
116
|
+
CSSColors["orangered"] = "ff4500";
|
|
117
|
+
CSSColors["orchid"] = "da70d6";
|
|
118
|
+
CSSColors["palegoldenrod"] = "eee8aa";
|
|
119
|
+
CSSColors["palegreen"] = "98fb98";
|
|
120
|
+
CSSColors["paleturquoise"] = "afeeee";
|
|
121
|
+
CSSColors["palevioletred"] = "db7093";
|
|
122
|
+
CSSColors["papayawhip"] = "ffefd5";
|
|
123
|
+
CSSColors["peachpuff"] = "ffdab9";
|
|
124
|
+
CSSColors["peru"] = "cd853f";
|
|
125
|
+
CSSColors["pink"] = "ffc0cb";
|
|
126
|
+
CSSColors["plum"] = "dda0dd";
|
|
127
|
+
CSSColors["powderblue"] = "b0e0e6";
|
|
128
|
+
CSSColors["purple"] = "800080";
|
|
129
|
+
CSSColors["red"] = "ff0000";
|
|
130
|
+
CSSColors["rosybrown"] = "bc8f8f";
|
|
131
|
+
CSSColors["royalblue"] = "4169e1";
|
|
132
|
+
CSSColors["saddlebrown"] = "8b4513";
|
|
133
|
+
CSSColors["salmon"] = "fa8072";
|
|
134
|
+
CSSColors["sandybrown"] = "f4a460";
|
|
135
|
+
CSSColors["seagreen"] = "2e8b57";
|
|
136
|
+
CSSColors["seashell"] = "fff5ee";
|
|
137
|
+
CSSColors["sienna"] = "a0522d";
|
|
138
|
+
CSSColors["silver"] = "c0c0c0";
|
|
139
|
+
CSSColors["skyblue"] = "87ceeb";
|
|
140
|
+
CSSColors["slateblue"] = "6a5acd";
|
|
141
|
+
CSSColors["slategray"] = "708090";
|
|
142
|
+
CSSColors["slategrey"] = "708090";
|
|
143
|
+
CSSColors["snow"] = "fffafa";
|
|
144
|
+
CSSColors["springgreen"] = "00ff7f";
|
|
145
|
+
CSSColors["steelblue"] = "4682b4";
|
|
146
|
+
CSSColors["tan"] = "d2b48c";
|
|
147
|
+
CSSColors["teal"] = "008080";
|
|
148
|
+
CSSColors["thistle"] = "d8bfd8";
|
|
149
|
+
CSSColors["tomato"] = "ff6347";
|
|
150
|
+
CSSColors["turquoise"] = "40e0d0";
|
|
151
|
+
CSSColors["violet"] = "ee82ee";
|
|
152
|
+
CSSColors["wheat"] = "f5deb3";
|
|
153
|
+
CSSColors["white"] = "ffffff";
|
|
154
|
+
CSSColors["whitesmoke"] = "f5f5f5";
|
|
155
|
+
CSSColors["yellow"] = "ffff00";
|
|
156
|
+
CSSColors["yellowgreen"] = "9acd32";
|
|
157
|
+
CSSColors["transparent"] = "00000000";
|
|
158
|
+
})(CSSColors || (CSSColors = {}));
|
|
159
|
+
const getRGBColor = (color) => {
|
|
160
|
+
if (color.startsWith("rgba")) {
|
|
161
|
+
return RGBAToRGB(color);
|
|
162
|
+
}
|
|
163
|
+
if (color.startsWith("rgb")) {
|
|
164
|
+
return RGBStringToRGBObject(color);
|
|
165
|
+
}
|
|
166
|
+
// HEX
|
|
167
|
+
if (color.indexOf("#") === 0) {
|
|
168
|
+
// Shorthand Syntax
|
|
169
|
+
if (color.length === 4) {
|
|
170
|
+
color = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
color = color.slice(1, color.length);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Css Color
|
|
177
|
+
if (color in CSSColors) {
|
|
178
|
+
color = CSSColors[color];
|
|
179
|
+
}
|
|
180
|
+
return HEXToRGB(color);
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Return an object with the properties for each of the main colors(red, green, blue)
|
|
184
|
+
* @param {String} color Receives a color in the following format: "rgba(0, 0, 0, 1)
|
|
185
|
+
*/
|
|
186
|
+
const RGBAToRGB = (color) => {
|
|
187
|
+
const openingBracketIndex = color.indexOf("("), commasIndexes = [];
|
|
188
|
+
for (let i = 0; i < color.length; i++) {
|
|
189
|
+
if (color[i] === ",") {
|
|
190
|
+
commasIndexes.push(i);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
|
|
195
|
+
g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
|
|
196
|
+
b: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Return an object with the properties for each of the main colors(red, green, blue)
|
|
201
|
+
* @param {String} color Receives a color in the following format: "rgb(0, 0, 0)
|
|
202
|
+
*/
|
|
203
|
+
const RGBStringToRGBObject = (color) => {
|
|
204
|
+
const openingBracketIndex = color.indexOf("("), closingBraketIndex = color.indexOf(")"), commasIndexes = [];
|
|
205
|
+
for (let i = 0; i < color.length; i++) {
|
|
206
|
+
if (color[i] === ",") {
|
|
207
|
+
commasIndexes.push(i);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
r: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),
|
|
212
|
+
g: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),
|
|
213
|
+
b: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
const HSLToRGB = (color) => {
|
|
217
|
+
// Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html
|
|
218
|
+
const C = (1 - Math.abs((2 * color.l) - 1)) * color.s, X = C * (1 - Math.abs(((color.h / 60) % 2) - 1)), m = color.l - C / 2;
|
|
219
|
+
let tempColor;
|
|
220
|
+
switch (Math.round(color.h / 60)) {
|
|
221
|
+
// 0 ≤ H < 60
|
|
222
|
+
case 0:
|
|
223
|
+
tempColor = {
|
|
224
|
+
r: C,
|
|
225
|
+
g: X,
|
|
226
|
+
b: 0,
|
|
227
|
+
};
|
|
228
|
+
break;
|
|
229
|
+
// 60 ≤ H < 120
|
|
230
|
+
case 1:
|
|
231
|
+
tempColor = {
|
|
232
|
+
r: X,
|
|
233
|
+
g: C,
|
|
234
|
+
b: 0,
|
|
235
|
+
};
|
|
236
|
+
break;
|
|
237
|
+
// 120 ≤ H < 180
|
|
238
|
+
case 2:
|
|
239
|
+
tempColor = {
|
|
240
|
+
r: 0,
|
|
241
|
+
g: C,
|
|
242
|
+
b: X,
|
|
243
|
+
};
|
|
244
|
+
break;
|
|
245
|
+
// 180 ≤ H < 240
|
|
246
|
+
case 3:
|
|
247
|
+
tempColor = {
|
|
248
|
+
r: 0,
|
|
249
|
+
g: X,
|
|
250
|
+
b: C,
|
|
251
|
+
};
|
|
252
|
+
break;
|
|
253
|
+
// 240 ≤ H < 300
|
|
254
|
+
case 4:
|
|
255
|
+
tempColor = {
|
|
256
|
+
r: X,
|
|
257
|
+
g: 0,
|
|
258
|
+
b: C,
|
|
259
|
+
};
|
|
260
|
+
break;
|
|
261
|
+
// 300 ≤ H < 360
|
|
262
|
+
default:
|
|
263
|
+
tempColor = {
|
|
264
|
+
r: C,
|
|
265
|
+
g: 0,
|
|
266
|
+
b: X,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
r: Math.floor((tempColor.r + m) * 255),
|
|
271
|
+
g: Math.floor((tempColor.g + m) * 255),
|
|
272
|
+
b: Math.floor((tempColor.b + m) * 255),
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
const HEXToRGB = (hex) => {
|
|
276
|
+
// Please make sure you pass a valid 6 digit hex color
|
|
277
|
+
// In the implementation of this method we assume that the hex argument is a 6 digit valid hex color
|
|
278
|
+
return {
|
|
279
|
+
r: parseInt(hex.substr(0, 2), 16),
|
|
280
|
+
g: parseInt(hex.substr(2, 2), 16),
|
|
281
|
+
b: parseInt(hex.substr(4, 2), 16),
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* Returns the hex value of the color as string
|
|
286
|
+
* @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)
|
|
287
|
+
*/
|
|
288
|
+
const RGBtoHEX = (color) => {
|
|
289
|
+
const hexMap = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E"];
|
|
290
|
+
let hexValue = "#";
|
|
291
|
+
let divisionNumber = color.r / 16;
|
|
292
|
+
let remainder = color.r % 16;
|
|
293
|
+
hexValue += String(hexMap[Math.floor(divisionNumber)]);
|
|
294
|
+
hexValue += String(hexMap[remainder]);
|
|
295
|
+
divisionNumber = color.g / 16;
|
|
296
|
+
remainder = color.g % 16;
|
|
297
|
+
hexValue += String(hexMap[Math.floor(divisionNumber)]);
|
|
298
|
+
hexValue += String(hexMap[remainder]);
|
|
299
|
+
divisionNumber = color.b / 16;
|
|
300
|
+
remainder = color.b % 16;
|
|
301
|
+
hexValue += String(hexMap[Math.floor(divisionNumber)]);
|
|
302
|
+
hexValue += String(hexMap[remainder]);
|
|
303
|
+
return hexValue;
|
|
304
|
+
};
|
|
305
|
+
const RGBToHSL = (color) => {
|
|
306
|
+
const R = color.r / 255, G = color.g / 255, B = color.b / 255, max = Math.max(R, G, B), min = Math.min(R, G, B), delta = max - min;
|
|
307
|
+
let h = 0, s;
|
|
308
|
+
// Hue calculation
|
|
309
|
+
if (delta === 0) {
|
|
310
|
+
h = 0;
|
|
311
|
+
}
|
|
312
|
+
else if (max === R) {
|
|
313
|
+
h = 60 * (((G - B) / delta) % 6);
|
|
314
|
+
}
|
|
315
|
+
else if (max === G) {
|
|
316
|
+
h = 60 * (((B - R) / delta) + 2);
|
|
317
|
+
}
|
|
318
|
+
else if (max === B) {
|
|
319
|
+
h = 60 * (((R - G) / delta) + 4);
|
|
320
|
+
}
|
|
321
|
+
// Lightness calculation
|
|
322
|
+
const l = (max + min) / 2;
|
|
323
|
+
// Saturation calculation
|
|
324
|
+
if (delta === 0) {
|
|
325
|
+
s = 0;
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
s = delta / (1 - Math.abs(2 * l - 1));
|
|
329
|
+
}
|
|
330
|
+
return {
|
|
331
|
+
h,
|
|
332
|
+
s,
|
|
333
|
+
l,
|
|
334
|
+
};
|
|
335
|
+
};
|
|
336
|
+
export { getRGBColor, HSLToRGB, HEXToRGB, RGBToHSL, RGBStringToRGBObject, RGBtoHEX, };
|
|
337
|
+
//# sourceMappingURL=ColorConversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorConversion.js","sourceRoot":"","sources":["../../src/util/ColorConversion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * @param {String} color Color in one of the following formats: RGBA or HEX\n */\n\ntype ColorHSL = {\n\th: number,\n\ts: number,\n\tl: number,\n};\n\ntype ColorRGB = {\n\tr: number,\n\tb: number,\n\tg: number,\n};\n\n/**\n * Map of CSS colors to hex representation\n */\nenum CSSColors {\n\taliceblue = \"f0f8ff\",\n\tantiquewhite = \"faebd7\",\n\taqua = \"00ffff\",\n\taquamarine = \"7fffd4\",\n\tazure = \"f0ffff\",\n\tbeige = \"f5f5dc\",\n\tbisque = \"ffe4c4\",\n\tblack = \"000000\",\n\tblanchedalmond = \"ffebcd\",\n\tblue = \"0000ff\",\n\tblueviolet = \"8a2be2\",\n\tbrown = \"a52a2a\",\n\tburlywood = \"deb887\",\n\tcadetblue = \"5f9ea0\",\n\tchartreuse = \"7fff00\",\n\tchocolate = \"d2691e\",\n\tcoral = \"ff7f50\",\n\tcornflowerblue = \"6495ed\",\n\tcornsilk = \"fff8dc\",\n\tcrimson = \"dc143c\",\n\tcyan = \"00ffff\",\n\tdarkblue = \"00008b\",\n\tdarkcyan = \"008b8b\",\n\tdarkgoldenrod = \"b8860b\",\n\tdarkgray = \"a9a9a9\",\n\tdarkgrey = \"a9a9a9\",\n\tdarkgreen = \"006400\",\n\tdarkkhaki = \"bdb76b\",\n\tdarkmagenta = \"8b008b\",\n\tdarkolivegreen = \"556b2f\",\n\tdarkorange = \"ff8c00\",\n\tdarkorchid = \"9932cc\",\n\tdarkred = \"8b0000\",\n\tdarksalmon = \"e9967a\",\n\tdarkseagreen = \"8fbc8f\",\n\tdarkslateblue = \"483d8b\",\n\tdarkslategray = \"2f4f4f\",\n\tdarkslategrey = \"2f4f4f\",\n\tdarkturquoise = \"00ced1\",\n\tdarkviolet = \"9400d3\",\n\tdeeppink = \"ff1493\",\n\tdeepskyblue = \"00bfff\",\n\tdimgray = \"696969\",\n\tdimgrey = \"696969\",\n\tdodgerblue = \"1e90ff\",\n\tfirebrick = \"b22222\",\n\tfloralwhite = \"fffaf0\",\n\tforestgreen = \"228b22\",\n\tfuchsia = \"ff00ff\",\n\tgainsboro = \"dcdcdc\",\n\tghostwhite = \"f8f8ff\",\n\tgold = \"ffd700\",\n\tgoldenrod = \"daa520\",\n\tgray = \"808080\",\n\tgrey = \"808080\",\n\tgreen = \"008000\",\n\tgreenyellow = \"adff2f\",\n\thoneydew = \"f0fff0\",\n\thotpink = \"ff69b4\",\n\tindianred = \"cd5c5c\",\n\tindigo = \"4b0082\",\n\tivory = \"fffff0\",\n\tkhaki = \"f0e68c\",\n\tlavender = \"e6e6fa\",\n\tlavenderblush = \"fff0f5\",\n\tlawngreen = \"7cfc00\",\n\tlemonchiffon = \"fffacd\",\n\tlightblue = \"add8e6\",\n\tlightcoral = \"f08080\",\n\tlightcyan = \"e0ffff\",\n\tlightgoldenrodyellow = \"fafad2\",\n\tlightgray = \"d3d3d3\",\n\tlightgrey = \"d3d3d3\",\n\tlightgreen = \"90ee90\",\n\tlightpink = \"ffb6c1\",\n\tlightsalmon = \"ffa07a\",\n\tlightseagreen = \"20b2aa\",\n\tlightskyblue = \"87cefa\",\n\tlightslategray = \"778899\",\n\tlightslategrey = \"778899\",\n\tlightsteelblue = \"b0c4de\",\n\tlightyellow = \"ffffe0\",\n\tlime = \"00ff00\",\n\tlimegreen = \"32cd32\",\n\tlinen = \"faf0e6\",\n\tmagenta = \"ff00ff\",\n\tmaroon = \"800000\",\n\tmediumaquamarine = \"66cdaa\",\n\tmediumblue = \"0000cd\",\n\tmediumorchid = \"ba55d3\",\n\tmediumpurple = \"9370db\",\n\tmediumseagreen = \"3cb371\",\n\tmediumslateblue = \"7b68ee\",\n\tmediumspringgreen = \"00fa9a\",\n\tmediumturquoise = \"48d1cc\",\n\tmediumvioletred = \"c71585\",\n\tmidnightblue = \"191970\",\n\tmintcream = \"f5fffa\",\n\tmistyrose = \"ffe4e1\",\n\tmoccasin = \"ffe4b5\",\n\tnavajowhite = \"ffdead\",\n\tnavy = \"000080\",\n\toldlace = \"fdf5e6\",\n\tolive = \"808000\",\n\tolivedrab = \"6b8e23\",\n\torange = \"ffa500\",\n\torangered = \"ff4500\",\n\torchid = \"da70d6\",\n\tpalegoldenrod = \"eee8aa\",\n\tpalegreen = \"98fb98\",\n\tpaleturquoise = \"afeeee\",\n\tpalevioletred = \"db7093\",\n\tpapayawhip = \"ffefd5\",\n\tpeachpuff = \"ffdab9\",\n\tperu = \"cd853f\",\n\tpink = \"ffc0cb\",\n\tplum = \"dda0dd\",\n\tpowderblue = \"b0e0e6\",\n\tpurple = \"800080\",\n\tred = \"ff0000\",\n\trosybrown = \"bc8f8f\",\n\troyalblue = \"4169e1\",\n\tsaddlebrown = \"8b4513\",\n\tsalmon = \"fa8072\",\n\tsandybrown = \"f4a460\",\n\tseagreen = \"2e8b57\",\n\tseashell = \"fff5ee\",\n\tsienna = \"a0522d\",\n\tsilver = \"c0c0c0\",\n\tskyblue = \"87ceeb\",\n\tslateblue = \"6a5acd\",\n\tslategray = \"708090\",\n\tslategrey = \"708090\",\n\tsnow = \"fffafa\",\n\tspringgreen = \"00ff7f\",\n\tsteelblue = \"4682b4\",\n\ttan = \"d2b48c\",\n\tteal = \"008080\",\n\tthistle = \"d8bfd8\",\n\ttomato = \"ff6347\",\n\tturquoise = \"40e0d0\",\n\tviolet = \"ee82ee\",\n\twheat = \"f5deb3\",\n\twhite = \"ffffff\",\n\twhitesmoke = \"f5f5f5\",\n\tyellow = \"ffff00\",\n\tyellowgreen = \"9acd32\",\n\ttransparent = \"00000000\",\n}\n\nconst getRGBColor = (color: string): ColorRGB => {\n\tif (color.startsWith(\"rgba\")) {\n\t\treturn RGBAToRGB(color);\n\t}\n\n\tif (color.startsWith(\"rgb\")) {\n\t\treturn RGBStringToRGBObject(color);\n\t}\n\n\t// HEX\n\tif (color.indexOf(\"#\") === 0) {\n\t\t// Shorthand Syntax\n\t\tif (color.length === 4) {\n\t\t\tcolor = `${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n\t\t} else {\n\t\t\tcolor = color.slice(1, color.length);\n\t\t}\n\t}\n\n\t// Css Color\n\tif (color in CSSColors) {\n\t\tcolor = CSSColors[color as keyof typeof CSSColors];\n\t}\n\n\treturn HEXToRGB(color);\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgba(0, 0, 0, 1)\n */\nconst RGBAToRGB = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, commasIndexes[2]).trim()),\n\t};\n};\n\n/**\n * Return an object with the properties for each of the main colors(red, green, blue)\n * @param {String} color Receives a color in the following format: \"rgb(0, 0, 0)\n */\nconst RGBStringToRGBObject = (color: string): ColorRGB => {\n\tconst openingBracketIndex = color.indexOf(\"(\"),\n\t\tclosingBraketIndex = color.indexOf(\")\"),\n\t\tcommasIndexes = [];\n\n\tfor (let i = 0; i < color.length; i++) {\n\t\tif (color[i] === \",\") {\n\t\t\tcommasIndexes.push(i);\n\t\t}\n\t}\n\n\treturn {\n\t\tr: parseInt(color.slice(openingBracketIndex + 1, commasIndexes[0]).trim()),\n\t\tg: parseInt(color.slice(commasIndexes[0] + 1, commasIndexes[1]).trim()),\n\t\tb: parseInt(color.slice(commasIndexes[1] + 1, closingBraketIndex).trim()),\n\t};\n};\n\nconst HSLToRGB = (color: ColorHSL): ColorRGB => {\n\t// Formula taken from https://www.rapidtables.com/convert/color/hsl-to-rgb.html\n\tconst C = (1 - Math.abs((2 * color.l) - 1)) * color.s,\n\t\tX = C * (1 - Math.abs(((color.h / 60) % 2) - 1)),\n\t\tm = color.l - C / 2;\n\n\tlet tempColor: ColorRGB;\n\tswitch (Math.round(color.h / 60)) {\n\t// 0 ≤ H < 60\n\tcase 0:\n\t\ttempColor = {\n\t\t\tr: C,\n\t\t\tg: X,\n\t\t\tb: 0,\n\t\t};\n\t\tbreak;\n\n\t// 60 ≤ H < 120\n\tcase 1:\n\t\ttempColor = {\n\t\t\tr: X,\n\t\t\tg: C,\n\t\t\tb: 0,\n\t\t};\n\t\tbreak;\n\n\t// 120 ≤ H < 180\n\tcase 2:\n\t\ttempColor = {\n\t\t\tr: 0,\n\t\t\tg: C,\n\t\t\tb: X,\n\t\t};\n\t\tbreak;\n\n\t// 180 ≤ H < 240\n\tcase 3:\n\t\ttempColor = {\n\t\t\tr: 0,\n\t\t\tg: X,\n\t\t\tb: C,\n\t\t};\n\t\tbreak;\n\n\t// 240 ≤ H < 300\n\tcase 4:\n\t\ttempColor = {\n\t\t\tr: X,\n\t\t\tg: 0,\n\t\t\tb: C,\n\t\t};\n\t\tbreak;\n\n\t// 300 ≤ H < 360\n\tdefault:\n\t\ttempColor = {\n\t\t\tr: C,\n\t\t\tg: 0,\n\t\t\tb: X,\n\t\t};\n\t}\n\n\treturn {\n\t\tr: Math.floor((tempColor.r + m) * 255),\n\t\tg: Math.floor((tempColor.g + m) * 255),\n\t\tb: Math.floor((tempColor.b + m) * 255),\n\t};\n};\n\nconst HEXToRGB = (hex: string): ColorRGB => {\n\t// Please make sure you pass a valid 6 digit hex color\n\t// In the implementation of this method we assume that the hex argument is a 6 digit valid hex color\n\n\treturn {\n\t\tr: parseInt(hex.substr(0, 2), 16),\n\t\tg: parseInt(hex.substr(2, 2), 16),\n\t\tb: parseInt(hex.substr(4, 2), 16),\n\t};\n};\n\n/**\n * Returns the hex value of the color as string\n * @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)\n */\nconst RGBtoHEX = (color: ColorRGB): string => {\n\tconst hexMap = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\"];\n\tlet hexValue = \"#\";\n\n\tlet divisionNumber = color.r / 16;\n\tlet remainder = color.r % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.g / 16;\n\tremainder = color.g % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\tdivisionNumber = color.b / 16;\n\tremainder = color.b % 16;\n\thexValue += String(hexMap[Math.floor(divisionNumber)]);\n\thexValue += String(hexMap[remainder]);\n\n\treturn hexValue;\n};\n\nconst RGBToHSL = (color: ColorRGB): ColorHSL => {\n\tconst R = color.r / 255,\n\t\tG = color.g / 255,\n\t\tB = color.b / 255,\n\t\tmax = Math.max(R, G, B),\n\t\tmin = Math.min(R, G, B),\n\t\tdelta = max - min;\n\n\tlet h = 0,\n\t\ts;\n\n\t// Hue calculation\n\tif (delta === 0) {\n\t\th = 0;\n\t} else if (max === R) {\n\t\th = 60 * (((G - B) / delta) % 6);\n\t} else if (max === G) {\n\t\th = 60 * (((B - R) / delta) + 2);\n\t} else if (max === B) {\n\t\th = 60 * (((R - G) / delta) + 4);\n\t}\n\n\t// Lightness calculation\n\tconst l = (max + min) / 2;\n\n\t// Saturation calculation\n\tif (delta === 0) {\n\t\ts = 0;\n\t} else {\n\t\ts = delta / (1 - Math.abs(2 * l - 1));\n\t}\n\n\treturn {\n\t\th,\n\t\ts,\n\t\tl,\n\t};\n};\n\nexport {\n\tgetRGBColor,\n\tHSLToRGB,\n\tHEXToRGB,\n\tRGBToHSL,\n\tRGBStringToRGBObject,\n\tRGBtoHEX,\n};\n\nexport type {\n\tColorHSL,\n\tColorRGB,\n};\n"]}
|
package/dist/util/FetchHelper.js
CHANGED
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
const fetchPromises = new Map();
|
|
2
2
|
const jsonPromises = new Map();
|
|
3
3
|
const textPromises = new Map();
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return textPromises.get(url);
|
|
4
|
+
const fetchTextOnce = async (url) => {
|
|
5
|
+
if (!fetchPromises.get(url)) {
|
|
6
|
+
fetchPromises.set(url, fetch(url));
|
|
7
|
+
}
|
|
8
|
+
const response = await fetchPromises.get(url);
|
|
9
|
+
if (response && !textPromises.get(url)) {
|
|
10
|
+
textPromises.set(url, response.text());
|
|
11
|
+
}
|
|
12
|
+
return textPromises.get(url);
|
|
16
13
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return jsonPromises.get(url);
|
|
14
|
+
const fetchJsonOnce = async (url) => {
|
|
15
|
+
if (!fetchPromises.get(url)) {
|
|
16
|
+
fetchPromises.set(url, fetch(url));
|
|
17
|
+
}
|
|
18
|
+
const response = await fetchPromises.get(url);
|
|
19
|
+
if (response && !jsonPromises.get(url)) {
|
|
20
|
+
jsonPromises.set(url, response.json());
|
|
21
|
+
}
|
|
22
|
+
return jsonPromises.get(url);
|
|
29
23
|
};
|
|
30
|
-
|
|
31
24
|
export { fetchTextOnce, fetchJsonOnce };
|
|
25
|
+
//# sourceMappingURL=FetchHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FetchHelper.js","sourceRoot":"","sources":["../../src/util/FetchHelper.ts"],"names":[],"mappings":"AAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;AACrD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA2B,CAAC;AAExD,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACvC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KACvC;IAED,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC","sourcesContent":["const fetchPromises = new Map<string, Promise<Response>>();\nconst jsonPromises = new Map<string, Promise<any>>();\nconst textPromises = new Map<string, Promise<string>>();\n\nconst fetchTextOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !textPromises.get(url)) {\n\t\ttextPromises.set(url, response.text());\n\t}\n\n\treturn textPromises.get(url);\n};\n\nconst fetchJsonOnce = async (url: string) => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (response && !jsonPromises.get(url)) {\n\t\tjsonPromises.set(url, response.json());\n\t}\n\n\treturn jsonPromises.get(url);\n};\n\nexport { fetchTextOnce, fetchJsonOnce };\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
type FocusableElementPromise = Promise<HTMLElement | null>;
|
|
2
|
+
declare const getFirstFocusableElement: (container: HTMLElement, startFromContainer?: boolean) => FocusableElementPromise;
|
|
3
|
+
declare const getLastFocusableElement: (container: HTMLElement, startFromContainer?: boolean) => FocusableElementPromise;
|
|
4
|
+
export { getFirstFocusableElement, getLastFocusableElement, };
|
|
@@ -1,73 +1,72 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const isFocusTrap = el => {
|
|
5
|
-
|
|
1
|
+
import isElementHidden from "./isElementHidden.js";
|
|
2
|
+
import isElementClickable from "./isElementClickable.js";
|
|
3
|
+
import { instanceOfUI5Element } from "../UI5Element.js";
|
|
4
|
+
const isFocusTrap = (el) => {
|
|
5
|
+
return el.hasAttribute("data-ui5-focus-trap");
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return findFocusableElement(container, true);
|
|
7
|
+
const getFirstFocusableElement = async (container, startFromContainer) => {
|
|
8
|
+
if (!container || isElementHidden(container)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return findFocusableElement(container, true, startFromContainer);
|
|
14
12
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return findFocusableElement(container, false);
|
|
13
|
+
const getLastFocusableElement = async (container, startFromContainer) => {
|
|
14
|
+
if (!container || isElementHidden(container)) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return findFocusableElement(container, false, startFromContainer);
|
|
22
18
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
let child;
|
|
26
|
-
|
|
27
|
-
if (container.shadowRoot) {
|
|
28
|
-
child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
|
|
29
|
-
} else if (container.assignedNodes && container.assignedNodes()) {
|
|
30
|
-
const assignedElements = container.assignedNodes();
|
|
31
|
-
child = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];
|
|
32
|
-
} else {
|
|
33
|
-
child = forward ? container.firstChild : container.lastChild;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
let focusableDescendant;
|
|
37
|
-
|
|
38
|
-
/* eslint-disable no-await-in-loop */
|
|
39
|
-
|
|
40
|
-
while (child) {
|
|
41
|
-
const originalChild = child;
|
|
42
|
-
|
|
43
|
-
if (child.isUI5Element) {
|
|
44
|
-
child = await child.getFocusDomRefAsync();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (!child) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
if (child.nodeType === 1 && !isNodeHidden(child) && !isFocusTrap(child)) {
|
|
52
|
-
if (isNodeClickable(child)) {
|
|
53
|
-
return (child && typeof child.focus === "function") ? child : null;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
focusableDescendant = await findFocusableElement(child, forward);
|
|
57
|
-
if (focusableDescendant) {
|
|
58
|
-
return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
child = forward ? originalChild.nextSibling : originalChild.previousSibling;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/* eslint-enable no-await-in-loop */
|
|
66
|
-
|
|
67
|
-
return null;
|
|
19
|
+
const isElemFocusable = (el) => {
|
|
20
|
+
return el.hasAttribute("data-ui5-focus-redirect") || !isElementHidden(el);
|
|
68
21
|
};
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
22
|
+
const findFocusableElement = async (container, forward, startFromContainer) => {
|
|
23
|
+
let child;
|
|
24
|
+
let assignedElements;
|
|
25
|
+
let currentIndex = -1;
|
|
26
|
+
if (container.shadowRoot) {
|
|
27
|
+
child = forward ? container.shadowRoot.firstChild : container.shadowRoot.lastChild;
|
|
28
|
+
}
|
|
29
|
+
else if (container instanceof HTMLSlotElement && container.assignedNodes()) {
|
|
30
|
+
assignedElements = container.assignedNodes();
|
|
31
|
+
currentIndex = forward ? 0 : assignedElements.length - 1;
|
|
32
|
+
child = assignedElements[currentIndex];
|
|
33
|
+
}
|
|
34
|
+
else if (startFromContainer) {
|
|
35
|
+
child = container;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
child = forward ? container.firstElementChild : container.lastElementChild;
|
|
39
|
+
}
|
|
40
|
+
let focusableDescendant;
|
|
41
|
+
/* eslint-disable no-await-in-loop */
|
|
42
|
+
while (child) {
|
|
43
|
+
const originalChild = child;
|
|
44
|
+
if (instanceOfUI5Element(child)) {
|
|
45
|
+
child = await child.getFocusDomRefAsync();
|
|
46
|
+
}
|
|
47
|
+
if (!child) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
if (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {
|
|
51
|
+
if (isElementClickable(child)) {
|
|
52
|
+
return (child && typeof child.focus === "function") ? child : null;
|
|
53
|
+
}
|
|
54
|
+
focusableDescendant = await findFocusableElement(child, forward);
|
|
55
|
+
if (focusableDescendant) {
|
|
56
|
+
return (focusableDescendant && typeof focusableDescendant.focus === "function") ? focusableDescendant : null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
child = forward ? originalChild.nextSibling : originalChild.previousSibling;
|
|
60
|
+
// If the child element is not part of the currently assigned element,
|
|
61
|
+
// we have to check the next/previous element assigned to the slot or continue with the next/previous sibling of the slot,
|
|
62
|
+
// otherwise, the nextSibling/previousSibling is the next element inside the light DOM
|
|
63
|
+
if (assignedElements && !assignedElements[currentIndex].contains(child)) {
|
|
64
|
+
currentIndex = forward ? currentIndex + 1 : currentIndex - 1;
|
|
65
|
+
child = assignedElements[currentIndex];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/* eslint-enable no-await-in-loop */
|
|
69
|
+
return null;
|
|
73
70
|
};
|
|
71
|
+
export { getFirstFocusableElement, getLastFocusableElement, };
|
|
72
|
+
//# sourceMappingURL=FocusableElements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusableElements.js","sourceRoot":"","sources":["../../src/util/FocusableElements.ts"],"names":[],"mappings":"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","sourcesContent":["import isElementHidden from \"./isElementHidden.js\";\nimport isElementClickable from \"./isElementClickable.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\n\ntype FocusableElementPromise = Promise<HTMLElement | null>;\n\nconst isFocusTrap = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-trap\");\n};\n\nconst getFirstFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, true, startFromContainer);\n};\n\nconst getLastFocusableElement = async (container: HTMLElement, startFromContainer?: boolean): FocusableElementPromise => {\n\tif (!container || isElementHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, false, startFromContainer);\n};\n\nconst isElemFocusable = (el: HTMLElement) => {\n\treturn el.hasAttribute(\"data-ui5-focus-redirect\") || !isElementHidden(el);\n};\n\nconst findFocusableElement = async (container: HTMLElement, forward: boolean, startFromContainer?: boolean): FocusableElementPromise => {\n\tlet child: HTMLElement | undefined;\n\tlet assignedElements;\n\tlet currentIndex = -1;\n\n\tif (container.shadowRoot) {\n\t\tchild = forward ? container.shadowRoot.firstChild as HTMLElement : container.shadowRoot.lastChild as HTMLElement;\n\t} else if (container instanceof HTMLSlotElement && container.assignedNodes()) {\n\t\tassignedElements = container.assignedNodes();\n\t\tcurrentIndex = forward ? 0 : assignedElements.length - 1;\n\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t} else if (startFromContainer) {\n\t\tchild = container;\n\t} else {\n\t\tchild = forward ? container.firstElementChild as HTMLElement : container.lastElementChild as HTMLElement;\n\t}\n\n\tlet focusableDescendant;\n\n\t/* eslint-disable no-await-in-loop */\n\n\twhile (child) {\n\t\tconst originalChild: HTMLElement | undefined = child;\n\n\t\tif (instanceOfUI5Element(child)) {\n\t\t\tchild = await child.getFocusDomRefAsync();\n\t\t}\n\n\t\tif (!child) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (child.nodeType === 1 && isElemFocusable(child) && !isFocusTrap(child)) {\n\t\t\tif (isElementClickable(child)) {\n\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t}\n\n\t\t\tfocusableDescendant = await findFocusableElement(child, forward);\n\t\t\tif (focusableDescendant) {\n\t\t\t\treturn (focusableDescendant && typeof focusableDescendant.focus === \"function\") ? focusableDescendant : null;\n\t\t\t}\n\t\t}\n\n\t\tchild = forward ? originalChild.nextSibling as HTMLElement : originalChild.previousSibling as HTMLElement;\n\n\t\t// If the child element is not part of the currently assigned element,\n\t\t// we have to check the next/previous element assigned to the slot or continue with the next/previous sibling of the slot,\n\t\t// otherwise, the nextSibling/previousSibling is the next element inside the light DOM\n\t\tif (assignedElements && !assignedElements[currentIndex].contains(child)) {\n\t\t\tcurrentIndex = forward ? currentIndex + 1 : currentIndex - 1;\n\n\t\t\tchild = assignedElements[currentIndex] as HTMLElement;\n\t\t}\n\t}\n\n\t/* eslint-enable no-await-in-loop */\n\n\treturn null;\n};\n\nexport {\n\tgetFirstFocusableElement,\n\tgetLastFocusableElement,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HTMLSanitizer.js","sourceRoot":"","sources":["../../src/util/HTMLSanitizer.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,YAAY,MAAM,sCAAsC,CAAC;AAChE,aAAa;AACb,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AAExE,OAAO,EACN,gBAAgB,EAChB,YAAY,GACZ,CAAC","sourcesContent":["// @ts-ignore\nimport sanitizeHTML from \"../sap/base/security/sanitizeHTML.js\";\n// @ts-ignore\nimport URLListValidator from \"../sap/base/security/URLListValidator.js\";\n\nexport {\n\tURLListValidator,\n\tsanitizeHTML,\n};\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import InvisibleMessageMode from "../types/InvisibleMessageMode.js";
|
|
2
|
+
/**
|
|
3
|
+
* Inserts the string into the respective span, depending on the mode provided.
|
|
4
|
+
*
|
|
5
|
+
* @param { string } message String to be announced by the screen reader.
|
|
6
|
+
* @param { InvisibleMessageMode } mode The mode to be inserted in the aria-live attribute.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
declare const announce: (message: string, mode: `${InvisibleMessageMode}`) => void;
|
|
10
|
+
export default announce;
|