@yuuvis/client-core 0.6.5

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 (153) hide show
  1. package/README.md +111 -0
  2. package/esm2022/index.mjs +65 -0
  3. package/esm2022/lib/client-core.module.mjs +117 -0
  4. package/esm2022/lib/client-core.shared.module.mjs +18 -0
  5. package/esm2022/lib/common/pipes/filesize.pipe.mjs +37 -0
  6. package/esm2022/lib/common/pipes/index.mjs +6 -0
  7. package/esm2022/lib/common/pipes/keys.pipe.mjs +17 -0
  8. package/esm2022/lib/common/pipes/locale-date.pipe.mjs +45 -0
  9. package/esm2022/lib/common/pipes/locale-number.pipe.mjs +115 -0
  10. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +44 -0
  11. package/esm2022/lib/common/services/native-notifications.interface.mjs +2 -0
  12. package/esm2022/lib/common/services/native-notifications.mjs +40 -0
  13. package/esm2022/lib/model/dms-object.interface.mjs +2 -0
  14. package/esm2022/lib/model/dms-object.model.mjs +79 -0
  15. package/esm2022/lib/model/object-flavor.interface.mjs +2 -0
  16. package/esm2022/lib/model/range-value.interface.mjs +2 -0
  17. package/esm2022/lib/model/yuv-error.model.mjs +37 -0
  18. package/esm2022/lib/model/yuv-user.model.mjs +38 -0
  19. package/esm2022/lib/service/audit/audit.interface.mjs +2 -0
  20. package/esm2022/lib/service/audit/audit.service.mjs +135 -0
  21. package/esm2022/lib/service/auth/auth.interceptor.mjs +50 -0
  22. package/esm2022/lib/service/auth/auth.interface.mjs +7 -0
  23. package/esm2022/lib/service/auth/auth.service.mjs +130 -0
  24. package/esm2022/lib/service/auth/oidc.service.mjs +81 -0
  25. package/esm2022/lib/service/backend/api.enum.mjs +11 -0
  26. package/esm2022/lib/service/backend/backend.interface.mjs +2 -0
  27. package/esm2022/lib/service/backend/backend.service.mjs +206 -0
  28. package/esm2022/lib/service/bpm/bpm.interface.mjs +8 -0
  29. package/esm2022/lib/service/bpm/bpm.service.mjs +51 -0
  30. package/esm2022/lib/service/cache/app-cache.service.mjs +51 -0
  31. package/esm2022/lib/service/catalog/catalog.interface.mjs +2 -0
  32. package/esm2022/lib/service/catalog/catalog.service.mjs +13 -0
  33. package/esm2022/lib/service/clipboard/clipboard.interface.mjs +2 -0
  34. package/esm2022/lib/service/clipboard/clipboard.service.mjs +90 -0
  35. package/esm2022/lib/service/config/config.interface.mjs +6 -0
  36. package/esm2022/lib/service/config/config.service.mjs +115 -0
  37. package/esm2022/lib/service/config/core-config.mjs +20 -0
  38. package/esm2022/lib/service/config/core-config.tokens.mjs +9 -0
  39. package/esm2022/lib/service/connection/connection.service.mjs +36 -0
  40. package/esm2022/lib/service/connection/offline.interceptor.mjs +28 -0
  41. package/esm2022/lib/service/core-init/core-init.service.mjs +29 -0
  42. package/esm2022/lib/service/core-init/missing-translation-handler.mjs +10 -0
  43. package/esm2022/lib/service/core-init/translate-json-loader.mjs +117 -0
  44. package/esm2022/lib/service/device/device.interface.mjs +6 -0
  45. package/esm2022/lib/service/device/device.service.mjs +144 -0
  46. package/esm2022/lib/service/dms/dms.service.interface.mjs +2 -0
  47. package/esm2022/lib/service/dms/dms.service.mjs +440 -0
  48. package/esm2022/lib/service/event/event.interface.mjs +2 -0
  49. package/esm2022/lib/service/event/event.service.mjs +38 -0
  50. package/esm2022/lib/service/event/events.mjs +14 -0
  51. package/esm2022/lib/service/idm/idm.interface.mjs +2 -0
  52. package/esm2022/lib/service/idm/idm.service.mjs +34 -0
  53. package/esm2022/lib/service/logger/logger-console.service.mjs +73 -0
  54. package/esm2022/lib/service/logger/logger.interface.mjs +2 -0
  55. package/esm2022/lib/service/logger/logger.mjs +27 -0
  56. package/esm2022/lib/service/notification/notification.service.mjs +131 -0
  57. package/esm2022/lib/service/object-config/object-config.interface.mjs +2 -0
  58. package/esm2022/lib/service/object-config/object-config.service.mjs +229 -0
  59. package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +5 -0
  60. package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +25 -0
  61. package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +123 -0
  62. package/esm2022/lib/service/prediction/prediction.interface.mjs +2 -0
  63. package/esm2022/lib/service/prediction/prediction.service.mjs +60 -0
  64. package/esm2022/lib/service/search/search.service.interface.mjs +39 -0
  65. package/esm2022/lib/service/search/search.service.mjs +178 -0
  66. package/esm2022/lib/service/session-storage/session-storage.service.mjs +50 -0
  67. package/esm2022/lib/service/system/object-form.interface.mjs +2 -0
  68. package/esm2022/lib/service/system/system.enum.mjs +179 -0
  69. package/esm2022/lib/service/system/system.interface.mjs +2 -0
  70. package/esm2022/lib/service/system/system.service.mjs +597 -0
  71. package/esm2022/lib/service/upload/upload.interface.mjs +2 -0
  72. package/esm2022/lib/service/upload/upload.service.mjs +228 -0
  73. package/esm2022/lib/service/user/user.service.mjs +211 -0
  74. package/esm2022/lib/util/utils.helper.enum.mjs +15 -0
  75. package/esm2022/lib/util/utils.mjs +373 -0
  76. package/esm2022/yuuvis-client-core.mjs +5 -0
  77. package/fesm2022/yuuvis-client-core.mjs +4775 -0
  78. package/fesm2022/yuuvis-client-core.mjs.map +1 -0
  79. package/index.d.ts +61 -0
  80. package/lib/client-core.module.d.ts +20 -0
  81. package/lib/client-core.shared.module.d.ts +10 -0
  82. package/lib/common/pipes/filesize.pipe.d.ts +18 -0
  83. package/lib/common/pipes/index.d.ts +5 -0
  84. package/lib/common/pipes/keys.pipe.d.ts +10 -0
  85. package/lib/common/pipes/locale-date.pipe.d.ts +12 -0
  86. package/lib/common/pipes/locale-number.pipe.d.ts +47 -0
  87. package/lib/common/pipes/safe-html.pipe.d.ts +28 -0
  88. package/lib/common/services/native-notifications.d.ts +8 -0
  89. package/lib/common/services/native-notifications.interface.d.ts +5 -0
  90. package/lib/model/dms-object.interface.d.ts +16 -0
  91. package/lib/model/dms-object.model.d.ts +26 -0
  92. package/lib/model/object-flavor.interface.d.ts +30 -0
  93. package/lib/model/range-value.interface.d.ts +9 -0
  94. package/lib/model/yuv-error.model.d.ts +18 -0
  95. package/lib/model/yuv-user.model.d.ts +44 -0
  96. package/lib/service/audit/audit.interface.d.ts +47 -0
  97. package/lib/service/audit/audit.service.d.ts +35 -0
  98. package/lib/service/auth/auth.interceptor.d.ts +12 -0
  99. package/lib/service/auth/auth.interface.d.ts +34 -0
  100. package/lib/service/auth/auth.service.d.ts +50 -0
  101. package/lib/service/auth/oidc.service.d.ts +16 -0
  102. package/lib/service/backend/api.enum.d.ts +7 -0
  103. package/lib/service/backend/backend.interface.d.ts +29 -0
  104. package/lib/service/backend/backend.service.d.ts +118 -0
  105. package/lib/service/bpm/bpm.interface.d.ts +86 -0
  106. package/lib/service/bpm/bpm.service.d.ts +19 -0
  107. package/lib/service/cache/app-cache.service.d.ts +18 -0
  108. package/lib/service/catalog/catalog.interface.d.ts +12 -0
  109. package/lib/service/catalog/catalog.service.d.ts +5 -0
  110. package/lib/service/clipboard/clipboard.interface.d.ts +11 -0
  111. package/lib/service/clipboard/clipboard.service.d.ts +23 -0
  112. package/lib/service/config/config.interface.d.ts +34 -0
  113. package/lib/service/config/config.service.d.ts +45 -0
  114. package/lib/service/config/core-config.d.ts +14 -0
  115. package/lib/service/config/core-config.tokens.d.ts +7 -0
  116. package/lib/service/connection/connection.service.d.ts +25 -0
  117. package/lib/service/connection/offline.interceptor.d.ts +15 -0
  118. package/lib/service/core-init/core-init.service.d.ts +11 -0
  119. package/lib/service/core-init/missing-translation-handler.d.ts +8 -0
  120. package/lib/service/core-init/translate-json-loader.d.ts +20 -0
  121. package/lib/service/device/device.interface.d.ts +15 -0
  122. package/lib/service/device/device.service.d.ts +54 -0
  123. package/lib/service/dms/dms.service.d.ts +153 -0
  124. package/lib/service/dms/dms.service.interface.d.ts +59 -0
  125. package/lib/service/event/event.interface.d.ts +13 -0
  126. package/lib/service/event/event.service.d.ts +23 -0
  127. package/lib/service/event/events.d.ts +12 -0
  128. package/lib/service/idm/idm.interface.d.ts +5 -0
  129. package/lib/service/idm/idm.service.d.ts +9 -0
  130. package/lib/service/logger/logger-console.service.d.ts +20 -0
  131. package/lib/service/logger/logger.d.ts +17 -0
  132. package/lib/service/logger/logger.interface.d.ts +10 -0
  133. package/lib/service/notification/notification.service.d.ts +71 -0
  134. package/lib/service/object-config/object-config.interface.d.ts +62 -0
  135. package/lib/service/object-config/object-config.service.d.ts +38 -0
  136. package/lib/service/pending-changes/pending-changes-component.interface.d.ts +6 -0
  137. package/lib/service/pending-changes/pending-changes-guard.service.d.ts +14 -0
  138. package/lib/service/pending-changes/pending-changes.service.d.ts +57 -0
  139. package/lib/service/prediction/prediction.interface.d.ts +18 -0
  140. package/lib/service/prediction/prediction.service.d.ts +15 -0
  141. package/lib/service/search/search.service.d.ts +46 -0
  142. package/lib/service/search/search.service.interface.d.ts +119 -0
  143. package/lib/service/session-storage/session-storage.service.d.ts +15 -0
  144. package/lib/service/system/object-form.interface.d.ts +46 -0
  145. package/lib/service/system/system.enum.d.ts +141 -0
  146. package/lib/service/system/system.interface.d.ts +146 -0
  147. package/lib/service/system/system.service.d.ts +168 -0
  148. package/lib/service/upload/upload.interface.d.ts +55 -0
  149. package/lib/service/upload/upload.service.d.ts +34 -0
  150. package/lib/service/user/user.service.d.ts +69 -0
  151. package/lib/util/utils.d.ts +118 -0
  152. package/lib/util/utils.helper.enum.d.ts +13 -0
  153. package/package.json +33 -0
