@ui5/webcomponents-base 2.19.0-rc.2 → 2.19.0

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.
Files changed (74) hide show
  1. package/AGENTS.md +193 -0
  2. package/CHANGELOG.md +20 -0
  3. package/CLAUDE.md +1 -0
  4. package/dist/.tsbuildinfobuild +1 -1
  5. package/dist/UI5Element.d.ts +20 -3
  6. package/dist/UI5Element.js +34 -19
  7. package/dist/UI5Element.js.map +1 -1
  8. package/dist/asset-registries/Themes.d.ts +5 -2
  9. package/dist/asset-registries/Themes.js +3 -3
  10. package/dist/asset-registries/Themes.js.map +1 -1
  11. package/dist/css/SystemCSSVars.css +28 -3
  12. package/dist/custom-elements-internal.json +51 -0
  13. package/dist/custom-elements.json +51 -0
  14. package/dist/decorators/slot-strict.d.ts +4 -0
  15. package/dist/decorators/slot-strict.js +31 -0
  16. package/dist/decorators/slot-strict.js.map +1 -0
  17. package/dist/decorators.d.ts +2 -1
  18. package/dist/decorators.js +2 -1
  19. package/dist/decorators.js.map +1 -1
  20. package/dist/features/InputElementsFormSupport.d.ts +1 -1
  21. package/dist/features/InputElementsFormSupport.js +6 -2
  22. package/dist/features/InputElementsFormSupport.js.map +1 -1
  23. package/dist/generated/VersionInfo.js +3 -3
  24. package/dist/generated/VersionInfo.js.map +1 -1
  25. package/dist/generated/css/SystemCSSVars.css.d.ts +1 -1
  26. package/dist/generated/css/SystemCSSVars.css.js +1 -1
  27. package/dist/generated/css/SystemCSSVars.css.js.map +1 -1
  28. package/dist/index.d.ts +2 -1
  29. package/dist/index.js +2 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/prod/UI5Element.js +1 -1
  32. package/dist/prod/UI5Element.js.map +3 -3
  33. package/dist/prod/asset-registries/Themes.js +1 -1
  34. package/dist/prod/asset-registries/Themes.js.map +3 -3
  35. package/dist/prod/decorators/slot-strict.js +2 -0
  36. package/dist/prod/decorators/slot-strict.js.map +7 -0
  37. package/dist/prod/decorators.js +1 -1
  38. package/dist/prod/decorators.js.map +3 -3
  39. package/dist/prod/features/InputElementsFormSupport.js +1 -1
  40. package/dist/prod/features/InputElementsFormSupport.js.map +3 -3
  41. package/dist/prod/generated/VersionInfo.js +1 -1
  42. package/dist/prod/generated/VersionInfo.js.map +1 -1
  43. package/dist/prod/generated/css/SystemCSSVars.css.js +1 -1
  44. package/dist/prod/generated/css/SystemCSSVars.css.js.map +1 -1
  45. package/dist/prod/index.js +1 -1
  46. package/dist/prod/index.js.map +3 -3
  47. package/dist/prod/theming/applyTheme.js +1 -1
  48. package/dist/prod/theming/applyTheme.js.map +3 -3
  49. package/dist/prod/theming/componentStyles.js +3 -0
  50. package/dist/prod/theming/componentStyles.js.map +7 -0
  51. package/dist/prod/updateShadowRoot.js +1 -1
  52. package/dist/prod/updateShadowRoot.js.map +3 -3
  53. package/dist/prod/util/createInstanceChecker.js +2 -0
  54. package/dist/prod/util/createInstanceChecker.js.map +7 -0
  55. package/dist/prod/util/createMultiInstanceChecker.js +2 -0
  56. package/dist/prod/util/createMultiInstanceChecker.js.map +7 -0
  57. package/dist/theming/applyTheme.js +8 -2
  58. package/dist/theming/applyTheme.js.map +1 -1
  59. package/dist/theming/componentStyles.d.ts +3 -0
  60. package/dist/theming/componentStyles.js +15 -0
  61. package/dist/theming/componentStyles.js.map +1 -0
  62. package/dist/types.d.ts +2 -0
  63. package/dist/types.js.map +1 -1
  64. package/dist/updateShadowRoot.js +2 -1
  65. package/dist/updateShadowRoot.js.map +1 -1
  66. package/dist/util/createInstanceChecker.d.ts +2 -0
  67. package/dist/util/createInstanceChecker.js +8 -0
  68. package/dist/util/createInstanceChecker.js.map +1 -0
  69. package/dist/util/createMultiInstanceChecker.d.ts +2 -0
  70. package/dist/util/createMultiInstanceChecker.js +19 -0
  71. package/dist/util/createMultiInstanceChecker.js.map +1 -0
  72. package/dist/util/getClassCopy.d.ts +2 -1
  73. package/package.json +3 -3
  74. package/src/css/SystemCSSVars.css +28 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// animations/\nimport scroll from \"./animations/scroll.js\";\nimport slideDown from \"./animations/slideDown.js\";\nimport slideUp from \"./animations/slideUp.js\";\n\n// config/\nimport { getAnimationMode, setAnimationMode } from \"./config/AnimationMode.js\";\nimport { getCalendarType } from \"./config/CalendarType.js\";\nimport { getFirstDayOfWeek, getLegacyDateCalendarCustomizing } from \"./config/FormatSettings.js\";\nimport {\n\tsetDefaultIconCollection,\n\tgetDefaultIconCollection,\n} from \"./config/Icons.js\";\nimport { RegisteredIconCollection } from \"./asset-registries/util/IconCollectionsByTheme.js\";\nimport getEffectiveIconCollection from \"./asset-registries/util/getIconCollectionByTheme.js\";\nimport { startMultipleDrag } from \"./DragAndDrop.js\";\nimport {\n\tgetLanguage,\n\tsetLanguage,\n\tgetDefaultLanguage,\n\tsetFetchDefaultLanguage,\n\tgetFetchDefaultLanguage,\n} from \"./config/Language.js\";\nimport { getNoConflict, setNoConflict } from \"./config/NoConflict.js\";\nimport {\n\tgetTheme,\n\tsetTheme,\n\tgetDefaultTheme,\n} from \"./config/Theme.js\";\n\n// decorators/\nimport customElement from \"./decorators/customElement.js\";\nimport event from \"./decorators/event.js\";\nimport property from \"./decorators/property.js\";\nimport slot from \"./decorators/slot.js\";\n\n// delegate/\nimport ItemNavigation from \"./delegate/ItemNavigation.js\";\nimport ResizeHandler from \"./delegate/ResizeHandler.js\";\nimport ScrollEnablement from \"./delegate/ScrollEnablement.js\";\n\n// locale/\nimport applyDirection from \"./locale/applyDirection.js\";\nimport { attachDirectionChange, detachDirectionChange } from \"./locale/directionChange.js\";\nimport getEffectiveDir from \"./locale/getEffectiveDir.js\";\nimport { attachLanguageChange, detachLanguageChange } from \"./locale/languageChange.js\";\n\n// util/\nimport { URLListValidator, sanitizeHTML } from \"./util/HTMLSanitizer.js\";\n\n// Assets.ts\nimport { registerI18nLoader } from \"./asset-registries/i18n.js\";\nimport { registerLocaleDataLoader } from \"./asset-registries/LocaleData.js\";\nimport { registerThemePropertiesLoader } from \"./asset-registries/Themes.js\";\nimport { registerIconLoader } from \"./asset-registries/Icons.js\";\n\n// Boot.ts\nimport { attachBoot } from \"./Boot.js\";\n\n// CustomElementsScope.ts\nimport {\n\tsetCustomElementsScopingSuffix,\n\tgetCustomElementsScopingSuffix,\n\tsetCustomElementsScopingRules,\n\tgetCustomElementsScopingRules,\n\tgetEffectiveScopingSuffixForTag,\n} from \"./CustomElementsScope.js\";\n\n// Device.ts\nimport {\n\tsupportsTouch,\n\tisSafari,\n\tisChrome,\n\tisFirefox,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n\tisIOS,\n\tisAndroid,\n} from \"./Device.js\";\n\n// EventProvider.ts\nimport EventProvider from \"./EventProvider.js\";\n\n// i18nBundle.ts\nimport I18nBundle, { getI18nBundle, registerCustomI18nBundleGetter } from \"./i18nBundle.js\";\n\n// MediaRange.ts\nimport MediaRange from \"./MediaRange.js\";\n\n// Render.ts\nimport {\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n} from \"./Render.js\";\n\n// Theming.ts\nimport { addCustomCSS, attachThemeLoaded, detachThemeLoaded } from \"./Theming.js\";\n\n// UI5Element.ts\nimport UI5Element from \"./UI5Element.js\";\n\nexport default UI5Element;\nexport {\n\t// drag and drop\n\tstartMultipleDrag,\n\n\t// animations/\n\tscroll,\n\tslideDown,\n\tslideUp,\n\n\t// config/\n\tgetAnimationMode,\n\tsetAnimationMode,\n\tgetCalendarType,\n\tgetFirstDayOfWeek,\n\tgetLegacyDateCalendarCustomizing,\n\tsetDefaultIconCollection,\n\tgetDefaultIconCollection,\n\tgetEffectiveIconCollection,\n\tRegisteredIconCollection,\n\tgetLanguage,\n\tsetLanguage,\n\tgetDefaultLanguage,\n\tsetFetchDefaultLanguage,\n\tgetFetchDefaultLanguage,\n\tgetNoConflict,\n\tsetNoConflict,\n\tgetTheme,\n\tsetTheme,\n\tgetDefaultTheme,\n\n\t// decorators/\n\tcustomElement,\n\tevent,\n\tproperty,\n\tslot,\n\n\t// delegate/\n\tItemNavigation,\n\tResizeHandler,\n\tScrollEnablement,\n\n\t// locale/\n\tapplyDirection,\n\tattachDirectionChange,\n\tdetachDirectionChange,\n\tgetEffectiveDir,\n\tattachLanguageChange,\n\tdetachLanguageChange,\n\n\t// util/\n\tURLListValidator,\n\tsanitizeHTML,\n\n\t// Assets.ts\n\tregisterI18nLoader,\n\tregisterLocaleDataLoader,\n\tregisterThemePropertiesLoader,\n\tregisterIconLoader,\n\n\t// Boot.ts\n\tattachBoot,\n\n\t// CustomElementsScope.ts\n\tsetCustomElementsScopingSuffix,\n\tgetCustomElementsScopingSuffix,\n\tsetCustomElementsScopingRules,\n\tgetCustomElementsScopingRules,\n\tgetEffectiveScopingSuffixForTag,\n\n\t// Device.ts\n\tsupportsTouch,\n\tisSafari,\n\tisChrome,\n\tisFirefox,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n\tisIOS,\n\tisAndroid,\n\n\t// EventProvider.ts\n\tEventProvider,\n\n\t// i18nBundle.ts\n\tI18nBundle,\n\tgetI18nBundle,\n\tregisterCustomI18nBundleGetter,\n\n\t// MediaRange.ts\n\tMediaRange,\n\n\t// Render.ts\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n\n\t// Theming.ts\n\taddCustomCSS,\n\tattachThemeLoaded,\n\tdetachThemeLoaded,\n\n\t// UI5Element.ts\n\tUI5Element,\n};\n\ntype TargetedCustomEvent<D, T> = Omit<CustomEvent<D>, \"currentTarget\"> & { currentTarget: T };\n// export type UI5NativeEvent<T extends keyof HTMLElementTagNameMap, N> = Parameters<JSX.IntrinsicElements[T][N]>[0];\nexport type UI5CustomEvent<T extends UI5Element, N extends keyof T[\"eventDetails\"]> = TargetedCustomEvent<T[\"eventDetails\"][N], T>;\nexport type JsxTemplateResult = JSX.Element | void;\nexport type JsxTemplate = () => JsxTemplateResult;\n\nexport type * from \"./types.d.ts\";\nexport type * from \"./jsx-runtime.d.ts\";\n"],
