@onecx/angular-integration-interface 4.13.1 → 4.14.0
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/index.mjs +13 -0
- package/esm2020/lib/api/constants.mjs +3 -0
- package/esm2020/lib/api/iauth.service.mjs +2 -0
- package/esm2020/lib/api/injection-tokens.mjs +6 -0
- package/esm2020/lib/model/config-key.model.mjs +27 -0
- package/esm2020/lib/services/app-state.service.mjs +45 -0
- package/esm2020/lib/services/configuration.service.mjs +79 -0
- package/esm2020/lib/services/portal-message.service.mjs +44 -0
- package/esm2020/lib/services/remote-components.service.mjs +18 -0
- package/esm2020/lib/services/theme.service.mjs +48 -0
- package/esm2020/lib/services/user.service.mjs +71 -0
- package/esm2020/onecx-angular-integration-interface.mjs +5 -0
- package/fesm2015/onecx-angular-integration-interface.mjs +33 -4
- package/fesm2015/onecx-angular-integration-interface.mjs.map +1 -1
- package/fesm2020/onecx-angular-integration-interface.mjs +321 -0
- package/fesm2020/onecx-angular-integration-interface.mjs.map +1 -0
- package/index.d.ts +10 -0
- package/lib/api/constants.d.ts +2 -0
- package/lib/api/iauth.service.d.ts +17 -0
- package/lib/api/injection-tokens.d.ts +18 -0
- package/lib/model/config-key.model.d.ts +25 -0
- package/lib/services/app-state.service.d.ts +26 -0
- package/lib/services/configuration.service.d.ts +21 -0
- package/lib/services/portal-message.service.d.ts +30 -0
- package/lib/services/remote-components.service.d.ts +9 -0
- package/lib/services/theme.service.d.ts +18 -0
- package/lib/services/user.service.d.ts +17 -0
- package/package.json +1 -1
@@ -0,0 +1,13 @@
|
|
1
|
+
// services
|
2
|
+
export * from './lib/services/app-state.service';
|
3
|
+
export * from './lib/services/configuration.service';
|
4
|
+
export * from './lib/services/user.service';
|
5
|
+
export * from './lib/services/portal-message.service';
|
6
|
+
export * from './lib/services/theme.service';
|
7
|
+
export * from './lib/services/remote-components.service';
|
8
|
+
// models
|
9
|
+
export * from './lib/model/config-key.model';
|
10
|
+
// core
|
11
|
+
export * from './lib/api/iauth.service';
|
12
|
+
export * from './lib/api/injection-tokens';
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDhCQUE4QixDQUFBO0FBQzVDLGNBQWMsMENBQTBDLENBQUE7QUFFeEQsU0FBUztBQUNULGNBQWMsOEJBQThCLENBQUE7QUFFNUMsT0FBTztBQUNQLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHAtc3RhdGUuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3VzZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3BvcnRhbC1tZXNzYWdlLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcmVtb3RlLWNvbXBvbmVudHMuc2VydmljZSdcblxuLy8gbW9kZWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9jb25maWcta2V5Lm1vZGVsJ1xuXG4vLyBjb3JlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGkvaWF1dGguc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9pbmplY3Rpb24tdG9rZW5zJ1xuXG4vLyB1dGlsc1xuXG5leHBvcnQgeyBNZmVJbmZvLCBUaGVtZSB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export const API_PREFIX = 'portal-api';
|
2
|
+
export const DEFAULT_LANG = 'en';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL2FwaS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSV9QUkVGSVggPSAncG9ydGFsLWFwaSdcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFORyA9ICdlbidcbiJdfQ==
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9hcGkvaWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBdXRoU2VydmljZSB7XG4gIGxvZ291dCgpOiB2b2lkXG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBuYW1lIG9mIHRoaXMgYXV0aCBwcm92aWRlcjogZS5nLiBtb2NrQXV0aFByb3ZpZGVyLCBLZXljbG9ha1Byb3ZpZGVyLi5cbiAgICovXG4gIGdldEF1dGhQcm92aWRlck5hbWUoKTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemF0aW9uIG1ldGhvZCBvZiB0aGUgQXV0aCBzZXJ2aWNlLiBPbmNlIHJlc29sdmVkLCBhbGwgdXNlciBkYXRhIE1VU1QgYmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgaW5pdCgpOiBQcm9taXNlPGJvb2xlYW4+XG5cbiAgZ2V0SWRUb2tlbigpOiBzdHJpbmcgfCBudWxsXG5cbiAgaGFzUm9sZShfcm9sZTogc3RyaW5nKTogYm9vbGVhblxuXG4gIGdldFVzZXJSb2xlcygpOiBzdHJpbmdbXVxufVxuIl19
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
2
|
+
export const APP_CONFIG = new InjectionToken('APP_CONFIG');
|
3
|
+
export const AUTH_SERVICE = new InjectionToken('AUTH_SERVICE');
|
4
|
+
export const SANITY_CHECK = new InjectionToken('OCXSANITY_CHECK');
|
5
|
+
export const APPLICATION_NAME = new InjectionToken('APPLICATION_NAME');
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9hcGkvaW5qZWN0aW9uLXRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBZTlDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBWSxZQUFZLENBQUMsQ0FBQTtBQUVyRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWUsY0FBYyxDQUFDLENBQUE7QUFFNUUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGlCQUFpQixDQUFDLENBQUE7QUFFekUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQVMsa0JBQWtCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IElBdXRoU2VydmljZSB9IGZyb20gJy4vaWF1dGguc2VydmljZSdcblxuZXhwb3J0IGludGVyZmFjZSBMaWJDb25maWcge1xuICBhcHBJZDogc3RyaW5nXG4gIHBvcnRhbElkOiBzdHJpbmdcbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSB0a2l0LW1vZHVsZSB3aWxsIG5vdCB0cnkgdG8gbG9hZCByZW1vdGUgZW52IHZhbHVlcyBmcm9tIHNlcnZlcihHRVQgL2Fzc2V0cy9lbnYuanNvbilcbiAgICovXG4gIHNraXBSZW1vdGVDb25maWdMb2FkOiBib29sZWFuXG4gIC8qKlxuICAgKiBVUkwgZnJvbSB3aGljaCB0aGUgcmVtb3RlIGNvbmZpZyB3aWxsIGJlIGxvYWRlZCwgZGVmYXVsdDogJy9hc3NldHMvZW52Lmpzb24nXG4gICAqL1xuICByZW1vdGVDb25maWdVUkw6IHN0cmluZ1xufVxuZXhwb3J0IGNvbnN0IEFQUF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TGliQ29uZmlnPignQVBQX0NPTkZJRycpXG5cbmV4cG9ydCBjb25zdCBBVVRIX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUF1dGhTZXJ2aWNlPignQVVUSF9TRVJWSUNFJylcblxuZXhwb3J0IGNvbnN0IFNBTklUWV9DSEVDSyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdPQ1hTQU5JVFlfQ0hFQ0snKVxuXG5leHBvcnQgY29uc3QgQVBQTElDQVRJT05fTkFNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBUFBMSUNBVElPTl9OQU1FJylcbiJdfQ==
|
@@ -0,0 +1,27 @@
|
|
1
|
+
export var CONFIG_KEY;
|
2
|
+
(function (CONFIG_KEY) {
|
3
|
+
CONFIG_KEY["TKIT_PORTAL_DEFAULT_THEME"] = "TKIT_PORTAL_DEFAULT_THEME";
|
4
|
+
CONFIG_KEY["TKIT_PORTAL_DISABLE_THEME_MANAGEMENT"] = "TKIT_PORTAL_DISABLE_THEME_MANAGEMENT";
|
5
|
+
CONFIG_KEY["TKIT_PORTAL_THEME_SERVER_URL"] = "TKIT_PORTAL_THEME_SERVER_URL";
|
6
|
+
CONFIG_KEY["TKIT_TOKEN_ROLE_CLAIM_NAME"] = "TKIT_TOKEN_ROLE_CLAIM_NAME";
|
7
|
+
CONFIG_KEY["TKIT_PORTAL_ID"] = "TKIT_PORTAL_ID";
|
8
|
+
CONFIG_KEY["TKIT_SUPPORTED_LANGUAGES"] = "TKIT_SUPPORTED_LANGUAGES";
|
9
|
+
CONFIG_KEY["TKIT_SEARCH_BASE_URL"] = "TKIT_SEARCH_BASE_URL";
|
10
|
+
CONFIG_KEY["APP_BASE_HREF"] = "APP_BASE_HREF";
|
11
|
+
CONFIG_KEY["KEYCLOAK_REALM"] = "KEYCLOAK_REALM";
|
12
|
+
CONFIG_KEY["KEYCLOAK_ENABLE_SILENT_SSO"] = "KEYCLOAK_ENABLE_SILENT_SSO";
|
13
|
+
CONFIG_KEY["KEYCLOAK_URL"] = "KEYCLOAK_URL";
|
14
|
+
CONFIG_KEY["KEYCLOAK_CLIENT_ID"] = "KEYCLOAK_CLIENT_ID";
|
15
|
+
CONFIG_KEY["ONECX_PORTAL_FAVORITES_DISABLED"] = "ONECX_PORTAL_FAVORITES_DISABLED";
|
16
|
+
CONFIG_KEY["ONECX_PORTAL_FEEDBACK_DISABLED"] = "ONECX_PORTAL_FEEDBACK_DISABLED";
|
17
|
+
CONFIG_KEY["ONECX_PORTAL_SEARCH_DISABLED"] = "ONECX_PORTAL_SEARCH_DISABLED";
|
18
|
+
CONFIG_KEY["ONECX_PORTAL_SUPPORT_TICKET_DISABLED"] = "ONECX_PORTAL_SUPPORT_TICKET_DISABLED";
|
19
|
+
CONFIG_KEY["ONECX_PORTAL_ANNOUNCEMENTS_DISABLED"] = "ONECX_PORTAL_ANNOUNCEMENTS_DISABLED";
|
20
|
+
CONFIG_KEY["ONECX_PORTAL_PASSWORD_CHANGE_DISABLED"] = "ONECX_PORTAL_PASSWORD_CHANGE_DISABLED";
|
21
|
+
CONFIG_KEY["ONECX_PORTAL_SETTINGS_DISABLED"] = "ONECX_PORTAL_SETTINGS_DISABLED";
|
22
|
+
CONFIG_KEY["ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED"] = "ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED";
|
23
|
+
CONFIG_KEY["ONECX_PORTAL_HELP_DISABLED"] = "ONECX_PORTAL_HELP_DISABLED";
|
24
|
+
CONFIG_KEY["APP_VERSION"] = "APP_VERSION";
|
25
|
+
CONFIG_KEY["IS_SHELL"] = "IS_SHELL";
|
26
|
+
})(CONFIG_KEY || (CONFIG_KEY = {}));
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWtleS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9tb2RlbC9jb25maWcta2V5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFVBd0JYO0FBeEJELFdBQVksVUFBVTtJQUNwQixxRUFBdUQsQ0FBQTtJQUN2RCwyRkFBNkUsQ0FBQTtJQUM3RSwyRUFBNkQsQ0FBQTtJQUM3RCx1RUFBeUQsQ0FBQTtJQUN6RCwrQ0FBaUMsQ0FBQTtJQUNqQyxtRUFBcUQsQ0FBQTtJQUNyRCwyREFBNkMsQ0FBQTtJQUM3Qyw2Q0FBK0IsQ0FBQTtJQUMvQiwrQ0FBaUMsQ0FBQTtJQUNqQyx1RUFBeUQsQ0FBQTtJQUN6RCwyQ0FBNkIsQ0FBQTtJQUM3Qix1REFBeUMsQ0FBQTtJQUN6QyxpRkFBbUUsQ0FBQTtJQUNuRSwrRUFBaUUsQ0FBQTtJQUNqRSwyRUFBNkQsQ0FBQTtJQUM3RCwyRkFBNkUsQ0FBQTtJQUM3RSx5RkFBMkUsQ0FBQTtJQUMzRSw2RkFBK0UsQ0FBQTtJQUMvRSwrRUFBaUUsQ0FBQTtJQUNqRSx1R0FBeUYsQ0FBQTtJQUN6Rix1RUFBeUQsQ0FBQTtJQUN6RCx5Q0FBMkIsQ0FBQTtJQUMzQixtQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBeEJXLFVBQVUsS0FBVixVQUFVLFFBd0JyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENPTkZJR19LRVkge1xuICBUS0lUX1BPUlRBTF9ERUZBVUxUX1RIRU1FID0gJ1RLSVRfUE9SVEFMX0RFRkFVTFRfVEhFTUUnLFxuICBUS0lUX1BPUlRBTF9ESVNBQkxFX1RIRU1FX01BTkFHRU1FTlQgPSAnVEtJVF9QT1JUQUxfRElTQUJMRV9USEVNRV9NQU5BR0VNRU5UJyxcbiAgVEtJVF9QT1JUQUxfVEhFTUVfU0VSVkVSX1VSTCA9ICdUS0lUX1BPUlRBTF9USEVNRV9TRVJWRVJfVVJMJyxcbiAgVEtJVF9UT0tFTl9ST0xFX0NMQUlNX05BTUUgPSAnVEtJVF9UT0tFTl9ST0xFX0NMQUlNX05BTUUnLFxuICBUS0lUX1BPUlRBTF9JRCA9ICdUS0lUX1BPUlRBTF9JRCcsXG4gIFRLSVRfU1VQUE9SVEVEX0xBTkdVQUdFUyA9ICdUS0lUX1NVUFBPUlRFRF9MQU5HVUFHRVMnLFxuICBUS0lUX1NFQVJDSF9CQVNFX1VSTCA9ICdUS0lUX1NFQVJDSF9CQVNFX1VSTCcsXG4gIEFQUF9CQVNFX0hSRUYgPSAnQVBQX0JBU0VfSFJFRicsXG4gIEtFWUNMT0FLX1JFQUxNID0gJ0tFWUNMT0FLX1JFQUxNJyxcbiAgS0VZQ0xPQUtfRU5BQkxFX1NJTEVOVF9TU08gPSAnS0VZQ0xPQUtfRU5BQkxFX1NJTEVOVF9TU08nLFxuICBLRVlDTE9BS19VUkwgPSAnS0VZQ0xPQUtfVVJMJyxcbiAgS0VZQ0xPQUtfQ0xJRU5UX0lEID0gJ0tFWUNMT0FLX0NMSUVOVF9JRCcsXG4gIE9ORUNYX1BPUlRBTF9GQVZPUklURVNfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX0ZBVk9SSVRFU19ESVNBQkxFRCcsXG4gIE9ORUNYX1BPUlRBTF9GRUVEQkFDS19ESVNBQkxFRCA9ICdPTkVDWF9QT1JUQUxfRkVFREJBQ0tfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfU0VBUkNIX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9TRUFSQ0hfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfU1VQUE9SVF9USUNLRVRfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX1NVUFBPUlRfVElDS0VUX0RJU0FCTEVEJyxcbiAgT05FQ1hfUE9SVEFMX0FOTk9VTkNFTUVOVFNfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX0FOTk9VTkNFTUVOVFNfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfUEFTU1dPUkRfQ0hBTkdFX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9QQVNTV09SRF9DSEFOR0VfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfU0VUVElOR1NfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX1NFVFRJTkdTX0RJU0FCTEVEJyxcbiAgT05FQ1hfUE9SVEFMX01ZX1JPTEVTX1BFUk1JU1NJT05TX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9NWV9ST0xFU19QRVJNSVNTSU9OU19ESVNBQkxFRCcsXG4gIE9ORUNYX1BPUlRBTF9IRUxQX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9IRUxQX0RJU0FCTEVEJyxcbiAgQVBQX1ZFUlNJT04gPSAnQVBQX1ZFUlNJT04nLFxuICBJU19TSEVMTCA9ICdJU19TSEVMTCcsXG59XG4iXX0=
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { GlobalErrorTopic, GlobalLoadingTopic, CurrentMfeTopic, CurrentPageTopic, CurrentWorkspaceTopic, IsAuthenticatedTopic, } from '@onecx/integration-interface';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class AppStateService {
|
5
|
+
constructor() {
|
6
|
+
this.globalError$ = new GlobalErrorTopic();
|
7
|
+
this.globalLoading$ = new GlobalLoadingTopic();
|
8
|
+
this.currentMfe$ = new CurrentMfeTopic();
|
9
|
+
/**
|
10
|
+
* This topic will only fire when pageInfo.path matches document.location.pathname,
|
11
|
+
* if not it will fire undefined.
|
12
|
+
*/
|
13
|
+
this.currentPage$ = new CurrentPageTopic();
|
14
|
+
this.currentWorkspace$ = new CurrentWorkspaceTopic();
|
15
|
+
/**
|
16
|
+
* This Topic is initialized as soon as the authentication is done
|
17
|
+
*/
|
18
|
+
this.isAuthenticated$ = new IsAuthenticatedTopic();
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* @deprecated Will be replaced by currentWorkspace$
|
22
|
+
*/
|
23
|
+
get currentPortal$() {
|
24
|
+
return this.currentWorkspace$;
|
25
|
+
}
|
26
|
+
set currentPortal$(value) {
|
27
|
+
this.currentWorkspace$ = value;
|
28
|
+
}
|
29
|
+
ngOnDestroy() {
|
30
|
+
this.globalError$.destroy();
|
31
|
+
this.globalLoading$.destroy();
|
32
|
+
this.currentMfe$.destroy();
|
33
|
+
this.currentPage$.destroy();
|
34
|
+
this.currentPortal$.destroy();
|
35
|
+
this.currentWorkspace$.destroy();
|
36
|
+
this.isAuthenticated$.destroy();
|
37
|
+
}
|
38
|
+
}
|
39
|
+
AppStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
40
|
+
AppStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateService, providedIn: 'root' });
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateService, decorators: [{
|
42
|
+
type: Injectable,
|
43
|
+
args: [{ providedIn: 'root' }]
|
44
|
+
}] });
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9saWIvc2VydmljZXMvYXBwLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSw4QkFBOEIsQ0FBQTs7QUFHckMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFRSxpQkFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUNyQyxtQkFBYyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QyxnQkFBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFFbkM7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUE7UUFDckMsc0JBQWlCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFBO1FBWS9DOztXQUVHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFBO0tBVzlDO0lBeEJDOztPQUVHO0lBQ0gsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQy9CLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUE0QjtRQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFPRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDakMsQ0FBQzs7NkdBbkNVLGVBQWU7aUhBQWYsZUFBZSxjQURGLE1BQU07NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdsb2JhbEVycm9yVG9waWMsXG4gIEdsb2JhbExvYWRpbmdUb3BpYyxcbiAgQ3VycmVudE1mZVRvcGljLFxuICBDdXJyZW50UGFnZVRvcGljLFxuICBDdXJyZW50V29ya3NwYWNlVG9waWMsXG4gIElzQXV0aGVudGljYXRlZFRvcGljLFxufSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGdsb2JhbEVycm9yJCA9IG5ldyBHbG9iYWxFcnJvclRvcGljKClcbiAgZ2xvYmFsTG9hZGluZyQgPSBuZXcgR2xvYmFsTG9hZGluZ1RvcGljKClcbiAgY3VycmVudE1mZSQgPSBuZXcgQ3VycmVudE1mZVRvcGljKClcblxuICAvKipcbiAgICogVGhpcyB0b3BpYyB3aWxsIG9ubHkgZmlyZSB3aGVuIHBhZ2VJbmZvLnBhdGggbWF0Y2hlcyBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICogaWYgbm90IGl0IHdpbGwgZmlyZSB1bmRlZmluZWQuXG4gICAqL1xuICBjdXJyZW50UGFnZSQgPSBuZXcgQ3VycmVudFBhZ2VUb3BpYygpXG4gIGN1cnJlbnRXb3Jrc3BhY2UkID0gbmV3IEN1cnJlbnRXb3Jrc3BhY2VUb3BpYygpXG4gIFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBjdXJyZW50V29ya3NwYWNlJFxuICAgKi9cbiAgZ2V0IGN1cnJlbnRQb3J0YWwkKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRXb3Jrc3BhY2UkXG4gIH1cbiAgc2V0IGN1cnJlbnRQb3J0YWwkKHZhbHVlOiBDdXJyZW50V29ya3NwYWNlVG9waWMpIHtcbiAgICB0aGlzLmN1cnJlbnRXb3Jrc3BhY2UkID0gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIFRvcGljIGlzIGluaXRpYWxpemVkIGFzIHNvb24gYXMgdGhlIGF1dGhlbnRpY2F0aW9uIGlzIGRvbmVcbiAgICovXG4gIGlzQXV0aGVudGljYXRlZCQgPSBuZXcgSXNBdXRoZW50aWNhdGVkVG9waWMoKVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLmRlc3Ryb3koKVxuICAgIHRoaXMuZ2xvYmFsTG9hZGluZyQuZGVzdHJveSgpXG4gICAgdGhpcy5jdXJyZW50TWZlJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRQYWdlJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRQb3J0YWwkLmRlc3Ryb3koKVxuICAgIHRoaXMuY3VycmVudFdvcmtzcGFjZSQuZGVzdHJveSgpXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
2
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
3
|
+
import { firstValueFrom } from 'rxjs';
|
4
|
+
import { ConfigurationTopic } from '@onecx/integration-interface';
|
5
|
+
import { APP_CONFIG } from '../api/injection-tokens';
|
6
|
+
import { CONFIG_KEY } from '../model/config-key.model';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "@angular/common/http";
|
9
|
+
export class ConfigurationService {
|
10
|
+
constructor(http, defaultConfig) {
|
11
|
+
this.http = http;
|
12
|
+
this.defaultConfig = defaultConfig;
|
13
|
+
this.config$ = new ConfigurationTopic();
|
14
|
+
}
|
15
|
+
ngOnDestroy() {
|
16
|
+
this.config$.destroy();
|
17
|
+
}
|
18
|
+
init() {
|
19
|
+
return new Promise((resolve, reject) => {
|
20
|
+
const skipRemoteConfigLoad = this.defaultConfig && this.defaultConfig['skipRemoteConfigLoad'];
|
21
|
+
let loadConfigPromise;
|
22
|
+
const inlinedConfig = window['APP_CONFIG'];
|
23
|
+
if (inlinedConfig) {
|
24
|
+
console.log(`ENV resolved from injected config`);
|
25
|
+
loadConfigPromise = Promise.resolve(inlinedConfig);
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
if (skipRemoteConfigLoad) {
|
29
|
+
console.log('📢 TKA001: Remote config load is disabled. To enable it, remove the "skipRemoteConfigLoad" key in your environment.json');
|
30
|
+
loadConfigPromise = Promise.resolve(this.defaultConfig || {});
|
31
|
+
}
|
32
|
+
else {
|
33
|
+
loadConfigPromise = firstValueFrom(this.http.get((this.defaultConfig && this.defaultConfig['remoteConfigURL']) || 'assets/env.json'));
|
34
|
+
}
|
35
|
+
}
|
36
|
+
loadConfigPromise
|
37
|
+
.then(async (config) => {
|
38
|
+
if (config) {
|
39
|
+
await this.config$.publish({ ...this.defaultConfig, ...config }).then(() => {
|
40
|
+
resolve(true);
|
41
|
+
});
|
42
|
+
}
|
43
|
+
})
|
44
|
+
.catch((e) => {
|
45
|
+
console.log(`Failed to load env configuration`);
|
46
|
+
reject(e);
|
47
|
+
});
|
48
|
+
});
|
49
|
+
}
|
50
|
+
get isInitialized() {
|
51
|
+
return this.config$.isInitialized;
|
52
|
+
}
|
53
|
+
getProperty(key) {
|
54
|
+
if (!Object.values(CONFIG_KEY).includes(key)) {
|
55
|
+
console.error('Invalid config key ', key);
|
56
|
+
}
|
57
|
+
return this.config$.getValue()?.[key];
|
58
|
+
}
|
59
|
+
async setProperty(key, val) {
|
60
|
+
const currentValues = await firstValueFrom(this.config$.asObservable());
|
61
|
+
currentValues[key] = val;
|
62
|
+
await this.config$.publish(currentValues);
|
63
|
+
}
|
64
|
+
getConfig() {
|
65
|
+
return this.config$.getValue();
|
66
|
+
}
|
67
|
+
}
|
68
|
+
ConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }, { token: APP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
69
|
+
ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, providedIn: 'root' });
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, decorators: [{
|
71
|
+
type: Injectable,
|
72
|
+
args: [{ providedIn: 'root' }]
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
74
|
+
type: Optional
|
75
|
+
}, {
|
76
|
+
type: Inject,
|
77
|
+
args: [APP_CONFIG]
|
78
|
+
}] }]; } });
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckMsT0FBTyxFQUFVLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7O0FBR3RELE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFDVSxJQUFnQixFQUNnQixhQUF5QztRQUR6RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2dCLGtCQUFhLEdBQWIsYUFBYSxDQUE0QjtRQUpuRixZQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO0lBSy9CLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRU0sSUFBSTtRQUNULE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUM3RixJQUFJLGlCQUFrQyxDQUFBO1lBRXRDLE1BQU0sYUFBYSxHQUFJLE1BQWlELENBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtnQkFDaEQsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTthQUNuRDtpQkFBTTtnQkFDTCxJQUFJLG9CQUFvQixFQUFFO29CQUN4QixPQUFPLENBQUMsR0FBRyxDQUNULHlIQUF5SCxDQUMxSCxDQUFBO29CQUNELGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQTtpQkFDOUQ7cUJBQU07b0JBQ0wsaUJBQWlCLEdBQUcsY0FBYyxDQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FDMUcsQ0FBQTtpQkFDRjthQUNGO1lBRUQsaUJBQWlCO2lCQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksTUFBTSxFQUFFO29CQUNWLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ3pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDZixDQUFDLENBQUMsQ0FBQTtpQkFDSDtZQUNILENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7Z0JBQy9DLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNYLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQTtJQUNuQyxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQWU7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDMUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUMvQyxNQUFNLGFBQWEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7UUFDdkUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUN4QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7O2tIQXBFVSxvQkFBb0IsNENBS1QsVUFBVTtzSEFMckIsb0JBQW9CLGNBRFAsTUFBTTs0RkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTTdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDb25maWcsIENvbmZpZ3VyYXRpb25Ub3BpYyB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnLi4vYXBpL2luamVjdGlvbi10b2tlbnMnXG5pbXBvcnQgeyBDT05GSUdfS0VZIH0gZnJvbSAnLi4vbW9kZWwvY29uZmlnLWtleS5tb2RlbCdcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbmZpZyQgPSBuZXcgQ29uZmlndXJhdGlvblRvcGljKClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfQ09ORklHKSBwcml2YXRlIGRlZmF1bHRDb25maWc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZyQuZGVzdHJveSgpXG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc2tpcFJlbW90ZUNvbmZpZ0xvYWQgPSB0aGlzLmRlZmF1bHRDb25maWcgJiYgdGhpcy5kZWZhdWx0Q29uZmlnWydza2lwUmVtb3RlQ29uZmlnTG9hZCddXG4gICAgICBsZXQgbG9hZENvbmZpZ1Byb21pc2U6IFByb21pc2U8Q29uZmlnPlxuXG4gICAgICBjb25zdCBpbmxpbmVkQ29uZmlnID0gKHdpbmRvdyBhcyB0eXBlb2Ygd2luZG93ICYgeyBBUFBfQ09ORklHOiBDb25maWcgfSlbJ0FQUF9DT05GSUcnXVxuICAgICAgaWYgKGlubGluZWRDb25maWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coYEVOViByZXNvbHZlZCBmcm9tIGluamVjdGVkIGNvbmZpZ2ApXG4gICAgICAgIGxvYWRDb25maWdQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGlubGluZWRDb25maWcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2tpcFJlbW90ZUNvbmZpZ0xvYWQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICfwn5OiIFRLQTAwMTogUmVtb3RlIGNvbmZpZyBsb2FkIGlzIGRpc2FibGVkLiBUbyBlbmFibGUgaXQsIHJlbW92ZSB0aGUgXCJza2lwUmVtb3RlQ29uZmlnTG9hZFwiIGtleSBpbiB5b3VyIGVudmlyb25tZW50Lmpzb24nXG4gICAgICAgICAgKVxuICAgICAgICAgIGxvYWRDb25maWdQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZGVmYXVsdENvbmZpZyB8fCB7fSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2FkQ29uZmlnUHJvbWlzZSA9IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5odHRwLmdldDxDb25maWc+KCh0aGlzLmRlZmF1bHRDb25maWcgJiYgdGhpcy5kZWZhdWx0Q29uZmlnWydyZW1vdGVDb25maWdVUkwnXSkgfHwgJ2Fzc2V0cy9lbnYuanNvbicpXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxvYWRDb25maWdQcm9taXNlXG4gICAgICAgIC50aGVuKGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZyQucHVibGlzaCh7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBsb2FkIGVudiBjb25maWd1cmF0aW9uYClcbiAgICAgICAgICByZWplY3QoZSlcbiAgICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0IGlzSW5pdGlhbGl6ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnJC5pc0luaXRpYWxpemVkXG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvcGVydHkoa2V5OiBDT05GSUdfS0VZKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIU9iamVjdC52YWx1ZXMoQ09ORklHX0tFWSkuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBjb25maWcga2V5ICcsIGtleSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnJC5nZXRWYWx1ZSgpPy5ba2V5XVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWw6IHN0cmluZykge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmNvbmZpZyQuYXNPYnNlcnZhYmxlKCkpXG4gICAgY3VycmVudFZhbHVlc1trZXldID0gdmFsXG4gICAgYXdhaXQgdGhpcy5jb25maWckLnB1Ymxpc2goY3VycmVudFZhbHVlcylcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWcoKTogQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWckLmdldFZhbHVlKClcbiAgfVxufVxuIl19
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
3
|
+
import { combineLatest, of } from 'rxjs';
|
4
|
+
import { MessageTopic } from '@onecx/integration-interface';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@ngx-translate/core";
|
7
|
+
export class PortalMessageService {
|
8
|
+
constructor(translateService) {
|
9
|
+
this.translateService = translateService;
|
10
|
+
this.message$ = new MessageTopic();
|
11
|
+
}
|
12
|
+
success(msg) {
|
13
|
+
this.addTranslated('success', msg);
|
14
|
+
}
|
15
|
+
info(msg) {
|
16
|
+
this.addTranslated('info', msg);
|
17
|
+
}
|
18
|
+
error(msg) {
|
19
|
+
this.addTranslated('error', msg);
|
20
|
+
}
|
21
|
+
warning(msg) {
|
22
|
+
this.addTranslated('warning', msg);
|
23
|
+
}
|
24
|
+
addTranslated(severity, msg) {
|
25
|
+
combineLatest([
|
26
|
+
msg.summaryKey ? this.translateService.get(msg.summaryKey || '', msg.summaryParameters) : of(undefined),
|
27
|
+
msg.detailKey ? this.translateService.get(msg.detailKey, msg.detailParameters) : of(undefined),
|
28
|
+
]).subscribe(([summaryTranslation, detailTranslation]) => {
|
29
|
+
this.message$.publish({
|
30
|
+
...msg,
|
31
|
+
severity: severity,
|
32
|
+
summary: summaryTranslation,
|
33
|
+
detail: detailTranslation,
|
34
|
+
});
|
35
|
+
});
|
36
|
+
}
|
37
|
+
}
|
38
|
+
PortalMessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PortalMessageService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
39
|
+
PortalMessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PortalMessageService, providedIn: 'any' });
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PortalMessageService, decorators: [{
|
41
|
+
type: Injectable,
|
42
|
+
args: [{ providedIn: 'any' }]
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLW1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9wb3J0YWwtbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFBOzs7QUFtQjNELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFFdEQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFGNEIsQ0FBQztJQUkxRCxPQUFPLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEdBQVk7UUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVk7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBZ0IsRUFBRSxHQUFZO1FBQ2xELGFBQWEsQ0FBQztZQUNaLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDdkcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQy9GLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFXLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDcEIsR0FBRyxHQUFHO2dCQUNOLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixNQUFNLEVBQUUsaUJBQWlCO2FBQzFCLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7a0hBakNVLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGNBRFAsS0FBSzs0RkFDbEIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNZXNzYWdlVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlID0ge1xuICBzdW1tYXJ5S2V5Pzogc3RyaW5nXG4gIHN1bW1hcnlQYXJhbWV0ZXJzPzogb2JqZWN0XG4gIGRldGFpbEtleT86IHN0cmluZ1xuICBkZXRhaWxQYXJhbWV0ZXJzPzogb2JqZWN0XG4gIGlkPzogYW55XG4gIGtleT86IHN0cmluZ1xuICBsaWZlPzogbnVtYmVyXG4gIHN0aWNreT86IGJvb2xlYW5cbiAgY2xvc2FibGU/OiBib29sZWFuXG4gIGRhdGE/OiBhbnlcbiAgaWNvbj86IHN0cmluZ1xuICBjb250ZW50U3R5bGVDbGFzcz86IHN0cmluZ1xuICBzdHlsZUNsYXNzPzogc3RyaW5nXG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ2FueScgfSlcbmV4cG9ydCBjbGFzcyBQb3J0YWxNZXNzYWdlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBtZXNzYWdlJCA9IG5ldyBNZXNzYWdlVG9waWMoKVxuXG4gIHN1Y2Nlc3MobXNnOiBNZXNzYWdlKSB7XG4gICAgdGhpcy5hZGRUcmFuc2xhdGVkKCdzdWNjZXNzJywgbXNnKVxuICB9XG5cbiAgaW5mbyhtc2c6IE1lc3NhZ2UpIHtcbiAgICB0aGlzLmFkZFRyYW5zbGF0ZWQoJ2luZm8nLCBtc2cpXG4gIH1cblxuICBlcnJvcihtc2c6IE1lc3NhZ2UpIHtcbiAgICB0aGlzLmFkZFRyYW5zbGF0ZWQoJ2Vycm9yJywgbXNnKVxuICB9XG5cbiAgd2FybmluZyhtc2c6IE1lc3NhZ2UpIHtcbiAgICB0aGlzLmFkZFRyYW5zbGF0ZWQoJ3dhcm5pbmcnLCBtc2cpXG4gIH1cblxuICBwcml2YXRlIGFkZFRyYW5zbGF0ZWQoc2V2ZXJpdHk6IHN0cmluZywgbXNnOiBNZXNzYWdlKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICBtc2cuc3VtbWFyeUtleSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQobXNnLnN1bW1hcnlLZXkgfHwgJycsIG1zZy5zdW1tYXJ5UGFyYW1ldGVycykgOiBvZih1bmRlZmluZWQpLFxuICAgICAgbXNnLmRldGFpbEtleSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQobXNnLmRldGFpbEtleSwgbXNnLmRldGFpbFBhcmFtZXRlcnMpIDogb2YodW5kZWZpbmVkKSxcbiAgICBdKS5zdWJzY3JpYmUoKFtzdW1tYXJ5VHJhbnNsYXRpb24sIGRldGFpbFRyYW5zbGF0aW9uXTogc3RyaW5nW10pID0+IHtcbiAgICAgIHRoaXMubWVzc2FnZSQucHVibGlzaCh7XG4gICAgICAgIC4uLm1zZyxcbiAgICAgICAgc2V2ZXJpdHk6IHNldmVyaXR5LFxuICAgICAgICBzdW1tYXJ5OiBzdW1tYXJ5VHJhbnNsYXRpb24sXG4gICAgICAgIGRldGFpbDogZGV0YWlsVHJhbnNsYXRpb24sXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { RemoteComponentsTopic } from '@onecx/integration-interface';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class RemoteComponentsService {
|
5
|
+
constructor() {
|
6
|
+
this.remoteComponents$ = new RemoteComponentsTopic();
|
7
|
+
}
|
8
|
+
ngOnDestroy() {
|
9
|
+
this.remoteComponents$.destroy();
|
10
|
+
}
|
11
|
+
}
|
12
|
+
RemoteComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
13
|
+
RemoteComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, providedIn: 'root' });
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, decorators: [{
|
15
|
+
type: Injectable,
|
16
|
+
args: [{ providedIn: 'root' }]
|
17
|
+
}] });
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbXBvbmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9yZW1vdGUtY29tcG9uZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUE7O0FBR3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxzQkFBaUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUE7S0FLaEQ7SUFIQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xDLENBQUM7O3FIQUxVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs0RkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZW1vdGVDb21wb25lbnRzVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbXBvbmVudHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVtb3RlQ29tcG9uZW50cyQgPSBuZXcgUmVtb3RlQ29tcG9uZW50c1RvcGljKClcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW90ZUNvbXBvbmVudHMkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { from, map, mergeMap } from 'rxjs';
|
4
|
+
import { CurrentThemeTopic } from '@onecx/integration-interface';
|
5
|
+
import { ConfigurationService } from './configuration.service';
|
6
|
+
import { CONFIG_KEY } from '../model/config-key.model';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "./configuration.service";
|
9
|
+
import * as i2 from "@angular/common/http";
|
10
|
+
const defaultThemeServerUrl = 'http://portal-theme-management:8080';
|
11
|
+
export class ThemeService {
|
12
|
+
constructor(configService, http) {
|
13
|
+
this.configService = configService;
|
14
|
+
this.http = http;
|
15
|
+
this.baseUrlV1 = './portal-api';
|
16
|
+
this.currentTheme$ = new CurrentThemeTopic();
|
17
|
+
}
|
18
|
+
getThemeHref(themeId) {
|
19
|
+
const themeServerUrl = this.configService.getProperty(CONFIG_KEY.TKIT_PORTAL_THEME_SERVER_URL) || defaultThemeServerUrl;
|
20
|
+
return `${themeServerUrl}/themes/${themeId}/${themeId}.min.css`;
|
21
|
+
}
|
22
|
+
loadAndApplyTheme(themeName) {
|
23
|
+
return this.http.get(`${this.baseUrlV1}/internal/themes/${encodeURI(themeName)}`).pipe(mergeMap((theme) => {
|
24
|
+
return from(this.apply(theme)).pipe(map(() => theme));
|
25
|
+
}));
|
26
|
+
}
|
27
|
+
async apply(theme) {
|
28
|
+
console.log(`🎨 Applying theme: ${theme.name}`);
|
29
|
+
await this.currentTheme$.publish(theme);
|
30
|
+
if (theme.properties) {
|
31
|
+
Object.values(theme.properties).forEach((group) => {
|
32
|
+
for (const [key, value] of Object.entries(group)) {
|
33
|
+
document.documentElement.style.setProperty(`--${key}`, value);
|
34
|
+
}
|
35
|
+
});
|
36
|
+
}
|
37
|
+
}
|
38
|
+
ngOnDestroy() {
|
39
|
+
this.currentTheme$.destroy();
|
40
|
+
}
|
41
|
+
}
|
42
|
+
ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, deps: [{ token: i1.ConfigurationService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
43
|
+
ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, decorators: [{
|
45
|
+
type: Injectable,
|
46
|
+
args: [{ providedIn: 'root' }]
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.HttpClient }]; } });
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7Ozs7QUFFdEQsTUFBTSxxQkFBcUIsR0FBRyxxQ0FBcUMsQ0FBQTtBQUduRSxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUFvQixhQUFtQyxFQUFVLElBQWdCO1FBQTdELGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFIakYsY0FBUyxHQUFHLGNBQWMsQ0FBQTtRQUMxQixrQkFBYSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtJQUU2QyxDQUFDO0lBRXJGLFlBQVksQ0FBQyxPQUFlO1FBQzFCLE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsSUFBSSxxQkFBcUIsQ0FBQTtRQUNsRyxPQUFPLEdBQUcsY0FBYyxXQUFXLE9BQU8sSUFBSSxPQUFPLFVBQVUsQ0FBQTtJQUNqRSxDQUFDO0lBRU0saUJBQWlCLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0YsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDaEQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2hELFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO2lCQUM5RDtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDOUIsQ0FBQzs7MEdBbENVLFlBQVk7OEdBQVosWUFBWSxjQURDLE1BQU07NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGZyb20sIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ3VycmVudFRoZW1lVG9waWMsIFRoZW1lIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLnNlcnZpY2UnXG5pbXBvcnQgeyBDT05GSUdfS0VZIH0gZnJvbSAnLi4vbW9kZWwvY29uZmlnLWtleS5tb2RlbCdcblxuY29uc3QgZGVmYXVsdFRoZW1lU2VydmVyVXJsID0gJ2h0dHA6Ly9wb3J0YWwtdGhlbWUtbWFuYWdlbWVudDo4MDgwJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRoZW1lU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGJhc2VVcmxWMSA9ICcuL3BvcnRhbC1hcGknXG4gIGN1cnJlbnRUaGVtZSQgPSBuZXcgQ3VycmVudFRoZW1lVG9waWMoKVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICBnZXRUaGVtZUhyZWYodGhlbWVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aGVtZVNlcnZlclVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0UHJvcGVydHkoQ09ORklHX0tFWS5US0lUX1BPUlRBTF9USEVNRV9TRVJWRVJfVVJMKSB8fCBkZWZhdWx0VGhlbWVTZXJ2ZXJVcmxcbiAgICByZXR1cm4gYCR7dGhlbWVTZXJ2ZXJVcmx9L3RoZW1lcy8ke3RoZW1lSWR9LyR7dGhlbWVJZH0ubWluLmNzc2BcbiAgfVxuXG4gIHB1YmxpYyBsb2FkQW5kQXBwbHlUaGVtZSh0aGVtZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRoZW1lPihgJHt0aGlzLmJhc2VVcmxWMX0vaW50ZXJuYWwvdGhlbWVzLyR7ZW5jb2RlVVJJKHRoZW1lTmFtZSl9YCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh0aGVtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmFwcGx5KHRoZW1lKSkucGlwZShtYXAoKCkgPT4gdGhlbWUpKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYXBwbHkodGhlbWU6IFRoZW1lKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5sb2coYPCfjqggQXBwbHlpbmcgdGhlbWU6ICR7dGhlbWUubmFtZX1gKVxuICAgIGF3YWl0IHRoaXMuY3VycmVudFRoZW1lJC5wdWJsaXNoKHRoZW1lKVxuICAgIGlmICh0aGVtZS5wcm9wZXJ0aWVzKSB7XG4gICAgICBPYmplY3QudmFsdWVzKHRoZW1lLnByb3BlcnRpZXMpLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGdyb3VwKSkge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgLS0ke2tleX1gLCB2YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRUaGVtZSQuZGVzdHJveSgpXG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { BehaviorSubject, map } from 'rxjs';
|
3
|
+
import { PermissionsTopic, UserProfileTopic } from '@onecx/integration-interface';
|
4
|
+
import { DEFAULT_LANG } from '../api/constants';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class UserService {
|
7
|
+
constructor() {
|
8
|
+
this.profile$ = new UserProfileTopic();
|
9
|
+
this.permissions$ = new BehaviorSubject([]);
|
10
|
+
this.lang$ = new BehaviorSubject(this.determineLanguage() ?? DEFAULT_LANG);
|
11
|
+
this.permissionsTopic$ = new PermissionsTopic();
|
12
|
+
this.profile$
|
13
|
+
.pipe(map((profile) => profile.accountSettings?.localeAndTimeSettings?.locale ?? this.determineLanguage() ?? DEFAULT_LANG))
|
14
|
+
.subscribe(this.lang$);
|
15
|
+
this.profile$.pipe(map((profile) => this.extractPermissions(profile))).subscribe(this.permissions$);
|
16
|
+
this.permissionsTopic$.subscribe(this.permissions$);
|
17
|
+
}
|
18
|
+
ngOnDestroy() {
|
19
|
+
this.profile$.destroy();
|
20
|
+
}
|
21
|
+
hasPermission(permissionKey) {
|
22
|
+
const result = this.permissions$.getValue() ? this.permissions$.getValue()?.includes(permissionKey) : false;
|
23
|
+
if (!result) {
|
24
|
+
console.log(`👮♀️ No permission for: ${permissionKey}`);
|
25
|
+
}
|
26
|
+
return !!result;
|
27
|
+
}
|
28
|
+
determineLanguage() {
|
29
|
+
if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {
|
30
|
+
return undefined;
|
31
|
+
}
|
32
|
+
let browserLang = window.navigator.languages ? window.navigator.languages[0] : null;
|
33
|
+
browserLang = browserLang || window.navigator.language;
|
34
|
+
if (typeof browserLang === 'undefined') {
|
35
|
+
return undefined;
|
36
|
+
}
|
37
|
+
if (browserLang.indexOf('-') !== -1) {
|
38
|
+
browserLang = browserLang.split('-')[0];
|
39
|
+
}
|
40
|
+
if (browserLang.indexOf('_') !== -1) {
|
41
|
+
browserLang = browserLang.split('_')[0];
|
42
|
+
}
|
43
|
+
return browserLang;
|
44
|
+
}
|
45
|
+
extractPermissions(userProfile) {
|
46
|
+
const permissions = [];
|
47
|
+
if (userProfile) {
|
48
|
+
if (userProfile.memberships) {
|
49
|
+
userProfile.memberships.forEach((m) => {
|
50
|
+
m.roleMemberships?.forEach((r) => {
|
51
|
+
r.permissions?.forEach((p) => {
|
52
|
+
if (p) {
|
53
|
+
if (p.key !== undefined) {
|
54
|
+
permissions.push(p.key);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
});
|
58
|
+
});
|
59
|
+
});
|
60
|
+
}
|
61
|
+
}
|
62
|
+
return permissions;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
66
|
+
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, providedIn: 'root' });
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
|
68
|
+
type: Injectable,
|
69
|
+
args: [{ providedIn: 'root' }]
|
70
|
+
}], ctorParameters: function () { return []; } });
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7QUFHL0MsTUFBTSxPQUFPLFdBQVc7SUFPdEI7UUFOQSxhQUFRLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO1FBQ2pDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUE7UUFDaEQsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFBO1FBRTdELHNCQUFpQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUdoRCxJQUFJLENBQUMsUUFBUTthQUNWLElBQUksQ0FDSCxHQUFHLENBQ0QsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFlBQVksQ0FDckcsQ0FDRjthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbkcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxhQUFhLENBQUMsYUFBcUI7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUMzRyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsYUFBYSxFQUFFLENBQUMsQ0FBQTtTQUN6RDtRQUNELE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUNqQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE9BQU8sTUFBTSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFDNUUsT0FBTyxTQUFTLENBQUE7U0FDakI7UUFFRCxJQUFJLFdBQVcsR0FBUSxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUN4RixXQUFXLEdBQUcsV0FBVyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFBO1FBRXRELElBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQ3RDLE9BQU8sU0FBUyxDQUFBO1NBQ2pCO1FBRUQsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ25DLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3hDO1FBRUQsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ25DLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3hDO1FBRUQsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFdBQXdCO1FBQ2pELE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDM0IsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDcEMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDL0IsQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTs0QkFDM0IsSUFBSSxDQUFDLEVBQUU7Z0NBQ0wsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtvQ0FDdkIsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7aUNBQ3hCOzZCQUNGO3dCQUNILENBQUMsQ0FBQyxDQUFBO29CQUNKLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFBO2FBQ0g7U0FDRjtRQUNELE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7O3lHQTFFVSxXQUFXOzZHQUFYLFdBQVcsY0FERSxNQUFNOzRGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1RvcGljLCBVc2VyUHJvZmlsZSwgVXNlclByb2ZpbGVUb3BpYyB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5pbXBvcnQgeyBERUZBVUxUX0xBTkcgfSBmcm9tICcuLi9hcGkvY29uc3RhbnRzJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJvZmlsZSQgPSBuZXcgVXNlclByb2ZpbGVUb3BpYygpXG4gIHBlcm1pc3Npb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKVxuICBsYW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5kZXRlcm1pbmVMYW5ndWFnZSgpID8/IERFRkFVTFRfTEFORylcblxuICBwcml2YXRlIHBlcm1pc3Npb25zVG9waWMkID0gbmV3IFBlcm1pc3Npb25zVG9waWMoKVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucHJvZmlsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKHByb2ZpbGUpID0+XG4gICAgICAgICAgICBwcm9maWxlLmFjY291bnRTZXR0aW5ncz8ubG9jYWxlQW5kVGltZVNldHRpbmdzPy5sb2NhbGUgPz8gdGhpcy5kZXRlcm1pbmVMYW5ndWFnZSgpID8/IERFRkFVTFRfTEFOR1xuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGFuZyQpXG5cbiAgICB0aGlzLnByb2ZpbGUkLnBpcGUobWFwKChwcm9maWxlKSA9PiB0aGlzLmV4dHJhY3RQZXJtaXNzaW9ucyhwcm9maWxlKSkpLnN1YnNjcmliZSh0aGlzLnBlcm1pc3Npb25zJClcbiAgICB0aGlzLnBlcm1pc3Npb25zVG9waWMkLnN1YnNjcmliZSh0aGlzLnBlcm1pc3Npb25zJClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZSQuZGVzdHJveSgpXG4gIH1cblxuICBoYXNQZXJtaXNzaW9uKHBlcm1pc3Npb25LZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMucGVybWlzc2lvbnMkLmdldFZhbHVlKCkgPyB0aGlzLnBlcm1pc3Npb25zJC5nZXRWYWx1ZSgpPy5pbmNsdWRlcyhwZXJtaXNzaW9uS2V5KSA6IGZhbHNlXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5Gu4oCN4pmA77iPIE5vIHBlcm1pc3Npb24gZm9yOiAke3Blcm1pc3Npb25LZXl9YClcbiAgICB9XG4gICAgcmV0dXJuICEhcmVzdWx0XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZUxhbmd1YWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGxldCBicm93c2VyTGFuZzogYW55ID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXMgPyB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6IG51bGxcbiAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nIHx8IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VcblxuICAgIGlmICh0eXBlb2YgYnJvd3NlckxhbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKGJyb3dzZXJMYW5nLmluZGV4T2YoJy0nKSAhPT0gLTEpIHtcbiAgICAgIGJyb3dzZXJMYW5nID0gYnJvd3Nlckxhbmcuc3BsaXQoJy0nKVswXVxuICAgIH1cblxuICAgIGlmIChicm93c2VyTGFuZy5pbmRleE9mKCdfJykgIT09IC0xKSB7XG4gICAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nLnNwbGl0KCdfJylbMF1cbiAgICB9XG5cbiAgICByZXR1cm4gYnJvd3NlckxhbmdcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFBlcm1pc3Npb25zKHVzZXJQcm9maWxlOiBVc2VyUHJvZmlsZSkge1xuICAgIGNvbnN0IHBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdXG4gICAgaWYgKHVzZXJQcm9maWxlKSB7XG4gICAgICBpZiAodXNlclByb2ZpbGUubWVtYmVyc2hpcHMpIHtcbiAgICAgICAgdXNlclByb2ZpbGUubWVtYmVyc2hpcHMuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgICAgIG0ucm9sZU1lbWJlcnNoaXBzPy5mb3JFYWNoKChyKSA9PiB7XG4gICAgICAgICAgICByLnBlcm1pc3Npb25zPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHAua2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zLnB1c2gocC5rZXkpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwZXJtaXNzaW9uc1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lY3gtYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9vbmVjeC1hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { Injectable, InjectionToken, Optional, Inject } from '@angular/core';
|
3
|
-
import { GlobalErrorTopic, GlobalLoadingTopic, CurrentMfeTopic, CurrentPageTopic,
|
3
|
+
import { GlobalErrorTopic, GlobalLoadingTopic, CurrentMfeTopic, CurrentPageTopic, CurrentWorkspaceTopic, IsAuthenticatedTopic, ConfigurationTopic, UserProfileTopic, PermissionsTopic, MessageTopic, CurrentThemeTopic, RemoteComponentsTopic } from '@onecx/integration-interface';
|
4
4
|
import { __awaiter } from 'tslib';
|
5
5
|
import { firstValueFrom, BehaviorSubject, map, combineLatest, of, mergeMap, from } from 'rxjs';
|
6
6
|
import * as i1 from '@angular/common/http';
|
@@ -16,18 +16,28 @@ class AppStateService {
|
|
16
16
|
* if not it will fire undefined.
|
17
17
|
*/
|
18
18
|
this.currentPage$ = new CurrentPageTopic();
|
19
|
-
this.
|
19
|
+
this.currentWorkspace$ = new CurrentWorkspaceTopic();
|
20
20
|
/**
|
21
21
|
* This Topic is initialized as soon as the authentication is done
|
22
22
|
*/
|
23
23
|
this.isAuthenticated$ = new IsAuthenticatedTopic();
|
24
24
|
}
|
25
|
+
/**
|
26
|
+
* @deprecated Will be replaced by currentWorkspace$
|
27
|
+
*/
|
28
|
+
get currentPortal$() {
|
29
|
+
return this.currentWorkspace$;
|
30
|
+
}
|
31
|
+
set currentPortal$(value) {
|
32
|
+
this.currentWorkspace$ = value;
|
33
|
+
}
|
25
34
|
ngOnDestroy() {
|
26
35
|
this.globalError$.destroy();
|
27
36
|
this.globalLoading$.destroy();
|
28
37
|
this.currentMfe$.destroy();
|
29
38
|
this.currentPage$.destroy();
|
30
39
|
this.currentPortal$.destroy();
|
40
|
+
this.currentWorkspace$.destroy();
|
31
41
|
this.isAuthenticated$.destroy();
|
32
42
|
}
|
33
43
|
}
|
@@ -123,7 +133,9 @@ class ConfigurationService {
|
|
123
133
|
}
|
124
134
|
setProperty(key, val) {
|
125
135
|
return __awaiter(this, void 0, void 0, function* () {
|
126
|
-
yield this.config$.
|
136
|
+
const currentValues = yield firstValueFrom(this.config$.asObservable());
|
137
|
+
currentValues[key] = val;
|
138
|
+
yield this.config$.publish(currentValues);
|
127
139
|
});
|
128
140
|
}
|
129
141
|
getConfig() {
|
@@ -153,10 +165,12 @@ class UserService {
|
|
153
165
|
this.profile$ = new UserProfileTopic();
|
154
166
|
this.permissions$ = new BehaviorSubject([]);
|
155
167
|
this.lang$ = new BehaviorSubject((_a = this.determineLanguage()) !== null && _a !== void 0 ? _a : DEFAULT_LANG);
|
168
|
+
this.permissionsTopic$ = new PermissionsTopic();
|
156
169
|
this.profile$
|
157
170
|
.pipe(map((profile) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = profile.accountSettings) === null || _a === void 0 ? void 0 : _a.localeAndTimeSettings) === null || _b === void 0 ? void 0 : _b.locale) !== null && _c !== void 0 ? _c : this.determineLanguage()) !== null && _d !== void 0 ? _d : DEFAULT_LANG; }))
|
158
171
|
.subscribe(this.lang$);
|
159
172
|
this.profile$.pipe(map((profile) => this.extractPermissions(profile))).subscribe(this.permissions$);
|
173
|
+
this.permissionsTopic$.subscribe(this.permissions$);
|
160
174
|
}
|
161
175
|
ngOnDestroy() {
|
162
176
|
this.profile$.destroy();
|
@@ -289,11 +303,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
289
303
|
args: [{ providedIn: 'root' }]
|
290
304
|
}], ctorParameters: function () { return [{ type: ConfigurationService }, { type: i1.HttpClient }]; } });
|
291
305
|
|
306
|
+
class RemoteComponentsService {
|
307
|
+
constructor() {
|
308
|
+
this.remoteComponents$ = new RemoteComponentsTopic();
|
309
|
+
}
|
310
|
+
ngOnDestroy() {
|
311
|
+
this.remoteComponents$.destroy();
|
312
|
+
}
|
313
|
+
}
|
314
|
+
RemoteComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
315
|
+
RemoteComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, providedIn: 'root' });
|
316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, decorators: [{
|
317
|
+
type: Injectable,
|
318
|
+
args: [{ providedIn: 'root' }]
|
319
|
+
}] });
|
320
|
+
|
292
321
|
// services
|
293
322
|
|
294
323
|
/**
|
295
324
|
* Generated bundle index. Do not edit.
|
296
325
|
*/
|
297
326
|
|
298
|
-
export { APPLICATION_NAME, APP_CONFIG, AUTH_SERVICE, AppStateService, CONFIG_KEY, ConfigurationService, PortalMessageService, SANITY_CHECK, ThemeService, UserService };
|
327
|
+
export { APPLICATION_NAME, APP_CONFIG, AUTH_SERVICE, AppStateService, CONFIG_KEY, ConfigurationService, PortalMessageService, RemoteComponentsService, SANITY_CHECK, ThemeService, UserService };
|
299
328
|
//# sourceMappingURL=onecx-angular-integration-interface.mjs.map
|