@yuuvis/client-shell-core 2.0.0-beta.0 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +4 -0
  2. package/esm2022/index.mjs +7 -2
  3. package/esm2022/lib/client-shell.assets.mjs +7 -8
  4. package/esm2022/lib/client-shell.interface.mjs +1 -1
  5. package/esm2022/lib/services/command-palette/command-palette/command-palette.component.mjs +18 -92
  6. package/esm2022/lib/services/command-palette/command-palette.service.mjs +16 -14
  7. package/esm2022/lib/services/feature/feature.guard.mjs +7 -0
  8. package/esm2022/lib/services/feature/feature.interface.mjs +2 -0
  9. package/esm2022/lib/services/feature/feature.providers.mjs +8 -0
  10. package/esm2022/lib/services/feature/feature.service.mjs +93 -0
  11. package/esm2022/lib/services/feature/index.mjs +5 -0
  12. package/esm2022/lib/services/shell/noop.extension.mjs +13 -0
  13. package/esm2022/lib/services/shell/shell.bootstrap.mjs +68 -0
  14. package/esm2022/lib/services/shell/shell.providers.mjs +21 -0
  15. package/esm2022/lib/services/shell/shell.service.mjs +129 -57
  16. package/esm2022/lib/services/shell-config/shell-config.const.mjs +23 -0
  17. package/esm2022/lib/services/shell-config/shell-config.interface.mjs +2 -0
  18. package/esm2022/lib/services/shell-config/shell-config.service.mjs +100 -0
  19. package/esm2022/lib/services/shell-notifications/shell-notifications.service.mjs +9 -9
  20. package/index.d.ts +6 -1
  21. package/lib/assets/i18n/de.json +0 -1
  22. package/lib/assets/i18n/en.json +0 -1
  23. package/lib/client-shell.assets.d.ts +2 -8
  24. package/lib/client-shell.interface.d.ts +13 -6
  25. package/lib/services/command-palette/command-palette.service.d.ts +1 -2
  26. package/lib/services/feature/feature.guard.d.ts +2 -0
  27. package/lib/services/feature/feature.interface.d.ts +11 -0
  28. package/lib/services/feature/feature.providers.d.ts +4 -0
  29. package/lib/services/feature/feature.service.d.ts +20 -0
  30. package/lib/services/feature/index.d.ts +4 -0
  31. package/lib/services/shell/noop.extension.d.ts +7 -0
  32. package/lib/services/shell/shell.bootstrap.d.ts +29 -0
  33. package/lib/services/shell/shell.providers.d.ts +2 -0
  34. package/lib/services/shell/shell.service.d.ts +13 -4
  35. package/lib/services/shell-config/shell-config.const.d.ts +8 -0
  36. package/lib/services/shell-config/shell-config.interface.d.ts +13 -0
  37. package/lib/services/shell-config/shell-config.service.d.ts +30 -0
  38. package/package.json +6 -8
  39. package/esm2022/lib/services/shell/shell.extensions.service.mjs +0 -9
  40. package/lib/services/shell/shell.extensions.service.d.ts +0 -2