5
- "mappings": "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",
6
- "names": ["scroll", "slideDown", "slideUp", "getAnimationMode", "setAnimationMode", "getCalendarType", "getFirstDayOfWeek", "getLegacyDateCalendarCustomizing", "setDefaultIconCollection", "getDefaultIconCollection", "RegisteredIconCollection", "getEffectiveIconCollection", "startMultipleDrag", "getLanguage", "setLanguage", "getDefaultLanguage", "setFetchDefaultLanguage", "getFetchDefaultLanguage", "getNoConflict", "setNoConflict", "getTheme", "setTheme", "getDefaultTheme", "customElement", "event", "property", "slot", "ItemNavigation", "ResizeHandler", "ScrollEnablement", "applyDirection", "attachDirectionChange", "detachDirectionChange", "getEffectiveDir", "attachLanguageChange", "detachLanguageChange", "URLListValidator", "sanitizeHTML", "registerI18nLoader", "registerLocaleDataLoader", "registerThemePropertiesLoader", "registerIconLoader", "attachBoot", "setCustomElementsScopingSuffix", "getCustomElementsScopingSuffix", "setCustomElementsScopingRules", "getCustomElementsScopingRules", "getEffectiveScopingSuffixForTag", "supportsTouch", "isSafari", "isChrome", "isFirefox", "isPhone", "isTablet", "isDesktop", "isCombi", "isIOS", "isAndroid", "EventProvider", "I18nBundle", "getI18nBundle", "registerCustomI18nBundleGetter", "MediaRange", "renderDeferred", "renderImmediately", "cancelRender", "renderFinished", "addCustomCSS", "attachThemeLoaded", "detachThemeLoaded", "UI5Element"]
4
+ "sourcesContent": ["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// animations/\nimport scroll from \"./animations/scroll.js\";\nimport slideDown from \"./animations/slideDown.js\";\nimport slideUp from \"./animations/slideUp.js\";\n\n// config/\nimport { getAnimationMode, setAnimationMode } from \"./config/AnimationMode.js\";\nimport { getCalendarType } from \"./config/CalendarType.js\";\nimport { getFirstDayOfWeek, getLegacyDateCalendarCustomizing } from \"./config/FormatSettings.js\";\nimport {\n\tsetDefaultIconCollection,\n\tgetDefaultIconCollection,\n} from \"./config/Icons.js\";\nimport { RegisteredIconCollection } from \"./asset-registries/util/IconCollectionsByTheme.js\";\nimport getEffectiveIconCollection from \"./asset-registries/util/getIconCollectionByTheme.js\";\nimport { startMultipleDrag } from \"./DragAndDrop.js\";\nimport {\n\tgetLanguage,\n\tsetLanguage,\n\tgetDefaultLanguage,\n\tsetFetchDefaultLanguage,\n\tgetFetchDefaultLanguage,\n} from \"./config/Language.js\";\nimport { getNoConflict, setNoConflict } from \"./config/NoConflict.js\";\nimport {\n\tgetTheme,\n\tsetTheme,\n\tgetDefaultTheme,\n} from \"./config/Theme.js\";\n\n// decorators/\nimport customElement from \"./decorators/customElement.js\";\nimport event from \"./decorators/event.js\";\nimport property from \"./decorators/property.js\";\nimport slot from \"./decorators/slot.js\";\nimport slotStrict from \"./decorators/slot-strict.js\";\n\n// delegate/\nimport ItemNavigation from \"./delegate/ItemNavigation.js\";\nimport ResizeHandler from \"./delegate/ResizeHandler.js\";\nimport ScrollEnablement from \"./delegate/ScrollEnablement.js\";\n\n// locale/\nimport applyDirection from \"./locale/applyDirection.js\";\nimport { attachDirectionChange, detachDirectionChange } from \"./locale/directionChange.js\";\nimport getEffectiveDir from \"./locale/getEffectiveDir.js\";\nimport { attachLanguageChange, detachLanguageChange } from \"./locale/languageChange.js\";\n\n// util/\nimport { URLListValidator, sanitizeHTML } from \"./util/HTMLSanitizer.js\";\n\n// Assets.ts\nimport { registerI18nLoader } from \"./asset-registries/i18n.js\";\nimport { registerLocaleDataLoader } from \"./asset-registries/LocaleData.js\";\nimport { registerThemePropertiesLoader } from \"./asset-registries/Themes.js\";\nimport { registerIconLoader } from \"./asset-registries/Icons.js\";\n\n// Boot.ts\nimport { attachBoot } from \"./Boot.js\";\n\n// CustomElementsScope.ts\nimport {\n\tsetCustomElementsScopingSuffix,\n\tgetCustomElementsScopingSuffix,\n\tsetCustomElementsScopingRules,\n\tgetCustomElementsScopingRules,\n\tgetEffectiveScopingSuffixForTag,\n} from \"./CustomElementsScope.js\";\n\n// Device.ts\nimport {\n\tsupportsTouch,\n\tisSafari,\n\tisChrome,\n\tisFirefox,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n\tisIOS,\n\tisAndroid,\n} from \"./Device.js\";\n\n// EventProvider.ts\nimport EventProvider from \"./EventProvider.js\";\n\n// i18nBundle.ts\nimport I18nBundle, { getI18nBundle, registerCustomI18nBundleGetter } from \"./i18nBundle.js\";\n\n// MediaRange.ts\nimport MediaRange from \"./MediaRange.js\";\n\n// Render.ts\nimport {\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n} from \"./Render.js\";\n\n// Theming.ts\nimport { addCustomCSS, attachThemeLoaded, detachThemeLoaded } from \"./Theming.js\";\n\n// UI5Element.ts\nimport UI5Element from \"./UI5Element.js\";\n\nexport default UI5Element;\nexport {\n\t// drag and drop\n\tstartMultipleDrag,\n\n\t// animations/\n\tscroll,\n\tslideDown,\n\tslideUp,\n\n\t// config/\n\tgetAnimationMode,\n\tsetAnimationMode,\n\tgetCalendarType,\n\tgetFirstDayOfWeek,\n\tgetLegacyDateCalendarCustomizing,\n\tsetDefaultIconCollection,\n\tgetDefaultIconCollection,\n\tgetEffectiveIconCollection,\n\tRegisteredIconCollection,\n\tgetLanguage,\n\tsetLanguage,\n\tgetDefaultLanguage,\n\tsetFetchDefaultLanguage,\n\tgetFetchDefaultLanguage,\n\tgetNoConflict,\n\tsetNoConflict,\n\tgetTheme,\n\tsetTheme,\n\tgetDefaultTheme,\n\n\t// decorators/\n\tcustomElement,\n\tevent,\n\tproperty,\n\tslot,\n\tslotStrict,\n\n\t// delegate/\n\tItemNavigation,\n\tResizeHandler,\n\tScrollEnablement,\n\n\t// locale/\n\tapplyDirection,\n\tattachDirectionChange,\n\tdetachDirectionChange,\n\tgetEffectiveDir,\n\tattachLanguageChange,\n\tdetachLanguageChange,\n\n\t// util/\n\tURLListValidator,\n\tsanitizeHTML,\n\n\t// Assets.ts\n\tregisterI18nLoader,\n\tregisterLocaleDataLoader,\n\tregisterThemePropertiesLoader,\n\tregisterIconLoader,\n\n\t// Boot.ts\n\tattachBoot,\n\n\t// CustomElementsScope.ts\n\tsetCustomElementsScopingSuffix,\n\tgetCustomElementsScopingSuffix,\n\tsetCustomElementsScopingRules,\n\tgetCustomElementsScopingRules,\n\tgetEffectiveScopingSuffixForTag,\n\n\t// Device.ts\n\tsupportsTouch,\n\tisSafari,\n\tisChrome,\n\tisFirefox,\n\tisPhone,\n\tisTablet,\n\tisDesktop,\n\tisCombi,\n\tisIOS,\n\tisAndroid,\n\n\t// EventProvider.ts\n\tEventProvider,\n\n\t// i18nBundle.ts\n\tI18nBundle,\n\tgetI18nBundle,\n\tregisterCustomI18nBundleGetter,\n\n\t// MediaRange.ts\n\tMediaRange,\n\n\t// Render.ts\n\trenderDeferred,\n\trenderImmediately,\n\tcancelRender,\n\trenderFinished,\n\n\t// Theming.ts\n\taddCustomCSS,\n\tattachThemeLoaded,\n\tdetachThemeLoaded,\n\n\t// UI5Element.ts\n\tUI5Element,\n};\n\ntype TargetedCustomEvent<D, T> = Omit<CustomEvent<D>, \"currentTarget\"> & { currentTarget: T };\n// export type UI5NativeEvent<T extends keyof HTMLElementTagNameMap, N> = Parameters<JSX.IntrinsicElements[T][N]>[0];\nexport type UI5CustomEvent<T extends UI5Element, N extends keyof T[\"eventDetails\"]> = TargetedCustomEvent<T[\"eventDetails\"][N], T>;\nexport type JsxTemplateResult = JSX.Element | void;\nexport type JsxTemplate = () => JsxTemplateResult;\n\nexport type * from \"./types.d.ts\";\nexport type * from \"./jsx-runtime.d.ts\";\n"],
5
+ "mappings": "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",
6
+ "names": ["scroll", "slideDown", "slideUp", "getAnimationMode", "setAnimationMode", "getCalendarType", "getFirstDayOfWeek", "getLegacyDateCalendarCustomizing", "setDefaultIconCollection", "getDefaultIconCollection", "RegisteredIconCollection", "getEffectiveIconCollection", "startMultipleDrag", "getLanguage", "setLanguage", "getDefaultLanguage", "setFetchDefaultLanguage", "getFetchDefaultLanguage", "getNoConflict", "setNoConflict", "getTheme", "setTheme", "getDefaultTheme", "customElement", "event", "property", "slot", "slotStrict", "ItemNavigation", "ResizeHandler", "ScrollEnablement", "applyDirection", "attachDirectionChange", "detachDirectionChange", "getEffectiveDir", "attachLanguageChange", "detachLanguageChange", "URLListValidator", "sanitizeHTML", "registerI18nLoader", "registerLocaleDataLoader", "registerThemePropertiesLoader", "registerIconLoader", "attachBoot", "setCustomElementsScopingSuffix", "getCustomElementsScopingSuffix", "setCustomElementsScopingRules", "getCustomElementsScopingRules", "getEffectiveScopingSuffixForTag", "supportsTouch", "isSafari", "isChrome", "isFirefox", "isPhone", "isTablet", "isDesktop", "isCombi", "isIOS", "isAndroid", "EventProvider", "I18nBundle", "getI18nBundle", "registerCustomI18nBundleGetter", "MediaRange", "renderDeferred", "renderImmediately", "cancelRender", "renderFinished", "addCustomCSS", "attachThemeLoaded", "detachThemeLoaded", "UI5Element"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";import{getThemeProperties as n,getRegisteredPackages as m,isThemeRegistered as d}from"../asset-registries/Themes.js";import{removeStyle as g,createOrUpdateStyle as p}from"../ManagedStyles.js";import c from"./getThemeDesignerTheme.js";import{fireThemeLoaded as f}from"./ThemeLoaded.js";import{getFeature as u}from"../FeaturesRegistry.js";import{attachCustomThemeStylesToHead as T,getThemeRoot as h}from"../config/ThemeRoot.js";import{setBaseTheme as l}from"../config/Theme.js";import{DEFAULT_THEME as y}from"../generated/AssetParameters.js";import{getCurrentRuntimeIndex as S}from"../Runtimes.js";export let _lib="ui5",_package="webcomponents-theming";const o="@"+_lib+"/"+_package,P=()=>m().has(o),x=async e=>{if(!P())return;const t=await n(o,e);t&&p(t,"data-ui5-theme-properties",o,e)},E=()=>{g("data-ui5-theme-properties",o)},U=async(e,t)=>{const s=[...m()].map(async a=>{if(a===o)return;const i=await n(a,e,t);i&&p(i,`data-ui5-component-properties-${S()}`,a)});return Promise.all(s)},b=async e=>{const t=c();if(t)return t;const r=u("OpenUI5Support");if(r&&r.isOpenUI5Detected()){if(r.cssVariablesLoaded())return{themeName:r.getConfigurationSettingsObject()?.theme,baseThemeName:""}}else if(h())return await T(e),c()},w=async e=>{const t=await b(e);!t||e!==t.themeName?await x(e):E();const r=t&&t.themeName===e?e:void 0,s=t&&t.baseThemeName,a=d(e)?e:s||y;await U(a,r),l(s),f(e)};export default w;
1
+ "use strict";import{getThemeProperties as m,getRegisteredPackages as p,isThemeRegistered as f}from"../asset-registries/Themes.js";import{removeStyle as g,createOrUpdateStyle as c}from"../ManagedStyles.js";import d from"./getThemeDesignerTheme.js";import{fireThemeLoaded as u}from"./ThemeLoaded.js";import{getFeature as T}from"../FeaturesRegistry.js";import{attachCustomThemeStylesToHead as h,getThemeRoot as l}from"../config/ThemeRoot.js";import{setBaseTheme as y}from"../config/Theme.js";import{DEFAULT_THEME as S}from"../generated/AssetParameters.js";import{getCurrentRuntimeIndex as P}from"../Runtimes.js";import{updateComponentStyles as x}from"./componentStyles.js";export let _lib="ui5",_package="webcomponents-theming";const a="@"+_lib+"/"+_package,E=()=>p().has(a),U=async e=>{if(!E())return;const t=await m(a,e);t&&c(t,"data-ui5-theme-properties",a,e)},w=()=>{g("data-ui5-theme-properties",a)},I=async(e,t)=>{const o=[...p().entries()].map(async([s,{cssVariablesTarget:n}])=>{if(s===a)return;const i=await m(s,e,t);i&&(n==="root"?c(i,`data-ui5-component-properties-${P()}`,s):n==="host"&&x(s,i))});return Promise.all(o)},O=async e=>{const t=d();if(t)return t;const r=T("OpenUI5Support");if(r&&r.isOpenUI5Detected()){if(r.cssVariablesLoaded())return{themeName:r.getConfigurationSettingsObject()?.theme,baseThemeName:""}}else if(l())return await h(e),d()},b=async e=>{const t=await O(e);!t||e!==t.themeName?await U(e):w();const r=t&&t.themeName===e?e:void 0,o=t&&t.baseThemeName,s=f(e)?e:o||S;await I(s,r),y(o),u(e)};export default b;
2
2
  //# sourceMappingURL=applyTheme.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/theming/applyTheme.ts"],
4
- "sourcesContent": ["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { setBaseTheme } from \"../config/Theme.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isOpenUI5Detected()) {\n\t\tconst varsLoaded = openUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName\n\t\t\t\tbaseThemeName: \"\", // baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t} else if (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\n\t\treturn getThemeDesignerTheme();\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst externalThemeName = extTheme && extTheme.themeName === theme ? theme : undefined;\n\tconst baseThemeName = extTheme && extTheme.baseThemeName;\n\tconst effectiveThemeName = isThemeRegistered(theme) ? theme : (baseThemeName || DEFAULT_THEME);\n\n\tawait loadComponentPackages(effectiveThemeName, externalThemeName);\n\n\tsetBaseTheme(baseThemeName);\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"],
5
- "mappings": "aAAA,OAAS,sBAAAA,EAAoB,yBAAAC,EAAuB,qBAAAC,MAAyB,gCAC7E,OAAS,eAAAC,EAAa,uBAAAC,MAA2B,sBACjD,OAAOC,MAA2B,6BAClC,OAAS,mBAAAC,MAAuB,mBAChC,OAAS,cAAAC,MAAkB,yBAC3B,OAAS,iCAAAC,EAA+B,gBAAAC,MAAoB,yBAC5D,OAAS,gBAAAC,MAAoB,qBAE7B,OAAS,iBAAAC,MAAqB,kCAC9B,OAAS,0BAAAC,MAA8B,iBAGhC,WAAI,KAAO,MAEP,SAAW,wBAEtB,MAAMC,EAAqB,IAAM,KAAO,IAAM,SAExCC,EAAwB,IACFb,EAAsB,EACvB,IAAIY,CAAkB,EAG3CE,EAAgB,MAAOC,GAAkB,CAC9C,GAAI,CAACF,EAAsB,EAC1B,OAGD,MAAMG,EAAU,MAAMjB,EAAmBa,EAAoBG,CAAK,EAC9DC,GACHb,EAAoBa,EAAS,4BAA6BJ,EAAoBG,CAAK,CAErF,EAEME,EAAkB,IAAM,CAC7Bf,EAAY,4BAA6BU,CAAkB,CAC5D,EAEMM,EAAwB,MAAOH,EAAeI,IAA+B,CAGlF,MAAMC,EAAyB,CAAC,GAFLpB,EAAsB,CAEI,EAAE,IAAI,MAAMqB,GAAe,CAC/E,GAAIA,IAAgBT,EACnB,OAGD,MAAMI,EAAU,MAAMjB,EAAmBsB,EAAaN,EAAOI,CAAiB,EAC1EH,GACHb,EAAoBa,EAAS,iCAAiCL,EAAuB,CAAC,GAAIU,CAAW,CAEvG,CAAC,EAED,OAAO,QAAQ,IAAID,CAAsB,CAC1C,EAEME,EAAsB,MAAOP,GAAkB,CAEpD,MAAMQ,EAAWnB,EAAsB,EACvC,GAAImB,EACH,OAAOA,EAIR,MAAMC,EAAiBlB,EAAkC,gBAAgB,EACzE,GAAIkB,GAAkBA,EAAe,kBAAkB,GAEtD,GADmBA,EAAe,mBAAmB,EAEpD,MAAO,CACN,UAAWA,EAAe,+BAA+B,GAAG,MAC5D,cAAe,EAChB,UAEShB,EAAa,EACvB,aAAMD,EAA8BQ,CAAK,EAElCX,EAAsB,CAE/B,EAEMqB,EAAa,MAAOV,GAAkB,CAC3C,MAAMQ,EAAW,MAAMD,EAAoBP,CAAK,EAG5C,CAACQ,GAAYR,IAAUQ,EAAS,UACnC,MAAMT,EAAcC,CAAK,EAEzBE,EAAgB,EAIjB,MAAME,EAAoBI,GAAYA,EAAS,YAAcR,EAAQA,EAAQ,OACvEW,EAAgBH,GAAYA,EAAS,cACrCI,EAAqB1B,EAAkBc,CAAK,EAAIA,EAASW,GAAiBhB,EAEhF,MAAMQ,EAAsBS,EAAoBR,CAAiB,EAEjEV,EAAaiB,CAAa,EAC1BrB,EAAgBU,CAAK,CACtB,EAEA,eAAeU",
6
- "names": ["getThemeProperties", "getRegisteredPackages", "isThemeRegistered", "removeStyle", "createOrUpdateStyle", "getThemeDesignerTheme", "fireThemeLoaded", "getFeature", "attachCustomThemeStylesToHead", "getThemeRoot", "setBaseTheme", "DEFAULT_THEME", "getCurrentRuntimeIndex", "BASE_THEME_PACKAGE", "isThemeBaseRegistered", "loadThemeBase", "theme", "cssData", "deleteThemeBase", "loadComponentPackages", "externalThemeName", "packagesStylesPromises", "packageName", "detectExternalTheme", "extTheme", "openUI5Support", "applyTheme", "baseThemeName", "effectiveThemeName"]
4
+ "sourcesContent": ["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { setBaseTheme } from \"../config/Theme.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\nimport { updateComponentStyles } from \"./componentStyles.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages.entries()].map(async ([packageName, { cssVariablesTarget }]) => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tif (cssVariablesTarget === \"root\") {\n\t\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t\t} else if (cssVariablesTarget === \"host\") {\n\t\t\t\tupdateComponentStyles(packageName, cssData);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isOpenUI5Detected()) {\n\t\tconst varsLoaded = openUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName\n\t\t\t\tbaseThemeName: \"\", // baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t} else if (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\n\t\treturn getThemeDesignerTheme();\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst externalThemeName = extTheme && extTheme.themeName === theme ? theme : undefined;\n\tconst baseThemeName = extTheme && extTheme.baseThemeName;\n\tconst effectiveThemeName = isThemeRegistered(theme) ? theme : (baseThemeName || DEFAULT_THEME);\n\n\tawait loadComponentPackages(effectiveThemeName, externalThemeName);\n\n\tsetBaseTheme(baseThemeName);\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"],
5
+ "mappings": "aAAA,OAAS,sBAAAA,EAAoB,yBAAAC,EAAuB,qBAAAC,MAAyB,gCAC7E,OAAS,eAAAC,EAAa,uBAAAC,MAA2B,sBACjD,OAAOC,MAA2B,6BAClC,OAAS,mBAAAC,MAAuB,mBAChC,OAAS,cAAAC,MAAkB,yBAC3B,OAAS,iCAAAC,EAA+B,gBAAAC,MAAoB,yBAC5D,OAAS,gBAAAC,MAAoB,qBAE7B,OAAS,iBAAAC,MAAqB,kCAC9B,OAAS,0BAAAC,MAA8B,iBACvC,OAAS,yBAAAC,MAA6B,uBAG/B,WAAI,KAAO,MAEP,SAAW,wBAEtB,MAAMC,EAAqB,IAAM,KAAO,IAAM,SAExCC,EAAwB,IACFd,EAAsB,EACvB,IAAIa,CAAkB,EAG3CE,EAAgB,MAAOC,GAAkB,CAC9C,GAAI,CAACF,EAAsB,EAC1B,OAGD,MAAMG,EAAU,MAAMlB,EAAmBc,EAAoBG,CAAK,EAC9DC,GACHd,EAAoBc,EAAS,4BAA6BJ,EAAoBG,CAAK,CAErF,EAEME,EAAkB,IAAM,CAC7BhB,EAAY,4BAA6BW,CAAkB,CAC5D,EAEMM,EAAwB,MAAOH,EAAeI,IAA+B,CAGlF,MAAMC,EAAyB,CAAC,GAFLrB,EAAsB,EAEK,QAAQ,CAAC,EAAE,IAAI,MAAO,CAACsB,EAAa,CAAE,mBAAAC,CAAmB,CAAC,IAAM,CACrH,GAAID,IAAgBT,EACnB,OAGD,MAAMI,EAAU,MAAMlB,EAAmBuB,EAAaN,EAAOI,CAAiB,EAC1EH,IACCM,IAAuB,OAC1BpB,EAAoBc,EAAS,iCAAiCN,EAAuB,CAAC,GAAIW,CAAW,EAC3FC,IAAuB,QACjCX,EAAsBU,EAAaL,CAAO,EAG7C,CAAC,EAED,OAAO,QAAQ,IAAII,CAAsB,CAC1C,EAEMG,EAAsB,MAAOR,GAAkB,CAEpD,MAAMS,EAAWrB,EAAsB,EACvC,GAAIqB,EACH,OAAOA,EAIR,MAAMC,EAAiBpB,EAAkC,gBAAgB,EACzE,GAAIoB,GAAkBA,EAAe,kBAAkB,GAEtD,GADmBA,EAAe,mBAAmB,EAEpD,MAAO,CACN,UAAWA,EAAe,+BAA+B,GAAG,MAC5D,cAAe,EAChB,UAESlB,EAAa,EACvB,aAAMD,EAA8BS,CAAK,EAElCZ,EAAsB,CAE/B,EAEMuB,EAAa,MAAOX,GAAkB,CAC3C,MAAMS,EAAW,MAAMD,EAAoBR,CAAK,EAG5C,CAACS,GAAYT,IAAUS,EAAS,UACnC,MAAMV,EAAcC,CAAK,EAEzBE,EAAgB,EAIjB,MAAME,EAAoBK,GAAYA,EAAS,YAAcT,EAAQA,EAAQ,OACvEY,EAAgBH,GAAYA,EAAS,cACrCI,EAAqB5B,EAAkBe,CAAK,EAAIA,EAASY,GAAiBlB,EAEhF,MAAMS,EAAsBU,EAAoBT,CAAiB,EAEjEX,EAAamB,CAAa,EAC1BvB,EAAgBW,CAAK,CACtB,EAEA,eAAeW",
6
+ "names": ["getThemeProperties", "getRegisteredPackages", "isThemeRegistered", "removeStyle", "createOrUpdateStyle", "getThemeDesignerTheme", "fireThemeLoaded", "getFeature", "attachCustomThemeStylesToHead", "getThemeRoot", "setBaseTheme", "DEFAULT_THEME", "getCurrentRuntimeIndex", "updateComponentStyles", "BASE_THEME_PACKAGE", "isThemeBaseRegistered", "loadThemeBase", "theme", "cssData", "deleteThemeBase", "loadComponentPackages", "externalThemeName", "packagesStylesPromises", "packageName", "cssVariablesTarget", "detectExternalTheme", "extTheme", "openUI5Support", "applyTheme", "baseThemeName", "effectiveThemeName"]
7
7
  }
