@fundamental-ngx/ui5-webcomponents-base 0.58.0-rc.1

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/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # ui5-webcomponents-base
2
+
3
+ ui5-wecomponents-base package
@@ -0,0 +1,186 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, computed, inject, signal, effect, isDevMode, Injectable } from '@angular/core';
3
+ import { setTheme } from '@ui5/webcomponents-base/dist/config/Theme.js';
4
+
5
+ const UI5_THEMING_CONFIGURATION = new InjectionToken('Ui5 global theming configuration.');
6
+
7
+ // ui5-theming.service.ts
8
+ class Ui5ThemingService {
9
+ constructor() {
10
+ this.availableThemes = computed(() => {
11
+ const providers = this._providers();
12
+ const uniqueThemes = new Set();
13
+ // Using a normal loop to handle synchronous and asynchronous results
14
+ for (const provider of providers) {
15
+ const themes = provider.getAvailableThemes();
16
+ if (Array.isArray(themes)) {
17
+ themes.forEach(theme => uniqueThemes.add(theme));
18
+ }
19
+ else {
20
+ // TODO Since providers now return a promise, we'd need to handle this asynchronously
21
+ // For simplicity, we'll assume a `Promise` is returned and handle it inside the effect
22
+ }
23
+ }
24
+ return [...uniqueThemes.values()];
25
+ }, ...(ngDevMode ? [{ debugName: "availableThemes" }] : []));
26
+ this._config = inject(UI5_THEMING_CONFIGURATION, { optional: true });
27
+ this._providers = signal([], ...(ngDevMode ? [{ debugName: "_providers" }] : []));
28
+ this._currentTheme = signal(this._config?.defaultTheme || 'sap_fiori_3', ...(ngDevMode ? [{ debugName: "_currentTheme" }] : []));
29
+ effect(async () => {
30
+ const newTheme = this._currentTheme();
31
+ const providers = this._providers();
32
+ if (providers.length === 0) {
33
+ return;
34
+ }
35
+ const results = await Promise.all(providers.map(async (provider) => {
36
+ const isSupported = await provider.supportsTheme(newTheme);
37
+ return { provider, isSupported };
38
+ }));
39
+ const unsupportedProviders = results.filter(r => !r.isSupported);
40
+ if (unsupportedProviders.length > 0 && isDevMode()) {
41
+ console.warn(`The following providers do not support the theme "${newTheme}":`, unsupportedProviders.map(({ provider }) => provider.name));
42
+ }
43
+ await Promise.all(results.filter(r => r.isSupported).map(({ provider }) => provider.setTheme(newTheme)));
44
+ });
45
+ }
46
+ getAvailableThemes() {
47
+ return this.availableThemes();
48
+ }
49
+ supportsTheme(themeName) {
50
+ return Promise.resolve(this.availableThemes().includes(themeName));
51
+ }
52
+ registerProvider(provider) {
53
+ const providers = this._providers();
54
+ if (!providers.includes(provider)) {
55
+ this._providers.update(currentProviders => [...currentProviders, provider]);
56
+ }
57
+ }
58
+ unregisterProvider(provider) {
59
+ this._providers.update(currentProviders => currentProviders.filter(p => p !== provider));
60
+ }
61
+ setTheme(theme) {
62
+ this._currentTheme.set(theme);
63
+ return Promise.resolve(true);
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Ui5ThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
66
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Ui5ThemingService, providedIn: 'root' }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Ui5ThemingService, decorators: [{
69
+ type: Injectable,
70
+ args: [{
71
+ providedIn: 'root'
72
+ }]
73
+ }], ctorParameters: () => [] });
74
+
75
+ var supportedThemes = ["node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json", "node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json"];
76
+
77
+ /**
78
+ * @file Defines the abstract base class for theming providers in Angular,
79
+ * designed to integrate with UI5 Web Components' theme management.
80
+ *
81
+ * This provider registers itself with a global theming service (if available) and
82
+ * manages a list of supported themes, allowing other parts of the application
83
+ * to query theme support and apply themes to the underlying UI5 Web Components.
84
+ */
85
+ // base-webcomponents-theming-provider.ts
86
+ /**
87
+ * @description
88
+ * Abstract base class for UI5 Web Components theming providers.
89
+ *
90
+ * Components extending this class are responsible for providing the necessary theme resources
91
+ * (via the `registerThemes` callback) and exposing the supported themes. It integrates
92
+ * with the global {@link Ui5ThemingService} to make its themes available application-wide.
93
+ *
94
+ * @implements {Ui5ThemingProvider}
95
+ * @implements {OnDestroy}
96
+ */
97
+ class WebcomponentsThemingProvider {
98
+ /** @hidden */
99
+ constructor(registerThemes) {
100
+ this.registerThemes = registerThemes;
101
+ /**
102
+ * @description
103
+ * A signal containing the list of themes supported by this provider.
104
+ * It is initialized with the themes loaded from the `supported-themes` file.
105
+ */
106
+ this.availableThemes = signal(supportedThemes, ...(ngDevMode ? [{ debugName: "availableThemes" }] : []));
107
+ /**
108
+ * @description
109
+ * Reference to the global {@link Ui5ThemingService}, injected optionally.
110
+ * The provider registers itself here if the global service is available.
111
+ */
112
+ this._globalThemingService = inject(Ui5ThemingService, { optional: true });
113
+ this.registerThemes().then(() => {
114
+ this._globalThemingService?.registerProvider(this);
115
+ });
116
+ }
117
+ /** @hidden */
118
+ ngOnDestroy() {
119
+ this._globalThemingService?.unregisterProvider(this);
120
+ }
121
+ /**
122
+ * @description
123
+ * Checks if a specific theme name is supported by this provider.
124
+ * @param theme The name of the theme to check (e.g., 'sap_horizon').
125
+ * @returns `true` if the theme is supported, `false` otherwise.
126
+ */
127
+ supportsTheme(theme) {
128
+ return this.availableThemes().includes(theme);
129
+ }
130
+ /**
131
+ * @description
132
+ * Retrieves the list of theme names supported by this provider.
133
+ * @returns An array of supported theme names.
134
+ */
135
+ getAvailableThemes() {
136
+ return this.availableThemes();
137
+ }
138
+ /**
139
+ * @description
140
+ * Attempts to set the given theme globally for all UI5 Web Components.
141
+ *
142
+ * The theme is only applied if it is included in the list of available themes
143
+ * managed by this provider.
144
+ *
145
+ * @param theme The name of the theme to apply.
146
+ * @returns A promise that resolves to `true` if the theme was applied, or `false` if the theme is not supported.
147
+ */
148
+ async setTheme(theme) {
149
+ const supported = this.availableThemes().includes(theme);
150
+ if (supported) {
151
+ setTheme(theme);
152
+ }
153
+ return supported;
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: WebcomponentsThemingProvider, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
156
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: WebcomponentsThemingProvider }); }
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: WebcomponentsThemingProvider, decorators: [{
159
+ type: Injectable
160
+ }], ctorParameters: () => [{ type: undefined }] });
161
+
162
+ /**
163
+ * Theming service specifically for the ui5/webcomponents-ngx components.
164
+ */
165
+ class Ui5WebcomponentsThemingService extends WebcomponentsThemingProvider {
166
+ /** @hidden */
167
+ constructor() {
168
+ super(() => import('@ui5/webcomponents-theming/dist/generated/json-imports/Themes.js'));
169
+ this.name = 'ui5-webcomponents-theming-service';
170
+ }
171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Ui5WebcomponentsThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
172
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Ui5WebcomponentsThemingService, providedIn: 'root' }); }
173
+ }
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: Ui5WebcomponentsThemingService, decorators: [{
175
+ type: Injectable,
176
+ args: [{
177
+ providedIn: 'root'
178
+ }]
179
+ }], ctorParameters: () => [] });
180
+
181
+ /**
182
+ * Generated bundle index. Do not edit.
183
+ */
184
+
185
+ export { UI5_THEMING_CONFIGURATION, Ui5ThemingService, Ui5WebcomponentsThemingService, WebcomponentsThemingProvider };
186
+ //# sourceMappingURL=fundamental-ngx-ui5-webcomponents-base-theming.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-base-theming.mjs","sources":["../tmp-esm2022/theming/ui5-theming.models.js","../tmp-esm2022/theming/ui5-theming-api.js","../tmp-esm2022/theming/supported-themes.js","../tmp-esm2022/theming/base-webcomponents-theming-provider.js","../tmp-esm2022/theming/theming-api.js","../tmp-esm2022/theming/fundamental-ngx-ui5-webcomponents-base-theming.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nexport const UI5_THEMING_CONFIGURATION = new InjectionToken('Ui5 global theming configuration.');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXRoZW1pbmcubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aTUtd2ViY29tcG9uZW50cy1iYXNlL3RoZW1pbmcvdWk1LXRoZW1pbmcubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0MsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQ3pELG1DQUFtQyxDQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUaGVtaW5nQ29uZmlnIHtcbiAgZGVmYXVsdFRoZW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBVSTVfVEhFTUlOR19DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPFRoZW1pbmdDb25maWc+KFxuICAnVWk1IGdsb2JhbCB0aGVtaW5nIGNvbmZpZ3VyYXRpb24uJ1xuKTtcblxuZXhwb3J0IGludGVyZmFjZSBVaTVUaGVtaW5nUHJvdmlkZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIGdldEF2YWlsYWJsZVRoZW1lcygpOiBzdHJpbmdbXSB8IFByb21pc2U8c3RyaW5nW10+O1xuICBzdXBwb3J0c1RoZW1lKHRoZW1lTmFtZTogc3RyaW5nKTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG4gIHNldFRoZW1lKHRoZW1lTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVaTVUaGVtaW5nQ29uc3VtZXIgZXh0ZW5kcyBPbWl0PFVpNVRoZW1pbmdQcm92aWRlciwgJ25hbWUnPiB7XG4gIHJlZ2lzdGVyUHJvdmlkZXIocHJvdmlkZXI6IFVpNVRoZW1pbmdQcm92aWRlcik6IHZvaWQ7XG4gIHVucmVnaXN0ZXJQcm92aWRlcihwcm92aWRlcjogVWk1VGhlbWluZ1Byb3ZpZGVyKTogdm9pZDtcbn1cbiJdfQ==","// ui5-theming.service.ts\nimport { inject, Injectable, isDevMode, signal, computed, effect } from '@angular/core';\nimport { UI5_THEMING_CONFIGURATION, } from './ui5-theming.models';\nimport * as i0 from \"@angular/core\";\nexport class Ui5ThemingService {\n constructor() {\n this.availableThemes = computed(() => {\n const providers = this._providers();\n const uniqueThemes = new Set();\n // Using a normal loop to handle synchronous and asynchronous results\n for (const provider of providers) {\n const themes = provider.getAvailableThemes();\n if (Array.isArray(themes)) {\n themes.forEach(theme => uniqueThemes.add(theme));\n }\n else {\n // TODO Since providers now return a promise, we'd need to handle this asynchronously\n // For simplicity, we'll assume a `Promise` is returned and handle it inside the effect\n }\n }\n return [...uniqueThemes.values()];\n }, ...(ngDevMode ? [{ debugName: \"availableThemes\" }] : []));\n this._config = inject(UI5_THEMING_CONFIGURATION, { optional: true });\n this._providers = signal([], ...(ngDevMode ? [{ debugName: \"_providers\" }] : []));\n this._currentTheme = signal(this._config?.defaultTheme || 'sap_fiori_3', ...(ngDevMode ? [{ debugName: \"_currentTheme\" }] : []));\n effect(async () => {\n const newTheme = this._currentTheme();\n const providers = this._providers();\n if (providers.length === 0) {\n return;\n }\n const results = await Promise.all(providers.map(async (provider) => {\n const isSupported = await provider.supportsTheme(newTheme);\n return { provider, isSupported };\n }));\n const unsupportedProviders = results.filter(r => !r.isSupported);\n if (unsupportedProviders.length > 0 && isDevMode()) {\n console.warn(`The following providers do not support the theme \"${newTheme}\":`, unsupportedProviders.map(({ provider }) => provider.name));\n }\n await Promise.all(results.filter(r => r.isSupported).map(({ provider }) => provider.setTheme(newTheme)));\n });\n }\n getAvailableThemes() {\n return this.availableThemes();\n }\n supportsTheme(themeName) {\n return Promise.resolve(this.availableThemes().includes(themeName));\n }\n registerProvider(provider) {\n const providers = this._providers();\n if (!providers.includes(provider)) {\n this._providers.update(currentProviders => [...currentProviders, provider]);\n }\n }\n unregisterProvider(provider) {\n this._providers.update(currentProviders => currentProviders.filter(p => p !== provider));\n }\n setTheme(theme) {\n this._currentTheme.set(theme);\n return Promise.resolve(true);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Ui5ThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Ui5ThemingService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Ui5ThemingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXRoZW1pbmctYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aTUtd2ViY29tcG9uZW50cy1iYXNlL3RoZW1pbmcvdWk1LXRoZW1pbmctYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlCQUF5QjtBQUN6QixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUNMLHlCQUF5QixHQUcxQixNQUFNLHNCQUFzQixDQUFDOztBQUs5QixNQUFNLE9BQU8saUJBQWlCO0lBd0I1QjtRQXRCUyxvQkFBZSxHQUFHLFFBQVEsQ0FBVyxHQUFHLEVBQUU7WUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7WUFFdkMscUVBQXFFO1lBQ3JFLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHFGQUFxRjtvQkFDckYsdUZBQXVGO2dCQUN6RixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsMkRBQUMsQ0FBQztRQUVjLFlBQU8sR0FBRyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxRQUFR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QWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHVpNS10aGVtaW5nLnNlcnZpY2UudHNcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgaXNEZXZNb2RlLCBzaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVJNV9USEVNSU5HX0NPTkZJR1VSQVRJT04sXG4gIFVpNVRoZW1pbmdQcm92aWRlcixcbiAgVWk1VGhlbWluZ0NvbnN1bWVyLFxufSBmcm9tICcuL3VpNS10aGVtaW5nLm1vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVpNVRoZW1pbmdTZXJ2aWNlIGltcGxlbWVudHMgVWk1VGhlbWluZ0NvbnN1bWVyIHtcblxuICByZWFkb25seSBhdmFpbGFibGVUaGVtZXMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHByb3ZpZGVycyA9IHRoaXMuX3Byb3ZpZGVycygpO1xuICAgIGNvbnN0IHVuaXF1ZVRoZW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIFxuICAgIC8vIFVzaW5nIGEgbm9ybWFsIGxvb3AgdG8gaGFuZGxlIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgcmVzdWx0c1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XG4gICAgICBjb25zdCB0aGVtZXMgPSBwcm92aWRlci5nZXRBdmFpbGFibGVUaGVtZXMoKTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoZW1lcykpIHtcbiAgICAgICAgdGhlbWVzLmZvckVhY2godGhlbWUgPT4gdW5pcXVlVGhlbWVzLmFkZCh0aGVtZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVE9ETyBTaW5jZSBwcm92aWRlcnMgbm93IHJldHVybiBhIHByb21pc2UsIHdlJ2QgbmVlZCB0byBoYW5kbGUgdGhpcyBhc3luY2hyb25vdXNseVxuICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgd2UnbGwgYXNzdW1lIGEgYFByb21pc2VgIGlzIHJldHVybmVkIGFuZCBoYW5kbGUgaXQgaW5zaWRlIHRoZSBlZmZlY3RcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFsuLi51bmlxdWVUaGVtZXMudmFsdWVzKCldO1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBpbmplY3QoVUk1X1RIRU1JTkdfQ09ORklHVVJBVElPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvdmlkZXJzID0gc2lnbmFsPFVpNVRoZW1pbmdQcm92aWRlcltdPihbXSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFRoZW1lID0gc2lnbmFsKHRoaXMuX2NvbmZpZz8uZGVmYXVsdFRoZW1lIHx8ICdzYXBfZmlvcmlfMycpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdUaGVtZSA9IHRoaXMuX2N1cnJlbnRUaGVtZSgpO1xuICAgICAgY29uc3QgcHJvdmlkZXJzID0gdGhpcy5fcHJvdmlkZXJzKCk7XG5cbiAgICAgIGlmIChwcm92aWRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBwcm92aWRlcnMubWFwKGFzeW5jIChwcm92aWRlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzU3VwcG9ydGVkID0gYXdhaXQgcHJvdmlkZXIuc3VwcG9ydHNUaGVtZShuZXdUaGVtZSk7XG4gICAgICAgICAgcmV0dXJuIHsgcHJvdmlkZXIsIGlzU3VwcG9ydGVkIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBjb25zdCB1bnN1cHBvcnRlZFByb3ZpZGVycyA9IHJlc3VsdHMuZmlsdGVyKHIgPT4gIXIuaXNTdXBwb3J0ZWQpO1xuICAgICAgaWYgKHVuc3VwcG9ydGVkUHJvdmlkZXJzLmxlbmd0aCA+IDAgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBUaGUgZm9sbG93aW5nIHByb3ZpZGVycyBkbyBub3Qgc3VwcG9ydCB0aGUgdGhlbWUgXCIke25ld1RoZW1lfVwiOmAsXG4gICAgICAgICAgdW5zdXBwb3J0ZWRQcm92aWRlcnMubWFwKCh7IHByb3ZpZGVyIH0pID0+IHByb3ZpZGVyLm5hbWUpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICByZXN1bHRzLmZpbHRlcihyID0+IHIuaXNTdXBwb3J0ZWQpLm1hcCgoeyBwcm92aWRlciB9KSA9PlxuICAgICAgICAgIHByb3ZpZGVyLnNldFRoZW1lKG5ld1RoZW1lKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cblxuICBnZXRBdmFpbGFibGVUaGVtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZVRoZW1lcygpO1xuICB9XG5cbiAgc3VwcG9ydHNUaGVtZSh0aGVtZU5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5hdmFpbGFibGVUaGVtZXMoKS5pbmNsdWRlcyh0aGVtZU5hbWUpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyUHJvdmlkZXIocHJvdmlkZXI6IFVpNVRoZW1pbmdQcm92aWRlcik6IHZvaWQge1xuICAgIGNvbnN0IHByb3ZpZGVycyA9IHRoaXMuX3Byb3ZpZGVycygpO1xuICAgIGlmICghcHJvdmlkZXJzLmluY2x1ZGVzKHByb3ZpZGVyKSkge1xuICAgICAgdGhpcy5fcHJvdmlkZXJzLnVwZGF0ZShjdXJyZW50UHJvdmlkZXJzID0+IFsuLi5jdXJyZW50UHJvdmlkZXJzLCBwcm92aWRlcl0pO1xuICAgIH1cbiAgfVxuXG4gIHVucmVnaXN0ZXJQcm92aWRlcihwcm92aWRlcjogVWk1VGhlbWluZ1Byb3ZpZGVyKTogdm9pZCB7XG4gICAgdGhpcy5fcHJvdmlkZXJzLnVwZGF0ZShjdXJyZW50UHJvdmlkZXJzID0+XG4gICAgICBjdXJyZW50UHJvdmlkZXJzLmZpbHRlcihwID0+IHAgIT09IHByb3ZpZGVyKVxuICAgICk7XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5fY3VycmVudFRoZW1lLnNldCh0aGVtZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgfVxufVxuIl19","export default [\"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json\", \"node_modules/@ui5/webcomponents-theming/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json\"];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydGVkLXRoZW1lcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWk1LXdlYmNvbXBvbmVudHMtYmFzZS90aGVtaW5nL3N1cHBvcnRlZC10aGVtZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxDQUFDLDZHQUE2RyxFQUFDLGtIQUFrSCxFQUFDLGlIQUFpSCxFQUFDLGlIQUFpSCxFQUFDLDZHQUE2RyxFQUFDLGtIQUFrSCxFQUFDLGlIQUFpSCxFQUFDLGlIQUFpSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBbXCJub2RlX21vZHVsZXMvQHVpNS93ZWJjb21wb25lbnRzLXRoZW1pbmcvZGlzdC9nZW5lcmF0ZWQvYXNzZXRzL3RoZW1lcy9zYXBfZmlvcmlfMy9wYXJhbWV0ZXJzLWJ1bmRsZS5jc3MuanNvblwiLFwibm9kZV9tb2R1bGVzL0B1aTUvd2ViY29tcG9uZW50cy10aGVtaW5nL2Rpc3QvZ2VuZXJhdGVkL2Fzc2V0cy90aGVtZXMvc2FwX2Zpb3JpXzNfZGFyay9wYXJhbWV0ZXJzLWJ1bmRsZS5jc3MuanNvblwiLFwibm9kZV9tb2R1bGVzL0B1aTUvd2ViY29tcG9uZW50cy10aGVtaW5nL2Rpc3QvZ2VuZXJhdGVkL2Fzc2V0cy90aGVtZXMvc2FwX2Zpb3JpXzNfaGNiL3BhcmFtZXRlcnMtYnVuZGxlLmNzcy5qc29uXCIsXCJub2RlX21vZHVsZXMvQHVpNS93ZWJjb21wb25lbnRzLXRoZW1pbmcvZGlzdC9nZW5lcmF0ZWQvYXNzZXRzL3RoZW1lcy9zYXBfZmlvcmlfM19oY3cvcGFyYW1ldGVycy1idW5kbGUuY3NzLmpzb25cIixcIm5vZGVfbW9kdWxlcy9AdWk1L3dlYmNvbXBvbmVudHMtdGhlbWluZy9kaXN0L2dlbmVyYXRlZC9hc3NldHMvdGhlbWVzL3NhcF9ob3Jpem9uL3BhcmFtZXRlcnMtYnVuZGxlLmNzcy5qc29uXCIsXCJub2RlX21vZHVsZXMvQHVpNS93ZWJjb21wb25lbnRzLXRoZW1pbmcvZGlzdC9nZW5lcmF0ZWQvYXNzZXRzL3RoZW1lcy9zYXBfaG9yaXpvbl9kYXJrL3BhcmFtZXRlcnMtYnVuZGxlLmNzcy5qc29uXCIsXCJub2RlX21vZHVsZXMvQHVpNS93ZWJjb21wb25lbnRzLXRoZW1pbmcvZGlzdC9nZW5lcmF0ZWQvYXNzZXRzL3RoZW1lcy9zYXBfaG9yaXpvbl9oY2IvcGFyYW1ldGVycy1idW5kbGUuY3NzLmpzb25cIixcIm5vZGVfbW9kdWxlcy9AdWk1L3dlYmNvbXBvbmVudHMtdGhlbWluZy9kaXN0L2dlbmVyYXRlZC9hc3NldHMvdGhlbWVzL3NhcF9ob3Jpem9uX2hjdy9wYXJhbWV0ZXJzLWJ1bmRsZS5jc3MuanNvblwiXTtcbiJdfQ==","/**\n * @file Defines the abstract base class for theming providers in Angular,\n * designed to integrate with UI5 Web Components' theme management.\n *\n * This provider registers itself with a global theming service (if available) and\n * manages a list of supported themes, allowing other parts of the application\n * to query theme support and apply themes to the underlying UI5 Web Components.\n */\n// base-webcomponents-theming-provider.ts\nimport { inject, Injectable, signal } from \"@angular/core\";\nimport { Ui5ThemingService } from \"./ui5-theming-api\";\nimport supportedThemes from './supported-themes';\nimport { setTheme } from '@ui5/webcomponents-base/dist/config/Theme.js';\nimport * as i0 from \"@angular/core\";\n/**\n * @description\n * Abstract base class for UI5 Web Components theming providers.\n *\n * Components extending this class are responsible for providing the necessary theme resources\n * (via the `registerThemes` callback) and exposing the supported themes. It integrates\n * with the global {@link Ui5ThemingService} to make its themes available application-wide.\n *\n * @implements {Ui5ThemingProvider}\n * @implements {OnDestroy}\n */\nexport class WebcomponentsThemingProvider {\n /** @hidden */\n constructor(registerThemes) {\n this.registerThemes = registerThemes;\n /**\n * @description\n * A signal containing the list of themes supported by this provider.\n * It is initialized with the themes loaded from the `supported-themes` file.\n */\n this.availableThemes = signal(supportedThemes, ...(ngDevMode ? [{ debugName: \"availableThemes\" }] : []));\n /**\n * @description\n * Reference to the global {@link Ui5ThemingService}, injected optionally.\n * The provider registers itself here if the global service is available.\n */\n this._globalThemingService = inject(Ui5ThemingService, { optional: true });\n this.registerThemes().then(() => {\n this._globalThemingService?.registerProvider(this);\n });\n }\n /** @hidden */\n ngOnDestroy() {\n this._globalThemingService?.unregisterProvider(this);\n }\n /**\n * @description\n * Checks if a specific theme name is supported by this provider.\n * @param theme The name of the theme to check (e.g., 'sap_horizon').\n * @returns `true` if the theme is supported, `false` otherwise.\n */\n supportsTheme(theme) {\n return this.availableThemes().includes(theme);\n }\n /**\n * @description\n * Retrieves the list of theme names supported by this provider.\n * @returns An array of supported theme names.\n */\n getAvailableThemes() {\n return this.availableThemes();\n }\n /**\n * @description\n * Attempts to set the given theme globally for all UI5 Web Components.\n *\n * The theme is only applied if it is included in the list of available themes\n * managed by this provider.\n *\n * @param theme The name of the theme to apply.\n * @returns A promise that resolves to `true` if the theme was applied, or `false` if the theme is not supported.\n */\n async setTheme(theme) {\n const supported = this.availableThemes().includes(theme);\n if (supported) {\n setTheme(theme);\n }\n return supported;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WebcomponentsThemingProvider, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WebcomponentsThemingProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WebcomponentsThemingProvider, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS13ZWJjb21wb25lbnRzLXRoZW1pbmctcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS13ZWJjb21wb25lbnRzLWJhc2UvdGhlbWluZy9iYXNlLXdlYmNvbXBvbmVudHMtdGhlbWluZy1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLGVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBRXhFOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQWdCLDRCQUE0QjtJQXNCaEQsY0FBYztJQUNkLFlBQ1ksY0FBa0M7UUFBbEMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBaEI5Qzs7OztXQUlHO1FBQ08sb0JBQWUsR0FBRyxNQUFNLENBQVcsZUFBZSwyREFBQyxDQUFDO1FBRTlEOzs7O1dBSUc7UUFDTywwQkFBcUIsR0FBNkIsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFNeEcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFhO1FBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0F2RW1CLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQURqRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBEZWZpbmVzIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGVtaW5nIHByb3ZpZGVycyBpbiBBbmd1bGFyLFxuICogZGVzaWduZWQgdG8gaW50ZWdyYXRlIHdpdGggVUk1IFdlYiBDb21wb25lbnRzJyB0aGVtZSBtYW5hZ2VtZW50LlxuICpcbiAqIFRoaXMgcHJvdmlkZXIgcmVnaXN0ZXJzIGl0c2VsZiB3aXRoIGEgZ2xvYmFsIHRoZW1pbmcgc2VydmljZSAoaWYgYXZhaWxhYmxlKSBhbmRcbiAqIG1hbmFnZXMgYSBsaXN0IG9mIHN1cHBvcnRlZCB0aGVtZXMsIGFsbG93aW5nIG90aGVyIHBhcnRzIG9mIHRoZSBhcHBsaWNhdGlvblxuICogdG8gcXVlcnkgdGhlbWUgc3VwcG9ydCBhbmQgYXBwbHkgdGhlbWVzIHRvIHRoZSB1bmRlcmx5aW5nIFVJNSBXZWIgQ29tcG9uZW50cy5cbiAqL1xuXG4vLyBiYXNlLXdlYmNvbXBvbmVudHMtdGhlbWluZy1wcm92aWRlci50c1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVaTVUaGVtaW5nU2VydmljZSB9IGZyb20gXCIuL3VpNS10aGVtaW5nLWFwaVwiO1xuaW1wb3J0IHsgVWk1VGhlbWluZ1Byb3ZpZGVyIH0gZnJvbSBcIi4vdWk1LXRoZW1pbmcubW9kZWxzXCI7XG5pbXBvcnQgc3VwcG9ydGVkVGhlbWVzIGZyb20gJy4vc3VwcG9ydGVkLXRoZW1lcyc7XG5pbXBvcnQgeyBzZXRUaGVtZSB9IGZyb20gJ0B1aTUvd2ViY29tcG9uZW50cy1iYXNlL2Rpc3QvY29uZmlnL1RoZW1lLmpzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIFVJNSBXZWIgQ29tcG9uZW50cyB0aGVtaW5nIHByb3ZpZGVycy5cbiAqXG4gKiBDb21wb25lbnRzIGV4dGVuZGluZyB0aGlzIGNsYXNzIGFyZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIHRoZSBuZWNlc3NhcnkgdGhlbWUgcmVzb3VyY2VzXG4gKiAodmlhIHRoZSBgcmVnaXN0ZXJUaGVtZXNgIGNhbGxiYWNrKSBhbmQgZXhwb3NpbmcgdGhlIHN1cHBvcnRlZCB0aGVtZXMuIEl0IGludGVncmF0ZXNcbiAqIHdpdGggdGhlIGdsb2JhbCB7QGxpbmsgVWk1VGhlbWluZ1NlcnZpY2V9IHRvIG1ha2UgaXRzIHRoZW1lcyBhdmFpbGFibGUgYXBwbGljYXRpb24td2lkZS5cbiAqXG4gKiBAaW1wbGVtZW50cyB7VWk1VGhlbWluZ1Byb3ZpZGVyfVxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdlYmNvbXBvbmVudHNUaGVtaW5nUHJvdmlkZXIgaW1wbGVtZW50cyBVaTVUaGVtaW5nUHJvdmlkZXIsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGlzIHRoZW1pbmcgcHJvdmlkZXIsIHdoaWNoIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBnbG9iYWwge0BsaW5rIFVpNVRoZW1pbmdTZXJ2aWNlfSBmb3IgcmVnaXN0cmF0aW9uIGFuZCBpZGVudGlmaWNhdGlvbi5cbiAgICovXG4gIGFic3RyYWN0IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgc2lnbmFsIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgdGhlbWVzIHN1cHBvcnRlZCBieSB0aGlzIHByb3ZpZGVyLlxuICAgKiBJdCBpcyBpbml0aWFsaXplZCB3aXRoIHRoZSB0aGVtZXMgbG9hZGVkIGZyb20gdGhlIGBzdXBwb3J0ZWQtdGhlbWVzYCBmaWxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGF2YWlsYWJsZVRoZW1lcyA9IHNpZ25hbDxzdHJpbmdbXT4oc3VwcG9ydGVkVGhlbWVzKTtcbiAgXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwge0BsaW5rIFVpNVRoZW1pbmdTZXJ2aWNlfSwgaW5qZWN0ZWQgb3B0aW9uYWxseS5cbiAgICogVGhlIHByb3ZpZGVyIHJlZ2lzdGVycyBpdHNlbGYgaGVyZSBpZiB0aGUgZ2xvYmFsIHNlcnZpY2UgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIF9nbG9iYWxUaGVtaW5nU2VydmljZTogVWk1VGhlbWluZ1NlcnZpY2UgfCBudWxsID0gaW5qZWN0KFVpNVRoZW1pbmdTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKiBAaGlkZGVuICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVnaXN0ZXJUaGVtZXM6ICgpID0+IFByb21pc2U8YW55PlxuICApIHtcbiAgICB0aGlzLnJlZ2lzdGVyVGhlbWVzKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLl9nbG9iYWxUaGVtaW5nU2VydmljZT8ucmVnaXN0ZXJQcm92aWRlcih0aGlzKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaGlkZGVuICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2dsb2JhbFRoZW1pbmdTZXJ2aWNlPy51bnJlZ2lzdGVyUHJvdmlkZXIodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENoZWNrcyBpZiBhIHNwZWNpZmljIHRoZW1lIG5hbWUgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgcHJvdmlkZXIuXG4gICAqIEBwYXJhbSB0aGVtZSBUaGUgbmFtZSBvZiB0aGUgdGhlbWUgdG8gY2hlY2sgKGUuZy4sICdzYXBfaG9yaXpvbicpLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRoZW1lIGlzIHN1cHBvcnRlZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBzdXBwb3J0c1RoZW1lKHRoZW1lOiBzdHJpbmcpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlVGhlbWVzKCkuaW5jbHVkZXModGhlbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgdGhlbWUgbmFtZXMgc3VwcG9ydGVkIGJ5IHRoaXMgcHJvdmlkZXIuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN1cHBvcnRlZCB0aGVtZSBuYW1lcy5cbiAgICovXG4gIGdldEF2YWlsYWJsZVRoZW1lcygpOiBzdHJpbmdbXSB8IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVUaGVtZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQXR0ZW1wdHMgdG8gc2V0IHRoZSBnaXZlbiB0aGVtZSBnbG9iYWxseSBmb3IgYWxsIFVJNSBXZWIgQ29tcG9uZW50cy5cbiAgICpcbiAgICogVGhlIHRoZW1lIGlzIG9ubHkgYXBwbGllZCBpZiBpdCBpcyBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgdGhlbWVzXG4gICAqIG1hbmFnZWQgYnkgdGhpcyBwcm92aWRlci5cbiAgICpcbiAgICogQHBhcmFtIHRoZW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZSB0byBhcHBseS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYHRydWVgIGlmIHRoZSB0aGVtZSB3YXMgYXBwbGllZCwgb3IgYGZhbHNlYCBpZiB0aGUgdGhlbWUgaXMgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIGFzeW5jIHNldFRoZW1lKHRoZW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzdXBwb3J0ZWQgPSB0aGlzLmF2YWlsYWJsZVRoZW1lcygpLmluY2x1ZGVzKHRoZW1lKTtcbiAgICBpZiAoc3VwcG9ydGVkKSB7XG4gICAgICBzZXRUaGVtZSh0aGVtZSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBwb3J0ZWQ7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from \"@angular/core\";\nimport { WebcomponentsThemingProvider } from \"./base-webcomponents-theming-provider\";\nimport * as i0 from \"@angular/core\";\n/**\n * Theming service specifically for the ui5/webcomponents-ngx components.\n */\nexport class Ui5WebcomponentsThemingService extends WebcomponentsThemingProvider {\n /** @hidden */\n constructor() {\n super(() => import('@ui5/webcomponents-theming/dist/generated/json-imports/Themes.js'));\n this.name = 'ui5-webcomponents-theming-service';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Ui5WebcomponentsThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Ui5WebcomponentsThemingService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: Ui5WebcomponentsThemingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWluZy1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS13ZWJjb21wb25lbnRzLWJhc2UvdGhlbWluZy90aGVtaW5nLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUVyRjs7R0FFRztBQUlILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSw0QkFBNEI7SUFHOUUsY0FBYztJQUNkO1FBQ0UsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDLENBQUM7UUFKMUYsU0FBSSxHQUFHLG1DQUFtQyxDQUFDO0lBSzNDLENBQUM7OEdBTlUsOEJBQThCO2tIQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTs7MkZBRVAsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgV2ViY29tcG9uZW50c1RoZW1pbmdQcm92aWRlciB9IGZyb20gXCIuL2Jhc2Utd2ViY29tcG9uZW50cy10aGVtaW5nLXByb3ZpZGVyXCI7XG5cbi8qKlxuICogVGhlbWluZyBzZXJ2aWNlIHNwZWNpZmljYWxseSBmb3IgdGhlIHVpNS93ZWJjb21wb25lbnRzLW5neCBjb21wb25lbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBVaTVXZWJjb21wb25lbnRzVGhlbWluZ1NlcnZpY2UgZXh0ZW5kcyBXZWJjb21wb25lbnRzVGhlbWluZ1Byb3ZpZGVyIHtcbiAgbmFtZSA9ICd1aTUtd2ViY29tcG9uZW50cy10aGVtaW5nLXNlcnZpY2UnO1xuXG4gIC8qKiBAaGlkZGVuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCgpID0+IGltcG9ydCgnQHVpNS93ZWJjb21wb25lbnRzLXRoZW1pbmcvZGlzdC9nZW5lcmF0ZWQvanNvbi1pbXBvcnRzL1RoZW1lcy5qcycpKTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWJhc2UtdGhlbWluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWk1LXdlYmNvbXBvbmVudHMtYmFzZS90aGVtaW5nL2Z1bmRhbWVudGFsLW5neC11aTUtd2ViY29tcG9uZW50cy1iYXNlLXRoZW1pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export { default as AnimationMode } from '@ui5/webcomponents-base/dist/types/AnimationMode.js';
2
+ export { default as CalendarType } from '@ui5/webcomponents-base/dist/types/CalendarType.js';
3
+ export { default as ItemNavigationBehavior } from '@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js';
4
+ export { default as MovePlacement } from '@ui5/webcomponents-base/dist/types/MovePlacement.js';
5
+ export { default as NavigationMode } from '@ui5/webcomponents-base/dist/types/NavigationMode.js';
6
+ export { default as SortOrder } from '@ui5/webcomponents-base/dist/types/SortOrder.js';
7
+ export { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';
8
+
9
+ /**
10
+ * Generated bundle index. Do not edit.
11
+ */
12
+ //# sourceMappingURL=fundamental-ngx-ui5-webcomponents-base-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-base-types.mjs","sources":["../tmp-esm2022/types/fundamental-ngx-ui5-webcomponents-base-types.js"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWJhc2UtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS13ZWJjb21wb25lbnRzLWJhc2UvdHlwZXMvZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWJhc2UtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":";;;;;;;;AAAA;AACA;AACA"}
@@ -0,0 +1,12 @@
1
+ export { default as AnimationMode } from '@ui5/webcomponents-base/dist/types/AnimationMode.js';
2
+ export { default as CalendarType } from '@ui5/webcomponents-base/dist/types/CalendarType.js';
3
+ export { default as ItemNavigationBehavior } from '@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js';
4
+ export { default as MovePlacement } from '@ui5/webcomponents-base/dist/types/MovePlacement.js';
5
+ export { default as NavigationMode } from '@ui5/webcomponents-base/dist/types/NavigationMode.js';
6
+ export { default as SortOrder } from '@ui5/webcomponents-base/dist/types/SortOrder.js';
7
+ export { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';
8
+
9
+ /**
10
+ * Generated bundle index. Do not edit.
11
+ */
12
+ //# sourceMappingURL=fundamental-ngx-ui5-webcomponents-base.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-base.mjs","sources":["../tmp-esm2022/fundamental-ngx-ui5-webcomponents-base.js"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpNS13ZWJjb21wb25lbnRzLWJhc2UvZnVuZGFtZW50YWwtbmd4LXVpNS13ZWJjb21wb25lbnRzLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":";;;;;;;;AAAA;AACA;AACA"}
package/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { default as AnimationMode } from '@ui5/webcomponents-base/dist/types/AnimationMode.js';
2
+ export { default as CalendarType } from '@ui5/webcomponents-base/dist/types/CalendarType.js';
3
+ export { default as ItemNavigationBehavior } from '@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js';
4
+ export { default as MovePlacement } from '@ui5/webcomponents-base/dist/types/MovePlacement.js';
5
+ export { default as NavigationMode } from '@ui5/webcomponents-base/dist/types/NavigationMode.js';
6
+ export { default as SortOrder } from '@ui5/webcomponents-base/dist/types/SortOrder.js';
7
+ export { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@fundamental-ngx/ui5-webcomponents-base",
3
+ "version": "0.58.0-rc.1",
4
+ "schematics": "./schematics/collection.json",
5
+ "description": "Fundamental Library for Angular - UI5 Webcomponents Base",
6
+ "license": "Apache-2.0",
7
+ "homepage": "https://sap.github.io/fundamental-ngx",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/SAP/fundamental-ngx"
11
+ },
12
+ "engine": {
13
+ "node": ">= 10"
14
+ },
15
+ "peerDependencies": {
16
+ "@angular/animations": "^20.0.0",
17
+ "@angular/cdk": "^20.0.0",
18
+ "@angular/common": "^20.0.0",
19
+ "@angular/core": "^20.0.0",
20
+ "@angular/forms": "^20.0.0",
21
+ "@angular/platform-browser": "^20.0.0",
22
+ "@angular/router": "^20.0.0",
23
+ "fundamental-styles": "0.40.1",
24
+ "rxjs": "^7.8.0"
25
+ },
26
+ "dependencies": {
27
+ "compare-versions": "^6.1.0",
28
+ "fast-deep-equal": "3.1.3",
29
+ "lodash-es": "^4.17.0",
30
+ "tslib": "^2.0.0"
31
+ },
32
+ "ng-add": {
33
+ "save": "dependencies"
34
+ },
35
+ "module": "fesm2022/fundamental-ngx-ui5-webcomponents-base.mjs",
36
+ "typings": "index.d.ts",
37
+ "exports": {
38
+ "./package.json": {
39
+ "default": "./package.json"
40
+ },
41
+ ".": {
42
+ "types": "./index.d.ts",
43
+ "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-base.mjs"
44
+ },
45
+ "./theming": {
46
+ "types": "./theming/index.d.ts",
47
+ "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-base-theming.mjs"
48
+ },
49
+ "./types": {
50
+ "types": "./types/index.d.ts",
51
+ "default": "./fesm2022/fundamental-ngx-ui5-webcomponents-base-types.mjs"
52
+ }
53
+ },
54
+ "sideEffects": false
55
+ }
@@ -0,0 +1,109 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, OnDestroy } from '@angular/core';
3
+
4
+ interface ThemingConfig {
5
+ defaultTheme: string;
6
+ }
7
+ declare const UI5_THEMING_CONFIGURATION: InjectionToken<ThemingConfig>;
8
+ interface Ui5ThemingProvider {
9
+ name: string;
10
+ getAvailableThemes(): string[] | Promise<string[]>;
11
+ supportsTheme(themeName: string): boolean | Promise<boolean>;
12
+ setTheme(themeName: string): Promise<boolean>;
13
+ }
14
+ interface Ui5ThemingConsumer extends Omit<Ui5ThemingProvider, 'name'> {
15
+ registerProvider(provider: Ui5ThemingProvider): void;
16
+ unregisterProvider(provider: Ui5ThemingProvider): void;
17
+ }
18
+
19
+ declare class Ui5ThemingService implements Ui5ThemingConsumer {
20
+ readonly availableThemes: i0.Signal<string[]>;
21
+ private readonly _config;
22
+ private readonly _providers;
23
+ private readonly _currentTheme;
24
+ constructor();
25
+ getAvailableThemes(): string[];
26
+ supportsTheme(themeName: string): Promise<boolean>;
27
+ registerProvider(provider: Ui5ThemingProvider): void;
28
+ unregisterProvider(provider: Ui5ThemingProvider): void;
29
+ setTheme(theme: string): Promise<boolean>;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<Ui5ThemingService, never>;
31
+ static ɵprov: i0.ɵɵInjectableDeclaration<Ui5ThemingService>;
32
+ }
33
+
34
+ /**
35
+ * @description
36
+ * Abstract base class for UI5 Web Components theming providers.
37
+ *
38
+ * Components extending this class are responsible for providing the necessary theme resources
39
+ * (via the `registerThemes` callback) and exposing the supported themes. It integrates
40
+ * with the global {@link Ui5ThemingService} to make its themes available application-wide.
41
+ *
42
+ * @implements {Ui5ThemingProvider}
43
+ * @implements {OnDestroy}
44
+ */
45
+ declare abstract class WebcomponentsThemingProvider implements Ui5ThemingProvider, OnDestroy {
46
+ protected registerThemes: () => Promise<any>;
47
+ /**
48
+ * @description
49
+ * The unique name for this theming provider, which must be implemented by subclasses.
50
+ * This is used by the global {@link Ui5ThemingService} for registration and identification.
51
+ */
52
+ abstract name: string;
53
+ /**
54
+ * @description
55
+ * A signal containing the list of themes supported by this provider.
56
+ * It is initialized with the themes loaded from the `supported-themes` file.
57
+ */
58
+ protected availableThemes: i0.WritableSignal<string[]>;
59
+ /**
60
+ * @description
61
+ * Reference to the global {@link Ui5ThemingService}, injected optionally.
62
+ * The provider registers itself here if the global service is available.
63
+ */
64
+ protected _globalThemingService: Ui5ThemingService | null;
65
+ /** @hidden */
66
+ protected constructor(registerThemes: () => Promise<any>);
67
+ /** @hidden */
68
+ ngOnDestroy(): void;
69
+ /**
70
+ * @description
71
+ * Checks if a specific theme name is supported by this provider.
72
+ * @param theme The name of the theme to check (e.g., 'sap_horizon').
73
+ * @returns `true` if the theme is supported, `false` otherwise.
74
+ */
75
+ supportsTheme(theme: string): boolean | Promise<boolean>;
76
+ /**
77
+ * @description
78
+ * Retrieves the list of theme names supported by this provider.
79
+ * @returns An array of supported theme names.
80
+ */
81
+ getAvailableThemes(): string[] | Promise<string[]>;
82
+ /**
83
+ * @description
84
+ * Attempts to set the given theme globally for all UI5 Web Components.
85
+ *
86
+ * The theme is only applied if it is included in the list of available themes
87
+ * managed by this provider.
88
+ *
89
+ * @param theme The name of the theme to apply.
90
+ * @returns A promise that resolves to `true` if the theme was applied, or `false` if the theme is not supported.
91
+ */
92
+ setTheme(theme: string): Promise<boolean>;
93
+ static ɵfac: i0.ɵɵFactoryDeclaration<WebcomponentsThemingProvider, never>;
94
+ static ɵprov: i0.ɵɵInjectableDeclaration<WebcomponentsThemingProvider>;
95
+ }
96
+
97
+ /**
98
+ * Theming service specifically for the ui5/webcomponents-ngx components.
99
+ */
100
+ declare class Ui5WebcomponentsThemingService extends WebcomponentsThemingProvider {
101
+ name: string;
102
+ /** @hidden */
103
+ constructor();
104
+ static ɵfac: i0.ɵɵFactoryDeclaration<Ui5WebcomponentsThemingService, never>;
105
+ static ɵprov: i0.ɵɵInjectableDeclaration<Ui5WebcomponentsThemingService>;
106
+ }
107
+
108
+ export { UI5_THEMING_CONFIGURATION, Ui5ThemingService, Ui5WebcomponentsThemingService, WebcomponentsThemingProvider };
109
+ export type { ThemingConfig, Ui5ThemingConsumer, Ui5ThemingProvider };
@@ -0,0 +1,7 @@
1
+ export { default as AnimationMode } from '@ui5/webcomponents-base/dist/types/AnimationMode.js';
2
+ export { default as CalendarType } from '@ui5/webcomponents-base/dist/types/CalendarType.js';
3
+ export { default as ItemNavigationBehavior } from '@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js';
4
+ export { default as MovePlacement } from '@ui5/webcomponents-base/dist/types/MovePlacement.js';
5
+ export { default as NavigationMode } from '@ui5/webcomponents-base/dist/types/NavigationMode.js';
6
+ export { default as SortOrder } from '@ui5/webcomponents-base/dist/types/SortOrder.js';
7
+ export { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';