@ui5/webcomponents-base 0.0.0-7a547f8cc → 0.0.0-7c7170d4a
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/.npsrc.json +3 -0
- package/CHANGELOG.md +1273 -0
- package/README.md +5 -8
- package/config/wdio.conf.cjs +392 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/AssetRegistry.d.ts +2 -2
- package/dist/AssetRegistry.js +2 -2
- package/dist/AssetRegistry.js.map +1 -1
- package/dist/Boot.d.ts +6 -4
- package/dist/Boot.js +31 -6
- package/dist/Boot.js.map +1 -1
- package/dist/CustomElementsRegistry.js.map +1 -1
- package/dist/CustomElementsScope.d.ts +4 -4
- package/dist/CustomElementsScope.js +2 -2
- package/dist/CustomElementsScope.js.map +1 -1
- package/dist/CustomElementsScopeUtils.d.ts +8 -1
- package/dist/CustomElementsScopeUtils.js +13 -1
- package/dist/CustomElementsScopeUtils.js.map +1 -1
- package/dist/DOMObserver.js.map +1 -1
- package/dist/Device.d.ts +2 -2
- package/dist/Device.js +14 -12
- package/dist/Device.js.map +1 -1
- package/dist/EventProvider.js +1 -1
- package/dist/EventProvider.js.map +1 -1
- package/dist/FeaturesRegistry.js.map +1 -1
- package/dist/FontFace.js +1 -1
- package/dist/FontFace.js.map +1 -1
- package/dist/IgnoreCustomElements.d.ts +25 -0
- package/dist/IgnoreCustomElements.js +37 -0
- package/dist/IgnoreCustomElements.js.map +1 -0
- package/dist/InitialConfiguration.d.ts +7 -2
- package/dist/InitialConfiguration.js +16 -6
- package/dist/InitialConfiguration.js.map +1 -1
- package/dist/Keys.d.ts +7 -1
- package/dist/Keys.js +113 -106
- package/dist/Keys.js.map +1 -1
- package/dist/ManagedStyles.d.ts +5 -4
- package/dist/ManagedStyles.js +54 -52
- package/dist/ManagedStyles.js.map +1 -1
- package/dist/MarkedEvents.js.map +1 -1
- package/dist/MediaRange.d.ts +6 -12
- package/dist/MediaRange.js +21 -31
- package/dist/MediaRange.js.map +1 -1
- package/dist/PropertiesFileFormat.js.map +1 -1
- package/dist/Render.js.map +1 -1
- package/dist/RenderQueue.js.map +1 -1
- package/dist/Runtimes.js.map +1 -1
- package/dist/StaticArea.d.ts +3 -0
- package/dist/StaticArea.js +4 -3
- package/dist/StaticArea.js.map +1 -1
- package/dist/SystemCSSVars.js.map +1 -1
- package/dist/Theming.js.map +1 -1
- package/dist/UI5Element.d.ts +59 -58
- package/dist/UI5Element.js +165 -116
- package/dist/UI5Element.js.map +1 -1
- package/dist/UI5ElementMetadata.d.ts +13 -13
- package/dist/UI5ElementMetadata.js +26 -15
- package/dist/UI5ElementMetadata.js.map +1 -1
- package/dist/animations/AnimationQueue.js.map +1 -1
- package/dist/animations/animate.js.map +1 -1
- package/dist/animations/scroll.js.map +1 -1
- package/dist/animations/slideDown.js.map +1 -1
- package/dist/animations/slideUp.js.map +1 -1
- package/dist/asset-registries/Icons.d.ts +22 -13
- package/dist/asset-registries/Icons.js +63 -31
- package/dist/asset-registries/Icons.js.map +1 -1
- package/dist/asset-registries/Illustrations.d.ts +3 -1
- package/dist/asset-registries/Illustrations.js +51 -20
- package/dist/asset-registries/Illustrations.js.map +1 -1
- package/dist/asset-registries/LocaleData.js +1 -1
- package/dist/asset-registries/LocaleData.js.map +1 -1
- package/dist/asset-registries/Themes.d.ts +5 -3
- package/dist/asset-registries/Themes.js +28 -10
- package/dist/asset-registries/Themes.js.map +1 -1
- package/dist/asset-registries/i18n.d.ts +2 -2
- package/dist/asset-registries/i18n.js +12 -5
- package/dist/asset-registries/i18n.js.map +1 -1
- 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/config/AnimationMode.d.ts +2 -2
- package/dist/config/AnimationMode.js +2 -1
- package/dist/config/AnimationMode.js.map +1 -1
- package/dist/config/CalendarType.d.ts +8 -1
- package/dist/config/CalendarType.js +18 -2
- package/dist/config/CalendarType.js.map +1 -1
- package/dist/config/FormatSettings.d.ts +5 -1
- package/dist/config/FormatSettings.js +5 -1
- package/dist/config/FormatSettings.js.map +1 -1
- package/dist/config/Icons.d.ts +31 -21
- package/dist/config/Icons.js +28 -32
- package/dist/config/Icons.js.map +1 -1
- package/dist/config/Language.d.ts +11 -2
- package/dist/config/Language.js +19 -4
- package/dist/config/Language.js.map +1 -1
- package/dist/config/NoConflict.js +1 -0
- package/dist/config/NoConflict.js.map +1 -1
- package/dist/config/Theme.d.ts +16 -5
- package/dist/config/Theme.js +35 -9
- package/dist/config/Theme.js.map +1 -1
- package/dist/config/ThemeRoot.d.ts +27 -0
- package/dist/config/ThemeRoot.js +57 -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/FontFace.css +47 -17
- package/dist/css/SystemCSSVars.css +0 -8
- package/dist/decorators/customElement.d.ts +17 -2
- package/dist/decorators/customElement.js +31 -5
- package/dist/decorators/customElement.js.map +1 -1
- package/dist/decorators/event.d.ts +5 -2
- package/dist/decorators/event.js +6 -6
- package/dist/decorators/event.js.map +1 -1
- package/dist/decorators/property.js +6 -6
- package/dist/decorators/property.js.map +1 -1
- package/dist/decorators/slot.js +9 -9
- package/dist/decorators/slot.js.map +1 -1
- package/dist/decorators.d.ts +5 -0
- package/dist/decorators.js +6 -0
- package/dist/decorators.js.map +1 -0
- package/dist/delegate/ItemNavigation.d.ts +9 -8
- package/dist/delegate/ItemNavigation.js +13 -14
- package/dist/delegate/ItemNavigation.js.map +1 -1
- package/dist/delegate/ResizeHandler.d.ts +4 -6
- package/dist/delegate/ResizeHandler.js +11 -11
- package/dist/delegate/ResizeHandler.js.map +1 -1
- package/dist/delegate/ScrollEnablement.js +2 -2
- package/dist/delegate/ScrollEnablement.js.map +1 -1
- package/dist/features/F6Navigation.js.map +1 -1
- package/dist/features/InputElementsFormSupport.d.ts +18 -0
- package/dist/features/InputElementsFormSupport.js +40 -0
- package/dist/features/InputElementsFormSupport.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.js.map +1 -1
- package/dist/features/OpenUI5Enablement.d.ts +1 -1
- package/dist/features/OpenUI5Enablement.js.map +1 -1
- package/dist/features/OpenUI5Support.d.ts +16 -5
- package/dist/features/OpenUI5Support.js +89 -46
- package/dist/features/OpenUI5Support.js.map +1 -1
- package/dist/features/patchPatcher.d.ts +11 -0
- package/dist/features/patchPatcher.js +11 -0
- package/dist/features/patchPatcher.js.map +1 -0
- package/dist/features/patchPopup.d.ts +14 -0
- package/dist/features/patchPopup.js +50 -0
- package/dist/features/patchPopup.js.map +1 -0
- package/dist/generated/AssetParameters.d.ts +6 -0
- package/dist/generated/AssetParameters.js +4 -9
- package/dist/generated/AssetParameters.js.map +1 -0
- package/dist/generated/VersionInfo.d.ts +10 -0
- package/dist/generated/VersionInfo.js +9 -8
- package/dist/generated/VersionInfo.js.map +1 -0
- package/dist/generated/css/BusyIndicator.css.js.map +1 -1
- package/dist/generated/css/FontFace.css.js +1 -1
- package/dist/generated/css/FontFace.css.js.map +1 -1
- package/dist/generated/css/OverrideFontFace.css.js.map +1 -1
- package/dist/generated/css/SystemCSSVars.css.js +1 -1
- package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +8 -10
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js.map +1 -0
- package/dist/getSharedResource.d.ts +1 -1
- package/dist/getSharedResource.js +8 -2
- package/dist/getSharedResource.js.map +1 -1
- package/dist/global.d.ts +2 -0
- package/dist/i18nBundle.d.ts +2 -4
- package/dist/i18nBundle.js +3 -5
- package/dist/i18nBundle.js.map +1 -1
- package/dist/locale/Locale.js.map +1 -1
- package/dist/locale/RTLAwareRegistry.d.ts +1 -1
- package/dist/locale/RTLAwareRegistry.js.map +1 -1
- package/dist/locale/applyDirection.d.ts +3 -2
- package/dist/locale/applyDirection.js +3 -2
- package/dist/locale/applyDirection.js.map +1 -1
- package/dist/locale/directionChange.js.map +1 -1
- package/dist/locale/getEffectiveDir.d.ts +1 -1
- package/dist/locale/getEffectiveDir.js +3 -19
- package/dist/locale/getEffectiveDir.js.map +1 -1
- package/dist/locale/getLocale.js.map +1 -1
- package/dist/locale/languageChange.js.map +1 -1
- package/dist/locale/nextFallbackLocale.js.map +1 -1
- package/dist/locale/normalizeLocale.js.map +1 -1
- package/dist/locale/timezoneChange.d.ts +5 -0
- package/dist/renderer/LitRenderer.d.ts +5 -5
- package/dist/renderer/LitRenderer.js +2 -8
- package/dist/renderer/LitRenderer.js.map +1 -1
- package/dist/renderer/directives/style-map.d.ts +13 -0
- package/dist/renderer/directives/style-map.js +59 -59
- package/dist/renderer/directives/style-map.js.map +1 -0
- package/dist/renderer/executeTemplate.d.ts +8 -0
- package/dist/renderer/executeTemplate.js +2 -1
- package/dist/renderer/executeTemplate.js.map +1 -1
- package/dist/sap/base/Log.js +698 -188
- package/dist/sap/base/assert.js +28 -1
- package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
- package/dist/sap/base/security/URLListValidator.js +253 -6
- package/dist/sap/base/security/encodeCSS.js +34 -8
- package/dist/sap/base/security/encodeXML.js +47 -17
- package/dist/sap/base/security/sanitizeHTML.js +35 -13
- package/dist/sap/base/strings/toHex.js +27 -2
- package/dist/sap/base/util/now.js +24 -3
- package/dist/sap/base/util/uid.js +27 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +112 -97
- package/dist/ssr-dom-shim.d.ts +1 -0
- package/dist/ssr-dom-shim.js +12 -0
- package/dist/ssr-dom-shim.js.map +1 -0
- package/dist/ssr-dom.d.ts +0 -0
- package/dist/ssr-dom.js +0 -0
- package/dist/theming/CustomStyle.js.map +1 -1
- package/dist/theming/ThemeLoaded.js.map +1 -1
- 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.js +8 -7
- package/dist/theming/applyTheme.js.map +1 -1
- package/dist/theming/getConstructableStyle.d.ts +1 -1
- package/dist/theming/getConstructableStyle.js +3 -3
- package/dist/theming/getConstructableStyle.js.map +1 -1
- package/dist/theming/getEffectiveStyle.d.ts +1 -1
- package/dist/theming/getEffectiveStyle.js +5 -12
- package/dist/theming/getEffectiveStyle.js.map +1 -1
- package/dist/theming/getStylesString.d.ts +1 -1
- package/dist/theming/getStylesString.js.map +1 -1
- package/dist/theming/getThemeDesignerTheme.js.map +1 -1
- package/dist/thirdparty/_merge.js.map +1 -1
- package/dist/thirdparty/isPlainObject.js.map +1 -1
- package/dist/thirdparty/merge.js.map +1 -1
- package/dist/types/AnimationMode.d.ts +0 -8
- package/dist/types/AnimationMode.js +0 -8
- package/dist/types/AnimationMode.js.map +1 -1
- package/dist/types/AriaHasPopup.d.ts +32 -0
- package/dist/types/AriaHasPopup.js +34 -0
- package/dist/types/AriaHasPopup.js.map +1 -0
- package/dist/types/AriaLandmarkRole.d.ts +79 -0
- package/dist/types/AriaLandmarkRole.js +81 -0
- package/dist/types/AriaLandmarkRole.js.map +1 -0
- package/dist/types/AriaRole.d.ts +27 -0
- package/dist/types/AriaRole.js +29 -0
- package/dist/types/AriaRole.js.map +1 -0
- package/dist/types/CSSColor.d.ts +0 -5
- package/dist/types/CSSColor.js +0 -5
- package/dist/types/CSSColor.js.map +1 -1
- package/dist/types/CSSSize.d.ts +11 -0
- package/dist/types/CSSSize.js +14 -0
- package/dist/types/CSSSize.js.map +1 -0
- package/dist/types/CalendarType.d.ts +0 -9
- package/dist/types/CalendarType.js +0 -9
- package/dist/types/CalendarType.js.map +1 -1
- package/dist/types/DOMReference.d.ts +1 -5
- package/dist/types/DOMReference.js +1 -5
- package/dist/types/DOMReference.js.map +1 -1
- package/dist/types/DataType.d.ts +1 -6
- package/dist/types/DataType.js +1 -6
- package/dist/types/DataType.js.map +1 -1
- package/dist/types/Float.d.ts +0 -4
- package/dist/types/Float.js +0 -4
- package/dist/types/Float.js.map +1 -1
- package/dist/types/Integer.d.ts +0 -4
- package/dist/types/Integer.js +0 -4
- package/dist/types/Integer.js.map +1 -1
- package/dist/types/InvisibleMessageMode.d.ts +5 -10
- package/dist/types/InvisibleMessageMode.js +4 -11
- package/dist/types/InvisibleMessageMode.js.map +1 -1
- package/dist/types/ItemNavigationBehavior.d.ts +0 -6
- package/dist/types/ItemNavigationBehavior.js +0 -6
- package/dist/types/ItemNavigationBehavior.js.map +1 -1
- package/dist/types/MovePlacement.d.ts +20 -0
- package/dist/types/MovePlacement.js +22 -0
- package/dist/types/MovePlacement.js.map +1 -0
- package/dist/types/NavigationMode.d.ts +0 -8
- package/dist/types/NavigationMode.js +0 -8
- package/dist/types/NavigationMode.js.map +1 -1
- package/dist/types/Orientation.d.ts +16 -0
- package/dist/types/Orientation.js +18 -0
- package/dist/types/Orientation.js.map +1 -0
- package/dist/types/ValueState.d.ts +3 -17
- package/dist/types/ValueState.js +3 -17
- package/dist/types/ValueState.js.map +1 -1
- package/dist/types.d.ts +24 -1
- package/dist/types.js.map +1 -1
- package/dist/updateShadowRoot.d.ts +1 -2
- package/dist/updateShadowRoot.js +5 -21
- package/dist/updateShadowRoot.js.map +1 -1
- package/dist/util/AriaLabelHelper.d.ts +10 -1
- package/dist/util/AriaLabelHelper.js +135 -8
- package/dist/util/AriaLabelHelper.js.map +1 -1
- package/dist/util/Caret.js.map +1 -1
- package/dist/util/ColorConversion.js +200 -195
- package/dist/util/ColorConversion.js.map +1 -1
- package/dist/util/FetchHelper.js.map +1 -1
- package/dist/util/FocusableElements.js +4 -3
- package/dist/util/FocusableElements.js.map +1 -1
- package/dist/util/HTMLSanitizer.js.map +1 -1
- package/dist/util/InvisibleMessage.js.map +1 -1
- package/dist/util/PopupUtils.d.ts +1 -3
- package/dist/util/PopupUtils.js +1 -15
- package/dist/util/PopupUtils.js.map +1 -1
- package/dist/util/SlotsHelper.js.map +1 -1
- package/dist/util/StringHelper.js.map +1 -1
- package/dist/util/TabbableElements.js.map +1 -1
- package/dist/util/arraysAreEqual.js.map +1 -1
- package/dist/util/clamp.js +2 -1
- package/dist/util/clamp.js.map +1 -1
- package/dist/util/createLinkInHead.d.ts +1 -1
- package/dist/util/createLinkInHead.js +1 -1
- package/dist/util/createLinkInHead.js.map +1 -1
- package/dist/util/debounce.js.map +1 -1
- package/dist/util/detectNavigatorLanguage.d.ts +2 -2
- package/dist/util/detectNavigatorLanguage.js +6 -1
- package/dist/util/detectNavigatorLanguage.js.map +1 -1
- package/dist/util/dragAndDrop/DragRegistry.d.ts +12 -0
- package/dist/util/dragAndDrop/DragRegistry.js +68 -0
- package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
- package/dist/util/dragAndDrop/findClosestPosition.d.ts +7 -0
- package/dist/util/dragAndDrop/findClosestPosition.js +59 -0
- package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
- package/dist/util/dragAndDrop/longDragOverHandler.d.ts +2 -0
- package/dist/util/dragAndDrop/longDragOverHandler.js +25 -0
- package/dist/util/dragAndDrop/longDragOverHandler.js.map +1 -0
- package/dist/util/escapeRegex.js.map +1 -1
- package/dist/util/formatMessage.js.map +1 -1
- package/dist/util/generateHighlightedMarkup.js.map +1 -1
- package/dist/util/getActiveElement.js.map +1 -1
- package/dist/util/getClassCopy.d.ts +68 -48
- package/dist/util/getClassCopy.js.map +1 -1
- package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -2
- package/dist/util/getDesigntimePropertyAsArray.js +2 -1
- package/dist/util/getDesigntimePropertyAsArray.js.map +1 -1
- package/dist/util/getEffectiveContentDensity.js.map +1 -1
- package/dist/util/getEffectiveScrollbarStyle.js.map +1 -1
- package/dist/util/getFastNavigationGroups.js.map +1 -1
- package/dist/util/getFileExtension.js.map +1 -1
- package/dist/util/getNormalizedTarget.js.map +1 -1
- package/dist/util/getParentElement.d.ts +2 -0
- package/dist/util/getParentElement.js +5 -0
- package/dist/util/getParentElement.js.map +1 -0
- package/dist/util/getSingletonElementInstance.d.ts +10 -1
- package/dist/util/getSingletonElementInstance.js +11 -2
- package/dist/util/getSingletonElementInstance.js.map +1 -1
- package/dist/util/isElementClickable.js.map +1 -1
- package/dist/util/isElementContainingBlock.d.ts +2 -0
- package/dist/util/isElementContainingBlock.js +11 -0
- package/dist/util/isElementContainingBlock.js.map +1 -0
- package/dist/util/isElementHidden.js.map +1 -1
- package/dist/util/isElementInView.js.map +1 -1
- package/dist/util/isElementTabbable.js.map +1 -1
- package/dist/util/isValidPropertyName.js.map +1 -1
- package/dist/util/whenDOMReady.js.map +1 -1
- package/dist/util/willShowContent.js.map +1 -1
- package/dist/validateThemeRoot.js +14 -13
- package/dist/validateThemeRoot.js.map +1 -1
- package/index.js +211 -1
- package/{package-scripts.js → package-scripts.cjs} +26 -23
- package/package.json +24 -8
- package/src/css/FontFace.css +47 -17
- package/src/css/SystemCSSVars.css +0 -8
- package/tsconfig.json +7 -0
- package/.eslintignore +0 -16
- package/bundle.esm.js +0 -60
- package/config/wdio.conf.js +0 -1
- package/dist/CSP.d.ts +0 -30
- package/dist/CSP.js +0 -51
- package/dist/CSP.js.map +0 -1
- package/dist/StaticAreaItem.d.ts +0 -36
- package/dist/StaticAreaItem.js +0 -99
- package/dist/StaticAreaItem.js.map +0 -1
- package/dist/api.json +0 -1
- package/dist/assets/bundle.esm.c3e922da.js +0 -56
- package/dist/assets-meta/IconCollectionsAlias.d.ts +0 -17
- package/dist/assets-meta/IconCollectionsAlias.js +0 -18
- package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
- package/dist/config/RTL.d.ts +0 -7
- package/dist/config/RTL.js +0 -37
- package/dist/config/RTL.js.map +0 -1
- package/dist/config/ThemeRoots.d.ts +0 -4
- package/dist/config/ThemeRoots.js +0 -28
- package/dist/config/ThemeRoots.js.map +0 -1
- package/dist/decorators/fastNavigation.d.ts +0 -7
- package/dist/decorators/fastNavigation.js +0 -13
- package/dist/decorators/fastNavigation.js.map +0 -1
- package/dist/decorators/languageAware.d.ts +0 -7
- package/dist/decorators/languageAware.js +0 -13
- package/dist/decorators/languageAware.js.map +0 -1
- package/dist/decorators/themeAware.d.ts +0 -7
- package/dist/decorators/themeAware.js +0 -13
- package/dist/decorators/themeAware.js.map +0 -1
- package/dist/theming/getEffectiveLinksHrefs.d.ts +0 -3
- package/dist/theming/getEffectiveLinksHrefs.js +0 -17
- package/dist/theming/getEffectiveLinksHrefs.js.map +0 -1
- package/dist/theming/preloadLinks.d.ts +0 -3
- package/dist/theming/preloadLinks.js +0 -19
- package/dist/theming/preloadLinks.js.map +0 -1
- package/dist/util/createStyleInHead.d.ts +0 -8
- package/dist/util/createStyleInHead.js +0 -18
- package/dist/util/createStyleInHead.js.map +0 -1
- package/lib/generate-asset-parameters/index.js +0 -25
- package/lib/generate-styles/index.js +0 -31
- package/lib/generate-version-info/index.js +0 -32
- package/src/AssetRegistry.ts +0 -11
- package/src/Boot.ts +0 -65
- package/src/CSP.ts +0 -66
- package/src/CustomElementsRegistry.ts +0 -98
- package/src/CustomElementsScope.ts +0 -33
- package/src/CustomElementsScopeUtils.ts +0 -115
- package/src/DOMObserver.ts +0 -28
- package/src/Device.ts +0 -203
- package/src/EventProvider.ts +0 -87
- package/src/FeaturesRegistry.ts +0 -14
- package/src/FontFace.ts +0 -31
- package/src/InitialConfiguration.ts +0 -207
- package/src/Keys.ts +0 -295
- package/src/ManagedStyles.ts +0 -92
- package/src/MarkedEvents.ts +0 -20
- package/src/MediaRange.ts +0 -110
- package/src/PropertiesFileFormat.ts +0 -95
- package/src/Render.ts +0 -180
- package/src/RenderQueue.ts +0 -71
- package/src/Runtimes.ts +0 -114
- package/src/StaticArea.ts +0 -3
- package/src/StaticAreaItem.ts +0 -113
- package/src/SystemCSSVars.ts +0 -10
- package/src/Theming.ts +0 -4
- package/src/UI5Element.ts +0 -1156
- package/src/UI5ElementMetadata.ts +0 -389
- package/src/animations/AnimationQueue.ts +0 -43
- package/src/animations/animate.ts +0 -64
- package/src/animations/scroll.ts +0 -21
- package/src/animations/slideDown.ts +0 -72
- package/src/animations/slideUp.ts +0 -67
- package/src/asset-registries/Icons.ts +0 -162
- package/src/asset-registries/Illustrations.ts +0 -75
- package/src/asset-registries/LocaleData.ts +0 -172
- package/src/asset-registries/Themes.ts +0 -67
- package/src/asset-registries/i18n.ts +0 -118
- package/src/assets-meta/IconCollectionsAlias.ts +0 -18
- package/src/config/AnimationMode.ts +0 -33
- package/src/config/CalendarType.ts +0 -23
- package/src/config/FormatSettings.ts +0 -21
- package/src/config/Icons.ts +0 -59
- package/src/config/Language.ts +0 -72
- package/src/config/NoConflict.ts +0 -67
- package/src/config/RTL.ts +0 -45
- package/src/config/Theme.ts +0 -64
- package/src/config/ThemeRoots.ts +0 -41
- package/src/decorators/customElement.ts +0 -17
- package/src/decorators/event.ts +0 -28
- package/src/decorators/fastNavigation.ts +0 -14
- package/src/decorators/languageAware.ts +0 -14
- package/src/decorators/property.ts +0 -30
- package/src/decorators/slot.ts +0 -49
- package/src/decorators/themeAware.ts +0 -14
- package/src/delegate/ItemNavigation.ts +0 -393
- package/src/delegate/ResizeHandler.ts +0 -100
- package/src/delegate/ScrollEnablement.ts +0 -224
- package/src/features/F6Navigation.ts +0 -195
- package/src/features/OpenUI5Element.ts +0 -11
- package/src/features/OpenUI5Enablement.ts +0 -117
- package/src/features/OpenUI5Support.ts +0 -148
- package/src/generated/css/BusyIndicator.css.ts +0 -9
- package/src/generated/css/FontFace.css.ts +0 -9
- package/src/generated/css/OverrideFontFace.css.ts +0 -9
- package/src/generated/css/SystemCSSVars.css.ts +0 -9
- package/src/getSharedResource.ts +0 -39
- package/src/global.d.ts +0 -38
- package/src/i18nBundle.ts +0 -108
- package/src/locale/Locale.ts +0 -101
- package/src/locale/RTLAwareRegistry.ts +0 -16
- package/src/locale/applyDirection.ts +0 -18
- package/src/locale/directionChange.ts +0 -34
- package/src/locale/getEffectiveDir.ts +0 -28
- package/src/locale/getLocale.ts +0 -46
- package/src/locale/languageChange.ts +0 -24
- package/src/locale/nextFallbackLocale.ts +0 -28
- package/src/locale/normalizeLocale.ts +0 -56
- package/src/renderer/LitRenderer.ts +0 -60
- package/src/renderer/directives/style-map.js +0 -72
- package/src/renderer/executeTemplate.ts +0 -40
- package/src/theming/CustomStyle.ts +0 -64
- package/src/theming/ThemeLoaded.ts +0 -24
- package/src/theming/applyTheme.ts +0 -90
- package/src/theming/getConstructableStyle.ts +0 -31
- package/src/theming/getEffectiveLinksHrefs.ts +0 -26
- package/src/theming/getEffectiveStyle.ts +0 -41
- package/src/theming/getStylesString.ts +0 -15
- package/src/theming/getThemeDesignerTheme.ts +0 -101
- package/src/theming/preloadLinks.ts +0 -24
- package/src/thirdparty/_merge.ts +0 -32
- package/src/thirdparty/isPlainObject.ts +0 -18
- package/src/thirdparty/merge.ts +0 -5
- package/src/types/AnimationMode.ts +0 -33
- package/src/types/CSSColor.ts +0 -20
- package/src/types/CalendarType.ts +0 -38
- package/src/types/DOMReference.ts +0 -28
- package/src/types/DataType.ts +0 -51
- package/src/types/Float.ts +0 -25
- package/src/types/Integer.ts +0 -25
- package/src/types/InvisibleMessageMode.ts +0 -27
- package/src/types/ItemNavigationBehavior.ts +0 -26
- package/src/types/NavigationMode.ts +0 -33
- package/src/types/ValueState.ts +0 -47
- package/src/types.ts +0 -30
- package/src/updateShadowRoot.ts +0 -37
- package/src/util/AriaLabelHelper.ts +0 -63
- package/src/util/Caret.ts +0 -28
- package/src/util/ColorConversion.ts +0 -399
- package/src/util/FetchHelper.ts +0 -31
- package/src/util/FocusableElements.ts +0 -92
- package/src/util/HTMLSanitizer.ts +0 -9
- package/src/util/InvisibleMessage.ts +0 -69
- package/src/util/PopupUtils.ts +0 -112
- package/src/util/SlotsHelper.ts +0 -39
- package/src/util/StringHelper.ts +0 -26
- package/src/util/TabbableElements.ts +0 -70
- package/src/util/arraysAreEqual.ts +0 -15
- package/src/util/clamp.ts +0 -12
- package/src/util/createLinkInHead.ts +0 -25
- package/src/util/createStyleInHead.ts +0 -20
- package/src/util/debounce.ts +0 -18
- package/src/util/detectNavigatorLanguage.ts +0 -13
- package/src/util/escapeRegex.ts +0 -11
- package/src/util/formatMessage.ts +0 -24
- package/src/util/generateHighlightedMarkup.ts +0 -43
- package/src/util/getActiveElement.ts +0 -11
- package/src/util/getClassCopy.ts +0 -12
- package/src/util/getDesigntimePropertyAsArray.ts +0 -4
- package/src/util/getEffectiveContentDensity.ts +0 -5
- package/src/util/getEffectiveScrollbarStyle.ts +0 -5
- package/src/util/getFastNavigationGroups.ts +0 -63
- package/src/util/getFileExtension.ts +0 -21
- package/src/util/getNormalizedTarget.ts +0 -16
- package/src/util/getSingletonElementInstance.ts +0 -13
- package/src/util/isElementClickable.ts +0 -19
- package/src/util/isElementHidden.ts +0 -9
- package/src/util/isElementInView.ts +0 -15
- package/src/util/isElementTabbable.ts +0 -37
- package/src/util/isValidPropertyName.ts +0 -29
- package/src/util/whenDOMReady.ts +0 -13
- package/src/util/willShowContent.ts +0 -7
- package/src/validateThemeRoot.ts +0 -58
- package/used-modules.txt +0 -10
package/dist/UI5Element.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
2
|
+
import "@ui5/webcomponents-base/dist/ssr-dom.js";
|
|
1
3
|
import merge from "./thirdparty/merge.js";
|
|
2
4
|
import { boot } from "./Boot.js";
|
|
3
5
|
import UI5ElementMetadata from "./UI5ElementMetadata.js";
|
|
4
6
|
import EventProvider from "./EventProvider.js";
|
|
5
|
-
import getSingletonElementInstance from "./util/getSingletonElementInstance.js";
|
|
6
|
-
import StaticAreaItem from "./StaticAreaItem.js";
|
|
7
7
|
import updateShadowRoot from "./updateShadowRoot.js";
|
|
8
|
-
import {
|
|
8
|
+
import { shouldIgnoreCustomElement } from "./IgnoreCustomElements.js";
|
|
9
|
+
import { renderDeferred, renderImmediately, cancelRender, } from "./Render.js";
|
|
9
10
|
import { registerTag, isTagRegistered, recordTagRegistrationFailure } from "./CustomElementsRegistry.js";
|
|
10
11
|
import { observeDOMNode, unobserveDOMNode } from "./DOMObserver.js";
|
|
11
12
|
import { skipOriginalEvent } from "./config/NoConflict.js";
|
|
@@ -15,7 +16,9 @@ import isValidPropertyName from "./util/isValidPropertyName.js";
|
|
|
15
16
|
import { getSlotName, getSlottedNodesList } from "./util/SlotsHelper.js";
|
|
16
17
|
import arraysAreEqual from "./util/arraysAreEqual.js";
|
|
17
18
|
import { markAsRtlAware } from "./locale/RTLAwareRegistry.js";
|
|
18
|
-
import
|
|
19
|
+
import executeTemplate, { getTagsToScope } from "./renderer/executeTemplate.js";
|
|
20
|
+
import { attachFormElementInternals, setFormValue } from "./features/InputElementsFormSupport.js";
|
|
21
|
+
const DEV_MODE = true;
|
|
19
22
|
let autoId = 0;
|
|
20
23
|
const elementTimeouts = new Map();
|
|
21
24
|
const uniqueDependenciesCache = new Map();
|
|
@@ -34,16 +37,28 @@ function _invalidate(changeInfo) {
|
|
|
34
37
|
this.onInvalidation(changeInfo);
|
|
35
38
|
this._changedState.push(changeInfo);
|
|
36
39
|
renderDeferred(this);
|
|
37
|
-
this.
|
|
40
|
+
this._invalidationEventProvider.fireEvent("invalidate", { ...changeInfo, target: this });
|
|
38
41
|
}
|
|
39
|
-
let metadata = {};
|
|
40
42
|
/**
|
|
43
|
+
* looks up a property descsriptor including in the prototype chain
|
|
44
|
+
* @param proto the starting prototype
|
|
45
|
+
* @param name the property to look for
|
|
46
|
+
* @returns the property descriptor if found directly or in the prototype chaing, undefined if not found
|
|
47
|
+
*/
|
|
48
|
+
function getPropertyDescriptor(proto, name) {
|
|
49
|
+
do {
|
|
50
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, name);
|
|
51
|
+
if (descriptor) {
|
|
52
|
+
return descriptor;
|
|
53
|
+
}
|
|
54
|
+
// go up the prototype chain
|
|
55
|
+
proto = Object.getPrototypeOf(proto);
|
|
56
|
+
} while (proto && proto !== HTMLElement.prototype);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* @class
|
|
41
60
|
* Base class for all UI5 Web Components
|
|
42
61
|
*
|
|
43
|
-
* @class
|
|
44
|
-
* @constructor
|
|
45
|
-
* @author SAP SE
|
|
46
|
-
* @alias sap.ui.webc.base.UI5Element
|
|
47
62
|
* @extends HTMLElement
|
|
48
63
|
* @public
|
|
49
64
|
*/
|
|
@@ -57,7 +72,8 @@ class UI5Element extends HTMLElement {
|
|
|
57
72
|
this._fullyConnected = false; // A flag telling whether the UI5Element's onEnterDOM hook was called (since it's possible to have the element removed from DOM before that)
|
|
58
73
|
this._childChangeListeners = new Map(); // used to store lazy listeners per slot for the child change event of every child inside that slot
|
|
59
74
|
this._slotChangeListeners = new Map(); // used to store lazy listeners per slot for the slotchange event of all slot children inside that slot
|
|
60
|
-
this.
|
|
75
|
+
this._invalidationEventProvider = new EventProvider(); // used by parent components for listening to changes to child components
|
|
76
|
+
this._componentStateFinalizedEventProvider = new EventProvider(); // used by friend classes for synchronization
|
|
61
77
|
let deferredResolve;
|
|
62
78
|
this._domRefReadyPromise = new Promise(resolve => {
|
|
63
79
|
deferredResolve = resolve;
|
|
@@ -67,7 +83,8 @@ class UI5Element extends HTMLElement {
|
|
|
67
83
|
this._state = { ...ctor.getMetadata().getInitialState() };
|
|
68
84
|
this._upgradeAllProperties();
|
|
69
85
|
if (ctor._needsShadowDOM()) {
|
|
70
|
-
|
|
86
|
+
const defaultOptions = { mode: "open" };
|
|
87
|
+
this.attachShadow({ ...defaultOptions, ...ctor.getMetadata().getShadowRootOptions() });
|
|
71
88
|
}
|
|
72
89
|
}
|
|
73
90
|
/**
|
|
@@ -82,11 +99,36 @@ class UI5Element extends HTMLElement {
|
|
|
82
99
|
}
|
|
83
100
|
return this.__id;
|
|
84
101
|
}
|
|
102
|
+
render() {
|
|
103
|
+
const template = this.constructor.template;
|
|
104
|
+
return executeTemplate(template, this);
|
|
105
|
+
}
|
|
85
106
|
/**
|
|
86
107
|
* Do not call this method from derivatives of UI5Element, use "onEnterDOM" only
|
|
87
108
|
* @private
|
|
88
109
|
*/
|
|
89
110
|
async connectedCallback() {
|
|
111
|
+
if (DEV_MODE) {
|
|
112
|
+
const rootNode = this.getRootNode();
|
|
113
|
+
// when an element is connected, check if it exists in the `dependencies` of the parent
|
|
114
|
+
if (rootNode instanceof ShadowRoot && instanceOfUI5Element(rootNode.host)) {
|
|
115
|
+
const klass = rootNode.host.constructor;
|
|
116
|
+
const hasDependency = getTagsToScope(rootNode.host).includes(this.constructor.getMetadata().getPureTag());
|
|
117
|
+
if (!hasDependency) {
|
|
118
|
+
// eslint-disable-next-line no-console
|
|
119
|
+
console.error(`[UI5-FWK] ${this.constructor.getMetadata().getTag()} not found in dependencies of ${klass.getMetadata().getTag()}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (DEV_MODE) {
|
|
124
|
+
const props = this.constructor.getMetadata().getProperties();
|
|
125
|
+
for (const [prop, propData] of Object.entries(props)) { // eslint-disable-line
|
|
126
|
+
if (Object.hasOwn(this, prop)) {
|
|
127
|
+
// eslint-disable-next-line no-console
|
|
128
|
+
console.error(`[UI5-FWK] ${this.constructor.getMetadata().getTag()} has a property [${prop}] that is shadowed by the instance. Updates to this property will not invalidate the component. Possible reason is TS target ES2022 or TS useDefineForClassFields`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
90
132
|
const ctor = this.constructor;
|
|
91
133
|
this.setAttribute(ctor.getMetadata().getPureTag(), "");
|
|
92
134
|
if (ctor.getMetadata().supportsF6FastNavigation()) {
|
|
@@ -122,9 +164,7 @@ class UI5Element extends HTMLElement {
|
|
|
122
164
|
this.onExitDOM();
|
|
123
165
|
this._fullyConnected = false;
|
|
124
166
|
}
|
|
125
|
-
|
|
126
|
-
this.staticAreaItem.parentElement.removeChild(this.staticAreaItem);
|
|
127
|
-
}
|
|
167
|
+
this._domRefReadyPromise._deferredResolve();
|
|
128
168
|
cancelRender(this);
|
|
129
169
|
}
|
|
130
170
|
/**
|
|
@@ -152,14 +192,16 @@ class UI5Element extends HTMLElement {
|
|
|
152
192
|
*/
|
|
153
193
|
_startObservingDOMChildren() {
|
|
154
194
|
const ctor = this.constructor;
|
|
155
|
-
const
|
|
195
|
+
const metadata = ctor.getMetadata();
|
|
196
|
+
const shouldObserveChildren = metadata.hasSlots();
|
|
156
197
|
if (!shouldObserveChildren) {
|
|
157
198
|
return;
|
|
158
199
|
}
|
|
159
|
-
const canSlotText =
|
|
200
|
+
const canSlotText = metadata.canSlotText();
|
|
201
|
+
const hasClonedSlot = Object.keys(metadata.getSlots()).some(slotName => metadata.getSlots()[slotName].cloned);
|
|
160
202
|
const mutationObserverOptions = {
|
|
161
203
|
childList: true,
|
|
162
|
-
subtree: canSlotText,
|
|
204
|
+
subtree: canSlotText || hasClonedSlot,
|
|
163
205
|
characterData: canSlotText,
|
|
164
206
|
};
|
|
165
207
|
observeDOMNode(this, this._processChildren.bind(this), mutationObserverOptions);
|
|
@@ -220,11 +262,11 @@ class UI5Element extends HTMLElement {
|
|
|
220
262
|
// Await for not-yet-defined custom elements
|
|
221
263
|
if (child instanceof HTMLElement) {
|
|
222
264
|
const localName = child.localName;
|
|
223
|
-
const
|
|
224
|
-
if (
|
|
225
|
-
const isDefined =
|
|
265
|
+
const shouldWaitForCustomElement = localName.includes("-") && !shouldIgnoreCustomElement(localName);
|
|
266
|
+
if (shouldWaitForCustomElement) {
|
|
267
|
+
const isDefined = customElements.get(localName);
|
|
226
268
|
if (!isDefined) {
|
|
227
|
-
const whenDefinedPromise =
|
|
269
|
+
const whenDefinedPromise = customElements.whenDefined(localName); // Class registered, but instances not upgraded yet
|
|
228
270
|
let timeoutPromise = elementTimeouts.get(localName);
|
|
229
271
|
if (!timeoutPromise) {
|
|
230
272
|
timeoutPromise = new Promise(resolve => setTimeout(resolve, 1000));
|
|
@@ -232,7 +274,7 @@ class UI5Element extends HTMLElement {
|
|
|
232
274
|
}
|
|
233
275
|
await Promise.race([whenDefinedPromise, timeoutPromise]);
|
|
234
276
|
}
|
|
235
|
-
|
|
277
|
+
customElements.upgrade(child);
|
|
236
278
|
}
|
|
237
279
|
}
|
|
238
280
|
child = ctor.getMetadata().constructor.validateSlotValue(child, slotData);
|
|
@@ -272,6 +314,9 @@ class UI5Element extends HTMLElement {
|
|
|
272
314
|
reason: "children",
|
|
273
315
|
});
|
|
274
316
|
invalidated = true;
|
|
317
|
+
if (ctor.getMetadata().isFormAssociated()) {
|
|
318
|
+
setFormValue(this);
|
|
319
|
+
}
|
|
275
320
|
}
|
|
276
321
|
}
|
|
277
322
|
// If none of the slots had an invalidation due to changes to immediate children,
|
|
@@ -307,26 +352,26 @@ class UI5Element extends HTMLElement {
|
|
|
307
352
|
/**
|
|
308
353
|
* Attach a callback that will be executed whenever the component is invalidated
|
|
309
354
|
*
|
|
310
|
-
* @param
|
|
355
|
+
* @param callback
|
|
311
356
|
* @public
|
|
312
357
|
*/
|
|
313
358
|
attachInvalidate(callback) {
|
|
314
|
-
this.
|
|
359
|
+
this._invalidationEventProvider.attachEvent("invalidate", callback);
|
|
315
360
|
}
|
|
316
361
|
/**
|
|
317
362
|
* Detach the callback that is executed whenever the component is invalidated
|
|
318
363
|
*
|
|
319
|
-
* @param
|
|
364
|
+
* @param callback
|
|
320
365
|
* @public
|
|
321
366
|
*/
|
|
322
367
|
detachInvalidate(callback) {
|
|
323
|
-
this.
|
|
368
|
+
this._invalidationEventProvider.detachEvent("invalidate", callback);
|
|
324
369
|
}
|
|
325
370
|
/**
|
|
326
371
|
* Callback that is executed whenever a monitored child changes its state
|
|
327
372
|
*
|
|
328
|
-
* @param
|
|
329
|
-
* @param
|
|
373
|
+
* @param slotName the slot in which a child was invalidated
|
|
374
|
+
* @param childChangeInfo the changeInfo object for the child in the given slot
|
|
330
375
|
* @private
|
|
331
376
|
*/
|
|
332
377
|
_onChildChange(slotName, childChangeInfo) {
|
|
@@ -373,6 +418,16 @@ class UI5Element extends HTMLElement {
|
|
|
373
418
|
this[nameInCamelCase] = newPropertyValue;
|
|
374
419
|
}
|
|
375
420
|
}
|
|
421
|
+
formAssociatedCallback() {
|
|
422
|
+
const ctor = this.constructor;
|
|
423
|
+
if (!ctor.getMetadata().isFormAssociated()) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
attachFormElementInternals(this);
|
|
427
|
+
}
|
|
428
|
+
static get formAssociated() {
|
|
429
|
+
return this.getMetadata().isFormAssociated();
|
|
430
|
+
}
|
|
376
431
|
/**
|
|
377
432
|
* @private
|
|
378
433
|
*/
|
|
@@ -436,7 +491,6 @@ class UI5Element extends HTMLElement {
|
|
|
436
491
|
* Returns a singleton event listener for the "change" event of a child in a given slot
|
|
437
492
|
*
|
|
438
493
|
* @param slotName the name of the slot, where the child is
|
|
439
|
-
* @returns {ChildChangeListener}
|
|
440
494
|
* @private
|
|
441
495
|
*/
|
|
442
496
|
_getChildChangeListener(slotName) {
|
|
@@ -449,7 +503,6 @@ class UI5Element extends HTMLElement {
|
|
|
449
503
|
* Returns a singleton slotchange event listener that invalidates the component due to changes in the given slot
|
|
450
504
|
*
|
|
451
505
|
* @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is
|
|
452
|
-
* @returns {SlotChangeListener}
|
|
453
506
|
* @private
|
|
454
507
|
*/
|
|
455
508
|
_getSlotChangeListener(slotName) {
|
|
@@ -501,9 +554,9 @@ class UI5Element extends HTMLElement {
|
|
|
501
554
|
* 1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot
|
|
502
555
|
* 2) textcontent: text nodes in the slot changed value (or nested text nodes were added or changed value). Can only trigger for slots of "type: Node"
|
|
503
556
|
* 3) slotchange: a slot element, slotted inside that slot had its "slotchange" event listener called. This practically means that transitively slotted children changed.
|
|
504
|
-
*
|
|
557
|
+
* Can only trigger if the child of a slot is a slot element itself.
|
|
505
558
|
* 4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.
|
|
506
|
-
*
|
|
559
|
+
* Can only trigger for slots with "invalidateOnChildChange" metadata descriptor
|
|
507
560
|
*
|
|
508
561
|
* - newValue: the new value of the property (for type="property" only)
|
|
509
562
|
*
|
|
@@ -525,9 +578,7 @@ class UI5Element extends HTMLElement {
|
|
|
525
578
|
this._suppressInvalidation = true;
|
|
526
579
|
this.onBeforeRendering();
|
|
527
580
|
// Intended for framework usage only. Currently ItemNavigation updates tab indexes after the component has updated its state but before the template is rendered
|
|
528
|
-
|
|
529
|
-
this._onComponentStateFinalized();
|
|
530
|
-
}
|
|
581
|
+
this._componentStateFinalizedEventProvider.fireEvent("componentStateFinalized");
|
|
531
582
|
// resume normal invalidation handling
|
|
532
583
|
this._suppressInvalidation = false;
|
|
533
584
|
// Update the shadow root with the render result
|
|
@@ -556,9 +607,6 @@ class UI5Element extends HTMLElement {
|
|
|
556
607
|
if (ctor._needsShadowDOM()) {
|
|
557
608
|
updateShadowRoot(this);
|
|
558
609
|
}
|
|
559
|
-
if (this.staticAreaItem) {
|
|
560
|
-
this.staticAreaItem.update();
|
|
561
|
-
}
|
|
562
610
|
// Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM
|
|
563
611
|
if (hasIndividualSlots) {
|
|
564
612
|
this._assignIndividualSlotsToChildren();
|
|
@@ -598,11 +646,7 @@ class UI5Element extends HTMLElement {
|
|
|
598
646
|
if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
|
|
599
647
|
return;
|
|
600
648
|
}
|
|
601
|
-
|
|
602
|
-
if (children.length !== 1) {
|
|
603
|
-
console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`); // eslint-disable-line
|
|
604
|
-
}
|
|
605
|
-
return children[0];
|
|
649
|
+
return this.shadowRoot.children[0];
|
|
606
650
|
}
|
|
607
651
|
/**
|
|
608
652
|
* Returns the DOM Element marked with "data-sap-focus-ref" inside the template.
|
|
@@ -627,7 +671,7 @@ class UI5Element extends HTMLElement {
|
|
|
627
671
|
}
|
|
628
672
|
/**
|
|
629
673
|
* Set the focus to the element, returned by "getFocusDomRef()" (marked by "data-sap-focus-ref")
|
|
630
|
-
* @param
|
|
674
|
+
* @param focusOptions additional options for the focus
|
|
631
675
|
* @public
|
|
632
676
|
*/
|
|
633
677
|
async focus(focusOptions) {
|
|
@@ -644,13 +688,13 @@ class UI5Element extends HTMLElement {
|
|
|
644
688
|
* @param data - additional data for the event
|
|
645
689
|
* @param cancelable - true, if the user can call preventDefault on the event object
|
|
646
690
|
* @param bubbles - true, if the event bubbles
|
|
647
|
-
* @returns
|
|
691
|
+
* @returns false, if the event was cancelled (preventDefault called), true otherwise
|
|
648
692
|
*/
|
|
649
693
|
fireEvent(name, data, cancelable = false, bubbles = true) {
|
|
650
694
|
const eventResult = this._fireEvent(name, data, cancelable, bubbles);
|
|
651
695
|
const camelCaseEventName = kebabToCamelCase(name);
|
|
652
696
|
if (camelCaseEventName !== name) {
|
|
653
|
-
return eventResult && this._fireEvent(camelCaseEventName, data, cancelable);
|
|
697
|
+
return eventResult && this._fireEvent(camelCaseEventName, data, cancelable, bubbles);
|
|
654
698
|
}
|
|
655
699
|
return eventResult;
|
|
656
700
|
}
|
|
@@ -685,12 +729,30 @@ class UI5Element extends HTMLElement {
|
|
|
685
729
|
getSlottedNodes(slotName) {
|
|
686
730
|
return getSlottedNodesList(this[slotName]);
|
|
687
731
|
}
|
|
732
|
+
/**
|
|
733
|
+
* Attach a callback that will be executed whenever the component's state is finalized
|
|
734
|
+
*
|
|
735
|
+
* @param callback
|
|
736
|
+
* @public
|
|
737
|
+
*/
|
|
738
|
+
attachComponentStateFinalized(callback) {
|
|
739
|
+
this._componentStateFinalizedEventProvider.attachEvent("componentStateFinalized", callback);
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Detach the callback that is executed whenever the component's state is finalized
|
|
743
|
+
*
|
|
744
|
+
* @param callback
|
|
745
|
+
* @public
|
|
746
|
+
*/
|
|
747
|
+
detachComponentStateFinalized(callback) {
|
|
748
|
+
this._componentStateFinalizedEventProvider.detachEvent("componentStateFinalized", callback);
|
|
749
|
+
}
|
|
688
750
|
/**
|
|
689
751
|
* Determines whether the component should be rendered in RTL mode or not.
|
|
690
752
|
* Returns: "rtl", "ltr" or undefined
|
|
691
753
|
*
|
|
692
754
|
* @public
|
|
693
|
-
* @
|
|
755
|
+
* @default undefined
|
|
694
756
|
*/
|
|
695
757
|
get effectiveDir() {
|
|
696
758
|
markAsRtlAware(this.constructor); // if a UI5 Element calls this method, it's considered to be rtl-aware
|
|
@@ -698,8 +760,8 @@ class UI5Element extends HTMLElement {
|
|
|
698
760
|
}
|
|
699
761
|
/**
|
|
700
762
|
* Used to duck-type UI5 elements without using instanceof
|
|
701
|
-
* @returns {boolean}
|
|
702
763
|
* @public
|
|
764
|
+
* @default true
|
|
703
765
|
*/
|
|
704
766
|
get isUI5Element() {
|
|
705
767
|
return true;
|
|
@@ -708,39 +770,24 @@ class UI5Element extends HTMLElement {
|
|
|
708
770
|
return {};
|
|
709
771
|
}
|
|
710
772
|
/**
|
|
711
|
-
*
|
|
773
|
+
* Returns the component accessibility info.
|
|
712
774
|
* @private
|
|
713
775
|
*/
|
|
714
|
-
|
|
715
|
-
return
|
|
776
|
+
get accessibilityInfo() {
|
|
777
|
+
return {};
|
|
716
778
|
}
|
|
717
779
|
/**
|
|
780
|
+
* Do not override this method in derivatives of UI5Element, use metadata properties instead
|
|
718
781
|
* @private
|
|
719
782
|
*/
|
|
720
|
-
static
|
|
721
|
-
return
|
|
783
|
+
static get observedAttributes() {
|
|
784
|
+
return this.getMetadata().getAttributesList();
|
|
722
785
|
}
|
|
723
786
|
/**
|
|
724
787
|
* @private
|
|
725
788
|
*/
|
|
726
|
-
static
|
|
727
|
-
return !!this.
|
|
728
|
-
}
|
|
729
|
-
/**
|
|
730
|
-
* @public
|
|
731
|
-
*/
|
|
732
|
-
getStaticAreaItemDomRef() {
|
|
733
|
-
if (!this.constructor._needsStaticArea()) {
|
|
734
|
-
throw new Error("This component does not use the static area");
|
|
735
|
-
}
|
|
736
|
-
if (!this.staticAreaItem) {
|
|
737
|
-
this.staticAreaItem = StaticAreaItem.createInstance();
|
|
738
|
-
this.staticAreaItem.setOwnerElement(this);
|
|
739
|
-
}
|
|
740
|
-
if (!this.staticAreaItem.parentElement) {
|
|
741
|
-
getSingletonElementInstance("ui5-static-area").appendChild(this.staticAreaItem);
|
|
742
|
-
}
|
|
743
|
-
return this.staticAreaItem.getDomRef();
|
|
789
|
+
static _needsShadowDOM() {
|
|
790
|
+
return !!this.template || Object.prototype.hasOwnProperty.call(this.prototype, "render");
|
|
744
791
|
}
|
|
745
792
|
/**
|
|
746
793
|
* @private
|
|
@@ -766,8 +813,25 @@ class UI5Element extends HTMLElement {
|
|
|
766
813
|
if (propData.multiple && propData.defaultValue) {
|
|
767
814
|
throw new Error(`Cannot set a default value for property "${prop}". All multiple properties are empty arrays by default.`);
|
|
768
815
|
}
|
|
816
|
+
const descriptor = getPropertyDescriptor(proto, prop);
|
|
817
|
+
// if the decorator is on a setter, proxy the new setter to it
|
|
818
|
+
let origSet;
|
|
819
|
+
if (descriptor?.set) {
|
|
820
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
821
|
+
origSet = descriptor.set;
|
|
822
|
+
}
|
|
823
|
+
// if the decorator is on a setter, there will be a corresponding getter - proxy the new getter to it
|
|
824
|
+
let origGet;
|
|
825
|
+
if (descriptor?.get) {
|
|
826
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
827
|
+
origGet = descriptor.get;
|
|
828
|
+
}
|
|
769
829
|
Object.defineProperty(proto, prop, {
|
|
770
830
|
get() {
|
|
831
|
+
// proxy the getter to the original accessor if there was one
|
|
832
|
+
if (origGet) {
|
|
833
|
+
return origGet.call(this);
|
|
834
|
+
}
|
|
771
835
|
if (this._state[prop] !== undefined) {
|
|
772
836
|
return this._state[prop];
|
|
773
837
|
}
|
|
@@ -792,7 +856,7 @@ class UI5Element extends HTMLElement {
|
|
|
792
856
|
value = metadataCtor.validatePropertyValue(value, propData);
|
|
793
857
|
const propertyType = propData.type;
|
|
794
858
|
let propertyValidator = propData.validator;
|
|
795
|
-
const oldState = this._state[prop];
|
|
859
|
+
const oldState = origGet ? origGet.call(this) : this._state[prop];
|
|
796
860
|
if (propertyType && propertyType.isDataTypeClass) {
|
|
797
861
|
propertyValidator = propertyType;
|
|
798
862
|
}
|
|
@@ -806,13 +870,22 @@ class UI5Element extends HTMLElement {
|
|
|
806
870
|
isDifferent = oldState !== value;
|
|
807
871
|
}
|
|
808
872
|
if (isDifferent) {
|
|
809
|
-
|
|
873
|
+
// if the decorator is on a setter, use it for storage
|
|
874
|
+
if (origSet) {
|
|
875
|
+
origSet.call(this, value);
|
|
876
|
+
}
|
|
877
|
+
else {
|
|
878
|
+
this._state[prop] = value;
|
|
879
|
+
}
|
|
810
880
|
_invalidate.call(this, {
|
|
811
881
|
type: "property",
|
|
812
882
|
name: prop,
|
|
813
883
|
newValue: value,
|
|
814
884
|
oldValue: oldState,
|
|
815
885
|
});
|
|
886
|
+
if (ctor.getMetadata().isFormAssociated()) {
|
|
887
|
+
setFormValue(this);
|
|
888
|
+
}
|
|
816
889
|
this._updateAttribute(prop, value);
|
|
817
890
|
}
|
|
818
891
|
},
|
|
@@ -840,34 +913,6 @@ class UI5Element extends HTMLElement {
|
|
|
840
913
|
}
|
|
841
914
|
}
|
|
842
915
|
}
|
|
843
|
-
/**
|
|
844
|
-
* Returns the metadata object for this UI5 Web Component Class
|
|
845
|
-
* @protected
|
|
846
|
-
*/
|
|
847
|
-
static get metadata() {
|
|
848
|
-
return metadata;
|
|
849
|
-
}
|
|
850
|
-
/**
|
|
851
|
-
* Sets a new metadata object for this UI5 Web Component Class
|
|
852
|
-
* @protected
|
|
853
|
-
*/
|
|
854
|
-
static set metadata(newMetadata) {
|
|
855
|
-
metadata = newMetadata;
|
|
856
|
-
}
|
|
857
|
-
/**
|
|
858
|
-
* Returns the CSS for this UI5 Web Component Class
|
|
859
|
-
* @protected
|
|
860
|
-
*/
|
|
861
|
-
static get styles() {
|
|
862
|
-
return "";
|
|
863
|
-
}
|
|
864
|
-
/**
|
|
865
|
-
* Returns the Static Area CSS for this UI5 Web Component Class
|
|
866
|
-
* @protected
|
|
867
|
-
*/
|
|
868
|
-
static get staticAreaStyles() {
|
|
869
|
-
return "";
|
|
870
|
-
}
|
|
871
916
|
/**
|
|
872
917
|
* Returns an array with the dependencies for this UI5 Web Component, which could be:
|
|
873
918
|
* - composed components (used in its shadow root or static area item)
|
|
@@ -892,8 +937,6 @@ class UI5Element extends HTMLElement {
|
|
|
892
937
|
}
|
|
893
938
|
/**
|
|
894
939
|
* Returns a promise that resolves whenever all dependencies for this UI5 Web Component have resolved
|
|
895
|
-
*
|
|
896
|
-
* @returns {Promise}
|
|
897
940
|
*/
|
|
898
941
|
static whenDependenciesDefined() {
|
|
899
942
|
return Promise.all(this.getUniqueDependencies().map(dep => dep.define()));
|
|
@@ -902,7 +945,6 @@ class UI5Element extends HTMLElement {
|
|
|
902
945
|
* Hook that will be called upon custom element definition
|
|
903
946
|
*
|
|
904
947
|
* @protected
|
|
905
|
-
* @returns {Promise<void>}
|
|
906
948
|
*/
|
|
907
949
|
static async onDefine() {
|
|
908
950
|
return Promise.resolve();
|
|
@@ -910,7 +952,6 @@ class UI5Element extends HTMLElement {
|
|
|
910
952
|
/**
|
|
911
953
|
* Registers a UI5 Web Component in the browser window object
|
|
912
954
|
* @public
|
|
913
|
-
* @returns {Promise<UI5Element>}
|
|
914
955
|
*/
|
|
915
956
|
static async define() {
|
|
916
957
|
await boot();
|
|
@@ -927,8 +968,7 @@ class UI5Element extends HTMLElement {
|
|
|
927
968
|
else if (!definedGlobally) {
|
|
928
969
|
this._generateAccessors();
|
|
929
970
|
registerTag(tag);
|
|
930
|
-
|
|
931
|
-
preloadLinks(this);
|
|
971
|
+
customElements.define(tag, this);
|
|
932
972
|
}
|
|
933
973
|
return this;
|
|
934
974
|
}
|
|
@@ -936,33 +976,42 @@ class UI5Element extends HTMLElement {
|
|
|
936
976
|
* Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')
|
|
937
977
|
* Note: not to be confused with the "get metadata()" method, which returns an object for this class's metadata only
|
|
938
978
|
* @public
|
|
939
|
-
* @returns {UI5ElementMetadata}
|
|
940
979
|
*/
|
|
941
980
|
static getMetadata() {
|
|
942
981
|
if (this.hasOwnProperty("_metadata")) { // eslint-disable-line
|
|
943
982
|
return this._metadata;
|
|
944
983
|
}
|
|
945
|
-
const
|
|
946
|
-
const metadataObjects = [effectiveMetadata];
|
|
984
|
+
const metadataObjects = [this.metadata];
|
|
947
985
|
let klass = this; // eslint-disable-line
|
|
948
986
|
while (klass !== UI5Element) {
|
|
949
987
|
klass = Object.getPrototypeOf(klass);
|
|
950
|
-
|
|
951
|
-
metadataObjects.unshift(effectiveKlassMetadata);
|
|
988
|
+
metadataObjects.unshift(klass.metadata);
|
|
952
989
|
}
|
|
953
990
|
const mergedMetadata = merge({}, ...metadataObjects);
|
|
954
991
|
this._metadata = new UI5ElementMetadata(mergedMetadata);
|
|
955
992
|
return this._metadata;
|
|
956
993
|
}
|
|
994
|
+
get validity() { return this._internals?.validity; }
|
|
995
|
+
get validationMessage() { return this._internals?.validationMessage; }
|
|
996
|
+
checkValidity() { return this._internals?.checkValidity(); }
|
|
997
|
+
reportValidity() { return this._internals?.reportValidity(); }
|
|
957
998
|
}
|
|
958
|
-
|
|
999
|
+
/**
|
|
1000
|
+
* Returns the metadata object for this UI5 Web Component Class
|
|
1001
|
+
* @protected
|
|
1002
|
+
*/
|
|
1003
|
+
UI5Element.metadata = {};
|
|
1004
|
+
/**
|
|
1005
|
+
* Returns the CSS for this UI5 Web Component Class
|
|
1006
|
+
* @protected
|
|
1007
|
+
*/
|
|
1008
|
+
UI5Element.styles = "";
|
|
959
1009
|
/**
|
|
960
1010
|
* Always use duck-typing to cover all runtimes on the page.
|
|
961
|
-
* @returns {boolean}
|
|
962
1011
|
*/
|
|
963
1012
|
const instanceOfUI5Element = (object) => {
|
|
964
1013
|
return "isUI5Element" in object;
|
|
965
1014
|
};
|
|
966
1015
|
export default UI5Element;
|
|
967
|
-
export { instanceOfUI5Element };
|
|
1016
|
+
export { instanceOfUI5Element, };
|
|
968
1017
|
//# sourceMappingURL=UI5Element.js.map
|