@@ -0,0 +1,3 @@
1
+ "use strict";const t=new Map;let e;const n=()=>(e||(e=new CSSStyleSheet),e),r=(o,s)=>{t.set(o,s);const S=Array.from(t.values()).join(`
2
+ `);n().replaceSync(S)};export{n as getComponentStyles,r as updateComponentStyles};
3
+ //# sourceMappingURL=componentStyles.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/theming/componentStyles.ts"],
4
+ "sourcesContent": ["const packageMap = new Map<string, string>();\nlet componentsStyleSheet: CSSStyleSheet;\n\nconst getComponentStyles = () => {\n\tif (!componentsStyleSheet) {\n\t\tcomponentsStyleSheet = new CSSStyleSheet();\n\t}\n\n\treturn componentsStyleSheet;\n};\n\nconst updateComponentStyles = (packageName: string, content: string) => {\n\tpackageMap.set(packageName, content);\n\n\tconst combinedStyles = Array.from(packageMap.values()).join(\"\\n\");\n\tgetComponentStyles().replaceSync(combinedStyles);\n};\n\nexport {\n\tgetComponentStyles,\n\tupdateComponentStyles,\n};\n"],
5
+ "mappings": "aAAA,MAAMA,EAAa,IAAI,IACvB,IAAIC,EAEJ,MAAMC,EAAqB,KACrBD,IACJA,EAAuB,IAAI,eAGrBA,GAGFE,EAAwB,CAACC,EAAqBC,IAAoB,CACvEL,EAAW,IAAII,EAAaC,CAAO,EAEnC,MAAMC,EAAiB,MAAM,KAAKN,EAAW,OAAO,CAAC,EAAE,KAAK;AAAA,CAAI,EAChEE,EAAmB,EAAE,YAAYI,CAAc,CAChD,EAEA,OACCJ,KAAA,mBACAC,KAAA",
6
+ "names": ["packageMap", "componentsStyleSheet", "getComponentStyles", "updateComponentStyles", "packageName", "content", "combinedStyles"]
7
+ }
@@ -1,2 +1,2 @@
1
- "use strict";import r from"./theming/getConstructableStyle.js";const s=o=>{const e=o.constructor,t=o.shadowRoot;if(!t){console.warn("There is no shadow root to update");return}t.adoptedStyleSheets=r(e),e.renderer(o,t)};export default s;
1
+ "use strict";import r from"./theming/getConstructableStyle.js";import{getComponentStyles as n}from"./theming/componentStyles.js";const s=o=>{const e=o.constructor,t=o.shadowRoot;if(!t){console.warn("There is no shadow root to update");return}t.adoptedStyleSheets=[n(),...r(e)],e.renderer(o,t)};export default s;
2
2
  //# sourceMappingURL=updateShadowRoot.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/updateShadowRoot.ts"],