@@ -0,0 +1,100 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ApiBase, BackendService, BaseObjectTypeField, DmsService } from '@yuuvis/client-core';
3
+ import { map, of, switchMap } from 'rxjs';
4
+ import { getShellConfigQueryString, SHELL_CONFIG_BASE } from './shell-config.const';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Service to manage shell configuration objects. Base on the 'system:item' type.
8
+ */
9
+ export class ShellConfigService {
10
+ #dmsService = inject(DmsService);
11
+ #backend = inject(BackendService);
12
+ get(name) {
13
+ let object;
14
+ return this.#backend
15
+ .post('/dms/objects/search', {
16
+ query: {
17
+ statement: getShellConfigQueryString(name)
18
+ }
19
+ }, ApiBase.core)
20
+ .pipe(map((res) => {
21
+ if (res.objects.length) {
22
+ object = res.objects[0];
23
+ }
24
+ return object ? object.properties[BaseObjectTypeField.OBJECT_ID].value : undefined;
25
+ }), switchMap((id) => (id ? this.#backend.get(`/api/dms/objects/${id}/contents/file`, ApiBase.core) : of(undefined))), map((data) => {
26
+ return data
27
+ ? {
28
+ id: object.properties[BaseObjectTypeField.OBJECT_ID].value,
29
+ name: object.properties[SHELL_CONFIG_BASE.nameProperty].value,
30
+ context: object.properties['system:context']?.value,
31
+ user: object.properties['system:user']?.value,
32
+ data
33
+ }
34
+ : undefined;
35
+ }));
36
+ }
37
+ /**
38
+ * Create a new configuration object.
39
+ * @param cfg the configuration object to be created
40
+ */
41
+ create(name, data, context, user) {
42
+ const properties = {
43
+ [SHELL_CONFIG_BASE.nameProperty]: name
44
+ };
45
+ if (user)
46
+ properties['system:user'] = user;
47
+ if (context)
48
+ properties['system:context'] = context;
49
+ return this.#dmsService
50
+ .createDmsObject(SHELL_CONFIG_BASE.objectType, {
51
+ [BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS]: [SHELL_CONFIG_BASE.secondaryObjectType],
52
+ ...properties
53
+ }, [this.#dataToFile(data)], undefined, true)
54
+ .pipe(map((res) => ({
55
+ id: res[0],
56
+ name,
57
+ context,
58
+ user,
59
+ data
60
+ })));
61
+ }
62
+ /**
63
+ * Update data of an existing configuration object.
64
+ * @param id the id of the configuration object to update
65
+ * @param data the new configuration data to be set
66
+ */
67
+ update(id, data) {
68
+ return this.#dmsService.uploadContent(id, this.#dataToFile(data), undefined, true);
69
+ }
70
+ /**
71
+ * Delete a configuration object.
72
+ * @param id the id of the configuration object to delete
73
+ */
74
+ delete(id) {
75
+ return this.#dmsService.deleteDmsObject(id);
76
+ }
77
+ download(id, filename) {
78
+ this.#backend.download(this.#dmsService.getContentPath(id), filename);
79
+ }
80
+ upload(id, file) {
81
+ return this.#dmsService.uploadContent(id, file, undefined, true);
82
+ }
83
+ /**
84
+ * Transform the configuration to a file.
85
+ * @param data the configuration data to be transformed
86
+ * @returns a file object containing the configuration data
87
+ */
88
+ #dataToFile(data) {
89
+ return new File([JSON.stringify(data)], 'config.json', { type: 'application/json' });
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ShellConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
92
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ShellConfigService, providedIn: 'root' }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ShellConfigService, decorators: [{
95
+ type: Injectable,
96
+ args: [{
97
+ providedIn: 'root'
98
+ }]
99
+ }] });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtc2hlbGwtY29yZS9zcmMvbGliL3NlcnZpY2VzL3NoZWxsLWNvbmZpZy9zaGVsbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQU8sTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR3BGOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFbEMsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLE1BQVcsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2pCLElBQUksQ0FDSCxxQkFBcUIsRUFDckI7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLHlCQUF5QixDQUFDLElBQUksQ0FBQzthQUMzQztTQUNGLEVBQ0QsT0FBTyxDQUFDLElBQUksQ0FDYjthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNWLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIs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LENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN2RixDQUFDOzhHQXRHVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcGlCYXNlLCBCYWNrZW5kU2VydmljZSwgQmFzZU9iamVjdFR5cGVGaWVsZCwgRG1zU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldFNoZWxsQ29uZmlnUXVlcnlTdHJpbmcsIFNIRUxMX0NPTkZJR19CQVNFIH0gZnJvbSAnLi9zaGVsbC1jb25maWcuY29uc3QnO1xuaW1wb3J0IHsgU2hlbGxDb25maWcgfSBmcm9tICcuL3NoZWxsLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gbWFuYWdlIHNoZWxsIGNvbmZpZ3VyYXRpb24gb2JqZWN0cy4gQmFzZSBvbiB0aGUgJ3N5c3RlbTppdGVtJyB0eXBlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaGVsbENvbmZpZ1NlcnZpY2Uge1xuICAjZG1zU2VydmljZSA9IGluamVjdChEbXNTZXJ2aWNlKTtcbiAgI2JhY2tlbmQgPSBpbmplY3QoQmFja2VuZFNlcnZpY2UpO1xuXG4gIGdldChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNoZWxsQ29uZmlnIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IG9iamVjdDogYW55O1xuICAgIHJldHVybiB0aGlzLiNiYWNrZW5kXG4gICAgICAucG9zdChcbiAgICAgICAgJy9kbXMvb2JqZWN0cy9zZWFyY2gnLFxuICAgICAgICB7XG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIHN0YXRlbWVudDogZ2V0U2hlbGxDb25maWdRdWVyeVN0cmluZyhuYW1lKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgQXBpQmFzZS5jb3JlXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzLm9iamVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBvYmplY3QgPSByZXMub2JqZWN0c1swXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9iamVjdCA/IG9iamVjdC5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXS52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgoaWQpID0+IChpZCA/IHRoaXMuI2JhY2tlbmQuZ2V0KGAvYXBpL2Rtcy9vYmplY3RzLyR7aWR9L2NvbnRlbnRzL2ZpbGVgLCBBcGlCYXNlLmNvcmUpIDogb2YodW5kZWZpbmVkKSkpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgaWQ6IG9iamVjdC5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBvYmplY3QucHJvcGVydGllc1tTSEVMTF9DT05GSUdfQkFTRS5uYW1lUHJvcGVydHldLnZhbHVlLFxuICAgICAgICAgICAgICAgIGNvbnRleHQ6IG9iamVjdC5wcm9wZXJ0aWVzWydzeXN0ZW06Y29udGV4dCddPy52YWx1ZSxcbiAgICAgICAgICAgICAgICB1c2VyOiBvYmplY3QucHJvcGVydGllc1snc3lzdGVtOnVzZXInXT8udmFsdWUsXG4gICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gY2ZnIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0byBiZSBjcmVhdGVkXG4gICAqL1xuICBjcmVhdGUobmFtZTogc3RyaW5nLCBkYXRhOiB1bmtub3duLCBjb250ZXh0Pzogc3RyaW5nLCB1c2VyPzogc3RyaW5nW10pOiBPYnNlcnZhYmxlPFNoZWxsQ29uZmlnPiB7XG4gICAgY29uc3QgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBbU0hFTExfQ09ORklHX0JBU0UubmFtZVByb3BlcnR5XTogbmFtZVxuICAgIH07XG4gICAgaWYgKHVzZXIpIHByb3BlcnRpZXNbJ3N5c3RlbTp1c2VyJ10gPSB1c2VyO1xuICAgIGlmIChjb250ZXh0KSBwcm9wZXJ0aWVzWydzeXN0ZW06Y29udGV4dCddID0gY29udGV4dDtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZVxuICAgICAgLmNyZWF0ZURtc09iamVjdChcbiAgICAgICAgU0hFTExfQ09ORklHX0JBU0Uub2JqZWN0VHlwZSxcbiAgICAgICAge1xuICAgICAgICAgIFtCYXNlT2JqZWN0VHlwZUZpZWxkLlNFQ09OREFSWV9PQkpFQ1RfVFlQRV9JRFNdOiBbU0hFTExfQ09ORklHX0JBU0Uuc2Vjb25kYXJ5T2JqZWN0VHlwZV0sXG4gICAgICAgICAgLi4ucHJvcGVydGllc1xuICAgICAgICB9LFxuICAgICAgICBbdGhpcy4jZGF0YVRvRmlsZShkYXRhKV0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiAoe1xuICAgICAgICAgIGlkOiByZXNbMF0sXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGRhdGEgb2YgYW4gZXhpc3RpbmcgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBpZCB0aGUgaWQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gZGF0YSB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZGF0YSB0byBiZSBzZXRcbiAgICovXG4gIHVwZGF0ZShpZDogc3RyaW5nLCBkYXRhOiB1bmtub3duKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS51cGxvYWRDb250ZW50KGlkLCB0aGlzLiNkYXRhVG9GaWxlKGRhdGEpLCB1bmRlZmluZWQsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gaWQgdGhlIGlkIG9mIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0byBkZWxldGVcbiAgICovXG4gIGRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jZG1zU2VydmljZS5kZWxldGVEbXNPYmplY3QoaWQpO1xuICB9XG5cbiAgZG93bmxvYWQoaWQ6IHN0cmluZywgZmlsZW5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNiYWNrZW5kLmRvd25sb2FkKHRoaXMuI2Rtc1NlcnZpY2UuZ2V0Q29udGVudFBhdGgoaWQpLCBmaWxlbmFtZSk7XG4gIH1cblxuICB1cGxvYWQoaWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rtc1NlcnZpY2UudXBsb2FkQ29udGVudChpZCwgZmlsZSwgdW5kZWZpbmVkLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhlIGNvbmZpZ3VyYXRpb24gdG8gYSBmaWxlLlxuICAgKiBAcGFyYW0gZGF0YSB0aGUgY29uZmlndXJhdGlvbiBkYXRhIHRvIGJlIHRyYW5zZm9ybWVkXG4gICAqIEByZXR1cm5zIGEgZmlsZSBvYmplY3QgY29udGFpbmluZyB0aGUgY29uZmlndXJhdGlvbiBkYXRhXG4gICAqL1xuICAjZGF0YVRvRmlsZShkYXRhOiB1bmtub3duKTogRmlsZSB7XG4gICAgcmV0dXJuIG5ldyBGaWxlKFtKU09OLnN0cmluZ2lmeShkYXRhKV0sICdjb25maWcuanNvbicsIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuICB9XG59XG4iXX0=
@@ -77,13 +77,13 @@ export class ShellNotificationsService {
77
77
  this._notificationsSource.next(this._notifications);
78
78
  this.appCache.setItem(this.LOCAL_STORAGE_KEY, this._notifications).subscribe();
79
79
  }
