@ui5/webcomponents-base 0.0.0-dcd8e5389 → 0.0.0-dd5d66a9a
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/CHANGELOG.md +2079 -0
- package/README.md +10 -16
- package/cypress.config.js +3 -0
- package/dist/.tsbuildinfobuild +1 -0
- package/dist/AssetRegistry.d.ts +2 -2
- package/dist/AssetRegistry.js +2 -2
- package/dist/AssetRegistry.js.map +1 -1
- package/dist/Assets-fetch.d.ts +1 -0
- package/dist/Assets-fetch.js +3 -0
- package/dist/Assets-fetch.js.map +1 -0
- package/dist/Assets-node.d.ts +12 -0
- package/dist/Assets-node.js +14 -0
- package/dist/Assets-node.js.map +1 -0
- package/dist/Assets.d.ts +1 -0
- package/dist/Assets.js +3 -0
- package/dist/Assets.js.map +1 -0
- package/dist/Boot.d.ts +3 -2
- package/dist/Boot.js +14 -8
- package/dist/Boot.js.map +1 -1
- package/dist/CustomElementsRegistry.d.ts +2 -1
- package/dist/CustomElementsRegistry.js +5 -2
- 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 +12 -3
- package/dist/CustomElementsScopeUtils.js +21 -2
- package/dist/CustomElementsScopeUtils.js.map +1 -1
- package/dist/DOMObserver.js.map +1 -1
- package/dist/Device.d.ts +17 -2
- package/dist/Device.js +19 -14
- package/dist/Device.js.map +1 -1
- package/dist/DragAndDrop.d.ts +2 -0
- package/dist/DragAndDrop.js +5 -0
- package/dist/DragAndDrop.js.map +1 -0
- package/dist/EventProvider.js +1 -1
- package/dist/EventProvider.js.map +1 -1
- package/dist/FontFace.js +6 -9
- 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 +10 -3
- package/dist/InitialConfiguration.js +39 -9
- package/dist/InitialConfiguration.js.map +1 -1
- package/dist/Keys.d.ts +11 -1
- package/dist/Keys.js +117 -106
- package/dist/Keys.js.map +1 -1
- package/dist/Location.d.ts +11 -0
- package/dist/Location.js +49 -0
- package/dist/Location.js.map +1 -0
- package/dist/ManagedStyles.d.ts +5 -6
- package/dist/ManagedStyles.js +45 -53
- package/dist/ManagedStyles.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 +11 -0
- package/dist/Runtimes.js.map +1 -1
- package/dist/ScrollbarStyles.d.ts +2 -0
- package/dist/ScrollbarStyles.js +9 -0
- package/dist/ScrollbarStyles.js.map +1 -0
- package/dist/SystemCSSVars.js.map +1 -1
- package/dist/UI5Element.d.ts +121 -76
- package/dist/UI5Element.js +408 -234
- package/dist/UI5Element.js.map +1 -1
- package/dist/UI5ElementMetadata.d.ts +36 -27
- package/dist/UI5ElementMetadata.js +27 -72
- 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/slideUp.js.map +1 -1
- package/dist/asset-registries/Icons.d.ts +45 -10
- package/dist/asset-registries/Icons.js +79 -25
- package/dist/asset-registries/Icons.js.map +1 -1
- package/dist/asset-registries/Illustrations.d.ts +2 -0
- 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 -7
- package/dist/asset-registries/Themes.js +27 -12
- package/dist/asset-registries/Themes.js.map +1 -1
- package/dist/asset-registries/i18n.d.ts +2 -2
- package/dist/asset-registries/i18n.js +4 -3
- package/dist/asset-registries/i18n.js.map +1 -1
- package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.d.ts +1 -2
- package/dist/{assets-meta → asset-registries/util}/IconCollectionsAlias.js +1 -2
- package/dist/asset-registries/util/IconCollectionsAlias.js.map +1 -0
- package/dist/asset-registries/util/IconCollectionsByTheme.d.ts +20 -0
- package/dist/asset-registries/util/IconCollectionsByTheme.js +42 -0
- package/dist/asset-registries/util/IconCollectionsByTheme.js.map +1 -0
- package/dist/asset-registries/util/getIconCollectionByTheme.d.ts +13 -0
- package/dist/asset-registries/util/getIconCollectionByTheme.js +29 -0
- package/dist/asset-registries/util/getIconCollectionByTheme.js.map +1 -0
- package/dist/config/AnimationMode.d.ts +2 -2
- package/dist/config/AnimationMode.js +6 -1
- package/dist/config/AnimationMode.js.map +1 -1
- package/dist/config/CalendarType.d.ts +8 -1
- package/dist/config/CalendarType.js +23 -2
- package/dist/config/CalendarType.js.map +1 -1
- package/dist/config/ConfigurationReset.d.ts +4 -0
- package/dist/config/ConfigurationReset.js +11 -0
- package/dist/config/ConfigurationReset.js.map +1 -0
- package/dist/config/Fonts.d.ts +16 -0
- package/dist/config/Fonts.js +30 -0
- package/dist/config/Fonts.js.map +1 -0
- package/dist/config/FormatSettings.js +4 -0
- package/dist/config/FormatSettings.js.map +1 -1
- package/dist/config/Icons.d.ts +9 -24
- package/dist/config/Icons.js +8 -67
- package/dist/config/Icons.js.map +1 -1
- package/dist/config/Language.d.ts +3 -2
- package/dist/config/Language.js +23 -4
- package/dist/config/Language.js.map +1 -1
- package/dist/config/NoConflict.js +4 -0
- package/dist/config/NoConflict.js.map +1 -1
- package/dist/config/Theme.d.ts +4 -3
- package/dist/config/Theme.js +18 -8
- package/dist/config/Theme.js.map +1 -1
- package/dist/config/ThemeRoot.d.ts +29 -0
- package/dist/config/ThemeRoot.js +63 -0
- package/dist/config/ThemeRoot.js.map +1 -0
- package/dist/config/Timezone.d.ts +1 -1
- package/dist/config/Timezone.js +5 -1
- package/dist/config/Timezone.js.map +1 -1
- package/dist/config/Tooltips.d.ts +19 -0
- package/dist/config/Tooltips.js +29 -0
- package/dist/config/Tooltips.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/converters/DOMReference.d.ts +5 -0
- package/dist/converters/DOMReference.js +13 -0
- package/dist/converters/DOMReference.js.map +1 -0
- package/dist/css/MultipleDragGhost.css +17 -0
- package/dist/css/OpenUI5PopupStyles.css +5 -0
- package/dist/css/ScrollbarStyles.css +3 -0
- package/dist/css/SystemCSSVars.css +0 -8
- package/dist/custom-elements-internal.json +2854 -0
- package/dist/custom-elements.json +2551 -0
- package/dist/decorators/bound.d.ts +1 -0
- package/dist/decorators/bound.js +34 -0
- package/dist/decorators/bound.js.map +1 -0
- package/dist/decorators/customElement.d.ts +43 -3
- package/dist/decorators/customElement.js +14 -6
- package/dist/decorators/customElement.js.map +1 -1
- package/dist/decorators/event-strict.d.ts +15 -0
- package/dist/decorators/event-strict.js +26 -0
- package/dist/decorators/event-strict.js.map +1 -0
- package/dist/decorators/event.d.ts +8 -2
- package/dist/decorators/event.js +3 -0
- package/dist/decorators/event.js.map +1 -1
- package/dist/decorators/i18n.d.ts +17 -0
- package/dist/decorators/i18n.js +32 -0
- package/dist/decorators/i18n.js.map +1 -0
- package/dist/decorators/property.d.ts +1 -1
- package/dist/decorators/property.js +1 -1
- package/dist/decorators/property.js.map +1 -1
- package/dist/decorators/query.d.ts +25 -0
- package/dist/decorators/query.js +32 -0
- package/dist/decorators/query.js.map +1 -0
- package/dist/decorators/queryAll.d.ts +27 -0
- package/dist/decorators/queryAll.js +34 -0
- package/dist/decorators/queryAll.js.map +1 -0
- package/dist/decorators/slot.d.ts +1 -1
- package/dist/decorators/slot.js.map +1 -1
- package/dist/decorators.d.ts +8 -0
- package/dist/decorators.js +9 -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 +4 -6
- package/dist/delegate/ResizeHandler.js.map +1 -1
- package/dist/delegate/ScrollEnablement.js +2 -2
- package/dist/delegate/ScrollEnablement.js.map +1 -1
- package/dist/features/F6Navigation.d.ts +4 -3
- package/dist/features/F6Navigation.js +62 -19
- package/dist/features/F6Navigation.js.map +1 -1
- package/dist/features/InputElementsFormSupport.d.ts +15 -0
- package/dist/features/InputElementsFormSupport.js +39 -0
- package/dist/features/InputElementsFormSupport.js.map +1 -0
- package/dist/features/LegacyDateFormats.js.map +1 -1
- package/dist/features/OpenUI5Enablement.d.ts +3 -3
- package/dist/features/OpenUI5Enablement.js.map +1 -1
- package/dist/features/OpenUI5Support.d.ts +19 -6
- package/dist/features/OpenUI5Support.js +103 -46
- package/dist/features/OpenUI5Support.js.map +1 -1
- package/dist/features/insertOpenUI5PopupStyles.d.ts +2 -0
- package/dist/features/insertOpenUI5PopupStyles.js +9 -0
- package/dist/features/insertOpenUI5PopupStyles.js.map +1 -0
- 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 +22 -0
- package/dist/features/patchPopup.js +110 -0
- package/dist/features/patchPopup.js.map +1 -0
- package/dist/generated/AssetParameters.d.ts +6 -0
- package/dist/generated/AssetParameters.js +3 -10
- package/dist/generated/AssetParameters.js.map +1 -0
- package/dist/generated/VersionInfo.d.ts +10 -0
- package/dist/generated/VersionInfo.js +9 -8
- package/dist/generated/VersionInfo.js.map +1 -0
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
- package/dist/generated/css/BusyIndicator.css.d.ts +2 -3
- package/dist/generated/css/BusyIndicator.css.js +1 -6
- package/dist/generated/css/BusyIndicator.css.js.map +1 -1
- package/dist/generated/css/FontFace.css.d.ts +2 -3
- package/dist/generated/css/FontFace.css.js +36 -6
- package/dist/generated/css/FontFace.css.js.map +1 -1
- package/dist/generated/css/MultipleDragGhost.css.d.ts +2 -0
- package/dist/generated/css/MultipleDragGhost.css.js +2 -0
- package/dist/generated/css/MultipleDragGhost.css.js.map +1 -0
- package/dist/generated/css/OpenUI5PopupStyles.css.d.ts +2 -0
- package/dist/generated/css/OpenUI5PopupStyles.css.js +2 -0
- package/dist/generated/css/OpenUI5PopupStyles.css.js.map +1 -0
- package/dist/generated/css/ScrollbarStyles.css.d.ts +2 -0
- package/dist/generated/css/ScrollbarStyles.css.js +2 -0
- package/dist/generated/css/ScrollbarStyles.css.js.map +1 -0
- package/dist/generated/css/SystemCSSVars.css.d.ts +2 -3
- package/dist/generated/css/SystemCSSVars.css.js +1 -6
- package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -0
- package/dist/generated/i18n/i18n-defaults.js +3 -0
- package/dist/generated/i18n/i18n-defaults.js.map +1 -0
- package/dist/generated/json-imports/i18n-fetch.d.ts +1 -0
- package/dist/generated/json-imports/i18n-fetch.js +26 -0
- package/dist/generated/json-imports/i18n-fetch.js.map +1 -0
- package/dist/generated/json-imports/i18n-node.d.ts +1 -0
- package/dist/generated/json-imports/i18n-node.js +26 -0
- package/dist/generated/json-imports/i18n-node.js.map +1 -0
- package/dist/generated/json-imports/i18n.d.ts +1 -0
- package/dist/generated/json-imports/i18n.js +26 -0
- package/dist/generated/json-imports/i18n.js.map +1 -0
- package/dist/getSharedResource.js +7 -1
- package/dist/getSharedResource.js.map +1 -1
- package/dist/i18nBundle.d.ts +2 -4
- package/dist/i18nBundle.js +3 -5
- package/dist/i18nBundle.js.map +1 -1
- package/dist/index.d.ts +49 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx-dev-runtime.d.ts +4 -0
- package/dist/jsx-dev-runtime.js +43 -0
- package/dist/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx-runtime.d.ts +51 -0
- package/dist/jsx-runtime.js +27 -0
- package/dist/jsx-runtime.js.map +1 -0
- package/dist/jsx-utils.d.ts +3 -0
- package/dist/jsx-utils.js +48 -0
- package/dist/jsx-utils.js.map +1 -0
- 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/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/nextFallbackLocale.js +6 -2
- package/dist/locale/nextFallbackLocale.js.map +1 -1
- package/dist/locale/normalizeLocale.js.map +1 -1
- package/dist/prod/AssetRegistry.js +2 -0
- package/dist/prod/AssetRegistry.js.map +7 -0
- package/dist/prod/Assets-fetch.js +2 -0
- package/dist/prod/Assets-fetch.js.map +7 -0
- package/dist/prod/Assets-node.js +2 -0
- package/dist/prod/Assets-node.js.map +7 -0
- package/dist/prod/Assets.js +2 -0
- package/dist/prod/Assets.js.map +7 -0
- package/dist/prod/Boot.js +2 -0
- package/dist/prod/Boot.js.map +7 -0
- package/dist/prod/CustomElementsRegistry.js +10 -0
- package/dist/prod/CustomElementsRegistry.js.map +7 -0
- package/dist/prod/CustomElementsScope.js +2 -0
- package/dist/prod/CustomElementsScope.js.map +7 -0
- package/dist/prod/CustomElementsScopeUtils.js +2 -0
- package/dist/prod/CustomElementsScopeUtils.js.map +7 -0
- package/dist/prod/DOMObserver.js +2 -0
- package/dist/prod/DOMObserver.js.map +7 -0
- package/dist/prod/Device.js +2 -0
- package/dist/prod/Device.js.map +7 -0
- package/dist/prod/DragAndDrop.js +2 -0
- package/dist/prod/DragAndDrop.js.map +7 -0
- package/dist/prod/EventProvider.js +2 -0
- package/dist/prod/EventProvider.js.map +7 -0
- package/dist/prod/FeaturesRegistry.js +2 -0
- package/dist/prod/FeaturesRegistry.js.map +7 -0
- package/dist/prod/FontFace.js +2 -0
- package/dist/prod/FontFace.js.map +7 -0
- package/dist/prod/IgnoreCustomElements.js +2 -0
- package/dist/prod/IgnoreCustomElements.js.map +7 -0
- package/dist/prod/InitialConfiguration.js +2 -0
- package/dist/prod/InitialConfiguration.js.map +7 -0
- package/dist/prod/Keys.js +2 -0
- package/dist/prod/Keys.js.map +7 -0
- package/dist/prod/Location.js +2 -0
- package/dist/prod/Location.js.map +7 -0
- package/dist/prod/ManagedStyles.js +2 -0
- package/dist/prod/ManagedStyles.js.map +7 -0
- package/dist/prod/MediaRange.js +2 -0
- package/dist/prod/MediaRange.js.map +7 -0
- package/dist/prod/PropertiesFileFormat.js +3 -0
- package/dist/prod/PropertiesFileFormat.js.map +7 -0
- package/dist/prod/Render.js +2 -0
- package/dist/prod/Render.js.map +7 -0
- package/dist/prod/RenderQueue.js +2 -0
- package/dist/prod/RenderQueue.js.map +7 -0
- package/dist/prod/Runtimes.js +2 -0
- package/dist/prod/Runtimes.js.map +7 -0
- package/dist/prod/ScrollbarStyles.js +2 -0
- package/dist/prod/ScrollbarStyles.js.map +7 -0
- package/dist/prod/SystemCSSVars.js +2 -0
- package/dist/prod/SystemCSSVars.js.map +7 -0
- package/dist/prod/Theming.js +2 -0
- package/dist/prod/Theming.js.map +7 -0
- package/dist/prod/UI5Element.js +2 -0
- package/dist/prod/UI5Element.js.map +7 -0
- package/dist/prod/UI5ElementMetadata.js +2 -0
- package/dist/prod/UI5ElementMetadata.js.map +7 -0
- package/dist/prod/animations/AnimationQueue.js +2 -0
- package/dist/prod/animations/AnimationQueue.js.map +7 -0
- package/dist/prod/animations/animate.js +2 -0
- package/dist/prod/animations/animate.js.map +7 -0
- package/dist/prod/animations/scroll.js +2 -0
- package/dist/prod/animations/scroll.js.map +7 -0
- package/dist/prod/animations/slideDown.js +2 -0
- package/dist/prod/animations/slideDown.js.map +7 -0
- package/dist/prod/animations/slideUp.js +2 -0
- package/dist/prod/animations/slideUp.js.map +7 -0
- package/dist/prod/asset-registries/Icons.js +2 -0
- package/dist/prod/asset-registries/Icons.js.map +7 -0
- package/dist/prod/asset-registries/Illustrations.js +2 -0
- package/dist/prod/asset-registries/Illustrations.js.map +7 -0
- package/dist/prod/asset-registries/LocaleData.js +2 -0
- package/dist/prod/asset-registries/LocaleData.js.map +7 -0
- package/dist/prod/asset-registries/Themes.js +2 -0
- package/dist/prod/asset-registries/Themes.js.map +7 -0
- package/dist/prod/asset-registries/i18n.js +2 -0
- package/dist/prod/asset-registries/i18n.js.map +7 -0
- package/dist/prod/asset-registries/util/IconCollectionsAlias.js +2 -0
- package/dist/prod/asset-registries/util/IconCollectionsAlias.js.map +7 -0
- package/dist/prod/asset-registries/util/IconCollectionsByTheme.js +2 -0
- package/dist/prod/asset-registries/util/IconCollectionsByTheme.js.map +7 -0
- package/dist/prod/asset-registries/util/getIconCollectionByTheme.js +2 -0
- package/dist/prod/asset-registries/util/getIconCollectionByTheme.js.map +7 -0
- package/dist/prod/config/AnimationMode.js +2 -0
- package/dist/prod/config/AnimationMode.js.map +7 -0
- package/dist/prod/config/CalendarType.js +2 -0
- package/dist/prod/config/CalendarType.js.map +7 -0
- package/dist/prod/config/ConfigurationReset.js +2 -0
- package/dist/prod/config/ConfigurationReset.js.map +7 -0
- package/dist/prod/config/Fonts.js +2 -0
- package/dist/prod/config/Fonts.js.map +7 -0
- package/dist/prod/config/FormatSettings.js +2 -0
- package/dist/prod/config/FormatSettings.js.map +7 -0
- package/dist/prod/config/Icons.js +2 -0
- package/dist/prod/config/Icons.js.map +7 -0
- package/dist/prod/config/Language.js +2 -0
- package/dist/prod/config/Language.js.map +7 -0
- package/dist/prod/config/NoConflict.js +2 -0
- package/dist/prod/config/NoConflict.js.map +7 -0
- package/dist/prod/config/Theme.js +2 -0
- package/dist/prod/config/Theme.js.map +7 -0
- package/dist/prod/config/ThemeRoot.js +2 -0
- package/dist/prod/config/ThemeRoot.js.map +7 -0
- package/dist/prod/config/Timezone.js +2 -0
- package/dist/prod/config/Timezone.js.map +7 -0
- package/dist/prod/config/Tooltips.js +2 -0
- package/dist/prod/config/Tooltips.js.map +7 -0
- package/dist/prod/connectToComponent.js +2 -0
- package/dist/prod/connectToComponent.js.map +7 -0
- package/dist/prod/converters/DOMReference.js +2 -0
- package/dist/prod/converters/DOMReference.js.map +7 -0
- package/dist/prod/decorators/bound.js +2 -0
- package/dist/prod/decorators/bound.js.map +7 -0
- package/dist/prod/decorators/customElement.js +2 -0
- package/dist/prod/decorators/customElement.js.map +7 -0
- package/dist/prod/decorators/event-strict.js +2 -0
- package/dist/prod/decorators/event-strict.js.map +7 -0
- package/dist/prod/decorators/event.js +2 -0
- package/dist/prod/decorators/event.js.map +7 -0
- package/dist/prod/decorators/i18n.js +2 -0
- package/dist/prod/decorators/i18n.js.map +7 -0
- package/dist/prod/decorators/property.js +2 -0
- package/dist/prod/decorators/property.js.map +7 -0
- package/dist/prod/decorators/query.js +2 -0
- package/dist/prod/decorators/query.js.map +7 -0
- package/dist/prod/decorators/queryAll.js +2 -0
- package/dist/prod/decorators/queryAll.js.map +7 -0
- package/dist/prod/decorators/slot.js +2 -0
- package/dist/prod/decorators/slot.js.map +7 -0
- package/dist/prod/decorators.js +2 -0
- package/dist/prod/decorators.js.map +7 -0
- package/dist/prod/delegate/ItemNavigation.js +2 -0
- package/dist/prod/delegate/ItemNavigation.js.map +7 -0
- package/dist/prod/delegate/ResizeHandler.js +2 -0
- package/dist/prod/delegate/ResizeHandler.js.map +7 -0
- package/dist/prod/delegate/ScrollEnablement.js +2 -0
- package/dist/prod/delegate/ScrollEnablement.js.map +7 -0
- package/dist/prod/features/F6Navigation.js +2 -0
- package/dist/prod/features/F6Navigation.js.map +7 -0
- package/dist/prod/features/InputElementsFormSupport.js +2 -0
- package/dist/prod/features/InputElementsFormSupport.js.map +7 -0
- package/dist/prod/features/LegacyDateFormats.js +2 -0
- package/dist/prod/features/LegacyDateFormats.js.map +7 -0
- package/dist/prod/features/OpenUI5Element.js +2 -0
- package/dist/prod/features/OpenUI5Element.js.map +7 -0
- package/dist/prod/features/OpenUI5Enablement.js +21 -0
- package/dist/prod/features/OpenUI5Enablement.js.map +7 -0
- package/dist/prod/features/OpenUI5Support.js +2 -0
- package/dist/prod/features/OpenUI5Support.js.map +7 -0
- package/dist/prod/features/insertOpenUI5PopupStyles.js +2 -0
- package/dist/prod/features/insertOpenUI5PopupStyles.js.map +7 -0
- package/dist/prod/features/patchPatcher.js +2 -0
- package/dist/prod/features/patchPatcher.js.map +7 -0
- package/dist/prod/features/patchPopup.js +2 -0
- package/dist/prod/features/patchPopup.js.map +7 -0
- package/dist/prod/generated/AssetParameters.js +2 -0
- package/dist/prod/generated/AssetParameters.js.map +7 -0
- package/dist/prod/generated/VersionInfo.js +2 -0
- package/dist/prod/generated/VersionInfo.js.map +7 -0
- package/dist/prod/generated/assets/i18n/messagebundle_en.json +1 -0
- package/dist/prod/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -0
- package/dist/prod/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -0
- package/dist/prod/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -0
- package/dist/prod/generated/css/BusyIndicator.css.js +2 -0
- package/dist/prod/generated/css/BusyIndicator.css.js.map +7 -0
- package/dist/prod/generated/css/FontFace.css.js +37 -0
- package/dist/prod/generated/css/FontFace.css.js.map +7 -0
- package/dist/prod/generated/css/MultipleDragGhost.css.js +2 -0
- package/dist/prod/generated/css/MultipleDragGhost.css.js.map +7 -0
- package/dist/prod/generated/css/OpenUI5PopupStyles.css.js +2 -0
- package/dist/prod/generated/css/OpenUI5PopupStyles.css.js.map +7 -0
- package/dist/prod/generated/css/ScrollbarStyles.css.js +2 -0
- package/dist/prod/generated/css/ScrollbarStyles.css.js.map +7 -0
- package/dist/prod/generated/css/SystemCSSVars.css.js +2 -0
- package/dist/prod/generated/css/SystemCSSVars.css.js.map +7 -0
- package/dist/prod/generated/i18n/i18n-defaults.js +2 -0
- package/dist/prod/generated/i18n/i18n-defaults.js.map +7 -0
- package/dist/prod/generated/json-imports/i18n-fetch.js +2 -0
- package/dist/prod/generated/json-imports/i18n-fetch.js.map +7 -0
- package/dist/prod/generated/json-imports/i18n-node.js +2 -0
- package/dist/prod/generated/json-imports/i18n-node.js.map +7 -0
- package/dist/prod/generated/json-imports/i18n.js +2 -0
- package/dist/prod/generated/json-imports/i18n.js.map +7 -0
- package/dist/prod/getSharedResource.js +2 -0
- package/dist/prod/getSharedResource.js.map +7 -0
- package/dist/prod/global.d.js +2 -0
- package/dist/prod/global.d.js.map +7 -0
- package/dist/prod/i18nBundle.js +2 -0
- package/dist/prod/i18nBundle.js.map +7 -0
- package/dist/prod/index.js +2 -0
- package/dist/prod/index.js.map +7 -0
- package/dist/prod/jsx-dev-runtime.js +2 -0
- package/dist/prod/jsx-dev-runtime.js.map +7 -0
- package/dist/prod/jsx-runtime.js +2 -0
- package/dist/prod/jsx-runtime.js.map +7 -0
- package/dist/prod/jsx-utils.js +2 -0
- package/dist/prod/jsx-utils.js.map +7 -0
- package/dist/prod/locale/Locale.js +2 -0
- package/dist/prod/locale/Locale.js.map +7 -0
- package/dist/prod/locale/RTLAwareRegistry.js +2 -0
- package/dist/prod/locale/RTLAwareRegistry.js.map +7 -0
- package/dist/prod/locale/applyDirection.js +2 -0
- package/dist/prod/locale/applyDirection.js.map +7 -0
- package/dist/prod/locale/directionChange.js +2 -0
- package/dist/prod/locale/directionChange.js.map +7 -0
- package/dist/prod/locale/getEffectiveDir.js +2 -0
- package/dist/prod/locale/getEffectiveDir.js.map +7 -0
- package/dist/prod/locale/getLocale.js +2 -0
- package/dist/prod/locale/getLocale.js.map +7 -0
- package/dist/prod/locale/languageChange.js +2 -0
- package/dist/prod/locale/languageChange.js.map +7 -0
- package/dist/prod/locale/nextFallbackLocale.js +2 -0
- package/dist/prod/locale/nextFallbackLocale.js.map +7 -0
- package/dist/prod/locale/normalizeLocale.js +2 -0
- package/dist/prod/locale/normalizeLocale.js.map +7 -0
- package/dist/prod/renderer/JsxRenderer.js +2 -0
- package/dist/prod/renderer/JsxRenderer.js.map +7 -0
- package/dist/prod/renderer/LitRenderer.js +2 -0
- package/dist/prod/renderer/LitRenderer.js.map +7 -0
- package/dist/prod/renderer/directives/style-map.js +6 -0
- package/dist/prod/renderer/directives/style-map.js.map +7 -0
- package/dist/prod/renderer/executeTemplate.js +2 -0
- package/dist/prod/renderer/executeTemplate.js.map +7 -0
- package/dist/prod/sap/base/Log.js +750 -0
- package/dist/prod/sap/base/assert.js +34 -0
- package/dist/prod/sap/base/config/MemoryConfigurationProvider.js +20 -0
- package/dist/prod/sap/base/security/URLListValidator.js +406 -0
- package/dist/prod/sap/base/security/encodeCSS.js +40 -0
- package/dist/prod/sap/base/security/encodeXML.js +53 -0
- package/dist/prod/sap/base/security/sanitizeHTML.js +38 -0
- package/dist/prod/sap/base/strings/toHex.js +33 -0
- package/dist/prod/sap/base/util/now.js +28 -0
- package/dist/prod/sap/base/util/uid.js +27 -0
- package/dist/prod/sap/ui/thirdparty/caja-html-sanitizer.js +3600 -0
- package/dist/prod/ssr-dom-shim.js +2 -0
- package/dist/prod/ssr-dom-shim.js.map +7 -0
- package/dist/prod/ssr-dom.js +2 -0
- package/dist/prod/ssr-dom.js.map +7 -0
- package/dist/prod/theming/CustomStyle.js +2 -0
- package/dist/prod/theming/CustomStyle.js.map +7 -0
- package/dist/prod/theming/ThemeLoaded.js +2 -0
- package/dist/prod/theming/ThemeLoaded.js.map +7 -0
- package/dist/prod/theming/ThemeRegistered.js +2 -0
- package/dist/prod/theming/ThemeRegistered.js.map +7 -0
- package/dist/prod/theming/applyTheme.js +2 -0
- package/dist/prod/theming/applyTheme.js.map +7 -0
- package/dist/prod/theming/getConstructableStyle.js +2 -0
- package/dist/prod/theming/getConstructableStyle.js.map +7 -0
- package/dist/prod/theming/getEffectiveStyle.js +2 -0
- package/dist/prod/theming/getEffectiveStyle.js.map +7 -0
- package/dist/prod/theming/getStylesString.js +2 -0
- package/dist/prod/theming/getStylesString.js.map +7 -0
- package/dist/prod/theming/getThemeDesignerTheme.js +2 -0
- package/dist/prod/theming/getThemeDesignerTheme.js.map +7 -0
- package/dist/prod/thirdparty/_merge.js +2 -0
- package/dist/prod/thirdparty/_merge.js.map +7 -0
- package/dist/prod/thirdparty/isPlainObject.js +2 -0
- package/dist/prod/thirdparty/isPlainObject.js.map +7 -0
- package/dist/prod/thirdparty/merge.js +2 -0
- package/dist/prod/thirdparty/merge.js.map +7 -0
- package/dist/prod/thirdparty/preact/jsx.d.js +2 -0
- package/dist/prod/thirdparty/preact/jsx.d.js.map +7 -0
- package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js +2 -0
- package/dist/prod/thirdparty/preact/jsxRuntime.module.d.js.map +7 -0
- package/dist/prod/thirdparty/preact/jsxRuntime.module.js +1 -0
- package/dist/prod/thirdparty/preact/preact.module.d.js +2 -0
- package/dist/prod/thirdparty/preact/preact.module.d.js.map +7 -0
- package/dist/prod/thirdparty/preact/preact.module.js +1 -0
- package/dist/prod/types/AnimationMode.js +2 -0
- package/dist/prod/types/AnimationMode.js.map +7 -0
- package/dist/prod/types/CalendarType.js +2 -0
- package/dist/prod/types/CalendarType.js.map +7 -0
- package/dist/prod/types/InvisibleMessageMode.js +2 -0
- package/dist/prod/types/InvisibleMessageMode.js.map +7 -0
- package/dist/prod/types/ItemNavigationBehavior.js +2 -0
- package/dist/prod/types/ItemNavigationBehavior.js.map +7 -0
- package/dist/prod/types/MovePlacement.js +2 -0
- package/dist/prod/types/MovePlacement.js.map +7 -0
- package/dist/prod/types/NavigationMode.js +2 -0
- package/dist/prod/types/NavigationMode.js.map +7 -0
- package/dist/prod/types/Orientation.js +2 -0
- package/dist/prod/types/Orientation.js.map +7 -0
- package/dist/prod/types/SortOrder.js +2 -0
- package/dist/prod/types/SortOrder.js.map +7 -0
- package/dist/prod/types/ValueState.js +2 -0
- package/dist/prod/types/ValueState.js.map +7 -0
- package/dist/prod/types.js +2 -0
- package/dist/prod/types.js.map +7 -0
- package/dist/prod/updateShadowRoot.js +2 -0
- package/dist/prod/updateShadowRoot.js.map +7 -0
- package/dist/prod/util/AccessibilityTextsHelper.js +2 -0
- package/dist/prod/util/AccessibilityTextsHelper.js.map +7 -0
- package/dist/prod/util/Caret.js +2 -0
- package/dist/prod/util/Caret.js.map +7 -0
- package/dist/prod/util/ColorConversion.js +2 -0
- package/dist/prod/util/ColorConversion.js.map +7 -0
- package/dist/prod/util/FetchHelper.js +2 -0
- package/dist/prod/util/FetchHelper.js.map +7 -0
- package/dist/prod/util/FocusableElements.js +2 -0
- package/dist/prod/util/FocusableElements.js.map +7 -0
- package/dist/prod/util/HTMLSanitizer.js +2 -0
- package/dist/prod/util/HTMLSanitizer.js.map +7 -0
- package/dist/prod/util/InvisibleMessage.js +2 -0
- package/dist/prod/util/InvisibleMessage.js.map +7 -0
- package/dist/prod/util/PopupUtils.js +2 -0
- package/dist/prod/util/PopupUtils.js.map +7 -0
- package/dist/prod/util/SelectionAssistant.js +2 -0
- package/dist/prod/util/SelectionAssistant.js.map +7 -0
- package/dist/prod/util/SlotsHelper.js +2 -0
- package/dist/prod/util/SlotsHelper.js.map +7 -0
- package/dist/prod/util/StringHelper.js +2 -0
- package/dist/prod/util/StringHelper.js.map +7 -0
- package/dist/prod/util/TabbableElements.js +2 -0
- package/dist/prod/util/TabbableElements.js.map +7 -0
- package/dist/prod/util/arraysAreEqual.js +2 -0
- package/dist/prod/util/arraysAreEqual.js.map +7 -0
- package/dist/prod/util/clamp.js +2 -0
- package/dist/prod/util/clamp.js.map +7 -0
- package/dist/prod/util/createLinkInHead.js +2 -0
- package/dist/prod/util/createLinkInHead.js.map +7 -0
- package/dist/prod/util/debounce.js +2 -0
- package/dist/prod/util/debounce.js.map +7 -0
- package/dist/prod/util/detectNavigatorLanguage.js +2 -0
- package/dist/prod/util/detectNavigatorLanguage.js.map +7 -0
- package/dist/prod/util/dragAndDrop/DragRegistry.js +2 -0
- package/dist/prod/util/dragAndDrop/DragRegistry.js.map +7 -0
- package/dist/prod/util/dragAndDrop/findClosestPosition.js +2 -0
- package/dist/prod/util/dragAndDrop/findClosestPosition.js.map +7 -0
- package/dist/prod/util/dragAndDrop/handleDragOver.js +2 -0
- package/dist/prod/util/dragAndDrop/handleDragOver.js.map +7 -0
- package/dist/prod/util/dragAndDrop/handleDrop.js +2 -0
- package/dist/prod/util/dragAndDrop/handleDrop.js.map +7 -0
- package/dist/prod/util/dragAndDrop/longDragOverHandler.js +2 -0
- package/dist/prod/util/dragAndDrop/longDragOverHandler.js.map +7 -0
- package/dist/prod/util/escapeRegex.js +2 -0
- package/dist/prod/util/escapeRegex.js.map +7 -0
- package/dist/prod/util/fixSafariActiveState.js +2 -0
- package/dist/prod/util/fixSafariActiveState.js.map +7 -0
- package/dist/prod/util/formatMessage.js +2 -0
- package/dist/prod/util/formatMessage.js.map +7 -0
- package/dist/prod/util/generateHighlightedMarkup.js +2 -0
- package/dist/prod/util/generateHighlightedMarkup.js.map +7 -0
- package/dist/prod/util/getActiveElement.js +2 -0
- package/dist/prod/util/getActiveElement.js.map +7 -0
- package/dist/prod/util/getClassCopy.js +2 -0
- package/dist/prod/util/getClassCopy.js.map +7 -0
- package/dist/prod/util/getDesigntimePropertyAsArray.js +2 -0
- package/dist/prod/util/getDesigntimePropertyAsArray.js.map +7 -0
- package/dist/prod/util/getEffectiveContentDensity.js +2 -0
- package/dist/prod/util/getEffectiveContentDensity.js.map +7 -0
- package/dist/prod/util/getFastNavigationGroups.js +2 -0
- package/dist/prod/util/getFastNavigationGroups.js.map +7 -0
- package/dist/prod/util/getFileExtension.js +2 -0
- package/dist/prod/util/getFileExtension.js.map +7 -0
- package/dist/prod/util/getNormalizedTarget.js +2 -0
- package/dist/prod/util/getNormalizedTarget.js.map +7 -0
- package/dist/prod/util/getParentElement.js +2 -0
- package/dist/prod/util/getParentElement.js.map +7 -0
- package/dist/prod/util/getSingletonElementInstance.js +2 -0
- package/dist/prod/util/getSingletonElementInstance.js.map +7 -0
- package/dist/prod/util/hash2str.js +2 -0
- package/dist/prod/util/hash2str.js.map +7 -0
- package/dist/prod/util/isElementClickable.js +2 -0
- package/dist/prod/util/isElementClickable.js.map +7 -0
- package/dist/prod/util/isElementHidden.js +2 -0
- package/dist/prod/util/isElementHidden.js.map +7 -0
- package/dist/prod/util/isElementInView.js +2 -0
- package/dist/prod/util/isElementInView.js.map +7 -0
- package/dist/prod/util/isElementTabbable.js +2 -0
- package/dist/prod/util/isElementTabbable.js.map +7 -0
- package/dist/prod/util/isValidPropertyName.js +2 -0
- package/dist/prod/util/isValidPropertyName.js.map +7 -0
- package/dist/prod/util/throttle.js +2 -0
- package/dist/prod/util/throttle.js.map +7 -0
- package/dist/prod/util/toLowercaseEnumValue.js +2 -0
- package/dist/prod/util/toLowercaseEnumValue.js.map +7 -0
- package/dist/prod/util/valueStateNavigation.js +2 -0
- package/dist/prod/util/valueStateNavigation.js.map +7 -0
- package/dist/prod/util/whenDOMReady.js +2 -0
- package/dist/prod/util/whenDOMReady.js.map +7 -0
- package/dist/prod/util/willShowContent.js +2 -0
- package/dist/prod/util/willShowContent.js.map +7 -0
- package/dist/prod/validateThemeRoot.js +2 -0
- package/dist/prod/validateThemeRoot.js.map +7 -0
- package/dist/renderer/JsxRenderer.d.ts +3 -0
- package/dist/renderer/JsxRenderer.js +26 -0
- package/dist/renderer/JsxRenderer.js.map +1 -0
- package/dist/renderer/LitRenderer.d.ts +3 -3
- package/dist/renderer/LitRenderer.js +5 -10
- 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 +3 -4
- package/dist/renderer/executeTemplate.js +1 -19
- 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 +113 -98
- package/dist/ssr-dom-shim.d.ts +1 -0
- package/dist/ssr-dom-shim.js +63 -0
- package/dist/ssr-dom-shim.js.map +1 -0
- package/dist/ssr-dom.d.ts +1 -0
- package/dist/ssr-dom.js +3 -0
- package/dist/ssr-dom.js.map +1 -0
- package/dist/theming/CustomStyle.js.map +1 -1
- package/dist/theming/applyTheme.js +11 -9
- package/dist/theming/applyTheme.js.map +1 -1
- package/dist/theming/getConstructableStyle.d.ts +2 -2
- 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.js +2 -4
- package/dist/theming/getStylesString.js.map +1 -1
- package/dist/theming/getThemeDesignerTheme.js +2 -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/preact/jsx.d.ts +2616 -0
- package/dist/thirdparty/preact/jsxRuntime.module.d.ts +62 -0
- package/dist/thirdparty/preact/jsxRuntime.module.js +1 -0
- package/dist/thirdparty/preact/preact.module.d.ts +398 -0
- package/dist/thirdparty/preact/preact.module.js +1 -0
- 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/CalendarType.d.ts +0 -9
- package/dist/types/CalendarType.js +0 -9
- package/dist/types/CalendarType.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/SortOrder.d.ts +24 -0
- package/dist/types/SortOrder.js +26 -0
- package/dist/types/SortOrder.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 +42 -14
- package/dist/types.js.map +1 -1
- package/dist/updateShadowRoot.d.ts +1 -2
- package/dist/updateShadowRoot.js +4 -28
- package/dist/updateShadowRoot.js.map +1 -1
- package/dist/util/{AriaLabelHelper.d.ts → AccessibilityTextsHelper.d.ts} +4 -2
- package/dist/util/{AriaLabelHelper.js → AccessibilityTextsHelper.js} +36 -8
- package/dist/util/AccessibilityTextsHelper.js.map +1 -0
- package/dist/util/Caret.js.map +1 -1
- package/dist/util/ColorConversion.d.ts +2 -1
- package/dist/util/ColorConversion.js +233 -216
- package/dist/util/ColorConversion.js.map +1 -1
- package/dist/util/FetchHelper.js.map +1 -1
- package/dist/util/FocusableElements.js +43 -15
- package/dist/util/FocusableElements.js.map +1 -1
- package/dist/util/HTMLSanitizer.d.ts +2 -0
- package/dist/util/HTMLSanitizer.js +2 -2
- package/dist/util/HTMLSanitizer.js.map +1 -1
- package/dist/util/InvisibleMessage.js +2 -2
- 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/SelectionAssistant.d.ts +12 -0
- package/dist/util/SelectionAssistant.js +71 -0
- package/dist/util/SelectionAssistant.js.map +1 -0
- package/dist/util/SlotsHelper.js.map +1 -1
- package/dist/util/StringHelper.d.ts +3 -1
- package/dist/util/StringHelper.js +15 -1
- package/dist/util/StringHelper.js.map +1 -1
- package/dist/util/TabbableElements.js +3 -10
- 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 +39 -0
- package/dist/util/dragAndDrop/DragRegistry.js +58 -0
- package/dist/util/dragAndDrop/DragRegistry.js.map +1 -0
- package/dist/util/dragAndDrop/findClosestPosition.d.ts +12 -0
- package/dist/util/dragAndDrop/findClosestPosition.js +106 -0
- package/dist/util/dragAndDrop/findClosestPosition.js.map +1 -0
- package/dist/util/dragAndDrop/handleDragOver.d.ts +16 -0
- package/dist/util/dragAndDrop/handleDragOver.js +42 -0
- package/dist/util/dragAndDrop/handleDragOver.js.map +1 -0
- package/dist/util/dragAndDrop/handleDrop.d.ts +5 -0
- package/dist/util/dragAndDrop/handleDrop.js +22 -0
- package/dist/util/dragAndDrop/handleDrop.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/fixSafariActiveState.d.ts +2 -0
- package/dist/util/fixSafariActiveState.js +11 -0
- package/dist/util/fixSafariActiveState.js.map +1 -0
- 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 +145 -103
- 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/getFastNavigationGroups.js +6 -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/hash2str.d.ts +1 -0
- package/dist/util/hash2str.js +14 -0
- package/dist/util/hash2str.js.map +1 -0
- package/dist/util/isElementClickable.js.map +1 -1
- package/dist/util/isElementHidden.js +2 -1
- package/dist/util/isElementHidden.js.map +1 -1
- package/dist/util/isElementTabbable.js +2 -2
- package/dist/util/isElementTabbable.js.map +1 -1
- package/dist/util/isValidPropertyName.js.map +1 -1
- package/dist/util/throttle.d.ts +2 -0
- package/dist/util/throttle.js +20 -0
- package/dist/util/throttle.js.map +1 -0
- package/dist/util/toLowercaseEnumValue.d.ts +3 -0
- package/dist/util/toLowercaseEnumValue.js +4 -0
- package/dist/util/toLowercaseEnumValue.js.map +1 -0
- package/dist/util/valueStateNavigation.d.ts +8 -0
- package/dist/util/valueStateNavigation.js +40 -0
- package/dist/util/valueStateNavigation.js.map +1 -0
- package/dist/util/whenDOMReady.js.map +1 -1
- package/dist/validateThemeRoot.js +9 -4
- package/dist/validateThemeRoot.js.map +1 -1
- package/dist/vscode.html-custom-data.json +22 -0
- package/package-scripts.cjs +37 -23
- package/package.json +38 -12
- package/src/css/MultipleDragGhost.css +17 -0
- package/src/css/OpenUI5PopupStyles.css +5 -0
- package/src/css/ScrollbarStyles.css +3 -0
- package/src/css/SystemCSSVars.css +0 -8
- package/src/i18n/messagebundle.properties +5 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
- package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
- package/src/thirdparty/preact/jsxRuntime.module.js +1 -0
- package/src/thirdparty/preact/preact.module.js +1 -0
- package/src/thirdparty/preact/version.txt +1 -0
- package/tsconfig.json +18 -13
- package/.eslintignore +0 -16
- package/.eslintrc.cjs +0 -3
- package/bundle.esm.js +0 -64
- package/config/wdio.conf.cjs +0 -400
- package/dist/CSP.d.ts +0 -30
- package/dist/CSP.js +0 -51
- package/dist/CSP.js.map +0 -1
- package/dist/MarkedEvents.d.ts +0 -9
- package/dist/MarkedEvents.js +0 -15
- package/dist/MarkedEvents.js.map +0 -1
- package/dist/StaticArea.d.ts +0 -3
- package/dist/StaticArea.js +0 -7
- package/dist/StaticArea.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/Boot.34b7cea0.css +0 -1
- package/dist/assets/Boot.f21d1bf8.js +0 -9
- package/dist/assets/bundle.esm.fff719c1.js +0 -50
- package/dist/assets-meta/IconCollectionsAlias.js.map +0 -1
- package/dist/config/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/css/FontFace.css +0 -66
- package/dist/css/OverrideFontFace.css +0 -32
- package/dist/generated/css/OverrideFontFace.css.d.ts +0 -3
- package/dist/generated/css/OverrideFontFace.css.js +0 -7
- package/dist/generated/css/OverrideFontFace.css.js.map +0 -1
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.d.ts +0 -4
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +0 -9
- package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.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/types/CSSColor.d.ts +0 -15
- package/dist/types/CSSColor.js +0 -18
- package/dist/types/CSSColor.js.map +0 -1
- package/dist/types/DOMReference.d.ts +0 -17
- package/dist/types/DOMReference.js +0 -25
- package/dist/types/DOMReference.js.map +0 -1
- package/dist/types/DataType.d.ts +0 -25
- package/dist/types/DataType.js +0 -44
- package/dist/types/DataType.js.map +0 -1
- package/dist/types/Float.d.ts +0 -17
- package/dist/types/Float.js +0 -21
- package/dist/types/Float.js.map +0 -1
- package/dist/types/Integer.d.ts +0 -17
- package/dist/types/Integer.js +0 -21
- package/dist/types/Integer.js.map +0 -1
- package/dist/util/AriaLabelHelper.js.map +0 -1
- package/dist/util/createStyleInHead.d.ts +0 -8
- package/dist/util/createStyleInHead.js +0 -18
- package/dist/util/createStyleInHead.js.map +0 -1
- package/dist/util/getEffectiveScrollbarStyle.d.ts +0 -2
- package/dist/util/getEffectiveScrollbarStyle.js +0 -4
- package/dist/util/getEffectiveScrollbarStyle.js.map +0 -1
- package/index.js +0 -230
- package/lib/generate-asset-parameters/index.js +0 -27
- package/lib/generate-styles/index.js +0 -31
- package/lib/generate-version-info/index.js +0 -32
- package/src/css/FontFace.css +0 -66
- package/src/css/OverrideFontFace.css +0 -32
- package/src/renderer/directives/style-map.js +0 -72
- package/used-modules.txt +0 -10
package/dist/UI5Element.js
CHANGED
|
@@ -1,25 +1,57 @@
|
|
|
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";
|
|
12
13
|
import getEffectiveDir from "./locale/getEffectiveDir.js";
|
|
13
|
-
import { kebabToCamelCase, camelToKebabCase } from "./util/StringHelper.js";
|
|
14
|
+
import { kebabToCamelCase, camelToKebabCase, kebabToPascalCase } from "./util/StringHelper.js";
|
|
14
15
|
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 preloadLinks from "./theming/preloadLinks.js";
|
|
19
19
|
import executeTemplate from "./renderer/executeTemplate.js";
|
|
20
|
+
import { shouldScopeCustomElement } from "./CustomElementsScopeUtils.js";
|
|
21
|
+
import { updateFormValue, setFormValue } from "./features/InputElementsFormSupport.js";
|
|
22
|
+
import { getI18nBundle } from "./i18nBundle.js";
|
|
23
|
+
import { fetchCldr } from "./asset-registries/LocaleData.js";
|
|
24
|
+
import getLocale from "./locale/getLocale.js";
|
|
25
|
+
import { getLanguageChangePending } from "./config/Language.js";
|
|
26
|
+
const DEV_MODE = true;
|
|
20
27
|
let autoId = 0;
|
|
21
28
|
const elementTimeouts = new Map();
|
|
22
29
|
const uniqueDependenciesCache = new Map();
|
|
30
|
+
const defaultConverter = {
|
|
31
|
+
fromAttribute(value, type) {
|
|
32
|
+
if (type === Boolean) {
|
|
33
|
+
return value !== null;
|
|
34
|
+
}
|
|
35
|
+
if (type === Number) {
|
|
36
|
+
return value === null ? undefined : parseFloat(value);
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
},
|
|
40
|
+
toAttribute(value, type) {
|
|
41
|
+
if (type === Boolean) {
|
|
42
|
+
return value ? "" : null;
|
|
43
|
+
}
|
|
44
|
+
// don't set attributes for arrays and objects
|
|
45
|
+
if (type === Object || type === Array) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
// object, array, other
|
|
49
|
+
if (value === null || value === undefined) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return String(value);
|
|
53
|
+
},
|
|
54
|
+
};
|
|
23
55
|
/**
|
|
24
56
|
* Triggers re-rendering of a UI5Element instance due to state change.
|
|
25
57
|
* @param {ChangeInfo} changeInfo An object with information about the change that caused invalidation.
|
|
@@ -31,25 +63,50 @@ function _invalidate(changeInfo) {
|
|
|
31
63
|
if (this._suppressInvalidation) {
|
|
32
64
|
return;
|
|
33
65
|
}
|
|
66
|
+
const ctor = this.constructor;
|
|
67
|
+
// Skip re-rendering of language-aware components while language-specific data (e.g., CLDR, language bundles) is still loading.
|
|
68
|
+
// Once all necessary language data has been loaded, the language change
|
|
69
|
+
// will trigger a re-render of all language-aware components.
|
|
70
|
+
if (ctor.getMetadata().isLanguageAware() && getLanguageChangePending()) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
34
73
|
// Call the onInvalidation hook
|
|
35
74
|
this.onInvalidation(changeInfo);
|
|
36
75
|
this._changedState.push(changeInfo);
|
|
37
76
|
renderDeferred(this);
|
|
38
|
-
this.
|
|
77
|
+
this._invalidationEventProvider.fireEvent("invalidate", { ...changeInfo, target: this });
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* looks up a property descsriptor including in the prototype chain
|
|
81
|
+
* @param proto the starting prototype
|
|
82
|
+
* @param name the property to look for
|
|
83
|
+
* @returns the property descriptor if found directly or in the prototype chaing, undefined if not found
|
|
84
|
+
*/
|
|
85
|
+
function getPropertyDescriptor(proto, name) {
|
|
86
|
+
do {
|
|
87
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, name);
|
|
88
|
+
if (descriptor) {
|
|
89
|
+
return descriptor;
|
|
90
|
+
}
|
|
91
|
+
// go up the prototype chain
|
|
92
|
+
proto = Object.getPrototypeOf(proto);
|
|
93
|
+
} while (proto && proto !== HTMLElement.prototype);
|
|
39
94
|
}
|
|
40
95
|
/**
|
|
96
|
+
* @class
|
|
41
97
|
* Base class for all UI5 Web Components
|
|
42
98
|
*
|
|
43
|
-
* @class
|
|
44
|
-
* @constructor
|
|
45
|
-
* @author SAP SE
|
|
46
|
-
* @alias sap.ui.webc.base.UI5Element
|
|
47
99
|
* @extends HTMLElement
|
|
48
100
|
* @public
|
|
49
101
|
*/
|
|
50
102
|
class UI5Element extends HTMLElement {
|
|
51
103
|
constructor() {
|
|
52
104
|
super();
|
|
105
|
+
this.__shouldHydrate = false;
|
|
106
|
+
// used to differentiate whether a setter is called from the constructor (from an initializer) or later
|
|
107
|
+
// setters from the constructor should not set attributes, this is delegated after the first rendering but is async
|
|
108
|
+
// setters after the constructor can set attributes synchronously for more convinient development
|
|
109
|
+
this._rendered = false;
|
|
53
110
|
const ctor = this.constructor;
|
|
54
111
|
this._changedState = []; // Filled on each invalidation, cleared on re-render (used for debugging)
|
|
55
112
|
this._suppressInvalidation = true; // A flag telling whether all invalidations should be ignored. Initialized with "true" because a UI5Element can not be invalidated until it is rendered for the first time
|
|
@@ -57,17 +114,53 @@ class UI5Element extends HTMLElement {
|
|
|
57
114
|
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
115
|
this._childChangeListeners = new Map(); // used to store lazy listeners per slot for the child change event of every child inside that slot
|
|
59
116
|
this._slotChangeListeners = new Map(); // used to store lazy listeners per slot for the slotchange event of all slot children inside that slot
|
|
60
|
-
this.
|
|
117
|
+
this._invalidationEventProvider = new EventProvider(); // used by parent components for listening to changes to child components
|
|
118
|
+
this._componentStateFinalizedEventProvider = new EventProvider(); // used by friend classes for synchronization
|
|
61
119
|
let deferredResolve;
|
|
62
120
|
this._domRefReadyPromise = new Promise(resolve => {
|
|
63
121
|
deferredResolve = resolve;
|
|
64
122
|
});
|
|
65
123
|
this._domRefReadyPromise._deferredResolve = deferredResolve;
|
|
66
124
|
this._doNotSyncAttributes = new Set(); // attributes that are excluded from attributeChangedCallback synchronization
|
|
125
|
+
this._slotsAssignedNodes = new WeakMap(); // map of all nodes, slotted (directly or transitively) per component slot
|
|
67
126
|
this._state = { ...ctor.getMetadata().getInitialState() };
|
|
68
|
-
|
|
127
|
+
// save properties set before element is upgraded, as they will be overriden by the field initializers in the constructor
|
|
128
|
+
this.initializedProperties = new Map();
|
|
129
|
+
const allProps = this.constructor.getMetadata().getPropertiesList();
|
|
130
|
+
allProps.forEach(propertyName => {
|
|
131
|
+
if (this.hasOwnProperty(propertyName)) { // eslint-disable-line
|
|
132
|
+
const value = this[propertyName];
|
|
133
|
+
this.initializedProperties.set(propertyName, value);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
this._internals = this.attachInternals();
|
|
137
|
+
this._initShadowRoot();
|
|
138
|
+
}
|
|
139
|
+
_initShadowRoot() {
|
|
140
|
+
const ctor = this.constructor;
|
|
69
141
|
if (ctor._needsShadowDOM()) {
|
|
70
|
-
|
|
142
|
+
const defaultOptions = { mode: "open" };
|
|
143
|
+
if (!this.shadowRoot) {
|
|
144
|
+
this.attachShadow({ ...defaultOptions, ...ctor.getMetadata().getShadowRootOptions() });
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// The shadow root is initially rendered. This applies to case where the component's template
|
|
148
|
+
// is inserted into the DOM declaratively using a <template> tag.
|
|
149
|
+
this.__shouldHydrate = true;
|
|
150
|
+
}
|
|
151
|
+
const slotsAreManaged = ctor.getMetadata().slotsAreManaged();
|
|
152
|
+
if (slotsAreManaged) {
|
|
153
|
+
this.shadowRoot.addEventListener("slotchange", this._onShadowRootSlotChange.bind(this));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Note: this "slotchange" listener is for slots, rendered in the component's shadow root
|
|
159
|
+
*/
|
|
160
|
+
_onShadowRootSlotChange(e) {
|
|
161
|
+
const targetShadowRoot = e.target?.getRootNode(); // the "slotchange" event target is always a slot element
|
|
162
|
+
if (targetShadowRoot === this.shadowRoot) { // only for slotchange events that originate from slots, belonging to the component's shadow root
|
|
163
|
+
this._processChildren();
|
|
71
164
|
}
|
|
72
165
|
}
|
|
73
166
|
/**
|
|
@@ -86,18 +179,24 @@ class UI5Element extends HTMLElement {
|
|
|
86
179
|
const template = this.constructor.template;
|
|
87
180
|
return executeTemplate(template, this);
|
|
88
181
|
}
|
|
89
|
-
renderStatic() {
|
|
90
|
-
const template = this.constructor.staticAreaTemplate;
|
|
91
|
-
return executeTemplate(template, this);
|
|
92
|
-
}
|
|
93
182
|
/**
|
|
94
183
|
* Do not call this method from derivatives of UI5Element, use "onEnterDOM" only
|
|
95
184
|
* @private
|
|
96
185
|
*/
|
|
97
186
|
async connectedCallback() {
|
|
187
|
+
if (DEV_MODE) {
|
|
188
|
+
const props = this.constructor.getMetadata().getProperties();
|
|
189
|
+
for (const [prop, propData] of Object.entries(props)) { // eslint-disable-line
|
|
190
|
+
if (Object.hasOwn(this, prop) && !this.initializedProperties.has(prop)) {
|
|
191
|
+
// initialized properties should not trigger this error as they will be reassigned, only property initializers will trigger this in case unsupported TS mode
|
|
192
|
+
// eslint-disable-next-line no-console
|
|
193
|
+
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`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
98
197
|
const ctor = this.constructor;
|
|
99
198
|
this.setAttribute(ctor.getMetadata().getPureTag(), "");
|
|
100
|
-
if (ctor.getMetadata().supportsF6FastNavigation()) {
|
|
199
|
+
if (ctor.getMetadata().supportsF6FastNavigation() && !this.hasAttribute("data-sap-ui-fastnavgroup")) {
|
|
101
200
|
this.setAttribute("data-sap-ui-fastnavgroup", "true");
|
|
102
201
|
}
|
|
103
202
|
const slotsAreManaged = ctor.getMetadata().slotsAreManaged();
|
|
@@ -107,6 +206,9 @@ class UI5Element extends HTMLElement {
|
|
|
107
206
|
this._startObservingDOMChildren();
|
|
108
207
|
await this._processChildren();
|
|
109
208
|
}
|
|
209
|
+
if (!ctor.asyncFinished) {
|
|
210
|
+
await ctor.definePromise;
|
|
211
|
+
}
|
|
110
212
|
if (!this._inDOM) { // Component removed from DOM while _processChildren was running
|
|
111
213
|
return;
|
|
112
214
|
}
|
|
@@ -130,9 +232,7 @@ class UI5Element extends HTMLElement {
|
|
|
130
232
|
this.onExitDOM();
|
|
131
233
|
this._fullyConnected = false;
|
|
132
234
|
}
|
|
133
|
-
|
|
134
|
-
this.staticAreaItem.parentElement.removeChild(this.staticAreaItem);
|
|
135
|
-
}
|
|
235
|
+
this._domRefReadyPromise._deferredResolve();
|
|
136
236
|
cancelRender(this);
|
|
137
237
|
}
|
|
138
238
|
/**
|
|
@@ -160,11 +260,12 @@ class UI5Element extends HTMLElement {
|
|
|
160
260
|
*/
|
|
161
261
|
_startObservingDOMChildren() {
|
|
162
262
|
const ctor = this.constructor;
|
|
163
|
-
const
|
|
263
|
+
const metadata = ctor.getMetadata();
|
|
264
|
+
const shouldObserveChildren = metadata.hasSlots();
|
|
164
265
|
if (!shouldObserveChildren) {
|
|
165
266
|
return;
|
|
166
267
|
}
|
|
167
|
-
const canSlotText =
|
|
268
|
+
const canSlotText = metadata.canSlotText();
|
|
168
269
|
const mutationObserverOptions = {
|
|
169
270
|
childList: true,
|
|
170
271
|
subtree: canSlotText,
|
|
@@ -228,11 +329,11 @@ class UI5Element extends HTMLElement {
|
|
|
228
329
|
// Await for not-yet-defined custom elements
|
|
229
330
|
if (child instanceof HTMLElement) {
|
|
230
331
|
const localName = child.localName;
|
|
231
|
-
const
|
|
232
|
-
if (
|
|
233
|
-
const isDefined =
|
|
332
|
+
const shouldWaitForCustomElement = localName.includes("-") && !shouldIgnoreCustomElement(localName);
|
|
333
|
+
if (shouldWaitForCustomElement) {
|
|
334
|
+
const isDefined = customElements.get(localName);
|
|
234
335
|
if (!isDefined) {
|
|
235
|
-
const whenDefinedPromise =
|
|
336
|
+
const whenDefinedPromise = customElements.whenDefined(localName); // Class registered, but instances not upgraded yet
|
|
236
337
|
let timeoutPromise = elementTimeouts.get(localName);
|
|
237
338
|
if (!timeoutPromise) {
|
|
238
339
|
timeoutPromise = new Promise(resolve => setTimeout(resolve, 1000));
|
|
@@ -240,20 +341,18 @@ class UI5Element extends HTMLElement {
|
|
|
240
341
|
}
|
|
241
342
|
await Promise.race([whenDefinedPromise, timeoutPromise]);
|
|
242
343
|
}
|
|
243
|
-
|
|
344
|
+
customElements.upgrade(child);
|
|
244
345
|
}
|
|
245
346
|
}
|
|
246
347
|
child = ctor.getMetadata().constructor.validateSlotValue(child, slotData);
|
|
247
348
|
// Listen for any invalidation on the child if invalidateOnChildChange is true or an object (ignore when false or not set)
|
|
248
349
|
if (instanceOfUI5Element(child) && slotData.invalidateOnChildChange) {
|
|
249
350
|
const childChangeListener = this._getChildChangeListener(slotName);
|
|
250
|
-
|
|
251
|
-
child.attachInvalidate.call(child, childChangeListener);
|
|
252
|
-
}
|
|
351
|
+
child.attachInvalidate.call(child, childChangeListener);
|
|
253
352
|
}
|
|
254
353
|
// Listen for the slotchange event if the child is a slot itself
|
|
255
354
|
if (child instanceof HTMLSlotElement) {
|
|
256
|
-
this._attachSlotChange(child, slotName);
|
|
355
|
+
this._attachSlotChange(child, slotName, !!slotData.invalidateOnChildChange);
|
|
257
356
|
}
|
|
258
357
|
const propertyName = slotData.propertyName || slotName;
|
|
259
358
|
if (slottedChildrenMap.has(propertyName)) {
|
|
@@ -268,6 +367,7 @@ class UI5Element extends HTMLElement {
|
|
|
268
367
|
// not the order elements are defined.
|
|
269
368
|
slottedChildrenMap.forEach((children, propertyName) => {
|
|
270
369
|
this._state[propertyName] = children.sort((a, b) => a.idx - b.idx).map(_ => _.child);
|
|
370
|
+
this._state[kebabToCamelCase(propertyName)] = this._state[propertyName];
|
|
271
371
|
});
|
|
272
372
|
// Compare the content of each slot with the cached values and invalidate for the ones that changed
|
|
273
373
|
let invalidated = false;
|
|
@@ -280,6 +380,9 @@ class UI5Element extends HTMLElement {
|
|
|
280
380
|
reason: "children",
|
|
281
381
|
});
|
|
282
382
|
invalidated = true;
|
|
383
|
+
if (ctor.getMetadata().isFormAssociated()) {
|
|
384
|
+
setFormValue(this);
|
|
385
|
+
}
|
|
283
386
|
}
|
|
284
387
|
}
|
|
285
388
|
// If none of the slots had an invalidation due to changes to immediate children,
|
|
@@ -302,39 +405,38 @@ class UI5Element extends HTMLElement {
|
|
|
302
405
|
children.forEach(child => {
|
|
303
406
|
if (instanceOfUI5Element(child)) {
|
|
304
407
|
const childChangeListener = this._getChildChangeListener(slotName);
|
|
305
|
-
|
|
306
|
-
child.detachInvalidate.call(child, childChangeListener);
|
|
307
|
-
}
|
|
408
|
+
child.detachInvalidate.call(child, childChangeListener);
|
|
308
409
|
}
|
|
309
410
|
if (child instanceof HTMLSlotElement) {
|
|
310
411
|
this._detachSlotChange(child, slotName);
|
|
311
412
|
}
|
|
312
413
|
});
|
|
313
414
|
this._state[propertyName] = [];
|
|
415
|
+
this._state[kebabToCamelCase(propertyName)] = this._state[propertyName];
|
|
314
416
|
}
|
|
315
417
|
/**
|
|
316
418
|
* Attach a callback that will be executed whenever the component is invalidated
|
|
317
419
|
*
|
|
318
|
-
* @param
|
|
420
|
+
* @param callback
|
|
319
421
|
* @public
|
|
320
422
|
*/
|
|
321
423
|
attachInvalidate(callback) {
|
|
322
|
-
this.
|
|
424
|
+
this._invalidationEventProvider.attachEvent("invalidate", callback);
|
|
323
425
|
}
|
|
324
426
|
/**
|
|
325
427
|
* Detach the callback that is executed whenever the component is invalidated
|
|
326
428
|
*
|
|
327
|
-
* @param
|
|
429
|
+
* @param callback
|
|
328
430
|
* @public
|
|
329
431
|
*/
|
|
330
432
|
detachInvalidate(callback) {
|
|
331
|
-
this.
|
|
433
|
+
this._invalidationEventProvider.detachEvent("invalidate", callback);
|
|
332
434
|
}
|
|
333
435
|
/**
|
|
334
436
|
* Callback that is executed whenever a monitored child changes its state
|
|
335
437
|
*
|
|
336
|
-
* @param
|
|
337
|
-
* @param
|
|
438
|
+
* @param slotName the slot in which a child was invalidated
|
|
439
|
+
* @param childChangeInfo the changeInfo object for the child in the given slot
|
|
338
440
|
* @private
|
|
339
441
|
*/
|
|
340
442
|
_onChildChange(slotName, childChangeInfo) {
|
|
@@ -364,23 +466,21 @@ class UI5Element extends HTMLElement {
|
|
|
364
466
|
const nameInCamelCase = kebabToCamelCase(realName);
|
|
365
467
|
if (properties.hasOwnProperty(nameInCamelCase)) { // eslint-disable-line
|
|
366
468
|
const propData = properties[nameInCamelCase];
|
|
367
|
-
const
|
|
368
|
-
|
|
369
|
-
if (propertyType && propertyType.isDataTypeClass) {
|
|
370
|
-
propertyValidator = propertyType;
|
|
371
|
-
}
|
|
372
|
-
if (propertyValidator) {
|
|
373
|
-
newPropertyValue = propertyValidator.attributeToProperty(newValue);
|
|
374
|
-
}
|
|
375
|
-
else if (propertyType === Boolean) {
|
|
376
|
-
newPropertyValue = newValue !== null;
|
|
377
|
-
}
|
|
378
|
-
else {
|
|
379
|
-
newPropertyValue = newValue;
|
|
380
|
-
}
|
|
469
|
+
const converter = propData.converter ?? defaultConverter;
|
|
470
|
+
newPropertyValue = converter.fromAttribute(newValue, propData.type);
|
|
381
471
|
this[nameInCamelCase] = newPropertyValue;
|
|
382
472
|
}
|
|
383
473
|
}
|
|
474
|
+
formAssociatedCallback() {
|
|
475
|
+
const ctor = this.constructor;
|
|
476
|
+
if (!ctor.getMetadata().isFormAssociated()) {
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
updateFormValue(this);
|
|
480
|
+
}
|
|
481
|
+
static get formAssociated() {
|
|
482
|
+
return this.getMetadata().isFormAssociated();
|
|
483
|
+
}
|
|
384
484
|
/**
|
|
385
485
|
* @private
|
|
386
486
|
*/
|
|
@@ -391,60 +491,37 @@ class UI5Element extends HTMLElement {
|
|
|
391
491
|
}
|
|
392
492
|
const properties = ctor.getMetadata().getProperties();
|
|
393
493
|
const propData = properties[name];
|
|
394
|
-
const propertyType = propData.type;
|
|
395
|
-
let propertyValidator = propData.validator;
|
|
396
494
|
const attrName = camelToKebabCase(name);
|
|
397
|
-
const
|
|
398
|
-
if (
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
if (newAttrValue === null) { // null means there must be no attribute for the current value of the property
|
|
404
|
-
this._doNotSyncAttributes.add(attrName); // skip the attributeChangedCallback call for this attribute
|
|
405
|
-
this.removeAttribute(attrName); // remove the attribute safely (will not trigger synchronization to the property value due to the above line)
|
|
406
|
-
this._doNotSyncAttributes.delete(attrName); // enable synchronization again for this attribute
|
|
407
|
-
}
|
|
408
|
-
else {
|
|
409
|
-
this.setAttribute(attrName, newAttrValue);
|
|
495
|
+
const converter = propData.converter || defaultConverter;
|
|
496
|
+
if (DEV_MODE) {
|
|
497
|
+
const tag = this.constructor.getMetadata().getTag();
|
|
498
|
+
if (typeof newValue === "boolean" && propData.type !== Boolean) {
|
|
499
|
+
// eslint-disable-next-line
|
|
500
|
+
console.error(`[UI5-FWK] boolean value for property [${name}] of component [${tag}] is missing "{ type: Boolean }" in its property decorator. Attribute conversion will treat it as a string. If this is intended, pass the value converted to string, otherwise add the type to the property decorator`);
|
|
410
501
|
}
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
this.setAttribute(attrName, "");
|
|
502
|
+
if (typeof newValue === "number" && propData.type !== Number) {
|
|
503
|
+
// eslint-disable-next-line
|
|
504
|
+
console.error(`[UI5-FWK] numeric value for property [${name}] of component [${tag}] is missing "{ type: Number }" in its property decorator. Attribute conversion will treat it as a string. If this is intended, pass the value converted to string, otherwise add the type to the property decorator`);
|
|
415
505
|
}
|
|
416
|
-
|
|
417
|
-
|
|
506
|
+
if (typeof newValue === "string" && propData.type && propData.type !== String) {
|
|
507
|
+
// eslint-disable-next-line
|
|
508
|
+
console.error(`[UI5-FWK] string value for property [${name}] of component [${tag}] which has a non-string type [${propData.type}] in its property decorator. Attribute conversion will stop and keep the string value in the property.`);
|
|
418
509
|
}
|
|
419
510
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
} // else { return; } // old object handling
|
|
425
|
-
}
|
|
426
|
-
/**
|
|
427
|
-
* @private
|
|
428
|
-
*/
|
|
429
|
-
_upgradeProperty(propertyName) {
|
|
430
|
-
if (this.hasOwnProperty(propertyName)) { // eslint-disable-line
|
|
431
|
-
const value = this[propertyName];
|
|
432
|
-
delete this[propertyName];
|
|
433
|
-
this[propertyName] = value;
|
|
511
|
+
const newAttrValue = converter.toAttribute(newValue, propData.type);
|
|
512
|
+
this._doNotSyncAttributes.add(attrName); // skip the attributeChangedCallback call for this attribute
|
|
513
|
+
if (newAttrValue === null || newAttrValue === undefined) { // null means there must be no attribute for the current value of the property
|
|
514
|
+
this.removeAttribute(attrName); // remove the attribute safely (will not trigger synchronization to the property value due to the above line)
|
|
434
515
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
_upgradeAllProperties() {
|
|
440
|
-
const allProps = this.constructor.getMetadata().getPropertiesList();
|
|
441
|
-
allProps.forEach(this._upgradeProperty.bind(this));
|
|
516
|
+
else {
|
|
517
|
+
this.setAttribute(attrName, newAttrValue); // setting attributes from properties should not trigger the property setter again
|
|
518
|
+
}
|
|
519
|
+
this._doNotSyncAttributes.delete(attrName); // enable synchronization again for this attribute
|
|
442
520
|
}
|
|
443
521
|
/**
|
|
444
522
|
* Returns a singleton event listener for the "change" event of a child in a given slot
|
|
445
523
|
*
|
|
446
524
|
* @param slotName the name of the slot, where the child is
|
|
447
|
-
* @returns {ChildChangeListener}
|
|
448
525
|
* @private
|
|
449
526
|
*/
|
|
450
527
|
_getChildChangeListener(slotName) {
|
|
@@ -457,7 +534,6 @@ class UI5Element extends HTMLElement {
|
|
|
457
534
|
* Returns a singleton slotchange event listener that invalidates the component due to changes in the given slot
|
|
458
535
|
*
|
|
459
536
|
* @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is
|
|
460
|
-
* @returns {SlotChangeListener}
|
|
461
537
|
* @private
|
|
462
538
|
*/
|
|
463
539
|
_getSlotChangeListener(slotName) {
|
|
@@ -469,11 +545,32 @@ class UI5Element extends HTMLElement {
|
|
|
469
545
|
/**
|
|
470
546
|
* @private
|
|
471
547
|
*/
|
|
472
|
-
_attachSlotChange(
|
|
548
|
+
_attachSlotChange(slot, slotName, invalidateOnChildChange) {
|
|
473
549
|
const slotChangeListener = this._getSlotChangeListener(slotName);
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
550
|
+
slot.addEventListener("slotchange", (e) => {
|
|
551
|
+
slotChangeListener.call(slot, e);
|
|
552
|
+
if (invalidateOnChildChange) {
|
|
553
|
+
// Detach listeners for UI5 Elements that used to be in this slot
|
|
554
|
+
const previousChildren = this._slotsAssignedNodes.get(slot);
|
|
555
|
+
if (previousChildren) {
|
|
556
|
+
previousChildren.forEach(child => {
|
|
557
|
+
if (instanceOfUI5Element(child)) {
|
|
558
|
+
const childChangeListener = this._getChildChangeListener(slotName);
|
|
559
|
+
child.detachInvalidate.call(child, childChangeListener);
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
// Attach listeners for UI5 Elements that are now in this slot
|
|
564
|
+
const newChildren = getSlottedNodesList([slot]);
|
|
565
|
+
this._slotsAssignedNodes.set(slot, newChildren);
|
|
566
|
+
newChildren.forEach(child => {
|
|
567
|
+
if (instanceOfUI5Element(child)) {
|
|
568
|
+
const childChangeListener = this._getChildChangeListener(slotName);
|
|
569
|
+
child.attachInvalidate.call(child, childChangeListener);
|
|
570
|
+
}
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
});
|
|
477
574
|
}
|
|
478
575
|
/**
|
|
479
576
|
* @private
|
|
@@ -483,6 +580,7 @@ class UI5Element extends HTMLElement {
|
|
|
483
580
|
}
|
|
484
581
|
/**
|
|
485
582
|
* Whenever a slot element is slotted inside a UI5 Web Component, its slotchange event invalidates the component
|
|
583
|
+
* Note: this "slotchange" listener is for slots that are children of the component (in the light dom, as opposed to slots rendered by the component in the shadow root)
|
|
486
584
|
*
|
|
487
585
|
* @param slotName the name of the slot, where the slot element (whose slotchange event we're listening to) is
|
|
488
586
|
* @private
|
|
@@ -509,9 +607,9 @@ class UI5Element extends HTMLElement {
|
|
|
509
607
|
* 1) children: immediate children (HTML elements or text nodes) were added, removed or reordered in the slot
|
|
510
608
|
* 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"
|
|
511
609
|
* 3) slotchange: a slot element, slotted inside that slot had its "slotchange" event listener called. This practically means that transitively slotted children changed.
|
|
512
|
-
*
|
|
610
|
+
* Can only trigger if the child of a slot is a slot element itself.
|
|
513
611
|
* 4) childchange: indicates that a UI5Element child in that slot was invalidated and in turn invalidated the component.
|
|
514
|
-
*
|
|
612
|
+
* Can only trigger for slots with "invalidateOnChildChange" metadata descriptor
|
|
515
613
|
*
|
|
516
614
|
* - newValue: the new value of the property (for type="property" only)
|
|
517
615
|
*
|
|
@@ -522,6 +620,13 @@ class UI5Element extends HTMLElement {
|
|
|
522
620
|
* @public
|
|
523
621
|
*/
|
|
524
622
|
onInvalidation(changeInfo) { } // eslint-disable-line
|
|
623
|
+
updateAttributes() {
|
|
624
|
+
const ctor = this.constructor;
|
|
625
|
+
const props = ctor.getMetadata().getProperties();
|
|
626
|
+
for (const [prop, propData] of Object.entries(props)) { // eslint-disable-line
|
|
627
|
+
this._updateAttribute(prop, this[prop]);
|
|
628
|
+
}
|
|
629
|
+
}
|
|
525
630
|
/**
|
|
526
631
|
* Do not call this method directly, only intended to be called by js
|
|
527
632
|
* @protected
|
|
@@ -529,15 +634,29 @@ class UI5Element extends HTMLElement {
|
|
|
529
634
|
_render() {
|
|
530
635
|
const ctor = this.constructor;
|
|
531
636
|
const hasIndividualSlots = ctor.getMetadata().hasIndividualSlots();
|
|
637
|
+
// restore properties that were initialized before `define` by calling the setter
|
|
638
|
+
if (this.initializedProperties.size > 0) {
|
|
639
|
+
Array.from(this.initializedProperties.entries()).forEach(([prop, value]) => {
|
|
640
|
+
delete this[prop];
|
|
641
|
+
this[prop] = value;
|
|
642
|
+
});
|
|
643
|
+
this.initializedProperties.clear();
|
|
644
|
+
}
|
|
532
645
|
// suppress invalidation to prevent state changes scheduling another rendering
|
|
533
646
|
this._suppressInvalidation = true;
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
647
|
+
try {
|
|
648
|
+
this.onBeforeRendering();
|
|
649
|
+
if (!this._rendered) {
|
|
650
|
+
// first time rendering, previous setters might have been initializers from the constructor - update attributes here
|
|
651
|
+
this.updateAttributes();
|
|
652
|
+
}
|
|
653
|
+
// Intended for framework usage only. Currently ItemNavigation updates tab indexes after the component has updated its state but before the template is rendered
|
|
654
|
+
this._componentStateFinalizedEventProvider.fireEvent("componentStateFinalized");
|
|
655
|
+
}
|
|
656
|
+
finally {
|
|
657
|
+
// always resume normal invalidation handling
|
|
658
|
+
this._suppressInvalidation = false;
|
|
538
659
|
}
|
|
539
|
-
// resume normal invalidation handling
|
|
540
|
-
this._suppressInvalidation = false;
|
|
541
660
|
// Update the shadow root with the render result
|
|
542
661
|
/*
|
|
543
662
|
if (this._changedState.length) {
|
|
@@ -560,13 +679,11 @@ class UI5Element extends HTMLElement {
|
|
|
560
679
|
}
|
|
561
680
|
*/
|
|
562
681
|
this._changedState = [];
|
|
563
|
-
// Update shadow root
|
|
682
|
+
// Update shadow root
|
|
564
683
|
if (ctor._needsShadowDOM()) {
|
|
565
684
|
updateShadowRoot(this);
|
|
566
685
|
}
|
|
567
|
-
|
|
568
|
-
this.staticAreaItem.update();
|
|
569
|
-
}
|
|
686
|
+
this._rendered = true;
|
|
570
687
|
// Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM
|
|
571
688
|
if (hasIndividualSlots) {
|
|
572
689
|
this._assignIndividualSlotsToChildren();
|
|
@@ -606,11 +723,7 @@ class UI5Element extends HTMLElement {
|
|
|
606
723
|
if (!this.shadowRoot || this.shadowRoot.children.length === 0) {
|
|
607
724
|
return;
|
|
608
725
|
}
|
|
609
|
-
|
|
610
|
-
if (children.length !== 1) {
|
|
611
|
-
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
|
|
612
|
-
}
|
|
613
|
-
return children[0];
|
|
726
|
+
return this.shadowRoot.children[0];
|
|
614
727
|
}
|
|
615
728
|
/**
|
|
616
729
|
* Returns the DOM Element marked with "data-sap-focus-ref" inside the template.
|
|
@@ -635,13 +748,16 @@ class UI5Element extends HTMLElement {
|
|
|
635
748
|
}
|
|
636
749
|
/**
|
|
637
750
|
* Set the focus to the element, returned by "getFocusDomRef()" (marked by "data-sap-focus-ref")
|
|
638
|
-
* @param
|
|
751
|
+
* @param focusOptions additional options for the focus
|
|
639
752
|
* @public
|
|
640
753
|
*/
|
|
641
754
|
async focus(focusOptions) {
|
|
642
755
|
await this._waitForDomRef();
|
|
643
756
|
const focusDomRef = this.getFocusDomRef();
|
|
644
|
-
if (focusDomRef
|
|
757
|
+
if (focusDomRef === this || !this.isConnected) {
|
|
758
|
+
HTMLElement.prototype.focus.call(this, focusOptions);
|
|
759
|
+
}
|
|
760
|
+
else if (focusDomRef && typeof focusDomRef.focus === "function") {
|
|
645
761
|
focusDomRef.focus(focusOptions);
|
|
646
762
|
}
|
|
647
763
|
}
|
|
@@ -652,13 +768,40 @@ class UI5Element extends HTMLElement {
|
|
|
652
768
|
* @param data - additional data for the event
|
|
653
769
|
* @param cancelable - true, if the user can call preventDefault on the event object
|
|
654
770
|
* @param bubbles - true, if the event bubbles
|
|
655
|
-
* @returns
|
|
771
|
+
* @returns false, if the event was cancelled (preventDefault called), true otherwise
|
|
772
|
+
* @deprecated use fireDecoratorEvent instead
|
|
656
773
|
*/
|
|
657
774
|
fireEvent(name, data, cancelable = false, bubbles = true) {
|
|
658
775
|
const eventResult = this._fireEvent(name, data, cancelable, bubbles);
|
|
659
|
-
const
|
|
660
|
-
|
|
661
|
-
|
|
776
|
+
const pascalCaseEventName = kebabToPascalCase(name);
|
|
777
|
+
// pascal events are more convinient for native react usage
|
|
778
|
+
// live-change:
|
|
779
|
+
// Before: onlive-change
|
|
780
|
+
// After: onLiveChange
|
|
781
|
+
if (pascalCaseEventName !== name) {
|
|
782
|
+
return eventResult && this._fireEvent(pascalCaseEventName, data, cancelable, bubbles);
|
|
783
|
+
}
|
|
784
|
+
return eventResult;
|
|
785
|
+
}
|
|
786
|
+
/**
|
|
787
|
+
* Fires a custom event, configured via the "event" decorator.
|
|
788
|
+
* @public
|
|
789
|
+
* @param name - name of the event
|
|
790
|
+
* @param data - additional data for the event
|
|
791
|
+
* @returns false, if the event was cancelled (preventDefault called), true otherwise
|
|
792
|
+
*/
|
|
793
|
+
fireDecoratorEvent(name, data) {
|
|
794
|
+
const eventData = this.getEventData(name);
|
|
795
|
+
const cancellable = eventData ? eventData.cancelable : false;
|
|
796
|
+
const bubbles = eventData ? eventData.bubbles : false;
|
|
797
|
+
const eventResult = this._fireEvent(name, data, cancellable, bubbles);
|
|
798
|
+
const pascalCaseEventName = kebabToPascalCase(name);
|
|
799
|
+
// pascal events are more convinient for native react usage
|
|
800
|
+
// live-change:
|
|
801
|
+
// Before: onlive-change
|
|
802
|
+
// After: onLiveChange
|
|
803
|
+
if (pascalCaseEventName !== name) {
|
|
804
|
+
return eventResult && this._fireEvent(pascalCaseEventName, data, cancellable, bubbles);
|
|
662
805
|
}
|
|
663
806
|
return eventResult;
|
|
664
807
|
}
|
|
@@ -685,6 +828,11 @@ class UI5Element extends HTMLElement {
|
|
|
685
828
|
// Return false if any of the two events was prevented (its result was false).
|
|
686
829
|
return normalEventResult && noConflictEventResult;
|
|
687
830
|
}
|
|
831
|
+
getEventData(name) {
|
|
832
|
+
const ctor = this.constructor;
|
|
833
|
+
const eventMap = ctor.getMetadata().getEvents();
|
|
834
|
+
return eventMap[name];
|
|
835
|
+
}
|
|
688
836
|
/**
|
|
689
837
|
* Returns the actual children, associated with a slot.
|
|
690
838
|
* Useful when there are transitive slots in nested component scenarios and you don't want to get a list of the slots, but rather of their content.
|
|
@@ -693,12 +841,30 @@ class UI5Element extends HTMLElement {
|
|
|
693
841
|
getSlottedNodes(slotName) {
|
|
694
842
|
return getSlottedNodesList(this[slotName]);
|
|
695
843
|
}
|
|
844
|
+
/**
|
|
845
|
+
* Attach a callback that will be executed whenever the component's state is finalized
|
|
846
|
+
*
|
|
847
|
+
* @param callback
|
|
848
|
+
* @public
|
|
849
|
+
*/
|
|
850
|
+
attachComponentStateFinalized(callback) {
|
|
851
|
+
this._componentStateFinalizedEventProvider.attachEvent("componentStateFinalized", callback);
|
|
852
|
+
}
|
|
853
|
+
/**
|
|
854
|
+
* Detach the callback that is executed whenever the component's state is finalized
|
|
855
|
+
*
|
|
856
|
+
* @param callback
|
|
857
|
+
* @public
|
|
858
|
+
*/
|
|
859
|
+
detachComponentStateFinalized(callback) {
|
|
860
|
+
this._componentStateFinalizedEventProvider.detachEvent("componentStateFinalized", callback);
|
|
861
|
+
}
|
|
696
862
|
/**
|
|
697
863
|
* Determines whether the component should be rendered in RTL mode or not.
|
|
698
864
|
* Returns: "rtl", "ltr" or undefined
|
|
699
865
|
*
|
|
700
866
|
* @public
|
|
701
|
-
* @
|
|
867
|
+
* @default undefined
|
|
702
868
|
*/
|
|
703
869
|
get effectiveDir() {
|
|
704
870
|
markAsRtlAware(this.constructor); // if a UI5 Element calls this method, it's considered to be rtl-aware
|
|
@@ -706,49 +872,50 @@ class UI5Element extends HTMLElement {
|
|
|
706
872
|
}
|
|
707
873
|
/**
|
|
708
874
|
* Used to duck-type UI5 elements without using instanceof
|
|
709
|
-
* @returns {boolean}
|
|
710
875
|
* @public
|
|
876
|
+
* @default true
|
|
711
877
|
*/
|
|
712
878
|
get isUI5Element() {
|
|
713
879
|
return true;
|
|
714
880
|
}
|
|
881
|
+
get isUI5AbstractElement() {
|
|
882
|
+
return !this.constructor._needsShadowDOM();
|
|
883
|
+
}
|
|
715
884
|
get classes() {
|
|
716
885
|
return {};
|
|
717
886
|
}
|
|
718
887
|
/**
|
|
719
|
-
*
|
|
888
|
+
* Returns the component accessibility info.
|
|
720
889
|
* @private
|
|
721
890
|
*/
|
|
722
|
-
|
|
723
|
-
return
|
|
891
|
+
get accessibilityInfo() {
|
|
892
|
+
return {};
|
|
724
893
|
}
|
|
725
894
|
/**
|
|
895
|
+
* Do not override this method in derivatives of UI5Element, use metadata properties instead
|
|
726
896
|
* @private
|
|
727
897
|
*/
|
|
728
|
-
static
|
|
729
|
-
return
|
|
898
|
+
static get observedAttributes() {
|
|
899
|
+
return this.getMetadata().getAttributesList();
|
|
730
900
|
}
|
|
731
901
|
/**
|
|
902
|
+
* Returns all tags, used inside component's template subject to scoping.
|
|
903
|
+
* returns {Array[]} // TODO add @
|
|
732
904
|
* @private
|
|
733
905
|
*/
|
|
734
|
-
static
|
|
735
|
-
|
|
906
|
+
static get tagsToScope() {
|
|
907
|
+
const componentTag = this.getMetadata().getPureTag();
|
|
908
|
+
const tagsToScope = this.getUniqueDependencies().map((dep) => dep.getMetadata().getPureTag()).filter(shouldScopeCustomElement);
|
|
909
|
+
if (shouldScopeCustomElement(componentTag)) {
|
|
910
|
+
tagsToScope.push(componentTag);
|
|
911
|
+
}
|
|
912
|
+
return tagsToScope;
|
|
736
913
|
}
|
|
737
914
|
/**
|
|
738
|
-
* @
|
|
915
|
+
* @private
|
|
739
916
|
*/
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
throw new Error("This component does not use the static area");
|
|
743
|
-
}
|
|
744
|
-
if (!this.staticAreaItem) {
|
|
745
|
-
this.staticAreaItem = StaticAreaItem.createInstance();
|
|
746
|
-
this.staticAreaItem.setOwnerElement(this);
|
|
747
|
-
}
|
|
748
|
-
if (!this.staticAreaItem.parentElement) {
|
|
749
|
-
getSingletonElementInstance("ui5-static-area").appendChild(this.staticAreaItem);
|
|
750
|
-
}
|
|
751
|
-
return this.staticAreaItem.getDomRef();
|
|
917
|
+
static _needsShadowDOM() {
|
|
918
|
+
return !!this.template || Object.prototype.hasOwnProperty.call(this.prototype, "render");
|
|
752
919
|
}
|
|
753
920
|
/**
|
|
754
921
|
* @private
|
|
@@ -762,66 +929,56 @@ class UI5Element extends HTMLElement {
|
|
|
762
929
|
if (!isValidPropertyName(prop)) {
|
|
763
930
|
console.warn(`"${prop}" is not a valid property name. Use a name that does not collide with DOM APIs`); /* eslint-disable-line */
|
|
764
931
|
}
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
if (
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
if (propData.type === Object && propData.defaultValue) {
|
|
772
|
-
throw new Error(`Cannot set a default value for property "${prop}". All properties of type "Object" are empty objects by default.`);
|
|
932
|
+
const descriptor = getPropertyDescriptor(proto, prop);
|
|
933
|
+
// if the decorator is on a setter, proxy the new setter to it
|
|
934
|
+
let origSet;
|
|
935
|
+
if (descriptor?.set) {
|
|
936
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
937
|
+
origSet = descriptor.set;
|
|
773
938
|
}
|
|
774
|
-
if
|
|
775
|
-
|
|
939
|
+
// if the decorator is on a setter, there will be a corresponding getter - proxy the new getter to it
|
|
940
|
+
let origGet;
|
|
941
|
+
if (descriptor?.get) {
|
|
942
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
943
|
+
origGet = descriptor.get;
|
|
776
944
|
}
|
|
777
945
|
Object.defineProperty(proto, prop, {
|
|
778
946
|
get() {
|
|
779
|
-
if
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
const propDefaultValue = propData.defaultValue;
|
|
783
|
-
if (propData.type === Boolean) {
|
|
784
|
-
return false;
|
|
785
|
-
}
|
|
786
|
-
else if (propData.type === String) { // eslint-disable-line
|
|
787
|
-
return propDefaultValue;
|
|
788
|
-
}
|
|
789
|
-
else if (propData.multiple) { // eslint-disable-line
|
|
790
|
-
return [];
|
|
791
|
-
}
|
|
792
|
-
else {
|
|
793
|
-
return propDefaultValue;
|
|
947
|
+
// proxy the getter to the original accessor if there was one
|
|
948
|
+
if (origGet) {
|
|
949
|
+
return origGet.call(this);
|
|
794
950
|
}
|
|
951
|
+
return this._state[prop];
|
|
795
952
|
},
|
|
796
953
|
set(value) {
|
|
797
|
-
let isDifferent;
|
|
798
954
|
const ctor = this.constructor;
|
|
799
|
-
const
|
|
800
|
-
|
|
801
|
-
const propertyType = propData.type;
|
|
802
|
-
let propertyValidator = propData.validator;
|
|
803
|
-
const oldState = this._state[prop];
|
|
804
|
-
if (propertyType && propertyType.isDataTypeClass) {
|
|
805
|
-
propertyValidator = propertyType;
|
|
806
|
-
}
|
|
807
|
-
if (propertyValidator) {
|
|
808
|
-
isDifferent = !propertyValidator.valuesAreEqual(oldState, value);
|
|
809
|
-
}
|
|
810
|
-
else if (Array.isArray(oldState) && Array.isArray(value) && propData.multiple && propData.compareValues) { // compareValues is added for IE, test if needed now
|
|
811
|
-
isDifferent = !arraysAreEqual(oldState, value);
|
|
812
|
-
}
|
|
813
|
-
else {
|
|
814
|
-
isDifferent = oldState !== value;
|
|
815
|
-
}
|
|
955
|
+
const oldState = origGet ? origGet.call(this) : this._state[prop];
|
|
956
|
+
const isDifferent = oldState !== value;
|
|
816
957
|
if (isDifferent) {
|
|
817
|
-
|
|
958
|
+
// if the decorator is on a setter, use it for storage
|
|
959
|
+
if (origSet) {
|
|
960
|
+
origSet.call(this, value);
|
|
961
|
+
}
|
|
962
|
+
else {
|
|
963
|
+
this._state[prop] = value;
|
|
964
|
+
}
|
|
818
965
|
_invalidate.call(this, {
|
|
819
966
|
type: "property",
|
|
820
967
|
name: prop,
|
|
821
968
|
newValue: value,
|
|
822
969
|
oldValue: oldState,
|
|
823
970
|
});
|
|
824
|
-
this.
|
|
971
|
+
if (this._rendered) {
|
|
972
|
+
// the component is already rendered, indicating it is not the constructor -
|
|
973
|
+
// therefore the attribute can be set synchronously.
|
|
974
|
+
// get the effective value of the property,
|
|
975
|
+
// as it might differ from the provided value
|
|
976
|
+
const newValue = origGet ? origGet.call(this) : this._state[prop];
|
|
977
|
+
this._updateAttribute(prop, newValue);
|
|
978
|
+
}
|
|
979
|
+
if (ctor.getMetadata().isFormAssociated()) {
|
|
980
|
+
setFormValue(this);
|
|
981
|
+
}
|
|
825
982
|
}
|
|
826
983
|
},
|
|
827
984
|
});
|
|
@@ -834,7 +991,7 @@ class UI5Element extends HTMLElement {
|
|
|
834
991
|
console.warn(`"${slotName}" is not a valid property name. Use a name that does not collide with DOM APIs`); /* eslint-disable-line */
|
|
835
992
|
}
|
|
836
993
|
const propertyName = slotData.propertyName || slotName;
|
|
837
|
-
|
|
994
|
+
const propertyDescriptor = {
|
|
838
995
|
get() {
|
|
839
996
|
if (this._state[propertyName] !== undefined) {
|
|
840
997
|
return this._state[propertyName];
|
|
@@ -844,34 +1001,29 @@ class UI5Element extends HTMLElement {
|
|
|
844
1001
|
set() {
|
|
845
1002
|
throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)");
|
|
846
1003
|
},
|
|
847
|
-
}
|
|
1004
|
+
};
|
|
1005
|
+
Object.defineProperty(proto, propertyName, propertyDescriptor);
|
|
1006
|
+
if (propertyName !== kebabToCamelCase(propertyName)) {
|
|
1007
|
+
Object.defineProperty(proto, kebabToCamelCase(propertyName), propertyDescriptor);
|
|
1008
|
+
}
|
|
848
1009
|
}
|
|
849
1010
|
}
|
|
850
1011
|
}
|
|
851
|
-
/**
|
|
852
|
-
* Returns the CSS for this UI5 Web Component Class
|
|
853
|
-
* @protected
|
|
854
|
-
*/
|
|
855
|
-
static get styles() {
|
|
856
|
-
return "";
|
|
857
|
-
}
|
|
858
|
-
/**
|
|
859
|
-
* Returns the Static Area CSS for this UI5 Web Component Class
|
|
860
|
-
* @protected
|
|
861
|
-
*/
|
|
862
|
-
static get staticAreaStyles() {
|
|
863
|
-
return "";
|
|
864
|
-
}
|
|
865
1012
|
/**
|
|
866
1013
|
* Returns an array with the dependencies for this UI5 Web Component, which could be:
|
|
867
|
-
* - composed components (used in its shadow root
|
|
1014
|
+
* - composed components (used in its shadow root)
|
|
868
1015
|
* - slotted components that the component may need to communicate with
|
|
869
1016
|
*
|
|
1017
|
+
* @deprecated no longer necessary for jsxRenderer-enabled components
|
|
870
1018
|
* @protected
|
|
871
1019
|
*/
|
|
872
1020
|
static get dependencies() {
|
|
873
1021
|
return [];
|
|
874
1022
|
}
|
|
1023
|
+
static cacheUniqueDependencies() {
|
|
1024
|
+
const filtered = this.dependencies.filter((dep, index, deps) => deps.indexOf(dep) === index);
|
|
1025
|
+
uniqueDependenciesCache.set(this, filtered);
|
|
1026
|
+
}
|
|
875
1027
|
/**
|
|
876
1028
|
* Returns a list of the unique dependencies for this UI5 Web Component
|
|
877
1029
|
*
|
|
@@ -879,39 +1031,54 @@ class UI5Element extends HTMLElement {
|
|
|
879
1031
|
*/
|
|
880
1032
|
static getUniqueDependencies() {
|
|
881
1033
|
if (!uniqueDependenciesCache.has(this)) {
|
|
882
|
-
|
|
883
|
-
uniqueDependenciesCache.set(this, filtered);
|
|
1034
|
+
this.cacheUniqueDependencies();
|
|
884
1035
|
}
|
|
885
1036
|
return uniqueDependenciesCache.get(this) || [];
|
|
886
1037
|
}
|
|
887
|
-
/**
|
|
888
|
-
* Returns a promise that resolves whenever all dependencies for this UI5 Web Component have resolved
|
|
889
|
-
*
|
|
890
|
-
* @returns {Promise}
|
|
891
|
-
*/
|
|
892
|
-
static whenDependenciesDefined() {
|
|
893
|
-
return Promise.all(this.getUniqueDependencies().map(dep => dep.define()));
|
|
894
|
-
}
|
|
895
1038
|
/**
|
|
896
1039
|
* Hook that will be called upon custom element definition
|
|
897
1040
|
*
|
|
898
1041
|
* @protected
|
|
899
|
-
* @
|
|
1042
|
+
* @deprecated use the "i18n" decorator for fetching message bundles and the "cldr" option in the "customElements" decorator for fetching CLDR
|
|
900
1043
|
*/
|
|
901
1044
|
static async onDefine() {
|
|
902
1045
|
return Promise.resolve();
|
|
903
1046
|
}
|
|
1047
|
+
static fetchI18nBundles() {
|
|
1048
|
+
return Promise.all(Object.entries(this.getMetadata().getI18n()).map(pair => {
|
|
1049
|
+
const { bundleName } = pair[1];
|
|
1050
|
+
return getI18nBundle(bundleName);
|
|
1051
|
+
}));
|
|
1052
|
+
}
|
|
1053
|
+
static fetchCLDR() {
|
|
1054
|
+
if (this.getMetadata().needsCLDR()) {
|
|
1055
|
+
return fetchCldr(getLocale().getLanguage(), getLocale().getRegion(), getLocale().getScript());
|
|
1056
|
+
}
|
|
1057
|
+
return Promise.resolve();
|
|
1058
|
+
}
|
|
1059
|
+
static get i18nBundles() {
|
|
1060
|
+
return this.i18nBundleStorage;
|
|
1061
|
+
}
|
|
904
1062
|
/**
|
|
905
1063
|
* Registers a UI5 Web Component in the browser window object
|
|
906
1064
|
* @public
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
1065
|
+
*/
|
|
1066
|
+
static define() {
|
|
1067
|
+
const defineSequence = async () => {
|
|
1068
|
+
await boot(); // boot must finish first, because it initializes configuration
|
|
1069
|
+
const result = await Promise.all([
|
|
1070
|
+
this.fetchI18nBundles(), // uses configuration
|
|
1071
|
+
this.fetchCLDR(),
|
|
1072
|
+
this.onDefine(),
|
|
1073
|
+
]);
|
|
1074
|
+
const [i18nBundles] = result;
|
|
1075
|
+
Object.entries(this.getMetadata().getI18n()).forEach((pair, index) => {
|
|
1076
|
+
const bundleName = pair[1].bundleName;
|
|
1077
|
+
this.i18nBundleStorage[bundleName] = i18nBundles[index];
|
|
1078
|
+
});
|
|
1079
|
+
this.asyncFinished = true;
|
|
1080
|
+
};
|
|
1081
|
+
this.definePromise = defineSequence();
|
|
915
1082
|
const tag = this.getMetadata().getTag();
|
|
916
1083
|
const definedLocally = isTagRegistered(tag);
|
|
917
1084
|
const definedGlobally = customElements.get(tag);
|
|
@@ -921,8 +1088,7 @@ class UI5Element extends HTMLElement {
|
|
|
921
1088
|
else if (!definedGlobally) {
|
|
922
1089
|
this._generateAccessors();
|
|
923
1090
|
registerTag(tag);
|
|
924
|
-
|
|
925
|
-
preloadLinks(this);
|
|
1091
|
+
customElements.define(tag, this);
|
|
926
1092
|
}
|
|
927
1093
|
return this;
|
|
928
1094
|
}
|
|
@@ -930,7 +1096,6 @@ class UI5Element extends HTMLElement {
|
|
|
930
1096
|
* Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')
|
|
931
1097
|
* Note: not to be confused with the "get metadata()" method, which returns an object for this class's metadata only
|
|
932
1098
|
* @public
|
|
933
|
-
* @returns {UI5ElementMetadata}
|
|
934
1099
|
*/
|
|
935
1100
|
static getMetadata() {
|
|
936
1101
|
if (this.hasOwnProperty("_metadata")) { // eslint-disable-line
|
|
@@ -946,19 +1111,28 @@ class UI5Element extends HTMLElement {
|
|
|
946
1111
|
this._metadata = new UI5ElementMetadata(mergedMetadata);
|
|
947
1112
|
return this._metadata;
|
|
948
1113
|
}
|
|
1114
|
+
get validity() { return this._internals.validity; }
|
|
1115
|
+
get validationMessage() { return this._internals.validationMessage; }
|
|
1116
|
+
checkValidity() { return this._internals.checkValidity(); }
|
|
1117
|
+
reportValidity() { return this._internals.reportValidity(); }
|
|
949
1118
|
}
|
|
950
1119
|
/**
|
|
951
1120
|
* Returns the metadata object for this UI5 Web Component Class
|
|
952
1121
|
* @protected
|
|
953
1122
|
*/
|
|
954
1123
|
UI5Element.metadata = {};
|
|
1124
|
+
/**
|
|
1125
|
+
* Returns the CSS for this UI5 Web Component Class
|
|
1126
|
+
* @protected
|
|
1127
|
+
*/
|
|
1128
|
+
UI5Element.styles = "";
|
|
1129
|
+
UI5Element.i18nBundleStorage = {};
|
|
955
1130
|
/**
|
|
956
1131
|
* Always use duck-typing to cover all runtimes on the page.
|
|
957
|
-
* @returns {boolean}
|
|
958
1132
|
*/
|
|
959
1133
|
const instanceOfUI5Element = (object) => {
|
|
960
1134
|
return "isUI5Element" in object;
|
|
961
1135
|
};
|
|
962
1136
|
export default UI5Element;
|
|
963
|
-
export { instanceOfUI5Element };
|
|
1137
|
+
export { instanceOfUI5Element, };
|
|
964
1138
|
//# sourceMappingURL=UI5Element.js.map
|