4
- "sourcesContent": ["import getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport type UI5Element from \"./UI5Element.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n */\nconst updateShadowRoot = (element: UI5Element) => {\n\tconst ctor = element.constructor as typeof UI5Element;\n\tconst shadowRoot = element.shadowRoot;\n\n\tif (!shadowRoot) {\n\t\tconsole.warn(`There is no shadow root to update`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\tshadowRoot.adoptedStyleSheets = getConstructableStyle(ctor);\n\tctor.renderer(element, shadowRoot);\n};\n\nexport default updateShadowRoot;\n"],
5
- "mappings": "aAAA,OAAOA,MAA2B,qCAOlC,MAAMC,EAAoBC,GAAwB,CACjD,MAAMC,EAAOD,EAAQ,YACfE,EAAaF,EAAQ,WAE3B,GAAI,CAACE,EAAY,CAChB,QAAQ,KAAK,mCAAmC,EAChD,MACD,CAEAA,EAAW,mBAAqBJ,EAAsBG,CAAI,EAC1DA,EAAK,SAASD,EAASE,CAAU,CAClC,EAEA,eAAeH",
6
- "names": ["getConstructableStyle", "updateShadowRoot", "element", "ctor", "shadowRoot"]
4
+ "sourcesContent": ["import getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport { getComponentStyles } from \"./theming/componentStyles.js\";\nimport type UI5Element from \"./UI5Element.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n */\nconst updateShadowRoot = (element: UI5Element) => {\n\tconst ctor = element.constructor as typeof UI5Element;\n\tconst shadowRoot = element.shadowRoot;\n\n\tif (!shadowRoot) {\n\t\tconsole.warn(`There is no shadow root to update`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\tshadowRoot.adoptedStyleSheets = [getComponentStyles(), ...getConstructableStyle(ctor)];\n\tctor.renderer(element, shadowRoot);\n};\n\nexport default updateShadowRoot;\n"],
5
+ "mappings": "aAAA,OAAOA,MAA2B,qCAClC,OAAS,sBAAAC,MAA0B,+BAOnC,MAAMC,EAAoBC,GAAwB,CACjD,MAAMC,EAAOD,EAAQ,YACfE,EAAaF,EAAQ,WAE3B,GAAI,CAACE,EAAY,CAChB,QAAQ,KAAK,mCAAmC,EAChD,MACD,CAEAA,EAAW,mBAAqB,CAACJ,EAAmB,EAAG,GAAGD,EAAsBI,CAAI,CAAC,EACrFA,EAAK,SAASD,EAASE,CAAU,CAClC,EAEA,eAAeH",
6
+ "names": ["getConstructableStyle", "getComponentStyles", "updateShadowRoot", "element", "ctor", "shadowRoot"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";function r(n){return e=>e!==void 0&&n in e&&e[n]===!0}export default r;
2
+ //# sourceMappingURL=createInstanceChecker.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/createInstanceChecker.ts"],
4
+ "sourcesContent": ["// createInstanceChecker<A>(\"isAItem\")\nfunction createChecker<T, P extends keyof T = keyof T>(prop: P) {\n\treturn (object: any): object is T => {\n\t\treturn object !== undefined && prop in object && object[prop] === true;\n\t};\n}\n\nexport default createChecker;\n"],
5
+ "mappings": "aACA,SAASA,EAA8CC,EAAS,CAC/D,OAAQC,GACAA,IAAW,QAAaD,KAAQC,GAAUA,EAAOD,CAAI,IAAM,EAEpE,CAEA,eAAeD",
6
+ "names": ["createChecker", "prop", "object"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";export const createMultiInstanceChecker=r=>e=>e?(Array.isArray(r)?r:[r]).some(t=>t in e&&e[t]===!0):!1;export default createMultiInstanceChecker;
2
+ //# sourceMappingURL=createMultiInstanceChecker.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/createMultiInstanceChecker.ts"],
4
+ "sourcesContent": ["// Allows filtering of multiple types at once\n// const isInstanceOfAOrB = createMultiInstanceChecker<A | B>([\"isAItem\", \"isBItem\"])\n// const filteredItems = items.filter(isInstanceOfAOrB)\n//\n// Alternatively, use \"createInstanceChecker\" and filter separately:\n// const isInstanceOfA = createInstanceChecker<A>(\"isAItem\");\n// const isInstanceOfB = createInstanceChecker<A>(\"isBItem\")\n// const filteredItems = [...items.filter(isInstanceOfA), ...items.filter(isInstanceOfB)];\nexport const createMultiInstanceChecker = <T>(props: string[] | string) => {\n\treturn (object: any): object is T => {\n\t\tif (!object) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst propsArray = Array.isArray(props) ? props : [props];\n\t\treturn propsArray.some(prop => prop in object && object[prop] === true);\n\t};\n};\n\nexport default createMultiInstanceChecker;\n"],
5
+ "mappings": "aAQO,aAAM,2BAAiCA,GACrCC,GACFA,GAIc,MAAM,QAAQD,CAAK,EAAIA,EAAQ,CAACA,CAAK,GACtC,KAAKE,GAAQA,KAAQD,GAAUA,EAAOC,CAAI,IAAM,EAAI,EAJ9D,GAQV,eAAe",
6
+ "names": ["props", "object", "prop"]
7
+ }
@@ -7,6 +7,7 @@ import { attachCustomThemeStylesToHead, getThemeRoot } from "../config/ThemeRoot
7
7
  import { setBaseTheme } from "../config/Theme.js";
8
8
  import { DEFAULT_THEME } from "../generated/AssetParameters.js";
9
9
  import { getCurrentRuntimeIndex } from "../Runtimes.js";
10
+ import { updateComponentStyles } from "./componentStyles.js";
10
11
  // eslint-disable-next-line
11
12
  export let _lib = "ui5";
12
13
  // eslint-disable-next-line
@@ -31,13 +32,18 @@ const deleteThemeBase = () => {
31
32
  };
32
33
  const loadComponentPackages = async (theme, externalThemeName) => {
33
34
  const registeredPackages = getRegisteredPackages();
34
- const packagesStylesPromises = [...registeredPackages].map(async (packageName) => {
35
+ const packagesStylesPromises = [...registeredPackages.entries()].map(async ([packageName, { cssVariablesTarget }]) => {
35
36
  if (packageName === BASE_THEME_PACKAGE) {
36
37
  return;
37
38
  }
38
39
  const cssData = await getThemeProperties(packageName, theme, externalThemeName);
39
40
  if (cssData) {
40
- createOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);
41
+ if (cssVariablesTarget === "root") {
42
+ createOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);
43
+ }
44
+ else if (cssVariablesTarget === "host") {
45
+ updateComponentStyles(packageName, cssData);
46
+ }
41
47
  }
42
48
  });
43
49
  return Promise.all(packagesStylesPromises);
@@ -1 +1 @@
1
- {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../src/theming/applyTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { setBaseTheme } from \"../config/Theme.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isOpenUI5Detected()) {\n\t\tconst varsLoaded = openUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName\n\t\t\t\tbaseThemeName: \"\", // baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t} else if (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\n\t\treturn getThemeDesignerTheme();\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst externalThemeName = extTheme && extTheme.themeName === theme ? theme : undefined;\n\tconst baseThemeName = extTheme && extTheme.baseThemeName;\n\tconst effectiveThemeName = isThemeRegistered(theme) ? theme : (baseThemeName || DEFAULT_THEME);\n\n\tawait loadComponentPackages(effectiveThemeName, externalThemeName);\n\n\tsetBaseTheme(baseThemeName);\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"]}
1
+ {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../src/theming/applyTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,2BAA2B;AAC3B,MAAM,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;AACxB,2BAA2B;AAC3B,MAAM,CAAC,IAAI,QAAQ,GAAG,uBAAuB,CAAC;AAC9C,2BAA2B;AAC3B,MAAM,kBAAkB,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC;AAEvD,MAAM,qBAAqB,GAAG,GAAG,EAAE;IAClC,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,OAAO,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC7C,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;QAC9B,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,OAAO,EAAE,CAAC;QACb,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IACtF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,WAAW,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAa,EAAE,iBAA0B,EAAE,EAAE;IACjF,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IAEnD,MAAM,sBAAsB,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE;QACpH,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;YACxC,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAChF,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,kBAAkB,KAAK,MAAM,EAAE,CAAC;gBACnC,mBAAmB,CAAC,OAAO,EAAE,iCAAiC,sBAAsB,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YACxG,CAAC;iBAAM,IAAI,kBAAkB,KAAK,MAAM,EAAE,CAAC;gBAC1C,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IACnD,gDAAgD;IAChD,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,uEAAuE;IACvE,MAAM,cAAc,GAAG,UAAU,CAAwB,gBAAgB,CAAC,CAAC;IAC3E,IAAI,cAAc,IAAI,cAAc,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YAChB,OAAO;gBACN,SAAS,EAAE,cAAc,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,iBAAiB;gBACpF,aAAa,EAAE,EAAE,EAAE,mDAAmD;aACtE,CAAC;QACH,CAAC;IACF,CAAC;SAAM,IAAI,YAAY,EAAE,EAAE,CAAC;QAC3B,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAE3C,OAAO,qBAAqB,EAAE,CAAC;IAChC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC1C,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAElD,kHAAkH;IAClH,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC/C,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACP,eAAe,EAAE,CAAC;IACnB,CAAC;IAED,wGAAwG;IACxG,MAAM,iBAAiB,GAAG,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,aAAa,GAAG,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IACzD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,CAAC;IAE/F,MAAM,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IAEnE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC5B,eAAe,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport { setBaseTheme } from \"../config/Theme.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\nimport { updateComponentStyles } from \"./componentStyles.js\";\n\n// eslint-disable-next-line\nexport let _lib = \"ui5\";\n// eslint-disable-next-line\nexport let _package = \"webcomponents-theming\";\n// eslint-disable-next-line\nconst BASE_THEME_PACKAGE = \"@\" + _lib + \"/\" + _package;\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE, theme);\n\t}\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async (theme: string, externalThemeName?: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages.entries()].map(async ([packageName, { cssVariablesTarget }]) => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme, externalThemeName);\n\t\tif (cssData) {\n\t\t\tif (cssVariablesTarget === \"root\") {\n\t\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t\t} else if (cssVariablesTarget === \"host\") {\n\t\t\t\tupdateComponentStyles(packageName, cssData);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isOpenUI5Detected()) {\n\t\tconst varsLoaded = openUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName\n\t\t\t\tbaseThemeName: \"\", // baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t} else if (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\n\t\treturn getThemeDesignerTheme();\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst externalThemeName = extTheme && extTheme.themeName === theme ? theme : undefined;\n\tconst baseThemeName = extTheme && extTheme.baseThemeName;\n\tconst effectiveThemeName = isThemeRegistered(theme) ? theme : (baseThemeName || DEFAULT_THEME);\n\n\tawait loadComponentPackages(effectiveThemeName, externalThemeName);\n\n\tsetBaseTheme(baseThemeName);\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"]}
@@ -0,0 +1,3 @@
1
+ declare const getComponentStyles: () => CSSStyleSheet;
2
+ declare const updateComponentStyles: (packageName: string, content: string) => void;
3
+ export { getComponentStyles, updateComponentStyles, };
@@ -0,0 +1,15 @@
1
+ const packageMap = new Map();
2
+ let componentsStyleSheet;
3
+ const getComponentStyles = () => {
4
+ if (!componentsStyleSheet) {
5
+ componentsStyleSheet = new CSSStyleSheet();
6
+ }
7
+ return componentsStyleSheet;
8
+ };
9
+ const updateComponentStyles = (packageName, content) => {
10
+ packageMap.set(packageName, content);
11
+ const combinedStyles = Array.from(packageMap.values()).join("\n");
12
+ getComponentStyles().replaceSync(combinedStyles);
13
+ };
14
+ export { getComponentStyles, updateComponentStyles, };
15
+ //# sourceMappingURL=componentStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"componentStyles.js","sourceRoot":"","sources":["../../src/theming/componentStyles.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC7C,IAAI,oBAAmC,CAAC;AAExC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC3B,oBAAoB,GAAG,IAAI,aAAa,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,OAAe,EAAE,EAAE;IACtE,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAErC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,kBAAkB,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,OAAO,EACN,kBAAkB,EAClB,qBAAqB,GACrB,CAAC","sourcesContent":["const packageMap = new Map<string, string>();\nlet componentsStyleSheet: CSSStyleSheet;\n\nconst getComponentStyles = () => {\n\tif (!componentsStyleSheet) {\n\t\tcomponentsStyleSheet = new CSSStyleSheet();\n\t}\n\n\treturn componentsStyleSheet;\n};\n\nconst updateComponentStyles = (packageName: string, content: string) => {\n\tpackageMap.set(packageName, content);\n\n\tconst combinedStyles = Array.from(packageMap.values()).join(\"\\n\");\n\tgetComponentStyles().replaceSync(combinedStyles);\n};\n\nexport {\n\tgetComponentStyles,\n\tupdateComponentStyles,\n};\n"]}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import type { JSX } from "./jsx-runtime.d.ts";
2
+ import type { Slot, DefaultSlot } from "./UI5Element.js";
2
3
  export type LowercaseString<T> = T extends string ? Lowercase<T> : never;