80
- static { this.ɵfac = function ShellNotificationsService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ShellNotificationsService)(); }; }
81
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ShellNotificationsService, factory: ShellNotificationsService.ɵfac, providedIn: 'root' }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ShellNotificationsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
81
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ShellNotificationsService, providedIn: 'root' }); }
82
82
  }
83
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShellNotificationsService, [{
84
- type: Injectable,
85
- args: [{
86
- providedIn: 'root'
87
- }]
88
- }], () => [], null); })();
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zaGVsbC1ub3RpZmljYXRpb25zL3NoZWxsLW5vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFekM7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxNQUFNLENBQXdCO0lBQzlCLE9BQU8sQ0FBa0I7SUFFekIsMEJBQTBCLENBQXFDO0lBTS9EO1FBWFEsc0JBQWlCLEdBQUcseUJBQXlCLENBQUM7UUFDOUMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLCtCQUEwQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXZELG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUM3Qyx5QkFBb0IsR0FBRyxJQUFJLGFBQWEsRUFBMkIsQ0FBQztRQUM1RSx3QkFBbUIs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QUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRixDQUFDOzBIQXhFVSx5QkFBeUI7dUVBQXpCLHlCQUF5QixXQUF6Qix5QkFBeUIsbUJBRnhCLE1BQU07O2lGQUVQLHlCQUF5QjtjQUhyQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoZWxsTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9zaGVsbC1ub3RpZmljYXRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcHBDYWNoZVNlcnZpY2UsIE5hdGl2ZU5vdGlmaWNhdGlvblNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBTaGVsbFNlcnZpY2UgfSBmcm9tICcuLi9zaGVsbC9zaGVsbC5zZXJ2aWNlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbi8qKlxuICogU2VydmljZSBtYW5hZ2luZyBzaGVsbCBub3RpZmljYXRpb25zLlxuICogRXZlcnkgYXBwIGNvdWxkIHByb3BhZ2F0ZSBzaGVsbCBub3RpZmljYXRpb25zLiBUaGV5IHdpbGwgYmUgcHVibGlzaGVkXG4gKiBpbiB0aGUgbm90aWZpY2F0aW9ucyBzZWN0aW9uIG9mIHRoZSBzaGVsbC4gSW5jb21pbmcgbmV3IG1lc3NhaGVzIHdpbGxcbiAqIGFsc28gYWRkIGFuIGluZGljYXRvciB0byB0aGUgaWNvbiBpbiB0aGUgc2hlbGwgYmFyLlxuICpcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2hlbGxOb3RpZmljYXRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgTE9DQUxfU1RPUkFHRV9LRVkgPSAneXV2LnNoZWxsLm5vdGlmaWNhdGlvbnMnO1xuICBwcml2YXRlIGFwcENhY2hlID0gaW5qZWN0KEFwcENhY2hlU2VydmljZSk7XG4gICNzaGVsbCA9IGluamVjdChTaGVsbFNlcnZpY2UpO1xuICAjcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAjbmF0aXZlTm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChOYXRpdmVOb3RpZmljYXRpb25TZXJ2aWNlKTtcblxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zOiBTaGVsbE5vdGlmaWNhdGlvbkl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIF9ub3RpZmljYXRpb25zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8U2hlbGxOb3RpZmljYXRpb25JdGVtW10+KCk7XG4gIHNoZWxsTm90aWZpY2F0aW9ucyQ6IE9ic2VydmFibGU8U2hlbGxOb3RpZmljYXRpb25JdGVtW10+ID0gdGhpcy5fbm90aWZpY2F0aW9uc1NvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFwcENhY2hlLmdldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSByZXMgfHwgW107XG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5fbm90aWZpY2F0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBnZXROb3RpZmljYXRpb25zKGlkOiBzdHJpbmcpIHtcbiAgLy8gICBjb25zdCBmaWxlID0gW1xuICAvLyAgICAgeyBpZDogJ2lvLnl1dXZpcy5hcHAuZHJpdmUnLCBjb3VudDogMiwgbWF4TGV2ZWw6ICdpbmZvJyB9LFxuICAvLyAgICAgeyBpZDogJ2lvLnl1dXZpcy5hcHAudGFza3MnLCBjb3VudDogMjIyLCBtYXhMZXZlbDogJ3dhcm5pbmcnIH1cbiAgLy8gICBdO1xuXG4gIC8vICAgcmV0dXJuIGZpbGUuZmluZCgoZikgPT4gZi5pZCA9PT0gaWQpO1xuICAvLyB9XG5cbiAgYWRkKG5vdGlmaWNhdGlvbjogU2hlbGxOb3RpZmljYXRpb24sIG5hdGl2ZU5vdGlmaWNhdGlvbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucy5wdXNoKHtcbiAgICAgIC4uLm5vdGlmaWNhdGlvbixcbiAgICAgIGlkOiBVdGlscy51dWlkKCksXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxuICAgICAgc2VlbjogZmFsc2VcbiAgICB9KTtcbiAgICAvLyBjaGVjayBmb3IgdW5zZWVuIGl0ZW1zXG4gICAgaWYgKGRvY3VtZW50LmhpZGRlbiAmJiBuYXRpdmVOb3RpZmljYXRpb24gJiYgdGhpcy5fbm90aWZpY2F0aW9ucy5zb21lKChuKSA9PiAhbi5zZWVuKSkge1xuICAgICAgdGhpcy4jbmF0aXZlTm90aWZpY2F0aW9uU2VydmljZS5zaG93Tm90aWZpY2F0aW9uKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5zaGVsbC5ub3RpZmljYXRpb24ubmF0aXZlLnRpdGxlJyksIHtcbiAgICAgICAgb25DbGljazogKCkgPT4gdGhpcy4jcm91dGVyLm5hdmlnYXRlKFt7IG91dGxldHM6IHsgYXNpZGU6ICdub3RpZmljYXRpb25zJyB9IH1dKSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGJvZHk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5zaGVsbC5ub3RpZmljYXRpb24ubmF0aXZlLm1lc3NhZ2UnKSxcbiAgICAgICAgICAvLyBiYWRnZTogdGhpcy4jc2hlbGwuc2hlbGxDb25maWcoKS5pY29ucyEuYXBwSWNvbixcbiAgICAgICAgICBpY29uOiAnaHR0cHM6Ly9idWRnaWUuZW5haW9jaS5uZXQvY2xpZW50L2Fzc2V0cy9feXV1dmlzL3RoZW1lL2Zhdmljb24uc3ZnJ1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgcmVtb3ZlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucy5maWx0ZXIoKG4pID0+IG4uaWQgIT09IGlkKTtcbiAgICB0aGlzLl91cGRhdGVOb3RpZmljYXRpb25zKCk7XG4gIH1cblxuICByZW1vdmVBbGwoKSB7XG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IFtdO1xuICAgIHRoaXMuX3VwZGF0ZU5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIG1hcmtBbGxBc1NlZW4oKSB7XG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucy5mb3JFYWNoKChuKSA9PiAobi5zZWVuID0gdHJ1ZSkpO1xuICAgIHRoaXMuX3VwZGF0ZU5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvbkJ5SWQoaWQ6IHN0cmluZyk6IFNoZWxsTm90aWZpY2F0aW9uSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbnMuZmluZCgobikgPT4gbi5pZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTm90aWZpY2F0aW9ucygpIHtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucy5zb3J0KChhLCBiKSA9PiBiLnRpbWVzdGFtcCAtIGEudGltZXN0YW1wKTtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5fbm90aWZpY2F0aW9ucyk7XG4gICAgdGhpcy5hcHBDYWNoZS5zZXRJdGVtKHRoaXMuTE9DQUxfU1RPUkFHRV9LRVksIHRoaXMuX25vdGlmaWNhdGlvbnMpLnN1YnNjcmliZSgpO1xuICB9XG59XG5cbnR5cGUgU2hlbGxOb3RpZmljYXRpb25JdGVtID0gU2hlbGxOb3RpZmljYXRpb24gJiB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xuICBzZWVuOiBib29sZWFuO1xufTtcbiJdfQ==
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ShellNotificationsService, decorators: [{
84
+ type: Injectable,
85
+ args: [{
86
+ providedIn: 'root'
87
+ }]
88
+ }], ctorParameters: () => [] });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtbm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zaGVsbC1ub3RpZmljYXRpb25zL3NoZWxsLW5vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFekM7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxNQUFNLENBQXdCO0lBQzlCLE9BQU8sQ0FBa0I7SUFFekIsMEJBQTBCLENBQXFDO0lBTS9EO1FBWFEsc0JBQWlCLEdBQUcseUJBQXlCLENBQUM7UUFDOUMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLFlBQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLCtCQUEwQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXZELG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUM3Qyx5QkFBb0IsR0FBRyxJQUFJLGFBQWEsRUFBMkIsQ0FBQztRQUM1RSx3QkFBbUIs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QUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRixDQUFDOzhHQXhFVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaGVsbE5vdGlmaWNhdGlvbiB9IGZyb20gJy4vc2hlbGwtbm90aWZpY2F0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwQ2FjaGVTZXJ2aWNlLCBOYXRpdmVOb3RpZmljYXRpb25TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgU2hlbGxTZXJ2aWNlIH0gZnJvbSAnLi4vc2hlbGwvc2hlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vKipcbiAqIFNlcnZpY2UgbWFuYWdpbmcgc2hlbGwgbm90aWZpY2F0aW9ucy5cbiAqIEV2ZXJ5IGFwcCBjb3VsZCBwcm9wYWdhdGUgc2hlbGwgbm90aWZpY2F0aW9ucy4gVGhleSB3aWxsIGJlIHB1Ymxpc2hlZFxuICogaW4gdGhlIG5vdGlmaWNhdGlvbnMgc2VjdGlvbiBvZiB0aGUgc2hlbGwuIEluY29taW5nIG5ldyBtZXNzYWhlcyB3aWxsXG4gKiBhbHNvIGFkZCBhbiBpbmRpY2F0b3IgdG8gdGhlIGljb24gaW4gdGhlIHNoZWxsIGJhci5cbiAqXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNoZWxsTm90aWZpY2F0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIExPQ0FMX1NUT1JBR0VfS0VZID0gJ3l1di5zaGVsbC5ub3RpZmljYXRpb25zJztcbiAgcHJpdmF0ZSBhcHBDYWNoZSA9IGluamVjdChBcHBDYWNoZVNlcnZpY2UpO1xuICAjc2hlbGwgPSBpbmplY3QoU2hlbGxTZXJ2aWNlKTtcbiAgI3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgI25hdGl2ZU5vdGlmaWNhdGlvblNlcnZpY2UgPSBpbmplY3QoTmF0aXZlTm90aWZpY2F0aW9uU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uczogU2hlbGxOb3RpZmljYXRpb25JdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uc1NvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFNoZWxsTm90aWZpY2F0aW9uSXRlbVtdPigpO1xuICBzaGVsbE5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPFNoZWxsTm90aWZpY2F0aW9uSXRlbVtdPiA9IHRoaXMuX25vdGlmaWNhdGlvbnNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hcHBDYWNoZS5nZXRJdGVtKHRoaXMuTE9DQUxfU1RPUkFHRV9LRVkpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gcmVzIHx8IFtdO1xuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMuX25vdGlmaWNhdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gZ2V0Tm90aWZpY2F0aW9ucyhpZDogc3RyaW5nKSB7XG4gIC8vICAgY29uc3QgZmlsZSA9IFtcbiAgLy8gICAgIHsgaWQ6ICdpby55dXV2aXMuYXBwLmRyaXZlJywgY291bnQ6IDIsIG1heExldmVsOiAnaW5mbycgfSxcbiAgLy8gICAgIHsgaWQ6ICdpby55dXV2aXMuYXBwLnRhc2tzJywgY291bnQ6IDIyMiwgbWF4TGV2ZWw6ICd3YXJuaW5nJyB9XG4gIC8vICAgXTtcblxuICAvLyAgIHJldHVybiBmaWxlLmZpbmQoKGYpID0+IGYuaWQgPT09IGlkKTtcbiAgLy8gfVxuXG4gIGFkZChub3RpZmljYXRpb246IFNoZWxsTm90aWZpY2F0aW9uLCBuYXRpdmVOb3RpZmljYXRpb24gPSBmYWxzZSkge1xuICAgIHRoaXMuX25vdGlmaWNhdGlvbnMucHVzaCh7XG4gICAgICAuLi5ub3RpZmljYXRpb24sXG4gICAgICBpZDogVXRpbHMudXVpZCgpLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICAgIHNlZW46IGZhbHNlXG4gICAgfSk7XG4gICAgLy8gY2hlY2sgZm9yIHVuc2VlbiBpdGVtc1xuICAgIGlmIChkb2N1bWVudC5oaWRkZW4gJiYgbmF0aXZlTm90aWZpY2F0aW9uICYmIHRoaXMuX25vdGlmaWNhdGlvbnMuc29tZSgobikgPT4gIW4uc2VlbikpIHtcbiAgICAgIHRoaXMuI25hdGl2ZU5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2hlbGwubm90aWZpY2F0aW9uLm5hdGl2ZS50aXRsZScpLCB7XG4gICAgICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMuI3JvdXRlci5uYXZpZ2F0ZShbeyBvdXRsZXRzOiB7IGFzaWRlOiAnbm90aWZpY2F0aW9ucycgfSB9XSksXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBib2R5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuc2hlbGwubm90aWZpY2F0aW9uLm5hdGl2ZS5tZXNzYWdlJyksXG4gICAgICAgICAgLy8gYmFkZ2U6IHRoaXMuI3NoZWxsLnNoZWxsQ29uZmlnKCkuaWNvbnMhLmFwcEljb24sXG4gICAgICAgICAgaWNvbjogJ2h0dHBzOi8vYnVkZ2llLmVuYWlvY2kubmV0L2NsaWVudC9hc3NldHMvX3l1dXZpcy90aGVtZS9mYXZpY29uLnN2ZydcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZU5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIHJlbW92ZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuZmlsdGVyKChuKSA9PiBuLmlkICE9PSBpZCk7XG4gICAgdGhpcy5fdXBkYXRlTm90aWZpY2F0aW9ucygpO1xuICB9XG5cbiAgcmVtb3ZlQWxsKCkge1xuICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB0aGlzLl91cGRhdGVOb3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBtYXJrQWxsQXNTZWVuKCkge1xuICAgIHRoaXMuX25vdGlmaWNhdGlvbnMuZm9yRWFjaCgobikgPT4gKG4uc2VlbiA9IHRydWUpKTtcbiAgICB0aGlzLl91cGRhdGVOb3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBnZXROb3RpZmljYXRpb25CeUlkKGlkOiBzdHJpbmcpOiBTaGVsbE5vdGlmaWNhdGlvbkl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zLmZpbmQoKG4pID0+IG4uaWQgPT09IGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZU5vdGlmaWNhdGlvbnMoKSB7XG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuc29ydCgoYSwgYikgPT4gYi50aW1lc3RhbXAgLSBhLnRpbWVzdGFtcCk7XG4gICAgdGhpcy5fbm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMuX25vdGlmaWNhdGlvbnMpO1xuICAgIHRoaXMuYXBwQ2FjaGUuc2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZLCB0aGlzLl9ub3RpZmljYXRpb25zKS5zdWJzY3JpYmUoKTtcbiAgfVxufVxuXG50eXBlIFNoZWxsTm90aWZpY2F0aW9uSXRlbSA9IFNoZWxsTm90aWZpY2F0aW9uICYge1xuICBpZDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgc2VlbjogYm9vbGVhbjtcbn07XG4iXX0=
package/index.d.ts CHANGED
@@ -6,4 +6,9 @@ export * from './lib/services/shell-notifications/shell-notifications.interface'
6
6
  export * from './lib/services/shell-notifications/shell-notifications.service';