@@ -0,0 +1,34 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import { BackendService } from '../backend/backend.service';
4
+ import * as i0 from "@angular/core";
5
+ export class IdmService {
6
+ #backend = inject(BackendService);
7
+ queryOrganizationEntity(term, targetTypes, size) {
8
+ return this.#backend.get(`/idm/search?search=${term}${size ? `&size=${size}` : ''}`).pipe(map((res) => [
9
+ ...(targetTypes.includes('user')
10
+ ? res.users.map((u) => ({
11
+ id: u.id,
12
+ title: `${u.lastname}, ${u.firstname} (${u.username})`, // TODO: u.title,
13
+ type: 'user'
14
+ }))
15
+ : []),
16
+ ...(targetTypes.includes('role')
17
+ ? res.roles.map((u) => ({
18
+ id: u.name,
19
+ title: u.name,
20
+ type: 'role'
21
+ }))
22
+ : [])
23
+ ]));
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdmService, providedIn: 'root' }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdmService, decorators: [{
29
+ type: Injectable,
30
+ args: [{
31
+ providedIn: 'root'
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvaWRtL2lkbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU01RCxNQUFNLE9BQU8sVUFBVTtJQUNyQixRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWxDLHVCQUF1QixDQUFDLElBQVksRUFBRSxXQUFxQixFQUFFLElBQWE7UUFDeEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDekIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNSLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLEVBQUUsaUJBQWlCO29CQUN6RSxJQUFJLEVBQUUsTUFBTTtpQkFDYixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6QixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUk7b0JBQ1YsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO29CQUNiLElBQUksRUFBRSxNQUFNO2lCQUNiLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1IsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXRCVSxVQUFVO21IQUFWLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYWNrZW5kU2VydmljZSB9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvblNldEVudHJ5IH0gZnJvbSAnLi9pZG0uaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSWRtU2VydmljZSB7XG4gICNiYWNrZW5kID0gaW5qZWN0KEJhY2tlbmRTZXJ2aWNlKTtcblxuICBxdWVyeU9yZ2FuaXphdGlvbkVudGl0eSh0ZXJtOiBzdHJpbmcsIHRhcmdldFR5cGVzOiBzdHJpbmdbXSwgc2l6ZT86IG51bWJlcik6IE9ic2VydmFibGU8T3JnYW5pemF0aW9uU2V0RW50cnlbXT4ge1xuICAgIHJldHVybiB0aGlzLiNiYWNrZW5kLmdldChgL2lkbS9zZWFyY2g/c2VhcmNoPSR7dGVybX0ke3NpemUgPyBgJnNpemU9JHtzaXplfWAgOiAnJ31gKS5waXBlKFxuICAgICAgbWFwKChyZXMpID0+IFtcbiAgICAgICAgLi4uKHRhcmdldFR5cGVzLmluY2x1ZGVzKCd1c2VyJylcbiAgICAgICAgICA/IHJlcy51c2Vycy5tYXAoKHU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgaWQ6IHUuaWQsXG4gICAgICAgICAgICAgIHRpdGxlOiBgJHt1Lmxhc3RuYW1lfSwgJHt1LmZpcnN0bmFtZX0gKCR7dS51c2VybmFtZX0pYCwgLy8gVE9ETzogdS50aXRsZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3VzZXInXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6IFtdKSxcbiAgICAgICAgLi4uKHRhcmdldFR5cGVzLmluY2x1ZGVzKCdyb2xlJylcbiAgICAgICAgICA/IHJlcy5yb2xlcy5tYXAoKHU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgaWQ6IHUubmFtZSxcbiAgICAgICAgICAgICAgdGl0bGU6IHUubmFtZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3JvbGUnXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6IFtdKVxuICAgICAgXSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { ConfigService } from '../config/config.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../config/config.service";
5
+ /**
6
+ * @ignore
7
+ */
8
+ export class LoggerConsoleService {
9
+ constructor(config) {
10
+ this.config = config;
11
+ this.styles = {
12
+ info: 'color:blue',
13
+ debug: 'background: orange',
14
+ warn: 'background: rgba(255,0,0,.2);color: red',
15
+ error: 'background: red; color: #fff'
16
+ };
17
+ }
18
+ apply(fn, args) {
19
+ args = [`%c${fn}:`, 'font-family: monospace; font-size: 10px; padding: 2px 4px;' + this.styles[fn], ...args];
20
+ return this.shouldLog(fn) ? console && console[fn] && console[fn](...args) : null;
21
+ }
22
+ debug(...args) {
23
+ this.apply('debug', args);
24
+ }
25
+ error(...args) {
26
+ this.apply('error', args);
27
+ }
28
+ info(...args) {
29
+ this.apply('info', args);
30
+ }
31
+ log(...args) {
32
+ this.apply('log', args);
33
+ }
34
+ warn(...args) {
35
+ this.apply('warn', args);
36
+ }
37
+ shouldLog(level) {
38
+ let should = false;
39
+ const cfg = this.config.get('core.logging');
40
+ if (!cfg || !cfg.level)
41
+ return false;
42
+ switch (cfg.level) {
43
+ case 'debug': {
44
+ should = true;
45
+ break;
46
+ }
47
+ case 'error': {
48
+ should = ['error'].includes(level);
49
+ break;
50
+ }
51
+ case 'warn': {
52
+ should = ['warn', 'error'].includes(level);
53
+ break;
54
+ }
55
+ case 'info': {
56
+ should = ['info', 'warn', 'error'].includes(level);
57
+ break;
58
+ }
59
+ default: {
60
+ }
61
+ }
62
+ return should;
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggerConsoleService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggerConsoleService, providedIn: 'root' }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggerConsoleService, decorators: [{
68
+ type: Injectable,
69
+ args: [{
70
+ providedIn: 'root'
71
+ }]
72
+ }], ctorParameters: () => [{ type: i1.ConfigService }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLWNvbnNvbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9sb2dnZXIvbG9nZ2VyLWNvbnNvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRXpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRWpDLFdBQU0sR0FBZ0M7WUFDNUMsSUFBSSxFQUFFLFlBQVk7WUFDbEIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixJQUFJLEVBQUUseUNBQXlDO1lBQy9DLEtBQUssRUFBRSw4QkFBOEI7U0FDdEMsQ0FBQztJQVAyQyxDQUFDO0lBU3RDLEtBQUssQ0FBQyxFQUFVLEVBQUUsSUFBUztRQUNqQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLDREQUE0RCxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM3RyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSyxPQUFlLENBQUMsRUFBRSxDQUFDLElBQUssT0FBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RyxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsSUFBVztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsSUFBVztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sSUFBSSxDQUFDLEdBQUcsSUFBVztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sR0FBRyxDQUFDLEdBQUcsSUFBVztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sSUFBSSxDQUFDLEdBQUcsSUFBVztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXJDLFFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNkLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNiLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ1osTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0MsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ1osTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELE1BQU07WUFDUixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNWLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0E3RFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyLmludGVyZmFjZSc7XG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9nZ2VyQ29uc29sZVNlcnZpY2UgaW1wbGVtZW50cyBJTG9nZ2VyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UpIHsgfVxuXG4gIHByaXZhdGUgc3R5bGVzOiB7IFtsZXZlbDogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgaW5mbzogJ2NvbG9yOmJsdWUnLFxuICAgIGRlYnVnOiAnYmFja2dyb3VuZDogb3JhbmdlJyxcbiAgICB3YXJuOiAnYmFja2dyb3VuZDogcmdiYSgyNTUsMCwwLC4yKTtjb2xvcjogcmVkJyxcbiAgICBlcnJvcjogJ2JhY2tncm91bmQ6IHJlZDsgY29sb3I6ICNmZmYnXG4gIH07XG5cbiAgcHJpdmF0ZSBhcHBseShmbjogc3RyaW5nLCBhcmdzOiBhbnkpIHtcbiAgICBhcmdzID0gW2AlYyR7Zm59OmAsICdmb250LWZhbWlseTogbW9ub3NwYWNlOyBmb250LXNpemU6IDEwcHg7IHBhZGRpbmc6IDJweCA0cHg7JyArIHRoaXMuc3R5bGVzW2ZuXSwgLi4uYXJnc107XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkTG9nKGZuKSA/IGNvbnNvbGUgJiYgKGNvbnNvbGUgYXMgYW55KVtmbl0gJiYgKGNvbnNvbGUgYXMgYW55KVtmbl0oLi4uYXJncykgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGRlYnVnKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseSgnZGVidWcnLCBhcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBlcnJvciguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHkoJ2Vycm9yJywgYXJncyk7XG4gIH1cblxuICBwdWJsaWMgaW5mbyguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHkoJ2luZm8nLCBhcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2coLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5KCdsb2cnLCBhcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyB3YXJuKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseSgnd2FybicsIGFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRMb2cobGV2ZWw6IHN0cmluZykge1xuICAgIGxldCBzaG91bGQgPSBmYWxzZTtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZy5nZXQoJ2NvcmUubG9nZ2luZycpO1xuICAgIGlmICghY2ZnIHx8ICFjZmcubGV2ZWwpIHJldHVybiBmYWxzZTtcblxuICAgIHN3aXRjaCAoY2ZnLmxldmVsKSB7XG4gICAgICBjYXNlICdkZWJ1Zyc6IHtcbiAgICAgICAgc2hvdWxkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdlcnJvcic6IHtcbiAgICAgICAgc2hvdWxkID0gWydlcnJvciddLmluY2x1ZGVzKGxldmVsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd3YXJuJzoge1xuICAgICAgICBzaG91bGQgPSBbJ3dhcm4nLCAnZXJyb3InXS5pbmNsdWRlcyhsZXZlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnaW5mbyc6IHtcbiAgICAgICAgc2hvdWxkID0gWydpbmZvJywgJ3dhcm4nLCAnZXJyb3InXS5pbmNsdWRlcyhsZXZlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc2hvdWxkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9sb2dnZXIvbG9nZ2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcmZhY2UgcHJvdmlkaW5nIGEgZGVmYXVsdCBsb2dnZXIsIHRoYXQgaXMgdXNlZCBmb3IgdGhlIERlcGVuZGVuY3ktSW5qZWN0aW9uIChESSkgdG9rZW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2dlciB7XG4gIGRlYnVnKC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgZXJyb3IoLi4uYXJnczogYW55W10pOiB2b2lkO1xuICBpbmZvKC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgbG9nKC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgd2FybiguLi5hcmdzOiBhbnlbXSk6IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Set up the default logger.
3
+ * The default logger doesn't actually log anything;
4
+ * but, it provides the Dependency-Injection (DI) token that the rest of the
5
+ * application can use for dependency resolution. Each platform can then override
6
+ * this with a platform-specific logger implementation.
7
+ *
8
+ * @ignore
9
+ */
10
+ export class Logger {
11
+ error(...args) {
12
+ // ... the default logger does no work.
13
+ }
14
+ debug(...args) {
15
+ // ... the default logger does no work.
16
+ }
17
+ info(...args) {
18
+ // ... the default logger does no work.
19
+ }
20
+ log(...args) {
21
+ // ... the default logger does no work.
22
+ }
23
+ warn(...args) {
24
+ // ... the default logger does no work.
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL2xvZ2dlci9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE9BQU8sTUFBTTtJQUVWLEtBQUssQ0FBQyxHQUFHLElBQVc7UUFDekIsdUNBQXVDO0lBQ3pDLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxJQUFXO1FBQ3pCLHVDQUF1QztJQUN6QyxDQUFDO0lBRU0sSUFBSSxDQUFDLEdBQUcsSUFBVztRQUN4Qix1Q0FBdUM7SUFDekMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFHLElBQVc7UUFDdkIsdUNBQXVDO0lBQ3pDLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBRyxJQUFXO1FBQ3hCLHVDQUF1QztJQUN6QyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXIuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBTZXQgdXAgdGhlIGRlZmF1bHQgbG9nZ2VyLlxuICogVGhlIGRlZmF1bHQgbG9nZ2VyIGRvZXNuJ3QgYWN0dWFsbHkgbG9nIGFueXRoaW5nO1xuICogYnV0LCBpdCBwcm92aWRlcyB0aGUgRGVwZW5kZW5jeS1JbmplY3Rpb24gKERJKSB0b2tlbiB0aGF0IHRoZSByZXN0IG9mIHRoZSBcbiAqIGFwcGxpY2F0aW9uIGNhbiB1c2UgZm9yIGRlcGVuZGVuY3kgcmVzb2x1dGlvbi4gRWFjaCBwbGF0Zm9ybSBjYW4gdGhlbiBvdmVycmlkZSBcbiAqIHRoaXMgd2l0aCBhIHBsYXRmb3JtLXNwZWNpZmljIGxvZ2dlciBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dnZXIgaW1wbGVtZW50cyBJTG9nZ2VyIHtcblxuICBwdWJsaWMgZXJyb3IoLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICAvLyAuLi4gdGhlIGRlZmF1bHQgbG9nZ2VyIGRvZXMgbm8gd29yay5cbiAgfVxuXG4gIHB1YmxpYyBkZWJ1ZyguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICAgIC8vIC4uLiB0aGUgZGVmYXVsdCBsb2dnZXIgZG9lcyBubyB3b3JrLlxuICB9XG5cbiAgcHVibGljIGluZm8oLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICAvLyAuLi4gdGhlIGRlZmF1bHQgbG9nZ2VyIGRvZXMgbm8gd29yay5cbiAgfVxuXG4gIHB1YmxpYyBsb2coLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICAvLyAuLi4gdGhlIGRlZmF1bHQgbG9nZ2VyIGRvZXMgbm8gd29yay5cbiAgfVxuXG4gIHB1YmxpYyB3YXJuKC4uLmFyZ3M6IGFueVtdKTogdm9pZCB7XG4gICAgLy8gLi4uIHRoZSBkZWZhdWx0IGxvZ2dlciBkb2VzIG5vIHdvcmsuXG4gIH1cblxufSJdfQ==
@@ -0,0 +1,131 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { ToastService } from '@yuuvis/components/toast';
3
+ import { AuthService } from '../auth/auth.service';
4
+ import { EventService } from '../event/event.service';
5
+ import { YuvEventType } from '../event/events';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Shows a message after completing each action.
9
+ */
10
+ export class NotificationService {
11
+ #toastService;
12
+ #authService;
13
+ #eventService;
14
+ constructor() {
15
+ this.#toastService = inject(ToastService);
16
+ this.#authService = inject(AuthService);
17
+ this.#eventService = inject(EventService);
18
+ /**
19
+ * Set to true to suppress any notifications
20
+ */
21
+ this.silent = false;
22
+ /**
23
+ * Default Notofication Options
24
+ *
25
+ */
26
+ this.options = {
27
+ position: 'bottom-end'
28
+ };
29
+ this.#authService.authenticated$.subscribe((a) => (this.silent = !a));
30
+ this.#eventService.on(YuvEventType.LOGOUT).subscribe(() => (this.silent = true));
31
+ }
32
+ /**
33
+ * Show info colored massage (blue)
34
+ *
35
+ * @param string title
36
+ * @param string msg
37
+ */
38
+ info(title, msg) {
39
+ this.toast(title, msg);
40
+ }
41
+ /**
42
+ * Show success colored massage (green)
43
+ * @param string title
44
+ * @param string msg
45
+ */
46
+ success(title, msg) {
47
+ this.toast(title, msg, 'success');
48
+ }
49
+ /**
50
+ * can not be in use
51
+ *
52
+ * @param string title
53
+ * @param string msg
54
+ */
55
+ wait(title, msg) {
56
+ this.toast(title, msg, 'wait');
57
+ }
58
+ /**
59
+ * Show error colored massage (red)
60
+ *
61
+ * @param string title
62
+ * @param string msg
63
+ */
64
+ error(title, msg) {
65
+ this.toast(title, msg, 'error', {
66
+ duration: 5
67
+ });
68
+ }
69
+ /**
70
+ * Show warning colored massage (yellow)
71
+ *
72
+ * @param string title
73
+ * @param string msg
74
+ */
75
+ warning(title, msg) {
76
+ this.toast(title, msg, 'warning');
77
+ }
78
+ /**
79
+ * Public wrapper for accessing the Toastr
80
+ *
81
+ * @param string title
82
+ * @param string msg
83
+ * @param string mode
84
+ * @param _options
85
+ */
86
+ toast(title, msg, mode, _options) {
87
+ this.doToast(title, msg, { ...this.options, ..._options }, mode);
88
+ }
89
+ /**
90
+ * Accessing the toastr service
91
+ *
92
+ * @param string msg
93
+ * @param string title
94
+ * @param options
95
+ * @param string mode
96
+ */
97
+ doToast(title, msg, options, mode) {
98
+ if (this.silent)
99
+ return;
100
+ switch (mode) {
101
+ case 'success': {
102
+ this.#toastService.success(title, msg, options);
103
+ break;
104
+ }
105
+ case 'error': {
106
+ this.#toastService.error(title, msg, options);
107
+ break;
108
+ }
109
+ case 'warning': {
110
+ this.#toastService.warning(title, msg, options);
111
+ break;
112
+ }
113
+ case 'confirm': {
114
+ this.#toastService.info(title, msg, options);
115
+ break;
116
+ }
117
+ default: {
118
+ this.#toastService.info(title, msg, options);
119
+ }
120
+ }
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
123
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationService, decorators: [{
126
+ type: Injectable,
127
+ args: [{
128
+ providedIn: 'root'
129
+ }]
130
+ }], ctorParameters: () => [] });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2Uvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRS9DOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixhQUFhLENBQXdCO0lBQ3JDLFlBQVksQ0FBdUI7SUFDbkMsYUFBYSxDQUF3QjtJQWVyQztRQWpCQSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQzs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZjs7O1dBR0c7UUFDSyxZQUFPLEdBQTBCO1lBQ3ZDLFFBQVEsRUFBRSxZQUFZO1NBQ3ZCLENBQUM7UUFHQSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsWUFBWSxD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Y29yZSc7XG5pbXBvcnQgeyBUb2FzdE9wdGlvbnMsIFRvYXN0U2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4uL2V2ZW50L2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgWXV2RXZlbnRUeXBlIH0gZnJvbSAnLi4vZXZlbnQvZXZlbnRzJztcblxuLyoqXG4gKiBTaG93cyBhIG1lc3NhZ2UgYWZ0ZXIgY29tcGxldGluZyBlYWNoIGFjdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gICN0b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgI2F1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgI2V2ZW50U2VydmljZSA9IGluamVjdChFdmVudFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gdHJ1ZSB0byBzdXBwcmVzcyBhbnkgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgc2lsZW50ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgTm90b2ZpY2F0aW9uIE9wdGlvbnNcbiAgICpcbiAgICovXG4gIHByaXZhdGUgb3B0aW9uczogUGFydGlhbDxUb2FzdE9wdGlvbnM+ID0ge1xuICAgIHBvc2l0aW9uOiAnYm90dG9tLWVuZCdcbiAgfTtcbiAgXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI2F1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLnN1YnNjcmliZSgoYSkgPT4gKHRoaXMuc2lsZW50ID0gIWEpKTtcbiAgICB0aGlzLiNldmVudFNlcnZpY2Uub24oWXV2RXZlbnRUeXBlLkxPR09VVCkuc3Vic2NyaWJlKCgpID0+ICh0aGlzLnNpbGVudCA9IHRydWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGluZm8gY29sb3JlZCBtYXNzYWdlIChibHVlKVxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHRpdGxlXG4gICAqIEBwYXJhbSBzdHJpbmcgbXNnXG4gICAqL1xuICBpbmZvKHRpdGxlOiBzdHJpbmcsIG1zZz86IHN0cmluZykge1xuICAgIHRoaXMudG9hc3QodGl0bGUsIG1zZyk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBzdWNjZXNzIGNvbG9yZWQgbWFzc2FnZSAoZ3JlZW4pXG4gICAqIEBwYXJhbSBzdHJpbmcgdGl0bGVcbiAgICogQHBhcmFtIHN0cmluZyBtc2dcbiAgICovXG4gIHN1Y2Nlc3ModGl0bGU6IHN0cmluZywgbXNnPzogc3RyaW5nKSB7XG4gICAgdGhpcy50b2FzdCh0aXRsZSwgbXNnLCAnc3VjY2VzcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbiBub3QgYmUgaW4gdXNlXG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmcgdGl0bGVcbiAgICogQHBhcmFtIHN0cmluZyBtc2dcbiAgICovXG4gIHdhaXQodGl0bGU6IHN0cmluZywgbXNnPzogc3RyaW5nKSB7XG4gICAgdGhpcy50b2FzdCh0aXRsZSwgbXNnLCAnd2FpdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgZXJyb3IgY29sb3JlZCBtYXNzYWdlIChyZWQpXG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmcgdGl0bGVcbiAgICogQHBhcmFtIHN0cmluZyBtc2dcbiAgICovXG4gIGVycm9yKHRpdGxlOiBzdHJpbmcsIG1zZz86IHN0cmluZykge1xuICAgIHRoaXMudG9hc3QodGl0bGUsIG1zZywgJ2Vycm9yJywge1xuICAgICAgZHVyYXRpb246IDVcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IHdhcm5pbmcgY29sb3JlZCBtYXNzYWdlICh5ZWxsb3cpXG4gICAqXG4gICAqIEBwYXJhbSBzdHJpbmcgdGl0bGVcbiAgICogQHBhcmFtIHN0cmluZyBtc2dcbiAgICovXG4gIHdhcm5pbmcodGl0bGU6IHN0cmluZywgbXNnPzogc3RyaW5nKSB7XG4gICAgdGhpcy50b2FzdCh0aXRsZSwgbXNnLCAnd2FybmluZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1YmxpYyB3cmFwcGVyIGZvciBhY2Nlc3NpbmcgdGhlIFRvYXN0clxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIHRpdGxlXG4gICAqIEBwYXJhbSBzdHJpbmcgbXNnXG4gICAqIEBwYXJhbSBzdHJpbmcgbW9kZVxuICAgKiBAcGFyYW0gX29wdGlvbnNcbiAgICovXG4gIHByaXZhdGUgdG9hc3QodGl0bGU6IHN0cmluZywgbXNnPzogc3RyaW5nLCBtb2RlPzogc3RyaW5nLCBfb3B0aW9ucz86IFRvYXN0T3B0aW9ucykge1xuICAgIHRoaXMuZG9Ub2FzdCh0aXRsZSwgbXNnLCB7IC4uLnRoaXMub3B0aW9ucywgLi4uX29wdGlvbnMgfSwgbW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogQWNjZXNzaW5nIHRoZSB0b2FzdHIgc2VydmljZVxuICAgKlxuICAgKiBAcGFyYW0gc3RyaW5nIG1zZ1xuICAgKiBAcGFyYW0gc3RyaW5nIHRpdGxlXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEBwYXJhbSBzdHJpbmcgbW9kZVxuICAgKi9cbiAgcHJpdmF0ZSBkb1RvYXN0KHRpdGxlOiBzdHJpbmcsIG1zZz86IHN0cmluZywgb3B0aW9ucz86IFRvYXN0T3B0aW9ucywgbW9kZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLnNpbGVudCkgcmV0dXJuO1xuICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6IHtcbiAgICAgICAgdGhpcy4jdG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGl0bGUsIG1zZywgb3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZXJyb3InOiB7XG4gICAgICAgIHRoaXMuI3RvYXN0U2VydmljZS5lcnJvcih0aXRsZSwgbXNnLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd3YXJuaW5nJzoge1xuICAgICAgICB0aGlzLiN0b2FzdFNlcnZpY2Uud2FybmluZyh0aXRsZSwgbXNnLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdjb25maXJtJzoge1xuICAgICAgICB0aGlzLiN0b2FzdFNlcnZpY2UuaW5mbyh0aXRsZSwgbXNnLCBvcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHRoaXMuI3RvYXN0U2VydmljZS5pbmZvKHRpdGxlLCBtc2csIG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2Uvb2JqZWN0LWNvbmZpZy9vYmplY3QtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JqZWN0VHlwZUZpZWxkSW50ZXJuYWxUeXBlIH0gZnJvbSBcIi4uL3N5c3RlbS9vYmplY3QtZm9ybS5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFZpcnR1YWxPYmplY3RUeXBlIH0gZnJvbSBcIi4uL3N5c3RlbS9zeXN0ZW0uaW50ZXJmYWNlXCI7XG5cbi8qKlxuICogQ29uZmlnIGRlZmluaW5nIHRoZSBtb3N0IGltcG9ydGFudC9pbnRlcmVzc3RpbmcgZmllbGRzIGZvclxuICogYSBjZXJ0YWluIG9iamVjdCB0eXBlLiBUaGV5J2xsIGJlIHVzZWQgdG8gcmVuZGVyIHJlc3VsdCBsaXN0c1xuICogYXMgd2VsbCBhcyBoZWFkZXJzIGZvciBvbmJqZWN0cyBvZiB0aGF0IHR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0Q29uZmlnIHtcbiAgLy8gdGhlIElEIG9mIHRoZSBvYmplY3QgdHlwZSB0aGlzIGNvbmZpZyBiZWxvbmdzIHRvXG4gIG9iamVjdFR5cGVJZDogc3RyaW5nO1xuICAvLyBwcm9wZXJ0eSB0byByZW5kZXIgYXMgaWNvbiBmb3IgdGhhdCBvYmplY3RcbiAgaWNvbj86IE9iamVjdENvbmZpZ0ljb247XG4gIC8vIHByb3BlcnR5IHRvIHNlcnZlIGFzIG1haW4gdGl0bGVcbiAgdGl0bGU/OiBPYmplY3RDb25maWdQcm9wZXJ0eTtcbiAgLy8gcHJvcGVydHkgdG8gc2VydmUgYXMgc3VidGl0bGUvZGVzY3JpcHRpb25cbiAgZGVzY3JpcHRpb24/OiBPYmplY3RDb25maWdQcm9wZXJ0eTtcbiAgLy8gcHJvcGVydHkgdG8gc2VydmUgYXMgYWRkaXRpb25hbCBmaWVsZCBvZiBpbXBvcnRhbmNlXG4gIG1ldGE/OiBPYmplY3RDb25maWdQcm9wZXJ0eTtcbiAgLy8gcHJvcGVydHkgdG8gYmUgc2hvd24gYXNpZGUgb2YgdGhlIG1haW4gcHJvcGVydGllc1xuICBhc2lkZT86IE9iamVjdENvbmZpZ1Byb3BlcnR5O1xuICAvLyBwcmltYXJ5IHF1aWNrLWFjY2VzcyBhY3Rpb25zIGZvciB0aGV0IG9iamVjdFxuICBhY3Rpb25zPzogT2JqZWN0Q29uZmlnQWN0aW9uW107XG4gIGJhZGdlcz86IE9iamVjdENvbmZpZ0JhZGdlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0Q29uZmlnSWNvbiB7XG4gIHN2Zzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RDb25maWdBY3Rpb24ge1xuICBpZDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBPYmplY3RDb25maWdCYWRnZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZWN0Q29uZmlnUHJvcGVydHkge1xuICBsYWJlbDogc3RyaW5nO1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdG9yZWRPYmplY3RDb25maWcge1xuICBtYWluOiBPYmplY3RDb25maWdSZWNvcmQ7XG4gIGJ1Y2tldHM6IE9iamVjdENvbmZpZ0J1Y2tldFtdO1xufVxuXG5leHBvcnQgdHlwZSBPYmplY3RDb25maWdSZWNvcmQgPSBSZWNvcmQ8c3RyaW5nLCBPYmplY3RDb25maWc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdENvbmZpZ0J1Y2tldCB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbmZpZ3M6IE9iamVjdENvbmZpZ1JlY29yZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZE9iamVjdENvbmZpZyB7XG4gIGlkOiBzdHJpbmc7XG4gIG9iamVjdFR5cGVJZDogc3RyaW5nO1xuICBpY29uPzogUmVzb2x2ZWRPYmplY3RDb25maWdJdGVtO1xuICB0aXRsZTogUmVzb2x2ZWRPYmplY3RDb25maWdJdGVtO1xuICBkZXNjcmlwdGlvbj86IFJlc29sdmVkT2JqZWN0Q29uZmlnSXRlbTtcbiAgbWV0YT86IFJlc29sdmVkT2JqZWN0Q29uZmlnSXRlbTtcbiAgYXNpZGU/OiBSZXNvbHZlZE9iamVjdENvbmZpZ0l0ZW07XG5cbiAgYWN0aW9ucz86IE9iamVjdENvbmZpZ0FjdGlvbltdO1xuICBiYWRnZXM/OiBPYmplY3RDb25maWdCYWRnZVtdO1xuICBpbnN0YW5jZURhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZE9iamVjdENvbmZpZ0l0ZW0ge1xuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgcmVuZGVyZXJUeXBlPzogUmVuZGVyZXJUeXBlO1xuICB2YWx1ZT86IGFueTtcbiAgLy8gYWRkaXRpb25hbCBkYXRhIHJlbGF0ZWQgdG8gdGhlIHByb3BlcnR5IChsaWtlIC4uLl90aXRsZSBmb3IgdXNlciBmaWVsZHMpXG4gIG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBSZW5kZXJlclR5cGUgPSBQYXJ0aWFsPE9iamVjdFR5cGVGaWVsZEludGVybmFsVHlwZSB8IHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnVHlwZU9wdGlvbiB7XG4gIGJ1Y2tldD86IHN0cmluZztcbiAgdHlwZTogVmlydHVhbE9iamVjdFR5cGU7XG59XG4iXX0=
@@ -0,0 +1,229 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { ReplaySubject, map, tap } from 'rxjs';
3
+ import { BaseObjectTypeField } from '../system/system.enum';
4
+ import { SystemService } from '../system/system.service';
5
+ import { UserService } from '../user/user.service';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Service managing the configuarions for object types.
9
+ * Configuration means that you can pick certain fields
10
+ * of an object type and assign them to a config object.
11
+ */
12
+ export class ObjectConfigService {
13
+ constructor() {
14
+ this.#system = inject(SystemService);
15
+ this.#user = inject(UserService);
16
+ this.OBJECT_CONFIG_STORAGE_KEY = 'yuv.framework.object-config';
17
+ this.#objectConfigsSource = new ReplaySubject();
18
+ this.#objectConfigs$ = this.#objectConfigsSource.asObservable();
19
+ this.#defaultObjectConfigs = {};
20
+ this.#registeredDefaultObjectConfigs = {
21
+ main: {},
22
+ buckets: []
23
+ };
24
+ this.#objectConfigs = {
25
+ main: {},
26
+ buckets: []
27
+ };
28
+ }
29
+ #system;
30
+ #user;
31
+ #objectConfigsSource;
32
+ #objectConfigs$;
33
+ #defaultObjectConfigs;
34
+ #registeredDefaultObjectConfigs;
35
+ #objectConfigs;
36
+ // called on core init (auth.service -> initApp)
37
+ init() {
38
+ console.log('ObjectConfigService.init', this.#user.getCurrentUser().userSettings);
39
+ return this.#user.loadObjectConfig().pipe(tap((res) => {
40
+ this.#getDefaultObjectConfig();
41
+ this.#objectConfigs = res || {
42
+ main: {},
43
+ buckets: []
44
+ };
45
+ this.#objectConfigsSource.next(this.#objectConfigs);
46
+ }));
47
+ }
48
+ getObjectConfigs$(bucket, includeDefaults) {
49
+ return this.#objectConfigs$.pipe(map((soc) => {
50
+ let ocr = soc.main;
51
+ const defaults = { ...this.#defaultObjectConfigs, ...this.#getRegisteredDefaults(bucket) };
52
+ if (bucket) {
53
+ const tileBucket = soc.buckets.find((b) => b.id === bucket);
54
+ if (tileBucket)
55
+ ocr = tileBucket.configs;
56
+ }
57
+ return includeDefaults
58
+ ? {
59
+ ...defaults,
60
+ ...ocr
61
+ }
62
+ : { ...ocr };
63
+ }));
64
+ }
65
+ /**
66
+ * Register default object configs. Apps can pre-define how their
67
+ * objects should be rendered.
68
+ * @param bucket Name of a bucket to bind configs to (usually the ID of the app) to
69
+ * separate the configs from other apps. If not provided configs will be saved for
70
+ * the global scope
71
+ */
72
+ registerDefaults(configs, bucket) {
73
+ if (bucket) {
74
+ // does bucket exist?
75
+ const tileBucketIdx = this.#registeredDefaultObjectConfigs.buckets.findIndex((b) => b.id === bucket);
76
+ if (tileBucketIdx !== -1) {
77
+ this.#registeredDefaultObjectConfigs.buckets[tileBucketIdx].configs = {
78
+ ...this.#registeredDefaultObjectConfigs.buckets[tileBucketIdx].configs,
79
+ ...configs
80
+ };
81
+ }
82
+ else {
83
+ this.#registeredDefaultObjectConfigs.buckets.push({
84
+ id: bucket,
85
+ configs
86
+ });
87
+ }
88
+ }
89
+ else
90
+ this.#registeredDefaultObjectConfigs.main = { ...this.#registeredDefaultObjectConfigs.main, ...configs };
91
+ }
92
+ unregisterDefaults(configs, bucket) {
93
+ if (bucket) {
94
+ // does bucket exist?
95
+ const tileBucketIdx = this.#registeredDefaultObjectConfigs.buckets.findIndex((b) => b.id === bucket);
96
+ if (tileBucketIdx !== -1) {
97
+ this.#registeredDefaultObjectConfigs.buckets.splice(tileBucketIdx, 1);
98
+ }
99
+ }
100
+ else {
101
+ Object.keys(configs).forEach((key) => {
102
+ delete this.#registeredDefaultObjectConfigs.main[key];
103
+ });
104
+ }
105
+ }
106
+ #getRegisteredDefaults(bucket) {
107
+ if (bucket) {
108
+ const defaultTileBucket = this.#registeredDefaultObjectConfigs.buckets.find((b) => b.id === bucket);
109
+ return defaultTileBucket?.configs || {};
110
+ }
111
+ else
112
+ return this.#registeredDefaultObjectConfigs.main;
113
+ }
114
+ /**
115
+ * Get object config for an object type.
116
+ * @param objectTypeId ID of the object type to get the config for
117
+ * @param bucket Optional bucket ID to fetch the config from. Buckets
118
+ * define separated areas to store/receive those configs. This way
119
+ * components/apps can store different object configs than the ones
120
+ * used accross the whole client application.
121
+ */
122
+ getObjectConfig(type, bucket) {
123
+ const b = bucket ? this.#objectConfigs.buckets.find((b) => b.id === bucket) : undefined;
124
+ const otr = b ? b.configs : this.#objectConfigs.main;
125
+ const oc = otr[type.id];
126
+ return oc || this.#getRegisteredDefaults(bucket)[type.id];
127
+ }
128
+ saveObjectConfig(type, config, bucket) {
129
+ if (!this.#objectConfigs)
130
+ this.#objectConfigs = {
131
+ main: {},
132
+ buckets: []
133
+ };
134
+ if (bucket) {
135
+ // does bucket exist?
136
+ const tileBucketIdx = this.#objectConfigs.buckets.findIndex((b) => b.id === bucket);
137
+ if (tileBucketIdx !== -1) {
138
+ this.#objectConfigs.buckets[tileBucketIdx].configs[type.id] = config;
139
+ }
140
+ else {
141
+ const configs = {};
142
+ configs[type.id] = config;
143
+ this.#objectConfigs.buckets.push({
144
+ id: bucket,
145
+ configs
146
+ });
147
+ }
148
+ }
149
+ else {
150
+ this.#objectConfigs.main[type.id] = config;
151
+ }
152
+ this.#objectConfigsSource.next(this.#objectConfigs);
153
+ return this.#user.saveObjectConfig(this.#objectConfigs);
154
+ }
155
+ getDefaultConfig(objectTypeID) {
156
+ return this.#defaultObjectConfigs[objectTypeID];
157
+ }
158
+ getResolvedObjectConfig(data, type, bucket, includeDefaults) {
159
+ const defaultCfg = this.#defaultObjectConfigs[data[BaseObjectTypeField.OBJECT_TYPE_ID]];
160
+ let oc = this.getObjectConfig(type, bucket) || defaultCfg;
161
+ if (includeDefaults)
162
+ oc = { ...defaultCfg, ...oc };
163
+ const res = {
164
+ id: data[BaseObjectTypeField.OBJECT_ID],
165
+ objectTypeId: data[BaseObjectTypeField.OBJECT_TYPE_ID],
166
+ actions: oc.actions,
167
+ badges: oc.badges,
168
+ instanceData: data
169
+ };
170
+ if (oc.title)
171
+ res.title = {
172
+ propertyName: oc.title.propertyName,
173
+ value: data[oc.title.propertyName]
174
+ };
175
+ if (oc.description)
176
+ res.description = {
177
+ propertyName: oc.description.propertyName,
178
+ value: data[oc.description.propertyName]
179
+ };
180
+ if (oc.icon)
181
+ res.icon = {
182
+ propertyName: 'custom',
183
+ value: oc.icon.svg
184
+ };
185
+ if (oc.meta)
186
+ res.meta = {
187
+ propertyName: oc.meta.propertyName,
188
+ value: data[oc.meta.propertyName]
189
+ };
190
+ if (oc.aside)
191
+ res.aside = {
192
+ propertyName: oc.aside.propertyName,
193
+ value: data[oc.aside.propertyName]
194
+ };
195
+ return res;
196
+ }
197
+ /**
198
+ * Load default/fallbac configs based on the object types and
199
+ * their first properties
200
+ */
201
+ #getDefaultObjectConfig() {
202
+ this.#system.getObjectTypes(true).forEach((ot) => {
203
+ this.#defaultObjectConfigs[ot.id] = {
204
+ objectTypeId: ot.id,
205
+ title: this.#toObjectProperty(ot.fields[0]),
206
+ description: this.#toObjectProperty(ot.fields[1]),
207
+ meta: this.#toObjectProperty(ot.fields[2]),
208
+ aside: this.#toObjectProperty(ot.fields[3])
209
+ };
210
+ });
211
+ }
212
+ #toObjectProperty(field) {
213
+ return field
214
+ ? {
215
+ label: this.#system.getLocalizedLabel(field.id),
216
+ propertyName: field.id
217
+ }
218
+ : undefined;
219
+ }
220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
221
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectConfigService, providedIn: 'root' }); }
222
+ }
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectConfigService, decorators: [{
224
+ type: Injectable,
225
+ args: [{
226
+ providedIn: 'root'
227
+ }]
228
+ }] });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL29iamVjdC1jb25maWcvb2JqZWN0LWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVVuRDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlFLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1Qiw4QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQztRQUMxRCx5QkFBb0IsR0FBRyxJQUFJLGFBQWEsRUFBc0IsQ0FBQztRQUMvRCxvQkFBZSxHQUFtQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0YsMEJBQXFCLEdBQWlDLEVBQUUsQ0FBQztRQUN6RCxvQ0FBK0IsR0FBdUI7WUFDcEQsSUFBSSxFQUFFLEVBQUU7WUFDUixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixtQkFBYyxHQUF1QjtZQUNuQyxJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztLQXFNSDtJQXBOQyxPQUFPLENBQXlCO0lBQ2hDLEtBQUssQ0FBdUI7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bEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRztnQkFDbEMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakQsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQXNCO1FBQ3RDLE9BQU8sS0FBSztZQUNWLENBQUMsQ0FBQztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUU7YUFDdkI7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7K0dBcE5VLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlT2JqZWN0VHlwZUZpZWxkIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5lbnVtJztcbmltcG9ydCB7IEdlbmVyaWNPYmplY3RUeXBlLCBPYmplY3RUeXBlRmllbGQsIFZpcnR1YWxPYmplY3RUeXBlIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXIvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE9iamVjdENvbmZpZyxcbiAgT2JqZWN0Q29uZmlnQnVja2V0LFxuICBPYmplY3RDb25maWdQcm9wZXJ0eSxcbiAgT2JqZWN0Q29uZmlnUmVjb3JkLFxuICBSZXNvbHZlZE9iamVjdENvbmZpZyxcbiAgU3RvcmVkT2JqZWN0Q29uZmlnXG59IGZyb20gJy4vb2JqZWN0LWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgbWFuYWdpbmcgdGhlIGNvbmZpZ3VhcmlvbnMgZm9yIG9iamVjdCB0eXBlcy5cbiAqIENvbmZpZ3VyYXRpb24gbWVhbnMgdGhhdCB5b3UgY2FuIHBpY2sgY2VydGFpbiBmaWVsZHNcbiAqIG9mIGFuIG9iamVjdCB0eXBlIGFuZCBhc3NpZ24gdGhlbSB0byBhIGNvbmZpZyBvYmplY3QuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENvbmZpZ1NlcnZpY2Uge1xuICAjc3lzdGVtID0gaW5qZWN0KFN5c3RlbVNlcnZpY2UpO1xuICAjdXNlciA9IGluamVjdChVc2VyU2VydmljZSk7XG5cbiAgT0JKRUNUX0NPTkZJR19TVE9SQUdFX0tFWSA9ICd5dXYuZnJhbWV3b3JrLm9iamVjdC1jb25maWcnO1xuICAjb2JqZWN0Q29uZmlnc1NvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFN0b3JlZE9iamVjdENvbmZpZz4oKTtcbiAgI29iamVjdENvbmZpZ3MkOiBPYnNlcnZhYmxlPFN0b3JlZE9iamVjdENvbmZpZz4gPSB0aGlzLiNvYmplY3RDb25maWdzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICNkZWZhdWx0T2JqZWN0Q29uZmlnczogUmVjb3JkPHN0cmluZywgT2JqZWN0Q29uZmlnPiA9IHt9O1xuICAjcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzOiBTdG9yZWRPYmplY3RDb25maWcgPSB7XG4gICAgbWFpbjoge30sXG4gICAgYnVja2V0czogW11cbiAgfTtcbiAgI29iamVjdENvbmZpZ3M6IFN0b3JlZE9iamVjdENvbmZpZyA9IHtcbiAgICBtYWluOiB7fSxcbiAgICBidWNrZXRzOiBbXVxuICB9O1xuXG4gIC8vIGNhbGxlZCBvbiBjb3JlIGluaXQgKGF1dGguc2VydmljZSAtPiBpbml0QXBwKVxuICBpbml0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc29sZS5sb2coJ09iamVjdENvbmZpZ1NlcnZpY2UuaW5pdCcsIHRoaXMuI3VzZXIuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3MpO1xuICAgIHJldHVybiB0aGlzLiN1c2VyLmxvYWRPYmplY3RDb25maWcoKS5waXBlKFxuICAgICAgdGFwKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy4jZ2V0RGVmYXVsdE9iamVjdENvbmZpZygpO1xuICAgICAgICB0aGlzLiNvYmplY3RDb25maWdzID0gcmVzIHx8IHtcbiAgICAgICAgICBtYWluOiB7fSxcbiAgICAgICAgICBidWNrZXRzOiBbXVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLiNvYmplY3RDb25maWdzU291cmNlLm5leHQodGhpcy4jb2JqZWN0Q29uZmlncyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRPYmplY3RDb25maWdzJChidWNrZXQ/OiBzdHJpbmcsIGluY2x1ZGVEZWZhdWx0cz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPE9iamVjdENvbmZpZ1JlY29yZD4ge1xuICAgIHJldHVybiB0aGlzLiNvYmplY3RDb25maWdzJC5waXBlKFxuICAgICAgbWFwKChzb2M6IFN0b3JlZE9iamVjdENvbmZpZykgPT4ge1xuICAgICAgICBsZXQgb2NyOiBPYmplY3RDb25maWdSZWNvcmQgPSBzb2MubWFpbjtcbiAgICAgICAgY29uc3QgZGVmYXVsdHM6IE9iamVjdENvbmZpZ1JlY29yZCA9IHsgLi4udGhpcy4jZGVmYXVsdE9iamVjdENvbmZpZ3MsIC4uLnRoaXMuI2dldFJlZ2lzdGVyZWREZWZhdWx0cyhidWNrZXQpIH07XG5cbiAgICAgICAgaWYgKGJ1Y2tldCkge1xuICAgICAgICAgIGNvbnN0IHRpbGVCdWNrZXQ6IE9iamVjdENvbmZpZ0J1Y2tldCB8IHVuZGVmaW5lZCA9IHNvYy5idWNrZXRzLmZpbmQoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCk7XG4gICAgICAgICAgaWYgKHRpbGVCdWNrZXQpIG9jciA9IHRpbGVCdWNrZXQuY29uZmlncztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmNsdWRlRGVmYXVsdHNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgICAgICAgIC4uLm9jclxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogeyAuLi5vY3IgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBkZWZhdWx0IG9iamVjdCBjb25maWdzLiBBcHBzIGNhbiBwcmUtZGVmaW5lIGhvdyB0aGVpclxuICAgKiBvYmplY3RzIHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICogQHBhcmFtIGJ1Y2tldCBOYW1lIG9mIGEgYnVja2V0IHRvIGJpbmQgY29uZmlncyB0byAodXN1YWxseSB0aGUgSUQgb2YgdGhlIGFwcCkgdG9cbiAgICogc2VwYXJhdGUgdGhlIGNvbmZpZ3MgZnJvbSBvdGhlciBhcHBzLiBJZiBub3QgcHJvdmlkZWQgY29uZmlncyB3aWxsIGJlIHNhdmVkIGZvclxuICAgKiB0aGUgZ2xvYmFsIHNjb3BlXG4gICAqL1xuICByZWdpc3RlckRlZmF1bHRzKGNvbmZpZ3M6IE9iamVjdENvbmZpZ1JlY29yZCwgYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgLy8gZG9lcyBidWNrZXQgZXhpc3Q/XG4gICAgICBjb25zdCB0aWxlQnVja2V0SWR4OiBudW1iZXIgPSB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0cy5maW5kSW5kZXgoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCk7XG4gICAgICBpZiAodGlsZUJ1Y2tldElkeCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHNbdGlsZUJ1Y2tldElkeF0uY29uZmlncyA9IHtcbiAgICAgICAgICAuLi50aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0c1t0aWxlQnVja2V0SWR4XS5jb25maWdzLFxuICAgICAgICAgIC4uLmNvbmZpZ3NcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5idWNrZXRzLnB1c2goe1xuICAgICAgICAgIGlkOiBidWNrZXQsXG4gICAgICAgICAgY29uZmlnc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLm1haW4gPSB7IC4uLnRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5tYWluLCAuLi5jb25maWdzIH07XG4gIH1cblxuICB1bnJlZ2lzdGVyRGVmYXVsdHMoY29uZmlnczogT2JqZWN0Q29uZmlnUmVjb3JkLCBidWNrZXQ/OiBzdHJpbmcpIHtcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICAvLyBkb2VzIGJ1Y2tldCBleGlzdD9cbiAgICAgIGNvbnN0IHRpbGVCdWNrZXRJZHg6IG51bWJlciA9IHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5idWNrZXRzLmZpbmRJbmRleCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KTtcbiAgICAgIGlmICh0aWxlQnVja2V0SWR4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0cy5zcGxpY2UodGlsZUJ1Y2tldElkeCwgMSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5rZXlzKGNvbmZpZ3MpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLm1haW5ba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNnZXRSZWdpc3RlcmVkRGVmYXVsdHMoYnVja2V0Pzogc3RyaW5nKTogT2JqZWN0Q29uZmlnUmVjb3JkIHtcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICBjb25zdCBkZWZhdWx0VGlsZUJ1Y2tldDogT2JqZWN0Q29uZmlnQnVja2V0IHwgdW5kZWZpbmVkID0gdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KTtcbiAgICAgIHJldHVybiBkZWZhdWx0VGlsZUJ1Y2tldD8uY29uZmlncyB8fCB7fTtcbiAgICB9IGVsc2UgcmV0dXJuIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5tYWluO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvYmplY3QgY29uZmlnIGZvciBhbiBvYmplY3QgdHlwZS5cbiAgICogQHBhcmFtIG9iamVjdFR5cGVJZCBJRCBvZiB0aGUgb2JqZWN0IHR5cGUgdG8gZ2V0IHRoZSBjb25maWcgZm9yXG4gICAqIEBwYXJhbSBidWNrZXQgT3B0aW9uYWwgYnVja2V0IElEIHRvIGZldGNoIHRoZSBjb25maWcgZnJvbS4gQnVja2V0c1xuICAgKiBkZWZpbmUgc2VwYXJhdGVkIGFyZWFzIHRvIHN0b3JlL3JlY2VpdmUgdGhvc2UgY29uZmlncy4gVGhpcyB3YXlcbiAgICogY29tcG9uZW50cy9hcHBzIGNhbiBzdG9yZSBkaWZmZXJlbnQgb2JqZWN0IGNvbmZpZ3MgdGhhbiB0aGUgb25lc1xuICAgKiB1c2VkIGFjY3Jvc3MgdGhlIHdob2xlIGNsaWVudCBhcHBsaWNhdGlvbi5cbiAgICovXG4gIGdldE9iamVjdENvbmZpZyh0eXBlOiBWaXJ0dWFsT2JqZWN0VHlwZSwgYnVja2V0Pzogc3RyaW5nKTogT2JqZWN0Q29uZmlnIHtcbiAgICBjb25zdCBiOiBPYmplY3RDb25maWdCdWNrZXQgfCB1bmRlZmluZWQgPSBidWNrZXQgPyB0aGlzLiNvYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvdHI6IE9iamVjdENvbmZpZ1JlY29yZCA9IGIgPyBiLmNvbmZpZ3MgOiB0aGlzLiNvYmplY3RDb25maWdzLm1haW47XG5cbiAgICBjb25zdCBvYyA9IG90clt0eXBlLmlkXTtcbiAgICByZXR1cm4gb2MgfHwgdGhpcy4jZ2V0UmVnaXN0ZXJlZERlZmF1bHRzKGJ1Y2tldClbdHlwZS5pZF07XG4gIH1cblxuICBzYXZlT2JqZWN0Q29uZmlnKHR5cGU6IFZpcnR1YWxPYmplY3RUeXBlLCBjb25maWc6IE9iamVjdENvbmZpZywgYnVja2V0Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuI29iamVjdENvbmZpZ3MpXG4gICAgICB0aGlzLiNvYmplY3RDb25maWdzID0ge1xuICAgICAgICBtYWluOiB7fSxcbiAgICAgICAgYnVja2V0czogW11cbiAgICAgIH07XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgLy8gZG9lcyBidWNrZXQgZXhpc3Q/XG4gICAgICBjb25zdCB0aWxlQnVja2V0SWR4OiBudW1iZXIgPSB0aGlzLiNvYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZEluZGV4KChiKSA9PiBiLmlkID09PSBidWNrZXQpO1xuICAgICAgaWYgKHRpbGVCdWNrZXRJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuI29iamVjdENvbmZpZ3MuYnVja2V0c1t0aWxlQnVja2V0SWR4XS5jb25maWdzW3R5cGUuaWRdID0gY29uZmlnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29uZmlnczogT2JqZWN0Q29uZmlnUmVjb3JkID0ge307XG4gICAgICAgIGNvbmZpZ3NbdHlwZS5pZF0gPSBjb25maWc7XG5cbiAgICAgICAgdGhpcy4jb2JqZWN0Q29uZmlncy5idWNrZXRzLnB1c2goe1xuICAgICAgICAgIGlkOiBidWNrZXQsXG4gICAgICAgICAgY29uZmlnc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jb2JqZWN0Q29uZmlncy5tYWluW3R5cGUuaWRdID0gY29uZmlnO1xuICAgIH1cblxuICAgIHRoaXMuI29iamVjdENvbmZpZ3NTb3VyY2UubmV4dCh0aGlzLiNvYmplY3RDb25maWdzKTtcbiAgICByZXR1cm4gdGhpcy4jdXNlci5zYXZlT2JqZWN0Q29uZmlnKHRoaXMuI29iamVjdENvbmZpZ3MpO1xuICB9XG5cbiAgZ2V0RGVmYXVsdENvbmZpZyhvYmplY3RUeXBlSUQ6IHN0cmluZyk6IE9iamVjdENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuI2RlZmF1bHRPYmplY3RDb25maWdzW29iamVjdFR5cGVJRF07XG4gIH1cblxuICBnZXRSZXNvbHZlZE9iamVjdENvbmZpZyhkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB0eXBlOiBWaXJ0dWFsT2JqZWN0VHlwZSwgYnVja2V0Pzogc3RyaW5nLCBpbmNsdWRlRGVmYXVsdHM/OiBib29sZWFuKTogUmVzb2x2ZWRPYmplY3RDb25maWcge1xuICAgIGNvbnN0IGRlZmF1bHRDZmcgPSB0aGlzLiNkZWZhdWx0T2JqZWN0Q29uZmlnc1tkYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX1RZUEVfSURdXTtcbiAgICBsZXQgb2MgPSB0aGlzLmdldE9iamVjdENvbmZpZyh0eXBlLCBidWNrZXQpIHx8IGRlZmF1bHRDZmc7XG4gICAgaWYgKGluY2x1ZGVEZWZhdWx0cykgb2MgPSB7IC4uLmRlZmF1bHRDZmcsIC4uLm9jIH07XG4gICAgY29uc3QgcmVzOiBQYXJ0aWFsPFJlc29sdmVkT2JqZWN0Q29uZmlnPiA9IHtcbiAgICAgIGlkOiBkYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXSxcbiAgICAgIG9iamVjdFR5cGVJZDogZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLk9CSkVDVF9UWVBFX0lEXSxcbiAgICAgIGFjdGlvbnM6IG9jLmFjdGlvbnMsXG4gICAgICBiYWRnZXM6IG9jLmJhZGdlcyxcbiAgICAgIGluc3RhbmNlRGF0YTogZGF0YVxuICAgIH07XG5cbiAgICBpZiAob2MudGl0bGUpXG4gICAgICByZXMudGl0bGUgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MudGl0bGUucHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZTogZGF0YVtvYy50aXRsZS5wcm9wZXJ0eU5hbWVdXG4gICAgICB9O1xuICAgIGlmIChvYy5kZXNjcmlwdGlvbilcbiAgICAgIHJlcy5kZXNjcmlwdGlvbiA9IHtcbiAgICAgICAgcHJvcGVydHlOYW1lOiBvYy5kZXNjcmlwdGlvbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgIHZhbHVlOiBkYXRhW29jLmRlc2NyaXB0aW9uLnByb3BlcnR5TmFtZV1cbiAgICAgIH07XG4gICAgaWYgKG9jLmljb24pXG4gICAgICByZXMuaWNvbiA9IHtcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnY3VzdG9tJyxcbiAgICAgICAgdmFsdWU6IG9jLmljb24uc3ZnXG4gICAgICB9O1xuICAgIGlmIChvYy5tZXRhKVxuICAgICAgcmVzLm1ldGEgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MubWV0YS5wcm9wZXJ0eU5hbWUsXG4gICAgICAgIHZhbHVlOiBkYXRhW29jLm1ldGEucHJvcGVydHlOYW1lXVxuICAgICAgfTtcbiAgICBpZiAob2MuYXNpZGUpXG4gICAgICByZXMuYXNpZGUgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MuYXNpZGUucHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZTogZGF0YVtvYy5hc2lkZS5wcm9wZXJ0eU5hbWVdXG4gICAgICB9O1xuXG4gICAgcmV0dXJuIHJlcyBhcyBSZXNvbHZlZE9iamVjdENvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGRlZmF1bHQvZmFsbGJhYyBjb25maWdzIGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZXMgYW5kXG4gICAqIHRoZWlyIGZpcnN0IHByb3BlcnRpZXNcbiAgICovXG4gICNnZXREZWZhdWx0T2JqZWN0Q29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuI3N5c3RlbS5nZXRPYmplY3RUeXBlcyh0cnVlKS5mb3JFYWNoKChvdDogR2VuZXJpY09iamVjdFR5cGUpID0+IHtcbiAgICAgIHRoaXMuI2RlZmF1bHRPYmplY3RDb25maWdzW290LmlkXSA9IHtcbiAgICAgICAgb2JqZWN0VHlwZUlkOiBvdC5pZCxcbiAgICAgICAgdGl0bGU6IHRoaXMuI3RvT2JqZWN0UHJvcGVydHkob3QuZmllbGRzWzBdKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuI3RvT2JqZWN0UHJvcGVydHkob3QuZmllbGRzWzFdKSxcbiAgICAgICAgbWV0YTogdGhpcy4jdG9PYmplY3RQcm9wZXJ0eShvdC5maWVsZHNbMl0pLFxuICAgICAgICBhc2lkZTogdGhpcy4jdG9PYmplY3RQcm9wZXJ0eShvdC5maWVsZHNbM10pXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgI3RvT2JqZWN0UHJvcGVydHkoZmllbGQ6IE9iamVjdFR5cGVGaWVsZCk6IE9iamVjdENvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZmllbGRcbiAgICAgID8ge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwoZmllbGQuaWQpLFxuICAgICAgICAgIHByb3BlcnR5TmFtZTogZmllbGQuaWRcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Interface to be implemented by all components (state components) that are aware of pending changes
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcmZhY2UgdG8gYmUgaW1wbGVtZW50ZWQgYnkgYWxsIGNvbXBvbmVudHMgKHN0YXRlIGNvbXBvbmVudHMpIHRoYXQgYXJlIGF3YXJlIG9mIHBlbmRpbmcgY2hhbmdlc1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuICBoYXNQZW5kaW5nQ2hhbmdlczogKCkgPT4gYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { PendingChangesService } from './pending-changes.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./pending-changes.service";
5
+ /**
6
+ * Providing a `PendingChangesComponent`.
7
+ */
8
+ export class PendingChangesGuard {
9
+ constructor(pendingChanges) {
10
+ this.pendingChanges = pendingChanges;
11
+ }
12
+ canDeactivate(component) {
13
+ // if there are no pending changes, just allow deactivation; else confirm first
14
+ return !this.pendingChanges.check(component);
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesGuard, deps: [{ token: i1.PendingChangesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesGuard, providedIn: 'root' }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesGuard, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root'
23
+ }]
24
+ }], ctorParameters: () => [{ type: i1.PendingChangesService }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1jaGFuZ2VzLWd1YXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUNsRTs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFBb0IsY0FBcUM7UUFBckMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO0lBQUcsQ0FBQztJQUU3RCxhQUFhLENBQUMsU0FBa0M7UUFDOUMsK0VBQStFO1FBQy9FLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDOytHQU5VLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5EZWFjdGl2YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi9wZW5kaW5nLWNoYW5nZXMtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UgfSBmcm9tICcuL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbi8qKlxuICogUHJvdmlkaW5nIGEgYFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50YC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVuZGluZ0NoYW5nZXNHdWFyZCBpbXBsZW1lbnRzIENhbkRlYWN0aXZhdGU8UGVuZGluZ0NoYW5nZXNDb21wb25lbnQ+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKSB7fVxuXG4gIGNhbkRlYWN0aXZhdGUoY29tcG9uZW50OiBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBwZW5kaW5nIGNoYW5nZXMsIGp1c3QgYWxsb3cgZGVhY3RpdmF0aW9uOyBlbHNlIGNvbmZpcm0gZmlyc3RcbiAgICByZXR1cm4gIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2soY29tcG9uZW50KTtcbiAgfVxufVxuIl19