4
+ export type { Slot, DefaultSlot, };
3
5
  export type PromiseResolve = (value: void | PromiseLike<void>) => void;
4
6
  export type Timeout = ReturnType<typeof setTimeout>;
5
7
  export type Interval = ReturnType<typeof setInterval>;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// General utils\nexport type LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\n// Core Framework types\nexport type PromiseResolve = (value: void | PromiseLike<void>) => void;\nexport type Timeout = ReturnType<typeof setTimeout>;\nexport type Interval = ReturnType<typeof setInterval>;\n\nexport type StyleData = string;\n\nexport type ComponentStylesData = Array<ComponentStylesData> | string;\nexport type ClassMapValue = Record<string, boolean>\n\nexport type ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\nexport type PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\n// Accessibility\nexport type AriaRole = JSX.AriaRole;\nexport type AriaDisabled = JSX.AriaAttributes[\"aria-disabled\"];\nexport type AriaChecked = JSX.AriaAttributes[\"aria-checked\"];\nexport type AriaReadonly = JSX.AriaAttributes[\"aria-readonly\"];\nexport type AriaHasPopup = \"dialog\" | \"grid\" | \"listbox\" | \"menu\" | \"tree\" | \"false\";\nexport type AriaCurrent = \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | boolean | undefined;\nexport type AriaAutoComplete = \"list\" | \"none\" | \"inline\" | \"both\" | undefined;\nexport type AriaLandmarkRole = \"none\" | \"banner\" | \"main\" | \"region\" | \"navigation\" | \"search\" | \"complementary\" | \"form\" | \"contentinfo\"\n\nexport type AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: AriaRole,\n\n\t// A translated text that represents the component type.\n\ttype?: string,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, etc.\n\tdescription?: string,\n\n\t// Label of the component, e.g. `accessible-name` or `accessible-name-ref` for form elements.\n\tlabel?: string,\n\n\t// Disabled state of the component.\n\tdisabled?: boolean,\n\n\t// Readonly state of the component.\n\treadonly?: boolean,\n\n\t// Required state of the component.\n\trequired?: boolean,\n\n\t// An array of nodes, aggregated by the component\n\t// **Note:** Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<Node>,\n}\n\nexport type AccessibilityAttributes = {\n\tariaSetsize?: number,\n\tariaPosinset?: number,\n\tariaLabel?: string,\n\tcontrols?: LowercaseString<string>\n\texpanded?: \"true\" | \"false\" | boolean,\n\thasPopup?: AriaHasPopup,\n\tname?: string,\n\trole?: AriaRole,\n\tariaKeyShortcuts?: string,\n\tariaCurrent?: AriaCurrent,\n\tcurrent?: AriaCurrent,\n\troleDescription?: string,\n\ttitle?: string,\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { JSX } from \"./jsx-runtime.d.ts\";\nimport type { Slot, DefaultSlot } from \"./UI5Element.js\";\n\n// General utils\nexport type LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\n// Core Framework types\nexport type {\n\tSlot,\n\tDefaultSlot,\n};\n\nexport type PromiseResolve = (value: void | PromiseLike<void>) => void;\nexport type Timeout = ReturnType<typeof setTimeout>;\nexport type Interval = ReturnType<typeof setInterval>;\n\nexport type StyleData = string;\n\nexport type ComponentStylesData = Array<ComponentStylesData> | string;\nexport type ClassMapValue = Record<string, boolean>\n\nexport type ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\nexport type PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\n// Accessibility\nexport type AriaRole = JSX.AriaRole;\nexport type AriaDisabled = JSX.AriaAttributes[\"aria-disabled\"];\nexport type AriaChecked = JSX.AriaAttributes[\"aria-checked\"];\nexport type AriaReadonly = JSX.AriaAttributes[\"aria-readonly\"];\nexport type AriaHasPopup = \"dialog\" | \"grid\" | \"listbox\" | \"menu\" | \"tree\" | \"false\";\nexport type AriaCurrent = \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | boolean | undefined;\nexport type AriaAutoComplete = \"list\" | \"none\" | \"inline\" | \"both\" | undefined;\nexport type AriaLandmarkRole = \"none\" | \"banner\" | \"main\" | \"region\" | \"navigation\" | \"search\" | \"complementary\" | \"form\" | \"contentinfo\"\n\nexport type AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: AriaRole,\n\n\t// A translated text that represents the component type.\n\ttype?: string,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, etc.\n\tdescription?: string,\n\n\t// Label of the component, e.g. `accessible-name` or `accessible-name-ref` for form elements.\n\tlabel?: string,\n\n\t// Disabled state of the component.\n\tdisabled?: boolean,\n\n\t// Readonly state of the component.\n\treadonly?: boolean,\n\n\t// Required state of the component.\n\trequired?: boolean,\n\n\t// An array of nodes, aggregated by the component\n\t// **Note:** Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<Node>,\n}\n\nexport type AccessibilityAttributes = {\n\tariaSetsize?: number,\n\tariaPosinset?: number,\n\tariaLabel?: string,\n\tcontrols?: LowercaseString<string>\n\texpanded?: \"true\" | \"false\" | boolean,\n\thasPopup?: AriaHasPopup,\n\tname?: string,\n\trole?: AriaRole,\n\tariaKeyShortcuts?: string,\n\tariaCurrent?: AriaCurrent,\n\tcurrent?: AriaCurrent,\n\troleDescription?: string,\n\ttitle?: string,\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import getConstructableStyle from "./theming/getConstructableStyle.js";
