@ui5/webcomponents-base 0.0.0-5b79982e1 → 0.0.0-5e31d3069
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 +614 -0
- package/README.md +53 -7
- package/bundle.esm.js +30 -22
- package/config/wdio.conf.cjs +400 -0
- package/dist/AssetRegistry.d.ts +5 -0
- package/dist/AssetRegistry.js +6 -12
- package/dist/AssetRegistry.js.map +1 -0
- package/dist/Boot.d.ts +9 -0
- package/dist/Boot.js +71 -0
- 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 +55 -0
- package/{src/CustomElementsScope.js → dist/CustomElementsScopeUtils.js} +34 -52
- package/dist/CustomElementsScopeUtils.js.map +1 -0
- package/dist/DOMObserver.d.ts +11 -0
- package/dist/DOMObserver.js +23 -0
- 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 -78
- 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/InitialConfiguration.d.ts +27 -0
- package/dist/InitialConfiguration.js +124 -118
- package/dist/InitialConfiguration.js.map +1 -0
- package/dist/Keys.d.ts +57 -0
- package/dist/Keys.js +174 -217
- package/dist/Keys.js.map +1 -0
- package/dist/ManagedStyles.d.ts +8 -0
- package/dist/ManagedStyles.js +77 -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 +85 -0
- package/dist/PropertiesFileFormat.js.map +1 -0
- package/dist/Render.d.ts +47 -0
- package/dist/Render.js +143 -0
- 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 +4 -28
- package/dist/StaticArea.js.map +1 -0
- package/dist/StaticAreaItem.d.ts +36 -0
- package/dist/StaticAreaItem.js +92 -101
- 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 +378 -0
- package/dist/UI5Element.js +924 -1144
- package/dist/UI5Element.js.map +1 -0
- package/dist/UI5ElementMetadata.d.ts +150 -0
- package/dist/UI5ElementMetadata.js +278 -267
- 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 +38 -0
- package/dist/asset-registries/Icons.js +125 -32
- package/dist/asset-registries/Icons.js.map +1 -0
- package/dist/asset-registries/Illustrations.d.ts +17 -0
- package/dist/asset-registries/Illustrations.js +46 -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 +119 -118
- package/dist/asset-registries/LocaleData.js.map +1 -0
- package/dist/asset-registries/Themes.d.ts +11 -0
- package/dist/asset-registries/Themes.js +41 -77
- package/dist/asset-registries/Themes.js.map +1 -0
- package/dist/asset-registries/i18n.d.ts +23 -0
- package/dist/asset-registries/i18n.js +77 -86
- package/dist/asset-registries/i18n.js.map +1 -0
- package/dist/assets/Boot.34b7cea0.css +1 -0
- package/dist/assets/Boot.8220f4ab.js +9 -0
- package/dist/assets/bundle.esm.efe1daa8.js +50 -0
- package/dist/assets-meta/IconCollectionsAlias.d.ts +31 -0
- package/dist/assets-meta/IconCollectionsAlias.js +38 -0
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -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 +55 -0
- package/dist/config/Icons.js +103 -0
- package/dist/config/Icons.js.map +1 -0
- package/dist/config/Language.d.ts +40 -0
- package/dist/config/Language.js +49 -51
- 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/ThemeRoots.d.ts +4 -0
- package/dist/config/ThemeRoots.js +28 -0
- package/dist/config/ThemeRoots.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/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +66 -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 -277
- package/dist/delegate/ItemNavigation.js.map +1 -0
- package/dist/delegate/ResizeHandler.d.ts +25 -0
- package/dist/delegate/ResizeHandler.js +84 -62
- 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 +26 -0
- package/dist/features/OpenUI5Support.js +95 -86
- 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.js +11 -0
- package/dist/getSharedResource.d.ts +11 -0
- package/dist/getSharedResource.js +22 -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 -42
- 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 +8 -9
- 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 +24 -0
- 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 +3585 -0
- package/dist/theming/CustomStyle.d.ts +6 -0
- package/dist/theming/CustomStyle.js +40 -32
- 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 +62 -71
- package/dist/theming/applyTheme.js.map +1 -0
- package/dist/theming/getConstructableStyle.d.ts +9 -0
- package/dist/theming/getConstructableStyle.js +13 -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 +26 -17
- 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 +18 -0
- 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 +38 -0
- 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 +30 -0
- 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 +15 -0
- 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 +398 -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 +4 -0
- 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 +2 -0
- package/dist/util/getSingletonElementInstance.js +7 -10
- 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 -13
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +66 -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/bundle.es5.js +0 -28
- package/config/rollup.config.js +0 -1
- package/config/wdio.conf.js +0 -1
- package/dist/RenderScheduler.js +0 -169
- package/dist/SVGIconRegistry.js +0 -73
- package/dist/animations/config.js +0 -5
- package/dist/boot.js +0 -34
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/config/AssetsPath.js +0 -17
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -45
- package/dist/features/PropertiesFormatSupport.js +0 -8
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -43
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/renderer/scopeHTML.js +0 -32
- package/dist/resources/bundle.es5.js +0 -225
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/resources/bundle.esm.js +0 -129
- 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 -42
- package/dist/test-resources/pages/Configuration.html +0 -20
- package/dist/test-resources/pages/ConfigurationScript.html +0 -36
- 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 -40
- 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/CSSVarsPonyfill.js +0 -68
- package/dist/theming/adaptCSSForIE.js +0 -95
- package/dist/theming/createComponentStyleTag.js +0 -54
- package/dist/theming/createThemePropertiesStyleTag.js +0 -20
- package/dist/thirdparty/Array.from.js +0 -16
- package/dist/thirdparty/Array.prototype.fill.js +0 -44
- package/dist/thirdparty/Array.prototype.find.js +0 -46
- package/dist/thirdparty/Array.prototype.findIndex.js +0 -46
- package/dist/thirdparty/Array.prototype.includes.js +0 -51
- package/dist/thirdparty/Element.prototype.closest.js +0 -11
- package/dist/thirdparty/Element.prototype.matches.js +0 -6
- package/dist/thirdparty/Map.prototype.keys.js +0 -9
- package/dist/thirdparty/Number.isInteger.js +0 -5
- package/dist/thirdparty/Number.isNaN.js +0 -1
- package/dist/thirdparty/Number.parseFloat.js +0 -1
- package/dist/thirdparty/Number.parseInt.js +0 -1
- package/dist/thirdparty/Object.assign.js +0 -31
- package/dist/thirdparty/Object.entries.js +0 -11
- package/dist/thirdparty/Symbol.js +0 -2
- package/dist/thirdparty/WeakSet.js +0 -27
- package/dist/thirdparty/es6-string-methods.js +0 -182
- package/dist/thirdparty/events-polyfills.js +0 -89
- package/dist/thirdparty/fetch.js +0 -1
- package/dist/thirdparty/template.js +0 -600
- package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/dist/types/CSSSize.js +0 -9
- package/dist/types/PopupState.js +0 -37
- package/dist/util/EffectiveAssetPath.js +0 -27
- 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/isSlot.js +0 -3
- package/dist/util/parseProperties.js +0 -89
- package/dist/util/setToArray.js +0 -10
- package/dist/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/package-scripts.js +0 -47
- package/src/AssetRegistry.js +0 -12
- package/src/CustomElementsRegistry.js +0 -39
- package/src/Device.js +0 -823
- package/src/EventProvider.js +0 -81
- 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/RenderQueue.js +0 -66
- package/src/RenderScheduler.js +0 -169
- package/src/SVGIconRegistry.js +0 -73
- package/src/StaticArea.js +0 -31
- package/src/StaticAreaItem.js +0 -108
- package/src/SystemCSSVars.js +0 -31
- package/src/UI5Element.js +0 -1175
- package/src/UI5ElementMetadata.js +0 -280
- 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 -32
- package/src/asset-registries/LocaleData.js +0 -135
- package/src/asset-registries/Themes.js +0 -88
- package/src/asset-registries/i18n.js +0 -110
- package/src/boot.js +0 -34
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- 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 -70
- package/src/config/NoConflict.js +0 -51
- package/src/config/RTL.js +0 -31
- package/src/config/Theme.js +0 -28
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/ItemNavigation.js +0 -313
- package/src/delegate/NativeResize.js +0 -45
- package/src/delegate/ResizeHandler.js +0 -65
- package/src/delegate/ScrollEnablement.js +0 -182
- package/src/features/OpenUI5Support.js +0 -90
- package/src/features/PropertiesFormatSupport.js +0 -8
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -43
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/getSharedResource.js +0 -30
- package/src/i18nBundle.js +0 -52
- package/src/locale/Locale.js +0 -91
- package/src/locale/RTLAwareRegistry.js +0 -14
- package/src/locale/applyDirection.js +0 -18
- package/src/locale/directionChange.js +0 -32
- 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/CSSVarsPonyfill.js +0 -68
- package/src/theming/CustomStyle.js +0 -40
- package/src/theming/ThemeLoaded.js +0 -22
- package/src/theming/adaptCSSForIE.js +0 -95
- package/src/theming/applyTheme.js +0 -84
- package/src/theming/createComponentStyleTag.js +0 -54
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- package/src/theming/getConstructableStyle.js +0 -29
- package/src/theming/getEffectiveStyle.js +0 -23
- package/src/theming/getStylesString.js +0 -13
- package/src/theming/getThemeDesignerTheme.js +0 -67
- package/src/thirdparty/Array.from.js +0 -16
- package/src/thirdparty/Array.prototype.fill.js +0 -44
- package/src/thirdparty/Array.prototype.find.js +0 -46
- package/src/thirdparty/Array.prototype.findIndex.js +0 -46
- package/src/thirdparty/Array.prototype.includes.js +0 -51
- package/src/thirdparty/Element.prototype.closest.js +0 -11
- package/src/thirdparty/Element.prototype.matches.js +0 -6
- package/src/thirdparty/Map.prototype.keys.js +0 -9
- package/src/thirdparty/Number.isInteger.js +0 -5
- package/src/thirdparty/Number.isNaN.js +0 -1
- package/src/thirdparty/Number.parseFloat.js +0 -1
- package/src/thirdparty/Number.parseInt.js +0 -1
- package/src/thirdparty/Object.assign.js +0 -31
- package/src/thirdparty/Object.entries.js +0 -11
- package/src/thirdparty/Symbol.js +0 -2
- package/src/thirdparty/WeakSet.js +0 -27
- package/src/thirdparty/_merge.js +0 -32
- package/src/thirdparty/es6-string-methods.js +0 -182
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/isPlainObject.js +0 -18
- package/src/thirdparty/merge.js +0 -10
- package/src/thirdparty/template.js +0 -600
- package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/src/types/AnimationMode.js +0 -7
- 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/util/AriaLabelHelper.js +0 -41
- package/src/util/Caret.js +0 -45
- package/src/util/EffectiveAssetPath.js +0 -27
- package/src/util/FetchHelper.js +0 -31
- package/src/util/FocusableElements.js +0 -73
- 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/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/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/isSlot.js +0 -3
- package/src/util/isValidPropertyName.js +0 -29
- package/src/util/parseProperties.js +0 -89
- 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,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2018 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This is the original style-map.js directive from lit-html 2 with the only difference that "render" is not called even for the first rendering (update is used instead)
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { noChange } from 'lit-html';
|
|
12
|
+
import { directive, Directive, PartType, } from 'lit-html/directive.js';
|
|
13
|
+
class StyleMapDirective extends Directive {
|
|
14
|
+
constructor(partInfo) {
|
|
15
|
+
var _a;
|
|
16
|
+
super(partInfo);
|
|
17
|
+
if (partInfo.type !== PartType.ATTRIBUTE ||
|
|
18
|
+
partInfo.name !== 'style' ||
|
|
19
|
+
((_a = partInfo.strings) === null || _a === void 0 ? void 0 : _a.length) > 2) {
|
|
20
|
+
throw new Error('The `styleMap` directive must be used in the `style` attribute ' +
|
|
21
|
+
'and must be the only part in the attribute.');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
render(styleInfo) {
|
|
25
|
+
return "";
|
|
26
|
+
}
|
|
27
|
+
update(part, [styleInfo]) {
|
|
28
|
+
const { style } = part.element;
|
|
29
|
+
if (this._previousStyleProperties === undefined) {
|
|
30
|
+
this._previousStyleProperties = new Set();
|
|
31
|
+
for (const name in styleInfo) {
|
|
32
|
+
this._previousStyleProperties.add(name);
|
|
33
|
+
}
|
|
34
|
+
// return this.render(styleInfo);
|
|
35
|
+
}
|
|
36
|
+
// Remove old properties that no longer exist in styleInfo
|
|
37
|
+
// We use forEach() instead of for-of so that re don't require down-level
|
|
38
|
+
// iteration.
|
|
39
|
+
this._previousStyleProperties.forEach((name) => {
|
|
40
|
+
// If the name isn't in styleInfo or it's null/undefined
|
|
41
|
+
if (styleInfo[name] == null) {
|
|
42
|
+
this._previousStyleProperties.delete(name);
|
|
43
|
+
if (name.includes('-')) {
|
|
44
|
+
style.removeProperty(name);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Note reset using empty string (vs null) as IE11 does not always
|
|
48
|
+
// reset via null (https://developer.mozilla.org/en-US/docs/Web/API/ElementCSSInlineStyle/style#setting_styles)
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
style[name] = '';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// Add or update properties
|
|
55
|
+
for (const name in styleInfo) {
|
|
56
|
+
const value = styleInfo[name];
|
|
57
|
+
if (value != null) {
|
|
58
|
+
this._previousStyleProperties.add(name);
|
|
59
|
+
if (name.includes('-')) {
|
|
60
|
+
style.setProperty(name, value);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
+
style[name] = value;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return noChange;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const styleMap = directive(StyleMapDirective);
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"include": ["src/**/*", "src/global.d.ts"],
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ES2021",
|
|
5
|
+
// Generate d.ts files
|
|
6
|
+
"declaration": true,
|
|
7
|
+
"outDir": "dist",
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"sourceMap": true,
|
|
10
|
+
"inlineSources": true,
|
|
11
|
+
"strict": true,
|
|
12
|
+
"moduleResolution": "node",
|
|
13
|
+
},
|
|
14
|
+
}
|
package/used-modules.txt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Needed files from OpenUI5
|
|
2
|
+
|
|
3
|
+
sap/base/util/now.js
|
|
4
|
+
sap/base/Log.js
|
|
5
|
+
sap/base/assert.js
|
|
6
|
+
sap/base/security/URLListValidator.js
|
|
7
|
+
sap/base/security/sanitizeHTML.js
|
|
8
|
+
sap/base/strings/toHex.js
|
|
9
|
+
sap/base/security/encodeXML.js
|
|
10
|
+
sap/base/security/encodeCSS.js
|
package/bundle.es5.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// ES5 bundle targets IE11 only
|
|
2
|
-
import "./dist/features/browsersupport/IE11.js";
|
|
3
|
-
|
|
4
|
-
import "./bundle.esm.js";
|
|
5
|
-
|
|
6
|
-
import { getAnimationMode } from "./dist/config/AnimationMode.js";
|
|
7
|
-
import { getLanguage } from "./dist/config/Language.js";
|
|
8
|
-
import { getCalendarType } from "./dist/config/CalendarType.js";
|
|
9
|
-
import { getTheme, setTheme } from "./dist/config/Theme.js";
|
|
10
|
-
import { getNoConflict, setNoConflict } from "./dist/config/NoConflict.js";
|
|
11
|
-
import { getRTL } from "./dist/config/RTL.js";
|
|
12
|
-
import { getFirstDayOfWeek } from "./dist/config/FormatSettings.js";
|
|
13
|
-
import { getRegisteredNames as getIconNames } from "./dist/SVGIconRegistry.js"
|
|
14
|
-
const configuration = {
|
|
15
|
-
getAnimationMode,
|
|
16
|
-
getLanguage,
|
|
17
|
-
getTheme,
|
|
18
|
-
setTheme,
|
|
19
|
-
getNoConflict,
|
|
20
|
-
setNoConflict,
|
|
21
|
-
getCalendarType,
|
|
22
|
-
getRTL,
|
|
23
|
-
getFirstDayOfWeek,
|
|
24
|
-
};
|
|
25
|
-
export {
|
|
26
|
-
configuration,
|
|
27
|
-
getIconNames,
|
|
28
|
-
};
|
package/config/rollup.config.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require("@ui5/webcomponents-tools/components-package/rollup.js");
|
package/config/wdio.conf.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require("@ui5/webcomponents-tools/components-package/wdio.js");
|
package/dist/RenderScheduler.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import RenderQueue from "./RenderQueue.js";
|
|
2
|
-
import { getAllRegisteredTags } from "./CustomElementsRegistry.js";
|
|
3
|
-
import { isRtlAware } from "./locale/RTLAwareRegistry.js";
|
|
4
|
-
|
|
5
|
-
const registeredElements = new Set();
|
|
6
|
-
|
|
7
|
-
// Queue for invalidated web components
|
|
8
|
-
const invalidatedWebComponents = new RenderQueue();
|
|
9
|
-
|
|
10
|
-
let renderTaskPromise,
|
|
11
|
-
renderTaskPromiseResolve;
|
|
12
|
-
|
|
13
|
-
let mutationObserverTimer;
|
|
14
|
-
|
|
15
|
-
let queuePromise;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Class that manages the rendering/re-rendering of web components
|
|
19
|
-
* This is always asynchronous
|
|
20
|
-
*/
|
|
21
|
-
class RenderScheduler {
|
|
22
|
-
constructor() {
|
|
23
|
-
throw new Error("Static class");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Schedules a render task (if not already scheduled) to render the component
|
|
28
|
-
*
|
|
29
|
-
* @param webComponent
|
|
30
|
-
* @returns {Promise}
|
|
31
|
-
*/
|
|
32
|
-
static async renderDeferred(webComponent) {
|
|
33
|
-
// Enqueue the web component
|
|
34
|
-
invalidatedWebComponents.add(webComponent);
|
|
35
|
-
|
|
36
|
-
// Schedule a rendering task
|
|
37
|
-
await RenderScheduler.scheduleRenderTask();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Renders a component synchronously
|
|
42
|
-
*
|
|
43
|
-
* @param webComponent
|
|
44
|
-
*/
|
|
45
|
-
static renderImmediately(webComponent) {
|
|
46
|
-
webComponent._render();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Cancels the rendering of a component, added to the queue with renderDeferred
|
|
51
|
-
*
|
|
52
|
-
* @param webComponent
|
|
53
|
-
*/
|
|
54
|
-
static cancelRender(webComponent) {
|
|
55
|
-
invalidatedWebComponents.remove(webComponent);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Schedules a rendering task, if not scheduled already
|
|
60
|
-
*/
|
|
61
|
-
static async scheduleRenderTask() {
|
|
62
|
-
if (!queuePromise) {
|
|
63
|
-
queuePromise = new Promise(resolve => {
|
|
64
|
-
window.requestAnimationFrame(() => {
|
|
65
|
-
// Render all components in the queue
|
|
66
|
-
|
|
67
|
-
// console.log(`--------------------RENDER TASK START------------------------------`); // eslint-disable-line
|
|
68
|
-
invalidatedWebComponents.process(component => component._render());
|
|
69
|
-
// console.log(`--------------------RENDER TASK END------------------------------`); // eslint-disable-line
|
|
70
|
-
|
|
71
|
-
// Resolve the promise so that callers of renderDeferred can continue
|
|
72
|
-
queuePromise = null;
|
|
73
|
-
resolve();
|
|
74
|
-
|
|
75
|
-
// Wait for Mutation observer before the render task is considered finished
|
|
76
|
-
if (!mutationObserverTimer) {
|
|
77
|
-
mutationObserverTimer = setTimeout(() => {
|
|
78
|
-
mutationObserverTimer = undefined;
|
|
79
|
-
if (invalidatedWebComponents.isEmpty()) {
|
|
80
|
-
RenderScheduler._resolveTaskPromise();
|
|
81
|
-
}
|
|
82
|
-
}, 200);
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
await queuePromise;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* return a promise that will be resolved once all invalidated web components are rendered
|
|
93
|
-
*/
|
|
94
|
-
static whenDOMUpdated() {
|
|
95
|
-
if (renderTaskPromise) {
|
|
96
|
-
return renderTaskPromise;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
renderTaskPromise = new Promise(resolve => {
|
|
100
|
-
renderTaskPromiseResolve = resolve;
|
|
101
|
-
window.requestAnimationFrame(() => {
|
|
102
|
-
if (invalidatedWebComponents.isEmpty()) {
|
|
103
|
-
renderTaskPromise = undefined;
|
|
104
|
-
resolve();
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
return renderTaskPromise;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
static whenAllCustomElementsAreDefined() {
|
|
113
|
-
const definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));
|
|
114
|
-
return Promise.all(definedPromises);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
static async whenFinished() {
|
|
118
|
-
await RenderScheduler.whenAllCustomElementsAreDefined();
|
|
119
|
-
await RenderScheduler.whenDOMUpdated();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
static _resolveTaskPromise() {
|
|
123
|
-
if (!invalidatedWebComponents.isEmpty()) {
|
|
124
|
-
// More updates are pending. Resolve will be called again
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (renderTaskPromiseResolve) {
|
|
129
|
-
renderTaskPromiseResolve.call(this);
|
|
130
|
-
renderTaskPromiseResolve = undefined;
|
|
131
|
-
renderTaskPromise = undefined;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
static register(element) {
|
|
136
|
-
registeredElements.add(element);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
static deregister(element) {
|
|
140
|
-
registeredElements.delete(element);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Re-renders all UI5 Elements on the page, with the option to specify filters to rerender only some components.
|
|
145
|
-
*
|
|
146
|
-
* Usage:
|
|
147
|
-
* reRenderAllUI5Elements() -> rerenders all components
|
|
148
|
-
* reRenderAllUI5Elements({tag: "ui5-button"}) -> re-renders only instances of ui5-button
|
|
149
|
-
* reRenderAllUI5Elements({rtlAware: true}) -> re-renders only rtlAware components
|
|
150
|
-
* reRenderAllUI5Elements({languageAware: true}) -> re-renders only languageAware components
|
|
151
|
-
* reRenderAllUI5Elements({rtlAware: true, languageAware: true}) -> re-renders components that are rtlAware or languageAware
|
|
152
|
-
* etc...
|
|
153
|
-
*
|
|
154
|
-
* @public
|
|
155
|
-
* @param {Object|undefined} filters - Object with keys that can be "rtlAware" or "languageAware"
|
|
156
|
-
*/
|
|
157
|
-
static reRenderAllUI5Elements(filters) {
|
|
158
|
-
registeredElements.forEach(element => {
|
|
159
|
-
const tag = element.constructor.getMetadata().getTag();
|
|
160
|
-
const rtlAware = isRtlAware(element.constructor);
|
|
161
|
-
const languageAware = element.constructor.getMetadata().isLanguageAware();
|
|
162
|
-
if (!filters || (filters.tag === tag) || (filters.rtlAware && rtlAware) || (filters.languageAware && languageAware)) {
|
|
163
|
-
RenderScheduler.renderDeferred(element);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
export default RenderScheduler;
|
package/dist/SVGIconRegistry.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import getSharedResource from "./getSharedResource.js";
|
|
2
|
-
|
|
3
|
-
const registry = getSharedResource("SVGIcons.registry", new Map());
|
|
4
|
-
const iconCollectionPromises = getSharedResource("SVGIcons.promises", new Map());
|
|
5
|
-
|
|
6
|
-
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
|
|
7
|
-
const DEFAULT_COLLECTION = "SAP-icons";
|
|
8
|
-
|
|
9
|
-
const parseName = name => {
|
|
10
|
-
// silently support ui5-compatible URIs
|
|
11
|
-
if (name.startsWith("sap-icon://")) {
|
|
12
|
-
name = name.replace("sap-icon://", "");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
let collection;
|
|
16
|
-
[name, collection] = name.split("/").reverse();
|
|
17
|
-
collection = collection || DEFAULT_COLLECTION;
|
|
18
|
-
// hardcoded alias in case icon explorer is used, resolve `SAP-icons-TNT` to `tnt`
|
|
19
|
-
// aliases can be made a feature in the future if more collections need it or more aliases are needed.
|
|
20
|
-
if (collection === "SAP-icons-TNT") {
|
|
21
|
-
collection = "tnt";
|
|
22
|
-
}
|
|
23
|
-
const registryKey = `${collection}/${name}`;
|
|
24
|
-
return { name, collection, registryKey };
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const registerIcon = (name, { pathData, ltr, accData, collection } = {}) => { // eslint-disable-line
|
|
29
|
-
if (!collection) {
|
|
30
|
-
collection = DEFAULT_COLLECTION;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const key = `${collection}/${name}`;
|
|
34
|
-
registry.set(key, { pathData, ltr, accData });
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const getIconDataSync = nameProp => {
|
|
38
|
-
const { registryKey } = parseName(nameProp);
|
|
39
|
-
return registry.get(registryKey);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const getIconData = async nameProp => {
|
|
43
|
-
const { collection, registryKey } = parseName(nameProp);
|
|
44
|
-
|
|
45
|
-
if (!iconCollectionPromises.has(collection)) {
|
|
46
|
-
iconCollectionPromises.set(collection, Promise.resolve(ICON_NOT_FOUND));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const iconData = await iconCollectionPromises.get(collection);
|
|
50
|
-
|
|
51
|
-
if (iconData === ICON_NOT_FOUND) {
|
|
52
|
-
return iconData;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return registry.get(registryKey);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const getRegisteredNames = async () => {
|
|
59
|
-
await Promise.all(Array.from(iconCollectionPromises.values()));
|
|
60
|
-
return Array.from(registry.keys());
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const registerCollectionPromise = (collection, promise) => {
|
|
64
|
-
iconCollectionPromises.set(collection, promise);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export {
|
|
68
|
-
getIconData,
|
|
69
|
-
getIconDataSync,
|
|
70
|
-
registerIcon,
|
|
71
|
-
getRegisteredNames,
|
|
72
|
-
registerCollectionPromise,
|
|
73
|
-
};
|
package/dist/boot.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import whenDOMReady from "./util/whenDOMReady.js";
|
|
2
|
-
import insertFontFace from "./FontFace.js";
|
|
3
|
-
import insertSystemCSSVars from "./SystemCSSVars.js";
|
|
4
|
-
import { getTheme } from "./config/Theme.js";
|
|
5
|
-
import applyTheme from "./theming/applyTheme.js";
|
|
6
|
-
import whenPolyfillLoaded from "./compatibility/whenPolyfillLoaded.js";
|
|
7
|
-
import { getFeature } from "./FeaturesRegistry.js";
|
|
8
|
-
|
|
9
|
-
let bootPromise;
|
|
10
|
-
|
|
11
|
-
const boot = () => {
|
|
12
|
-
if (bootPromise) {
|
|
13
|
-
return bootPromise;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
bootPromise = new Promise(async resolve => {
|
|
17
|
-
const OpenUI5Support = getFeature("OpenUI5Support");
|
|
18
|
-
if (OpenUI5Support) {
|
|
19
|
-
await OpenUI5Support.init();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
await whenDOMReady();
|
|
23
|
-
await applyTheme(getTheme());
|
|
24
|
-
OpenUI5Support && OpenUI5Support.attachListeners();
|
|
25
|
-
insertFontFace();
|
|
26
|
-
insertSystemCSSVars();
|
|
27
|
-
await whenPolyfillLoaded();
|
|
28
|
-
resolve();
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
return bootPromise;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default boot;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
// Shorthands
|
|
2
|
-
const w = window;
|
|
3
|
-
|
|
4
|
-
// Map of observer objects per dom node
|
|
5
|
-
const observers = new WeakMap();
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Implements universal DOM node observation methods.
|
|
9
|
-
*/
|
|
10
|
-
class DOMObserver {
|
|
11
|
-
constructor() {
|
|
12
|
-
throw new Error("Static class");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* This function abstracts out mutation observer usage inside shadow DOM.
|
|
17
|
-
* For native shadow DOM the native mutation observer is used.
|
|
18
|
-
* When the polyfill is used, the observeChildren ShadyDOM method is used instead.
|
|
19
|
-
*
|
|
20
|
-
* @throws Exception
|
|
21
|
-
* Note: does not allow several mutation observers per node. If there is a valid use-case, this behavior can be changed.
|
|
22
|
-
*
|
|
23
|
-
* @param node
|
|
24
|
-
* @param callback
|
|
25
|
-
* @param options - Only used for the native mutation observer
|
|
26
|
-
*/
|
|
27
|
-
static observeDOMNode(node, callback, options) {
|
|
28
|
-
let observerObject = observers.get(node);
|
|
29
|
-
if (observerObject) {
|
|
30
|
-
throw new Error("A mutation/ShadyDOM observer is already assigned to this node.");
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (w.ShadyDOM) {
|
|
34
|
-
observerObject = w.ShadyDOM.observeChildren(node, callback);
|
|
35
|
-
} else {
|
|
36
|
-
observerObject = new MutationObserver(callback);
|
|
37
|
-
observerObject.observe(node, options);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
observers.set(node, observerObject);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* De-registers the mutation observer, depending on its type
|
|
45
|
-
* @param node
|
|
46
|
-
*/
|
|
47
|
-
static unobserveDOMNode(node) {
|
|
48
|
-
const observerObject = observers.get(node);
|
|
49
|
-
if (!observerObject) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (observerObject instanceof MutationObserver) {
|
|
54
|
-
observerObject.disconnect();
|
|
55
|
-
} else {
|
|
56
|
-
w.ShadyDOM.unobserveChildren(observerObject);
|
|
57
|
-
}
|
|
58
|
-
observers.delete(node);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export default DOMObserver;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const patchNodeValue = () => {
|
|
2
|
-
if (!window.ShadyDOM) {
|
|
3
|
-
return;
|
|
4
|
-
}
|
|
5
|
-
const nativeNodeValue = Object.getOwnPropertyDescriptor(Node.prototype, "nodeValue");
|
|
6
|
-
Object.defineProperty(Node.prototype, "nodeValue", {
|
|
7
|
-
get() {
|
|
8
|
-
return nativeNodeValue.get.apply(this);
|
|
9
|
-
},
|
|
10
|
-
set(text) {
|
|
11
|
-
nativeNodeValue.set.apply(this, arguments); // eslint-disable-line
|
|
12
|
-
|
|
13
|
-
// Call manually the mutation observer callback
|
|
14
|
-
const parentElement = this.parentNode;
|
|
15
|
-
if (parentElement instanceof HTMLElement && parentElement.isUI5Element) {
|
|
16
|
-
parentElement._processChildren();
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
patchNodeValue();
|
|
23
|
-
|
|
24
|
-
export default {};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
let polyfillLoadedPromise;
|
|
2
|
-
|
|
3
|
-
const whenPolyfillLoaded = () => {
|
|
4
|
-
if (polyfillLoadedPromise) {
|
|
5
|
-
return polyfillLoadedPromise;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
polyfillLoadedPromise = new Promise(resolve => {
|
|
9
|
-
if (window.WebComponents
|
|
10
|
-
&& !window.WebComponents.ready
|
|
11
|
-
&& window.WebComponents.waitFor) {
|
|
12
|
-
// the polyfill loader is present
|
|
13
|
-
window.WebComponents.waitFor(() => {
|
|
14
|
-
// the polyfills are loaded, safe to execute code depending on their APIs
|
|
15
|
-
resolve();
|
|
16
|
-
});
|
|
17
|
-
} else {
|
|
18
|
-
// polyfill loader missing, modern browsers only
|
|
19
|
-
resolve();
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
return polyfillLoadedPromise;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export default whenPolyfillLoaded;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { getAssetsPath as getConfiguredAssetsPath } from "../InitialConfiguration.js";
|
|
2
|
-
|
|
3
|
-
let assetsPath;
|
|
4
|
-
|
|
5
|
-
const getAssetsPath = () => {
|
|
6
|
-
if (assetsPath === undefined) {
|
|
7
|
-
assetsPath = getConfiguredAssetsPath();
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
return assetsPath;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const setAssetsPath = newAssetsPath => {
|
|
14
|
-
assetsPath = newAssetsPath;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export { getAssetsPath, setAssetsPath }; // eslint-disable-line
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
const INTERVAL = 300;
|
|
2
|
-
|
|
3
|
-
class CustomResize {
|
|
4
|
-
static initialize() {
|
|
5
|
-
CustomResize.initialized = false;
|
|
6
|
-
CustomResize.resizeInterval = undefined;
|
|
7
|
-
CustomResize.resizeListeners = new Map();
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
static attachListener(ref, callback) {
|
|
11
|
-
const observedObject = CustomResize.resizeListeners.get(ref);
|
|
12
|
-
const existingCallbacks = observedObject ? observedObject.callbacks : [];
|
|
13
|
-
|
|
14
|
-
CustomResize.resizeListeners.set(ref, {
|
|
15
|
-
width: ref ? ref.offsetWidth : 0,
|
|
16
|
-
height: ref ? ref.offsetHeight : 0,
|
|
17
|
-
callbacks: existingCallbacks.concat(callback),
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
CustomResize.initListener();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static initListener() {
|
|
24
|
-
if (CustomResize.resizeListeners.size > 0 && !CustomResize.initialized) {
|
|
25
|
-
CustomResize.resizeInterval = setInterval(CustomResize.checkListeners.bind(CustomResize), INTERVAL);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static checkListeners() {
|
|
30
|
-
CustomResize.resizeListeners.forEach((entry, ref) => {
|
|
31
|
-
const changed = CustomResize.checkSizes(entry, ref);
|
|
32
|
-
|
|
33
|
-
if (changed || (entry && !entry._hasBeenRendered)) {
|
|
34
|
-
CustomResize.updateSizes(entry, ref.offsetWidth, ref.offsetHeight);
|
|
35
|
-
entry.callbacks.forEach(el => el());
|
|
36
|
-
entry._hasBeenRendered = true;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
static updateSizes(sizes, newWidth, newHeight) {
|
|
42
|
-
sizes.width = newWidth;
|
|
43
|
-
sizes.height = newHeight;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
static checkSizes(entry, ref) {
|
|
47
|
-
const oldHeight = entry.height;
|
|
48
|
-
const oldWidth = entry.width;
|
|
49
|
-
const newHeight = ref.offsetHeight;
|
|
50
|
-
const newWidth = ref.offsetWidth;
|
|
51
|
-
|
|
52
|
-
return ((oldHeight !== newHeight) || oldWidth !== newWidth);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
static detachListener(ref, callback) {
|
|
56
|
-
const listenerObject = CustomResize.resizeListeners.get(ref);
|
|
57
|
-
const callbacks = listenerObject ? listenerObject.callbacks : [];
|
|
58
|
-
const filteredCallbacks = callbacks.filter(fn => fn !== callback);
|
|
59
|
-
|
|
60
|
-
if (!listenerObject || (callbacks.length === filteredCallbacks.length && callbacks.length !== 0)) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
CustomResize.resizeListeners.set(ref, Object.assign(listenerObject, { callbacks: filteredCallbacks }));
|
|
65
|
-
|
|
66
|
-
if (!filteredCallbacks.length) {
|
|
67
|
-
listenerObject.callbacks = null;
|
|
68
|
-
CustomResize.resizeListeners.delete(ref);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (CustomResize.resizeListeners.size === 0) {
|
|
72
|
-
CustomResize.initialized = false;
|
|
73
|
-
clearInterval(CustomResize.resizeInterval);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export default CustomResize;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
class NativeResize {
|
|
2
|
-
static initialize() {
|
|
3
|
-
NativeResize.resizeObserver = new window.ResizeObserver(entries => {
|
|
4
|
-
// call attached callbacks
|
|
5
|
-
entries.forEach(entry => {
|
|
6
|
-
const callbacks = NativeResize.observedObjects.get(entry.target);
|
|
7
|
-
|
|
8
|
-
callbacks.forEach(el => el());
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
NativeResize.observedObjects = new Map();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
static attachListener(ref, callback) {
|
|
16
|
-
const observedDOMs = NativeResize.observedObjects;
|
|
17
|
-
const callbacks = observedDOMs.get(ref) || [];
|
|
18
|
-
|
|
19
|
-
// if no callbacks has been added for this ref - start observing it
|
|
20
|
-
if (!callbacks.length) {
|
|
21
|
-
NativeResize.resizeObserver.observe(ref);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// save the callbacks in an array
|
|
25
|
-
observedDOMs.set(ref, [...callbacks, callback]);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
static detachListener(ref, callback) {
|
|
29
|
-
const callbacks = NativeResize.observedObjects.get(ref) || [];
|
|
30
|
-
const filteredCallbacks = callbacks.filter(fn => fn !== callback);
|
|
31
|
-
|
|
32
|
-
if (!callbacks.length || (callbacks.length === filteredCallbacks.length && callbacks.length !== 0)) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
NativeResize.observedObjects.set(ref, filteredCallbacks);
|
|
37
|
-
|
|
38
|
-
if (!filteredCallbacks.length) {
|
|
39
|
-
NativeResize.resizeObserver.unobserve(ref);
|
|
40
|
-
NativeResize.observedObjects.delete(ref);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export default NativeResize;
|