7
7
  export * from './lib/services/shell/shell.service';
8
8
  export * from './lib/tile-extension.interface';
9
- export * from './lib/services/shell/shell.extensions.service';
9
+ export * from './lib/services/shell/shell.bootstrap';
10
+ export * from './lib/services/shell/shell.providers';
11
+ export * from './lib/services/feature';
12
+ export * from './lib/services/shell-config/shell-config.service';
13
+ export * from './lib/services/shell-config/shell-config.interface';
14
+ export * from './lib/services/shell-config/shell-config.const';
@@ -1,5 +1,4 @@
1
1
  {
2
- "yuv.shell.flavor.remove.confirm.message": "Möchten Sie den Typ '{{flavor}}' wirklich entfernen?",
3
2
  "yuv.shell.notification.native.message": "Sie haben eine neue Benachrichtigung erhalten.",
4
3
  "yuv.shell.notification.native.title": "yuuvis Momentum"
5
4
  }
@@ -1,5 +1,4 @@
1
1
  {
2
- "yuv.shell.flavor.remove.confirm.message": "Do you really want to remove type '{{flavor}}'?",
3
2
  "yuv.shell.notification.native.message": "You have received a new notification.",
4
3
  "yuv.shell.notification.native.title": "yuuvis Momentum"
5
4
  }