2
+ import { getComponentStyles } from "./theming/componentStyles.js";
2
3
  /**
3
4
  * Updates the shadow root of a UI5Element or its static area item
4
5
  * @param element
@@ -10,7 +11,7 @@ const updateShadowRoot = (element) => {
10
11
  console.warn(`There is no shadow root to update`); // eslint-disable-line
11
12
  return;
12
13
  }
13
- shadowRoot.adoptedStyleSheets = getConstructableStyle(ctor);
14
+ shadowRoot.adoptedStyleSheets = [getComponentStyles(), ...getConstructableStyle(ctor)];
14
15
  ctor.renderer(element, shadowRoot);
15
16
  };
16
17
  export default updateShadowRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"updateShadowRoot.js","sourceRoot":"","sources":["../src/updateShadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AAGvE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAE,EAAE;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAgC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC,sBAAsB;QACzE,OAAO;IACR,CAAC;IAED,UAAU,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport type UI5Element from \"./UI5Element.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n */\nconst updateShadowRoot = (element: UI5Element) => {\n\tconst ctor = element.constructor as typeof UI5Element;\n\tconst shadowRoot = element.shadowRoot;\n\n\tif (!shadowRoot) {\n\t\tconsole.warn(`There is no shadow root to update`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\tshadowRoot.adoptedStyleSheets = getConstructableStyle(ctor);\n\tctor.renderer(element, shadowRoot);\n};\n\nexport default updateShadowRoot;\n"]}
1
+ {"version":3,"file":"updateShadowRoot.js","sourceRoot":"","sources":["../src/updateShadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAmB,EAAE,EAAE;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAgC,CAAC;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC,sBAAsB;QACzE,OAAO;IACR,CAAC;IAED,UAAU,CAAC,kBAAkB,GAAG,CAAC,kBAAkB,EAAE,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import getConstructableStyle from \"./theming/getConstructableStyle.js\";\nimport { getComponentStyles } from \"./theming/componentStyles.js\";\nimport type UI5Element from \"./UI5Element.js\";\n\n/**\n * Updates the shadow root of a UI5Element or its static area item\n * @param element\n */\nconst updateShadowRoot = (element: UI5Element) => {\n\tconst ctor = element.constructor as typeof UI5Element;\n\tconst shadowRoot = element.shadowRoot;\n\n\tif (!shadowRoot) {\n\t\tconsole.warn(`There is no shadow root to update`); // eslint-disable-line\n\t\treturn;\n\t}\n\n\tshadowRoot.adoptedStyleSheets = [getComponentStyles(), ...getConstructableStyle(ctor)];\n\tctor.renderer(element, shadowRoot);\n};\n\nexport default updateShadowRoot;\n"]}
@@ -0,0 +1,2 @@
1
+ declare function createChecker<T, P extends keyof T = keyof T>(prop: P): (object: any) => object is T;
2
+ export default createChecker;
@@ -0,0 +1,8 @@
1
+ // createInstanceChecker<A>("isAItem")
2
+ function createChecker(prop) {
3
+ return (object) => {
4
+ return object !== undefined && prop in object && object[prop] === true;
5
+ };
6
+ }
7
+ export default createChecker;
8
+ //# sourceMappingURL=createInstanceChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createInstanceChecker.js","sourceRoot":"","sources":["../../src/util/createInstanceChecker.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,SAAS,aAAa,CAAiC,IAAO;IAC7D,OAAO,CAAC,MAAW,EAAe,EAAE;QACnC,OAAO,MAAM,KAAK,SAAS,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACxE,CAAC,CAAC;AACH,CAAC;AAED,eAAe,aAAa,CAAC","sourcesContent":["// createInstanceChecker<A>(\"isAItem\")\nfunction createChecker<T, P extends keyof T = keyof T>(prop: P) {\n\treturn (object: any): object is T => {\n\t\treturn object !== undefined && prop in object && object[prop] === true;\n\t};\n}\n\nexport default createChecker;\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const createMultiInstanceChecker: <T>(props: string[] | string) => (object: any) => object is T;
2
+ export default createMultiInstanceChecker;
@@ -0,0 +1,19 @@
1
+ // Allows filtering of multiple types at once
2
+ // const isInstanceOfAOrB = createMultiInstanceChecker<A | B>(["isAItem", "isBItem"])
3
+ // const filteredItems = items.filter(isInstanceOfAOrB)
4
+ //
5
+ // Alternatively, use "createInstanceChecker" and filter separately:
6
+ // const isInstanceOfA = createInstanceChecker<A>("isAItem");
7
+ // const isInstanceOfB = createInstanceChecker<A>("isBItem")
8
+ // const filteredItems = [...items.filter(isInstanceOfA), ...items.filter(isInstanceOfB)];
9
+ export const createMultiInstanceChecker = (props) => {
10
+ return (object) => {
11
+ if (!object) {
12
+ return false;
13
+ }
14
+ const propsArray = Array.isArray(props) ? props : [props];
15
+ return propsArray.some(prop => prop in object && object[prop] === true);
16
+ };
17
+ };
18
+ export default createMultiInstanceChecker;
19
+ //# sourceMappingURL=createMultiInstanceChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMultiInstanceChecker.js","sourceRoot":"","sources":["../../src/util/createMultiInstanceChecker.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qFAAqF;AACrF,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,6DAA6D;AAC7D,4DAA4D;AAC5D,0FAA0F;AAC1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAI,KAAwB,EAAE,EAAE;IACzE,OAAO,CAAC,MAAW,EAAe,EAAE;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,0BAA0B,CAAC","sourcesContent":["// Allows filtering of multiple types at once\n// const isInstanceOfAOrB = createMultiInstanceChecker<A | B>([\"isAItem\", \"isBItem\"])\n// const filteredItems = items.filter(isInstanceOfAOrB)\n//\n// Alternatively, use \"createInstanceChecker\" and filter separately:\n// const isInstanceOfA = createInstanceChecker<A>(\"isAItem\");\n// const isInstanceOfB = createInstanceChecker<A>(\"isBItem\")\n// const filteredItems = [...items.filter(isInstanceOfA), ...items.filter(isInstanceOfB)];\nexport const createMultiInstanceChecker = <T>(props: string[] | string) => {\n\treturn (object: any): object is T => {\n\t\tif (!object) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst propsArray = Array.isArray(props) ? props : [props];\n\t\treturn propsArray.some(prop => prop in object && object[prop] === true);\n\t};\n};\n\nexport default createMultiInstanceChecker;\n"]}
@@ -32,6 +32,7 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
32
32
  readonly _id: string;
33
33
  render(): object;
34
34
  connectedCallback(): Promise<void>;
35
+ readonly definePromise: Promise<void>;
35
36
  disconnectedCallback(): void;
36
37
  onBeforeRendering(): void;
37
38
  onAfterRendering(): void;
@@ -433,7 +434,7 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
433
434
  fetchI18nBundles(): Promise<import("../i18nBundle.js").default[]>;
434
435
  fetchCLDR(): Promise<void>;
435
436
  asyncFinished: boolean;
436
- definePromise: Promise<void> | undefined;
437
+ _definePromise: Promise<void> | undefined;
437
438
  i18nBundleStorage: Record<string, import("../i18nBundle.js").default>;
438
439
  readonly i18nBundles: Record<string, import("../i18nBundle.js").default>;
439
440
  define(): typeof UI5Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "2.19.0-rc.2",
3
+ "version": "2.19.0",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -64,7 +64,7 @@
64
64
  "@openui5/sap.ui.core": "1.120.17",
65
65
  "@sap-theming/theming-base-content": "11.29.3",
66
66
  "@ui5/cypress-internal": "0.1.0",
67
- "@ui5/webcomponents-tools": "2.19.0-rc.2",
67
+ "@ui5/webcomponents-tools": "2.19.0",
68
68
  "clean-css": "^5.2.2",
69
69
  "cypress": "^15.3.0",
70
70
  "mocha": "^11.7.2",
@@ -75,5 +75,5 @@
75
75
  "vite": "5.4.21"
76
76
  },
77
77
  "customElements": "dist/custom-elements.json",
78
- "gitHead": "4407982a1dd6a3799413303d1157fc5e9fb96260"
78
+ "gitHead": "a926cd9d74fdc66b22609eb80b26015ba5391cea"
79
79
  }
@@ -1,9 +1,34 @@
1
1
  :root {
2
- --_ui5_content_density:cozy;
2
+ /*
3
+ Use a non-existent variable to always trigger the fallback.
4
+ Because this variable is never defined, the fallback is used
5
+ in all cases.
6
+
7
+ Using `initial` as a fallback can work only for properties
8
+ that treat it as an invalid value. To avoid this inconsistency,
9
+ we intentionally reference an undefined variable, which is
10
+ always considered invalid and undefined.
11
+ */
12
+ --_ui5-cozy-size: var(--_ui5-f2d95f8);
13
+
14
+ --_ui5-compact-size: ;
15
+ --_ui5_content_density: cozy;
3
16
  }
4
17
 
5
18
  [data-ui5-compact-size],
6
19
  .ui5-content-density-compact,
7
20
  .sapUiSizeCompact {
8
- --_ui5_content_density:compact;
9
- }
21
+ --_ui5-cozy-size: ;
22
+ /*
23
+ Use a non-existent variable to always trigger the fallback.
24
+ Because this variable is never defined, the fallback is used
25
+ in all cases.
26
+
27
+ Using `initial` as a fallback can work only for properties
28
+ that treat it as an invalid value. To avoid this inconsistency,
29
+ we intentionally reference an undefined variable, which is
30
+ always considered invalid and undefined.
31
+ */
32
+ --_ui5-compact-size: var(--_ui5-f2d95f8);
33
+ --_ui5_content_density: compact;
34
+ }