@@ -1,8 +1,2 @@
1
- export declare const CLIENT_SHELL_ASSETS: {
2
- icons: {
3
- appIcon: string;
4
- settings: string;
5
- logout: string;
6
- notifications: string;
7
- };
8
- };
1
+ import { ClientShellConfig } from './client-shell.interface';
2
+ export declare const CLIENT_SHELL_ASSETS: ClientShellConfig;
@@ -1,17 +1,21 @@
1
1
  import { Type } from '@angular/core';
2
2
  import { Route } from '@angular/router';
3
3
  import { ObjectCreateFlavor, ObjectTypeFlavor, VirtualObjectType } from '@yuuvis/client-core';
4
+ import { Observable } from 'rxjs';
5
+ export interface ClientShellExtension {
6
+ init: () => Promise<any> | Observable<any>;
7
+ }
4
8
  export interface ClientShellConfig {
5
- icons?: {
6
- appIcon?: string;
7
- logout?: string;
8
- settings?: string;
9
- notifications?: string;
9
+ appIcon?: {
10
+ svgIcon?: string;
11
+ iconName: string;
10
12
  };
13
+ shellIconNamespace?: string;
11
14
  }
12
15
  export interface App extends Route {
13
16
  id: string;
14
- icon?: string;
17
+ svgIcon?: string;
18
+ iconName: string;
15
19
  permissions?: AppPermission;
16
20
  }
17
21
  export interface AppPermission {
@@ -42,12 +46,15 @@ export interface AppSchema<T = Record<string, VirtualObjectType>> {
42
46
  flavors: AppSchemaFlavor[];
43
47
  createFlavors?: ObjectCreateFlavor[];
44
48
  }
49
+ export type AppSchemaFlavorOrigin = 'app' | 'config';
45
50
  export type ObjectFlavor = AppSchemaFlavor & {
46
51
  app: string;
52
+ origin: AppSchemaFlavorOrigin;
47
53
  };
48
54
  export interface AppSchemaFlavor extends ObjectTypeFlavor {
49
55
  objectTypeID: string;
50
56
  descriptionKey?: string;
57
+ useDefaultApplyComponent?: boolean;
51
58
  applyComponent?: Type<any>;
52
59
  }
53
60
  export declare enum GlobalShortcut {
@@ -2,10 +2,9 @@ import { Observable } from 'rxjs';
2
2
  import { CommandPaletteCommand, DisabledCause } from './command-palette.interface';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class CommandPaletteService {
5
- private overlayService;
5
+ #private;
6
6
  readonly actionKey: string;
7
7
  private _ac;
8
- private overlayRef;
9
8
  private overlayVisible;
10
9
  disabledCauses: DisabledCause[];
11
10
  placeholder: string;
@@ -0,0 +1,2 @@
1
+ import { Route } from '@angular/router';
2
+ export declare const canMatchFeature: (route: Route) => boolean;
@@ -0,0 +1,11 @@
1
+ export interface ClientShellFeatureConfig {
2
+ objectID: string;
3
+ features: ClientShellFeature[];
4
+ }
5
+ export interface ClientShellFeature {
6
+ id: string;
7
+ label?: string;
8
+ extension?: boolean;
9
+ allowed?: string[];
10
+ denied?: string[];
11
+ }
@@ -0,0 +1,4 @@
1
+ import { InjectionToken, Provider } from '@angular/core';
2
+ import { ClientShellFeatureConfig } from './feature.interface';
3
+ export declare const CLIENT_SHELL_FEATURE_CONFIG: InjectionToken<ClientShellFeatureConfig | undefined>;
4
+ export declare const provideClientShellFeatures: (featureConfig: ClientShellFeatureConfig) => Provider;
@@ -0,0 +1,20 @@
1
+ import { Observable } from 'rxjs';
2
+ import { App } from '../../client-shell.interface';
3
+ import { ClientShellFeature } from './feature.interface';
4
+ import * as i0 from "@angular/core";
5
+ export declare class FeatureService {
6
+ #private;
7
+ hasFeatureConfig(): boolean;
8
+ getFeatures(): ClientShellFeature[];
9
+ getAvailableApps(allApps: App[]): App[];
10
+ canUseApp(app: App): boolean;
11
+ canUseFeatureById(featureId: string, authorities?: string[]): boolean;
12
+ canUseFeature(feature: ClientShellFeature, authorities?: string[]): boolean;
13
+ saveFeatureSettings(features: ClientShellFeature[]): Observable<any>;
14
+ deleteFeatureSettings(): Observable<any>;
15
+ createSettingsObject(): Observable<any>;
16
+ export(): void;
17
+ import(): Observable<any>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<FeatureService, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<FeatureService>;
20
+ }
@@ -0,0 +1,4 @@
1
+ export * from './feature.interface';
2
+ export * from './feature.guard';
3
+ export * from './feature.providers';
4
+ export * from './feature.service';
@@ -0,0 +1,7 @@
1
+ import { ClientShellExtension } from '../../client-shell.interface';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NoopExtension implements ClientShellExtension {
4
+ init(): Promise<any>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<NoopExtension, never>;
6
+ static ɵprov: i0.ɵɵInjectableDeclaration<NoopExtension>;
7
+ }
@@ -0,0 +1,29 @@
1
+ import { ApplicationConfig, ApplicationRef, Type } from '@angular/core';
2
+ export interface ShellBootstrapOptions {
3
+ /**
4
+ * Enables capabilities of conditionally load features like apps and
5
+ * extensions based on a configuration file mapping features to user
6
+ * authorities.
7
+ */
8
+ enableFeatureConfig?: boolean;
9
+ /**
10
+ * Enables capabilities of adding custom object types by configuration.
11
+ * Any schema type or SOT can then be configured to serve as a custom
12
+ * object type (flavor).
13
+ */
14
+ enableObjectTypeConfig?: boolean;
15
+ }
16
+ /**
17
+ * Boostraps a yuuvis Momentum shell client.
18
+ *
19
+ * ```ts
20
+ * import { bootstrapShellApplication } from '@yuuvis/client-shell-core';
21
+ *
22
+ * bootstrapShellApplication(AppComponent, appConfig).catch((err) => console.error(err));
23
+ * ```
24
+ *
25
+ * @param rootComponent Root component of the application
26
+ * @param options Application configuration
27
+ * @returns
28
+ */
29
+ export declare function bootstrapShellApplication(rootComponent: Type<unknown>, options?: ApplicationConfig, shellOptions?: ShellBootstrapOptions): Promise<ApplicationRef>;
@@ -0,0 +1,2 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ export declare const importShellExtensions: (extensions: any[]) => EnvironmentProviders[];
@@ -1,3 +1,4 @@
1
+ import { Type } from '@angular/core';
1
2
  import { DmsObject, ObjectCreateFlavor } from '@yuuvis/client-core';
2
3
  import { Observable } from 'rxjs';
3
4
  import { App, AppSchema, AppSchemaFlavor, ClientShellConfig, GlobalShortcut, ObjectFlavor, ShellAppSettings } from '../../client-shell.interface';
@@ -22,6 +23,7 @@ export declare class ShellService {
22
23
  private _extensions;
23
24
  private _objectFlavors;
24
25
  private _objectCreateFlavors;
26
+ pickFile(): Observable<File | null>;
25
27
  setShellConfig(csc: ClientShellConfig): void;
26
28
  setAppBaseRoutes(apps: App[]): void;
27
29
  registerApp(schema: AppSchema): void;
@@ -49,8 +51,10 @@ export declare class ShellService {
49
51
  * Flavors are able to be applied to objects and add new metadata properties to them.
50
52
  * @param flavors Array of flavors to be exposed
51
53
  * @param app Optional ID of the app that exposes the flavors (defaults to 'global' if not provided)
54
+ * @param origin Optional origin of the flavors. Flavors could be added by apps or derived
55
+ * from a configuration (defaults to 'app' if not provided)
52
56
  */
53
- exposeObjectFlavors(flavors: AppSchemaFlavor[], app?: string): void;
57
+ exposeObjectFlavors(flavors: AppSchemaFlavor[], app?: string, origin?: 'app' | 'config'): void;
54
58
  /**
55
59
  * Removes exposed object flavors from the shell.
56
60
  * @param flavors Array of flavors to be concealed
@@ -64,8 +68,10 @@ export declare class ShellService {
64
68
  * from the file and filled out automatically.
65
69
  * @param flavor The flavor object to be exposed
66
70
  * @param app Optional ID of the app that exposes the flavor (defaults to 'global' if not provided)
71
+ * @param origin Optional origin of the flavors. Flavors could be added by apps or derived
72
+ * from a configuration (defaults to 'app' if not provided)
67
73
  */
68
- exposeObjectFlavor(flavor: AppSchemaFlavor, app?: string): void;
74
+ exposeObjectFlavor(flavor: AppSchemaFlavor, app?: string, origin?: 'app' | 'config'): void;
69
75
  /**
70
76
  * Removes an exposed object flavor from the shell.
71
77
  * @param flavor Flavor to be concealed
@@ -88,7 +94,7 @@ export declare class ShellService {
88
94
  * @param data Optional data to be passed to the flavor component
89
95
  * @returns Observable that emits true if the flavor was applied successfully
90
96
  */
91
- triggerApplyObjectFlavor(dmsObject: DmsObject, flavor: ObjectFlavor, data?: any): Observable<boolean>;
97
+ triggerApplyObjectFlavor(dmsObject: DmsObject, flavor: ObjectFlavor, data?: any, applyComponent?: Type<any>): Observable<boolean>;
92
98
  removeObjectFlavor(dmsObject: DmsObject, flavor: ObjectFlavor): Observable<any>;
93
99
  /**
94
100
  * Get object flavors applicable for a certain mimetype
@@ -100,7 +106,8 @@ export declare class ShellService {
100
106
  * exposed to other apps
101
107
  * @returns Array of matching object flavors
102
108
  */
103
- getApplicableObjectFlavors(mimeType: string, app?: string, customFlavors?: ObjectFlavor[]): ObjectFlavor[];
109
+ getApplicableDocumentFlavors(mimeType: string, app?: string, customFlavors?: ObjectFlavor[]): ObjectFlavor[];
110
+ getApplicableFolderFlavors(app?: string, customFlavors?: ObjectFlavor[]): ObjectFlavor[];
104
111
  /**
105
112
  * Get applied and applicable object flavors for a certain object
106
113
  * @param dmsObject DmsObject to get flavors for
@@ -110,6 +117,7 @@ export declare class ShellService {
110
117
  applied: ObjectFlavor[];
111
118
  applicable: ObjectFlavor[];
112
119
  };
120
+ getFlavorLabel(id: string): any;
113
121
  applyObjectFlavor(dmsObject: DmsObject, flavor: ObjectFlavor, data?: Record<string, unknown>): Observable<DmsObject>;
114
122
  registerTileExtension(ext: TileExtension): void;
115
123
  /**
@@ -118,6 +126,7 @@ export declare class ShellService {
118
126
  * @returns
119
127
  */
120
128
  getRegisteredTileExtensions(): Record<string, TileExtension>;
129
+ _initObjectTypeConfig(): Promise<unknown>;
121
130
  _init(): void;
122
131
  static ɵfac: i0.ɵɵFactoryDeclaration<ShellService, never>;
123
132
  static ɵprov: i0.ɵɵInjectableDeclaration<ShellService>;
@@ -0,0 +1,8 @@
1
+ export declare function getShellConfigQueryString(name: string, user?: never[], context?: string): string;
2
+ export declare const SHELL_CONFIG_FEATURES = "yuv:shell:features";
3
+ export declare const SHELL_CONFIG_TYPES = "yuv:shell:types";
4
+ export declare const SHELL_CONFIG_BASE: {
5
+ objectType: string;
6
+ secondaryObjectType: string;
7
+ nameProperty: string;
8
+ };
@@ -0,0 +1,13 @@
1
+ export interface ShellConfig {
2
+ id: string;
3
+ name: string;
4
+ context?: string;
5
+ user?: string[];
6
+ data: unknown;
7
+ }
8
+ export interface ClientShellType {
9
+ id: string;
10
+ baseType: string;
11
+ instantApply?: boolean;
12
+ applicableToMimeTypes?: string[];
13
+ }
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ShellConfig } from './shell-config.interface';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service to manage shell configuration objects. Base on the 'system:item' type.
6
+ */
7
+ export declare class ShellConfigService {
8
+ #private;
9
+ get(name: string): Observable<ShellConfig | undefined>;
10
+ /**
11
+ * Create a new configuration object.
12
+ * @param cfg the configuration object to be created
13
+ */
14
+ create(name: string, data: unknown, context?: string, user?: string[]): Observable<ShellConfig>;
15
+ /**
16
+ * Update data of an existing configuration object.
17
+ * @param id the id of the configuration object to update
18
+ * @param data the new configuration data to be set
19
+ */
20
+ update(id: string, data: unknown): Observable<any>;
21
+ /**
22
+ * Delete a configuration object.
23
+ * @param id the id of the configuration object to delete
24
+ */
25
+ delete(id: string): Observable<any>;
26
+ download(id: string, filename?: string): void;
27
+ upload(id: string, file: File): Observable<any>;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<ShellConfigService, never>;
29
+ static ɵprov: i0.ɵɵInjectableDeclaration<ShellConfigService>;
30
+ }
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@yuuvis/client-shell-core",
3
- "version": "2.0.0-beta.0",
3
+ "version": "2.0.0-beta.2",
4
4
  "author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
5
5
  "license": "MIT",
6
6
  "peerDependencies": {
7
- "@angular/common": "^18.2.0",
8
- "@angular/core": "^18.2.0",
9
- "@angular/forms": "^18.2.0"
7
+ "@angular/common": "^19.2.1",
8
+ "@angular/core": "^19.2.1",
9
+ "@angular/forms": "^19.2.1"
10
10
  },
11
11
  "dependencies": {
12
- "@yuuvis/client-core": "2.0.0-beta.0",
13
- "tslib": "^2.3.0"
12
+ "@yuuvis/client-core": "2.0.0-beta.2",
13
+ "tslib": "^2.6.2"
14
14
  },
15
15
  "sideEffects": false,
16
16
  "module": "esm2022/yuuvis-client-shell-core.mjs",
@@ -21,8 +21,6 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2022": "./esm2022/yuuvis-client-shell-core.mjs",
25
- "esm": "./esm2022/yuuvis-client-shell-core.mjs",
26
24
  "default": "./esm2022/yuuvis-client-shell-core.mjs"
27
25
  }
28
26
  }
@@ -1,9 +0,0 @@
1
- import { importProvidersFrom } from '@angular/core';
2
- export const importShellExtensions = (extensions) => {
3
- const providers = [];
4
- extensions.forEach((extension) => {
5
- providers.push(importProvidersFrom(extension));
6
- });
7
- return providers;
8
- };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuZXh0ZW5zaW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zaGVsbC9zaGVsbC5leHRlbnNpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixtQkFBbUIsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFFakcsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxVQUFtQyxFQUEwQixFQUFFO0lBQ25HLE1BQU0sU0FBUyxHQUEyQixFQUFFLENBQUM7SUFDN0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBpbXBvcnRQcm92aWRlcnNGcm9tLCBJbXBvcnRQcm92aWRlcnNTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IGltcG9ydFNoZWxsRXh0ZW5zaW9ucyA9IChleHRlbnNpb25zOiBJbXBvcnRQcm92aWRlcnNTb3VyY2VbXSk6IEVudmlyb25tZW50UHJvdmlkZXJzW10gPT4ge1xuICBjb25zdCBwcm92aWRlcnM6IEVudmlyb25tZW50UHJvdmlkZXJzW10gPSBbXTtcbiAgZXh0ZW5zaW9ucy5mb3JFYWNoKChleHRlbnNpb24pID0+IHtcbiAgICBwcm92aWRlcnMucHVzaChpbXBvcnRQcm92aWRlcnNGcm9tKGV4dGVuc2lvbikpO1xuICB9KTtcbiAgcmV0dXJuIHByb3ZpZGVycztcbn07XG4iXX0=
@@ -1,2 +0,0 @@
1
- import { EnvironmentProviders, ImportProvidersSource } from '@angular/core';
2
- export declare const importShellExtensions: (extensions: ImportProvidersSource[]) => EnvironmentProviders[];