@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
package/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # @yuuvis/client-core
2
+
3
+ `@yuuvis/client-core` library provides a set of services to interact with a yuuvis® MOMENTUM backend.
4
+
5
+ ## Installation
6
+
7
+ First you need to install the npm module:
8
+
9
+ ```sh
10
+ npm install @yuuvis/client-core --save
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ #### 1. Import `YuvClientCoreModule`:
16
+
17
+ To use `@yuuvis/client-core` in your Angular project you have to import `YuvClientCoreModule.forRoot()` in the root NgModule of your application.
18
+
19
+ ```ts
20
+ import { YuvClientCoreModule } from '@yuuvis/client-core';
21
+
22
+ @NgModule({
23
+ imports: [BrowserModule, YuvClientCoreModule.forRoot()],
24
+ bootstrap: [AppComponent]
25
+ })
26
+ export class AppModule {}
27
+ ```
28
+ ##### Use with app.config
29
+
30
+ Since Angular 17 initilization differs due to standalone components:
31
+ ```ts
32
+ export const appConfig: ApplicationConfig = {
33
+ providers: [
34
+ ...
35
+ importProvidersFrom(YuvClientCoreModule),
36
+ ]
37
+ }
38
+ ```
39
+
40
+ #### 2. Configure `YuvClientCoreModule`:
41
+
42
+ In order to use `@yuuvis/client-core` library you need to provide a set of files that will configure the behaviour of the module.
43
+
44
+ ##### Main configuration
45
+
46
+ The main configuration file is supposed to be located at `assets/_yuuvis/config/main.json`. By default it looks like this:
47
+
48
+ ```json
49
+ {
50
+ "core": {
51
+ "apiBase": {
52
+ "core": "/api",
53
+ "api-web": "/api-web/api"
54
+ },
55
+ "languages": [
56
+ {
57
+ "iso": "de",
58
+ "label": "Deutsch"
59
+ },
60
+ {
61
+ "iso": "en",
62
+ "label": "English",
63
+ "fallback": true
64
+ }
65
+ ],
66
+ "logging": {
67
+ "level": "debug"
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ ##### Translations
74
+
75
+ The `@yuuvis/client-core` library sets up a translations module that can be used within the application that you are creating. This module will be bound to the language a user has set up on the yuuvis® MOMENTUM backend. In order to be able to initialize this module the core config needs to know about where you store your translation files. By default they are supposed to be at `assets/_yuuvis/i18n/`.
76
+
77
+ Inside those folder you then provide a file for each supported language (`en.json`, `de.json`). If you do not need translations, just provide empty files here.
78
+
79
+ ##### Custom configuration locations
80
+
81
+ You are able to change the defaults for the configuration by providing different locations to the module config when you import `YuvClientCoreModule`.
82
+
83
+ ```ts
84
+ @NgModule({
85
+ imports: [
86
+ YuvClientCoreModule.forRoot({
87
+ main: ['assets/my-custom-path/config/main.json'],
88
+ translations: ['assets/my-custom-path/i18n/']
89
+ })
90
+ ],
91
+ bootstrap: [AppComponent]
92
+ })
93
+ export class AppModule {}
94
+ ```
95
+
96
+ #### 3. Use `YuvClientCoreModule`:
97
+
98
+ Once you finshed steps one and two you are ready to go. Just inject the services you need into the component like you're used to do.
99
+
100
+ ```ts
101
+ import { UserService } from '@yuuvis/client-core';
102
+
103
+ @Component({
104
+ selector: 'app-root',
105
+ templateUrl: './app.component.html',
106
+ styleUrls: ['./app.component.scss']
107
+ })
108
+ export class AppComponent {
109
+ constructor(private userService: UserService) {}
110
+ }
111
+ ```
@@ -0,0 +1,65 @@
1
+ export { TranslateDirective, TranslateLoader, TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';
2
+ export * from './lib/client-core.shared.module';
3
+ export * from './lib/model/dms-object.interface';
4
+ export * from './lib/model/object-flavor.interface';
5
+ export * from './lib/model/dms-object.model';
6
+ export * from './lib/model/range-value.interface';
7
+ export * from './lib/model/yuv-error.model';
8
+ export * from './lib/model/yuv-user.model';
9
+ export * from './lib/service/audit/audit.interface';
10
+ export * from './lib/service/audit/audit.service';
11
+ export * from './lib/service/auth/auth.interface';
12
+ export * from './lib/service/auth/auth.service';
13
+ export * from './lib/service/auth/oidc.service';
14
+ export * from './lib/service/backend/api.enum';
15
+ export * from './lib/service/backend/backend.interface';
16
+ export * from './lib/service/backend/backend.service';
17
+ export * from './lib/service/bpm/bpm.service';
18
+ export * from './lib/service/bpm/bpm.interface';
19
+ export * from './lib/service/cache/app-cache.service';
20
+ export * from './lib/service/catalog/catalog.interface';
21
+ export * from './lib/service/catalog/catalog.service';
22
+ export * from './lib/service/clipboard/clipboard.interface';
23
+ export * from './lib/service/clipboard/clipboard.service';
24
+ export * from './lib/service/config/config.interface';
25
+ export * from './lib/service/config/config.service';
26
+ export * from './lib/service/config/core-config';
27
+ export * from './lib/service/config/core-config.tokens';
28
+ export * from './lib/service/connection/connection.service';
29
+ export * from './lib/service/core-init/core-init.service';
30
+ export * from './lib/service/device/device.service';
31
+ export * from './lib/service/device/device.interface';
32
+ export * from './lib/service/dms/dms.service';
33
+ export * from './lib/service/dms/dms.service.interface';
34
+ export * from './lib/service/event/event.interface';
35
+ export * from './lib/service/event/event.service';
36
+ export * from './lib/service/event/events';
37
+ export * from './lib/service/idm/idm.interface';
38
+ export * from './lib/service/idm/idm.service';
39
+ export * from './lib/service/logger/logger';
40
+ export * from './lib/service/notification/notification.service';
41
+ export * from './lib/service/object-config/object-config.interface';
42
+ export * from './lib/service/object-config/object-config.service';
43
+ export * from './lib/service/pending-changes/pending-changes-guard.service';
44
+ export * from './lib/service/pending-changes/pending-changes.service';
45
+ export * from './lib/service/prediction/prediction.interface';
46
+ export * from './lib/service/prediction/prediction.service';
47
+ export * from './lib/service/search/search.service';
48
+ export * from './lib/service/search/search.service.interface';
49
+ export * from './lib/service/session-storage/session-storage.service';
50
+ export * from './lib/service/system/object-form.interface';
51
+ export * from './lib/service/system/system.enum';
52
+ export * from './lib/service/system/system.interface';
53
+ export * from './lib/service/system/system.service';
54
+ export * from './lib/service/upload/upload.interface';
55
+ export * from './lib/service/upload/upload.service';
56
+ export * from './lib/service/user/user.service';
57
+ export * from './lib/util/utils';
58
+ export * from './lib/util/utils.helper.enum';
59
+ export * from './lib/client-core.module';
60
+ // COMMON PIPES
61
+ export * from './lib/common/pipes';
62
+ // COMMON SERVICES
63
+ export * from './lib/common/services/native-notifications';
64
+ // TOKENS
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxlQUFlO0FBQ2YsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxrQkFBa0I7QUFDbEIsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xpZW50LWNvcmUuc2hhcmVkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kbXMtb2JqZWN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9vYmplY3QtZmxhdm9yLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3JhbmdlLXZhbHVlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC95dXYtZXJyb3IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwveXV2LXVzZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9hdWRpdC9hdWRpdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9hdWRpdC9hdWRpdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYXV0aC9hdXRoLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYXV0aC9vaWRjLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9iYWNrZW5kL2FwaS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYmFja2VuZC9iYWNrZW5kLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYnBtL2JwbS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NhdGFsb2cvY2F0YWxvZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jYXRhbG9nL2NhdGFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NsaXBib2FyZC9jbGlwYm9hcmQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY29uZmlnL2NvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29yZS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29yZS1jb25maWcudG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY29ubmVjdGlvbi9jb25uZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb3JlLWluaXQvY29yZS1pbml0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9kZXZpY2UvZGV2aWNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9kZXZpY2UvZGV2aWNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2Rtcy9kbXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2Rtcy9kbXMuc2VydmljZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ldmVudC9ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ldmVudC9ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvZXZlbnQvZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvaWRtL2lkbS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9pZG0vaWRtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9sb2dnZXIvbG9nZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvb2JqZWN0LWNvbmZpZy9vYmplY3QtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL29iamVjdC1jb25maWcvb2JqZWN0LWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcHJlZGljdGlvbi9wcmVkaWN0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3ByZWRpY3Rpb24vcHJlZGljdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9vYmplY3QtZm9ybS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9zeXN0ZW0vc3lzdGVtLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9zeXN0ZW0vc3lzdGVtLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VwbG9hZC91cGxvYWQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXBsb2FkL3VwbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXNlci91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbC91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsL3V0aWxzLmhlbHBlci5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xpZW50LWNvcmUubW9kdWxlJztcblxuLy8gQ09NTU9OIFBJUEVTXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vcGlwZXMnO1xuXG4vLyBDT01NT04gU0VSVklDRVNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9zZXJ2aWNlcy9uYXRpdmUtbm90aWZpY2F0aW9ucyc7XG5cbi8vIFRPS0VOU1xuIl19
@@ -0,0 +1,117 @@
1
+ import { HTTP_INTERCEPTORS, HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
2
+ import { APP_INITIALIZER, NgModule, Optional, SkipSelf } from '@angular/core';
3
+ import { MissingTranslationHandler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
4
+ import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
5
+ import { YuvClientCoreSharedModule } from './client-core.shared.module';
6
+ import { AuthInterceptor } from './service/auth/auth.interceptor';
7
+ import { AuthService } from './service/auth/auth.service';
8
+ import { ConfigService } from './service/config/config.service';
9
+ import { CoreConfig } from './service/config/core-config';
10
+ import { CORE_CONFIG, CUSTOM_CONFIG } from './service/config/core-config.tokens';
11
+ import { OfflineInterceptor } from './service/connection/offline.interceptor';
12
+ import { init_moduleFnc } from './service/core-init/core-init.service';
13
+ import { EoxMissingTranslationHandler } from './service/core-init/missing-translation-handler';
14
+ import { EoxTranslateJsonLoader } from './service/core-init/translate-json-loader';
15
+ import { DeviceService } from './service/device/device.service';
16
+ import { Logger } from './service/logger/logger';
17
+ import { LoggerConsoleService } from './service/logger/logger-console.service';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "angular-oauth2-oidc";
20
+ import * as i2 from "@ngx-translate/core";
21
+ export function storageFactory() {
22
+ return localStorage;
23
+ }
24
+ /**
25
+ * `YuvClientCoreModule` provides a bunch of services to interact with a yuuvis backend.
26
+ *
27
+ *
28
+ */
29
+ export class YuvClientCoreModule {
30
+ /**
31
+ * @ignore
32
+ */
33
+ constructor(parentModule) {
34
+ if (parentModule) {
35
+ throw new Error('YuvClientCoreModule is already loaded.');
36
+ }
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, deps: [{ token: YuvClientCoreModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
39
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, imports: [i1.OAuthModule, i2.TranslateModule], exports: [YuvClientCoreSharedModule] }); }
40
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, providers: [
41
+ { provide: Logger, useClass: LoggerConsoleService },
42
+ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
43
+ { provide: HTTP_INTERCEPTORS, useClass: OfflineInterceptor, multi: true },
44
+ { provide: CORE_CONFIG, useClass: CoreConfig, deps: [CUSTOM_CONFIG] },
45
+ {
46
+ provide: APP_INITIALIZER,
47
+ useFactory: init_moduleFnc,
48
+ multi: true,
49
+ deps: [CORE_CONFIG, DeviceService, Logger, HttpClient, ConfigService, AuthService]
50
+ },
51
+ /**
52
+ * overriding translate modules defaults
53
+ * this works because providers are singletons
54
+ */
55
+ {
56
+ provide: TranslateLoader,
57
+ useClass: EoxTranslateJsonLoader,
58
+ deps: [HttpClient, CORE_CONFIG]
59
+ },
60
+ {
61
+ provide: MissingTranslationHandler,
62
+ useClass: EoxMissingTranslationHandler
63
+ },
64
+ { provide: OAuthStorage, useFactory: storageFactory },
65
+ provideHttpClient(withInterceptorsFromDi())
66
+ ], imports: [OAuthModule.forRoot({
67
+ resourceServer: {
68
+ sendAccessToken: false,
69
+ allowedUrls: []
70
+ }
71
+ }),
72
+ TranslateModule.forRoot(), YuvClientCoreSharedModule] }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, decorators: [{
75
+ type: NgModule,
76
+ args: [{
77
+ exports: [YuvClientCoreSharedModule],
78
+ imports: [OAuthModule.forRoot({
79
+ resourceServer: {
80
+ sendAccessToken: false,
81
+ allowedUrls: []
82
+ }
83
+ }),
84
+ TranslateModule.forRoot()], providers: [
85
+ { provide: Logger, useClass: LoggerConsoleService },
86
+ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
87
+ { provide: HTTP_INTERCEPTORS, useClass: OfflineInterceptor, multi: true },
88
+ { provide: CORE_CONFIG, useClass: CoreConfig, deps: [CUSTOM_CONFIG] },
89
+ {
90
+ provide: APP_INITIALIZER,
91
+ useFactory: init_moduleFnc,
92
+ multi: true,
93
+ deps: [CORE_CONFIG, DeviceService, Logger, HttpClient, ConfigService, AuthService]
94
+ },
95
+ /**
96
+ * overriding translate modules defaults
97
+ * this works because providers are singletons
98
+ */
99
+ {
100
+ provide: TranslateLoader,
101
+ useClass: EoxTranslateJsonLoader,
102
+ deps: [HttpClient, CORE_CONFIG]
103
+ },
104
+ {
105
+ provide: MissingTranslationHandler,
106
+ useClass: EoxMissingTranslationHandler
107
+ },
108
+ { provide: OAuthStorage, useFactory: storageFactory },
109
+ provideHttpClient(withInterceptorsFromDi())
110
+ ]
111
+ }]
112
+ }], ctorParameters: () => [{ type: YuvClientCoreModule, decorators: [{
113
+ type: Optional
114
+ }, {
115
+ type: SkipSelf
116
+ }] }] });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9jbGllbnQtY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUs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QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUM7eUJBQ3JGO3dCQUNEOzs7MkJBR0c7d0JBQ0g7NEJBQ0ksT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFFBQVEsRUFBRSxzQkFBc0I7NEJBQ2hDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7eUJBQ2xDO3dCQUNEOzRCQUNJLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFFBQVEsRUFBRSw0QkFBNEI7eUJBQ3pDO3dCQUNELEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFO3dCQUNyRCxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3FCQUM5QztpQkFBRTs7MEJBS1EsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50LCBwcm92aWRlSHR0cENsaWVudCwgd2l0aEludGVyY2VwdG9yc0Zyb21EaSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciwgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9BdXRoTW9kdWxlLCBPQXV0aFN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IFl1dkNsaWVudENvcmVTaGFyZWRNb2R1bGUgfSBmcm9tICcuL2NsaWVudC1jb3JlLnNoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnLi9zZXJ2aWNlL2F1dGgvYXV0aC5pbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlQ29uZmlnIH0gZnJvbSAnLi9zZXJ2aWNlL2NvbmZpZy9jb3JlLWNvbmZpZyc7XG5pbXBvcnQgeyBDT1JFX0NPTkZJRywgQ1VTVE9NX0NPTkZJRyB9IGZyb20gJy4vc2VydmljZS9jb25maWcvY29yZS1jb25maWcudG9rZW5zJztcbmltcG9ydCB7IE9mZmxpbmVJbnRlcmNlcHRvciB9IGZyb20gJy4vc2VydmljZS9jb25uZWN0aW9uL29mZmxpbmUuaW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgaW5pdF9tb2R1bGVGbmMgfSBmcm9tICcuL3NlcnZpY2UvY29yZS1pbml0L2NvcmUtaW5pdC5zZXJ2aWNlJztcbmltcG9ydCB7IEVveE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIgfSBmcm9tICcuL3NlcnZpY2UvY29yZS1pbml0L21pc3NpbmctdHJhbnNsYXRpb24taGFuZGxlcic7XG5pbXBvcnQgeyBFb3hUcmFuc2xhdGVKc29uTG9hZGVyIH0gZnJvbSAnLi9zZXJ2aWNlL2NvcmUtaW5pdC90cmFuc2xhdGUtanNvbi1sb2FkZXInO1xuaW1wb3J0IHsgRGV2aWNlU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9kZXZpY2UvZGV2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlL2xvZ2dlci9sb2dnZXInO1xuaW1wb3J0IHsgTG9nZ2VyQ29uc29sZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvbG9nZ2VyL2xvZ2dlci1jb25zb2xlLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RvcmFnZUZhY3RvcnkoKTogT0F1dGhTdG9yYWdlIHtcbiAgcmV0dXJuIGxvY2FsU3RvcmFnZTtcbn1cblxuLyoqXG4gKiBgWXV2Q2xpZW50Q29yZU1vZHVsZWAgcHJvdmlkZXMgYSBidW5jaCBvZiBzZXJ2aWNlcyB0byBpbnRlcmFjdCB3aXRoIGEgeXV1dmlzIGJhY2tlbmQuXG4gKlxuICpcbiAqL1xuXG5ATmdNb2R1bGUoeyBcbiAgICBleHBvcnRzOiBbWXV2Q2xpZW50Q29yZVNoYXJlZE1vZHVsZV0sIFxuICAgIGltcG9ydHM6IFtPQXV0aE1vZHVsZS5mb3JSb290KHtcbiAgICAgICAgICAgIHJlc291cmNlU2VydmVyOiB7XG4gICAgICAgICAgICAgICAgc2VuZEFjY2Vzc1Rva2VuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhbGxvd2VkVXJsczogW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZS5mb3JSb290KCldLCBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBMb2dnZXIsIHVzZUNsYXNzOiBMb2dnZXJDb25zb2xlU2VydmljZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogQXV0aEludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogT2ZmbGluZUludGVyY2VwdG9yLCBtdWx0aTogdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IENPUkVfQ09ORklHLCB1c2VDbGFzczogQ29yZUNvbmZpZywgZGVwczogW0NVU1RPTV9DT05GSUddIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGluaXRfbW9kdWxlRm5jLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICBkZXBzOiBbQ09SRV9DT05GSUcsIERldmljZVNlcnZpY2UsIExvZ2dlciwgSHR0cENsaWVudCwgQ29uZmlnU2VydmljZSwgQXV0aFNlcnZpY2VdXG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVycmlkaW5nIHRyYW5zbGF0ZSBtb2R1bGVzIGRlZmF1bHRzXG4gICAgICAgICAqIHRoaXMgd29ya3MgYmVjYXVzZSBwcm92aWRlcnMgYXJlIHNpbmdsZXRvbnNcbiAgICAgICAgICovXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBFb3hUcmFuc2xhdGVKc29uTG9hZGVyLFxuICAgICAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIENPUkVfQ09ORklHXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IEVveE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXJcbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPQXV0aFN0b3JhZ2UsIHVzZUZhY3Rvcnk6IHN0b3JhZ2VGYWN0b3J5IH0sXG4gICAgICAgIHByb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSlcbiAgICBdIH0pXG5leHBvcnQgY2xhc3MgWXV2Q2xpZW50Q29yZU1vZHVsZSB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU6IFl1dkNsaWVudENvcmVNb2R1bGUpIHtcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1l1dkNsaWVudENvcmVNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * `YuvClientCoreSharedModule` sets up and re-exports the TranslateModule.
6
+ */
7
+ export class YuvClientCoreSharedModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, exports: [TranslateModule] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, imports: [TranslateModule] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ exports: [TranslateModule]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWNvcmUuc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvY2xpZW50LWNvcmUuc2hhcmVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixZQUYxQixlQUFlO2dIQUVkLHlCQUF5QixZQUYxQixlQUFlOzs0RkFFZCx5QkFBeUI7a0JBSHJDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLyoqXG4gKiBgWXV2Q2xpZW50Q29yZVNoYXJlZE1vZHVsZWAgc2V0cyB1cCBhbmQgcmUtZXhwb3J0cyB0aGUgVHJhbnNsYXRlTW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBZdXZDbGllbnRDb3JlU2hhcmVkTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { LocaleNumberPipe } from './locale-number.pipe';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * This pipe transforms its input (supposed to be a file size in bytes) into a more
6
+ * human readable format like for example 1MB or 200KB.
7
+ *
8
+ * @example
9
+ * <div *ngFor="let size of file | fileSize">...</div>
10
+ */
11
+ export class FileSizePipe extends LocaleNumberPipe {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.k = 1024;
15
+ this.sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
16
+ }
17
+ transform(bytes = 0) {
18
+ if (bytes <= 1) {
19
+ return bytes === 1 ? '1 Byte' : '0 Bytes';
20
+ }
21
+ let i = Math.floor(Math.log(bytes) / Math.log(this.k));
22
+ return super.transform(parseFloat((bytes / Math.pow(this.k, i)).toFixed(2))) + ' ' + this.sizes[i];
23
+ }
24
+ stringToNumber(value) {
25
+ const sizes = this.sizes.map((s) => s.toLowerCase());
26
+ const match = value.toLowerCase().match(new RegExp(`(.*)(${sizes.join('|')})`));
27
+ const number = super.stringToNumber((match ? match[1] : value).trim());
28
+ return isNaN(number) ? number : Math.round(number * Math.pow(1024, match ? sizes.indexOf(match[2]) : 0));
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileSizePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
31
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FileSizePipe, isStandalone: true, name: "fileSize" }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileSizePipe, decorators: [{
34
+ type: Pipe,
35
+ args: [{ name: 'fileSize', standalone: true }]
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXNpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvY29tbW9uL3BpcGVzL2ZpbGVzaXplLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXhEOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBRGxEOztRQUVVLE1BQUMsR0FBRyxJQUFJLENBQUM7UUFDVCxVQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBZ0J6RDtJQWRVLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUMxQixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksQ0FBQyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRVEsY0FBYyxDQUFDLEtBQWE7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQzsrR0FqQlUsWUFBWTs2R0FBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRyxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxlTnVtYmVyUGlwZSB9IGZyb20gJy4vbG9jYWxlLW51bWJlci5waXBlJztcblxuLyoqXG4gKiBUaGlzIHBpcGUgdHJhbnNmb3JtcyBpdHMgaW5wdXQgKHN1cHBvc2VkIHRvIGJlIGEgZmlsZSBzaXplIGluIGJ5dGVzKSBpbnRvIGEgbW9yZVxuICogaHVtYW4gcmVhZGFibGUgZm9ybWF0IGxpa2UgZm9yIGV4YW1wbGUgMU1CIG9yIDIwMEtCLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8ZGl2ICpuZ0Zvcj1cImxldCBzaXplIG9mIGZpbGUgfCBmaWxlU2l6ZVwiPi4uLjwvZGl2PlxuICovXG5AUGlwZSh7IG5hbWU6ICdmaWxlU2l6ZScsICBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRmlsZVNpemVQaXBlIGV4dGVuZHMgTG9jYWxlTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGsgPSAxMDI0O1xuICBwcml2YXRlIHNpemVzID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQiddO1xuXG4gIG92ZXJyaWRlIHRyYW5zZm9ybShieXRlcyA9IDApOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA8PSAxKSB7XG4gICAgICByZXR1cm4gYnl0ZXMgPT09IDEgPyAnMSBCeXRlJyA6ICcwIEJ5dGVzJztcbiAgICB9XG4gICAgbGV0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2codGhpcy5rKSk7XG4gICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybShwYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KHRoaXMuaywgaSkpLnRvRml4ZWQoMikpKSArICcgJyArIHRoaXMuc2l6ZXNbaV07XG4gIH1cblxuICBvdmVycmlkZSBzdHJpbmdUb051bWJlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2l6ZXMgPSB0aGlzLnNpemVzLm1hcCgocykgPT4gcy50b0xvd2VyQ2FzZSgpKTtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLnRvTG93ZXJDYXNlKCkubWF0Y2gobmV3IFJlZ0V4cChgKC4qKSgke3NpemVzLmpvaW4oJ3wnKX0pYCkpO1xuICAgIGNvbnN0IG51bWJlciA9IHN1cGVyLnN0cmluZ1RvTnVtYmVyKChtYXRjaCA/IG1hdGNoWzFdIDogdmFsdWUpLnRyaW0oKSk7XG4gICAgcmV0dXJuIGlzTmFOKG51bWJlcikgPyBudW1iZXIgOiBNYXRoLnJvdW5kKG51bWJlciAqIE1hdGgucG93KDEwMjQsIG1hdGNoID8gc2l6ZXMuaW5kZXhPZihtYXRjaFsyXSkgOiAwKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './filesize.pipe';
2
+ export * from './locale-date.pipe';
3
+ export * from './locale-number.pipe';
4
+ export * from './safe-html.pipe';
5
+ export * from './keys.pipe';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL2NvbW1vbi9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWxlc2l6ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxlLWRhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsZS1udW1iZXIucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NhZmUtaHRtbC5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4va2V5cy5waXBlJztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @ignore
5
+ */
6
+ export class KeysPipe {
7
+ transform(value) {
8
+ return Object.keys(value);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KeysPipe, isStandalone: true, name: "keys", pure: false }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeysPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{ name: 'keys', pure: false, standalone: true }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9jb21tb24vcGlwZXMva2V5cy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUNwRDs7R0FFRztBQUVILE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVMsQ0FBQyxLQUFVO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQUhVLFFBQVE7NkdBQVIsUUFBUTs7NEZBQVIsUUFBUTtrQkFEcEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2tleXMnLCBwdXJlOiBmYWxzZSwgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEtleXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ const predefinedFormats = {
6
+ short: {
7
+ timeStyle: 'short',
8
+ dateStyle: 'short'
9
+ },
10
+ medium: {
11
+ timeStyle: 'medium',
12
+ dateStyle: 'medium'
13
+ },
14
+ shortDate: {
15
+ dateStyle: 'short'
16
+ }
17
+ };
18
+ export class LocaleDatePipe {
19
+ constructor(translate) {
20
+ this.translate = translate;
21
+ }
22
+ transform(value, format = 'short') {
23
+ if (!value)
24
+ return '';
25
+ else {
26
+ try {
27
+ return new Intl.DateTimeFormat(this.translate.currentLang, predefinedFormats[format]).format(!(value instanceof Date) ? new Date(value) : value);
28
+ }
29
+ catch (e) {
30
+ console.error(e);
31
+ return '';
32
+ }
33
+ }
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleDatePipe, isStandalone: true, name: "localeDate" }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDatePipe, decorators: [{
39
+ type: Pipe,
40
+ args: [{
41
+ name: 'localeDate',
42
+ standalone: true
43
+ }]
44
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvY29tbW9uL3BpcGVzL2xvY2FsZS1kYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUl2RCxNQUFNLGlCQUFpQixHQUFnRDtJQUNyRSxLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsT0FBTztRQUNsQixTQUFTLEVBQUUsT0FBTztLQUNuQjtJQUNELE1BQU0sRUFBRTtRQUNOLFNBQVMsRUFBRSxRQUFRO1FBQ25CLFNBQVMsRUFBRSxRQUFRO0tBQ3BCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLE9BQU87S0FDbkI7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBbUIsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRWxELFNBQVMsQ0FBQyxLQUF5QyxFQUFFLFNBQWtCLE9BQU87UUFDNUUsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQzthQUNqQixDQUFDO1lBQ0osSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBK0IsQ0FBQyxDQUFDLE1BQU0sQ0FDeEgsQ0FBQyxDQUFDLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDbkQsQ0FBQztZQUNKLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQWZVLGNBQWM7NkdBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG50eXBlIEZvcm1hdHMgPSAnc2hvcnQnIHwgJ21lZGl1bScgfCAnc2hvcnREYXRlJztcblxuY29uc3QgcHJlZGVmaW5lZEZvcm1hdHM6IFJlY29yZDxGb3JtYXRzLCBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucz4gPSB7XG4gIHNob3J0OiB7XG4gICAgdGltZVN0eWxlOiAnc2hvcnQnLFxuICAgIGRhdGVTdHlsZTogJ3Nob3J0J1xuICB9LFxuICBtZWRpdW06IHtcbiAgICB0aW1lU3R5bGU6ICdtZWRpdW0nLFxuICAgIGRhdGVTdHlsZTogJ21lZGl1bSdcbiAgfSxcbiAgc2hvcnREYXRlOiB7XG4gICAgZGF0ZVN0eWxlOiAnc2hvcnQnXG4gIH1cbn07XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2xvY2FsZURhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsZURhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHwgdW5kZWZpbmVkLCBmb3JtYXQ6IEZvcm1hdHMgPSAnc2hvcnQnKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nLCBwcmVkZWZpbmVkRm9ybWF0c1tmb3JtYXRdIGFzIEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zKS5mb3JtYXQoXG4gICAgICAgICAgISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpID8gbmV3IERhdGUodmFsdWUpIDogdmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,115 @@
1
+ import { CurrencyPipe, DecimalPipe, PercentPipe } from '@angular/common';
2
+ import { Pipe } from '@angular/core';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngx-translate/core";
6
+ /**
7
+ * @ignore
8
+ */
9
+ export class LocaleDecimalPipe extends DecimalPipe {
10
+ constructor(translate) {
11
+ super(translate.currentLang || 'en');
12
+ this.translate = translate;
13
+ }
14
+ transform(value, digits, locale) {
15
+ return super.transform(value, digits, locale || this.translate.currentLang || 'en');
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDecimalPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
18
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleDecimalPipe, isStandalone: true, name: "localeDecimal" }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDecimalPipe, decorators: [{
21
+ type: Pipe,
22
+ args: [{
23
+ name: 'localeDecimal',
24
+ standalone: true
25
+ }]
26
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
27
+ /**
28
+ * @ignore
29
+ */
30
+ export class LocalePercentPipe extends PercentPipe {
31
+ constructor(translate) {
32
+ super(translate.currentLang || 'en');
33
+ this.translate = translate;
34
+ }
35
+ transform(value, digits, locale) {
36
+ return super.transform(value, digits, locale || this.translate.currentLang || 'en');
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalePercentPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
39
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocalePercentPipe, isStandalone: true, name: "localePercent", pure: false }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalePercentPipe, decorators: [{
42
+ type: Pipe,
43
+ args: [{
44
+ name: 'localePercent',
45
+ pure: false,
46
+ standalone: true
47
+ }]
48
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
49
+ /**
50
+ * @ignore
51
+ */
52
+ export class LocaleCurrencyPipe extends CurrencyPipe {
53
+ constructor(translate) {
54
+ super(translate.currentLang || 'en');
55
+ this.translate = translate;
56
+ }
57
+ transform(value, currencyCode, display, digits, locale) {
58
+ return super.transform(value, currencyCode, display, digits, locale || this.translate.currentLang || 'en');
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleCurrencyPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
61
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleCurrencyPipe, isStandalone: true, name: "localeCurrency" }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleCurrencyPipe, decorators: [{
64
+ type: Pipe,
65
+ args: [{
66
+ name: 'localeCurrency',
67
+ standalone: true
68
+ }]
69
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
70
+ export class LocaleNumberPipe {
71
+ constructor(translate) {
72
+ this.translate = translate;
73
+ this.decimalSeparator = '.';
74
+ this.separator = ',';
75
+ this.decimalPipe = new LocaleDecimalPipe(this.translate);
76
+ this.updateSeparators(this.translate.currentLang);
77
+ }
78
+ transform(value, grouping, pattern, scale, digits, locale) {
79
+ value = Array.isArray(value) ? value[0] : value;
80
+ let number = this.decimalPipe.transform(value, digits, locale);
81
+ if (number && !grouping) {
82
+ number = number.replace(new RegExp('\\' + this.separator, 'g'), '');
83
+ }
84
+ return number ? (pattern || '{{number}}').replace('{{number}}', number) : number;
85
+ }
86
+ updateSeparators(lang) {
87
+ if (lang) {
88
+ const pattern = this.decimalPipe.transform(1111.11, '1.2-2', lang);
89
+ this.decimalSeparator = pattern[5];
90
+ this.separator = pattern[1];
91
+ }
92
+ }
93
+ stringToNumber(value) {
94
+ value = (value || '').replace(new RegExp('\\' + this.separator + "|\\s|'| ", 'g'), '').replace(this.decimalSeparator, '.');
95
+ if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {
96
+ return Number(value);
97
+ }
98
+ return NaN;
99
+ }
100
+ numberToString(value, grouping, pattern, scale) {
101
+ value = Array.isArray(value) ? value[0] : value;
102
+ scale = typeof scale === 'number' ? scale : 2;
103
+ return this.transform(value, grouping, pattern, scale, `1.${scale}-${scale}`);
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleNumberPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
106
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleNumberPipe, isStandalone: true, name: "localeNumber" }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleNumberPipe, decorators: [{
109
+ type: Pipe,
110
+ args: [{
111
+ name: 'localeNumber',
112
+ standalone: true
113
+ }]
114
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9jb21tb24vcGlwZXMvbG9jYWxlLW51bWJlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFdkQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUNoRCxZQUFtQixTQUEyQjtRQUM1QyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQztRQURwQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUU5QyxDQUFDO0lBRWUsU0FBUyxDQUFDLEtBQVUsRUFBRSxNQUFlLEVBQUUsTUFBZTtRQUNwRSxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUM7SUFDdEYsQ0FBQzsrR0FQVSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQVdEOztHQUVHO0FBTUgsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFDaEQsWUFBbUIsU0FBMkI7UUFDNUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUM7UUFEcEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFF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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGUsIFBlcmNlbnRQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ2xvY2FsZURlY2ltYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsZURlY2ltYWxQaXBlIGV4dGVuZHMgRGVjaW1hbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHN1cGVyKHRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAnZW4nKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZGlnaXRzPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHwgYW55IHtcbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKHZhbHVlLCBkaWdpdHMsIGxvY2FsZSB8fCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAnZW4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnbG9jYWxlUGVyY2VudCcsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsZVBlcmNlbnRQaXBlIGV4dGVuZHMgUGVyY2VudFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHN1cGVyKHRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAnZW4nKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZGlnaXRzPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHwgYW55IHtcbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKHZhbHVlLCBkaWdpdHMsIGxvY2FsZSB8fCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAnZW4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnbG9jYWxlQ3VycmVuY3knLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsZUN1cnJlbmN5UGlwZSBleHRlbmRzIEN1cnJlbmN5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgc3VwZXIodHJhbnNsYXRlLmN1cnJlbnRMYW5nIHx8ICdlbicpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogYW55LFxuICAgIGN1cnJlbmN5Q29kZT86IHN0cmluZyxcbiAgICBkaXNwbGF5PzogJ2NvZGUnIHwgJ3N5bWJvbCcgfCAnc3ltYm9sLW5hcnJvdycgfCBib29sZWFuLFxuICAgIGRpZ2l0cz86IHN0cmluZyxcbiAgICBsb2NhbGU/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgbnVsbCB8IGFueSB7XG4gICAgcmV0dXJuIHN1cGVyLnRyYW5zZm9ybSh2YWx1ZSwgY3VycmVuY3lDb2RlLCBkaXNwbGF5LCBkaWdpdHMsIGxvY2FsZSB8fCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAnZW4nKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdsb2NhbGVOdW1iZXInLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsZU51bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgZGVjaW1hbFBpcGU7XG4gIGRlY2ltYWxTZXBhcmF0b3IgPSAnLic7XG4gIHNlcGFyYXRvciA9ICcsJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5kZWNpbWFsUGlwZSA9IG5ldyBMb2NhbGVEZWNpbWFsUGlwZSh0aGlzLnRyYW5zbGF0ZSk7XG4gICAgdGhpcy51cGRhdGVTZXBhcmF0b3JzKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IGFueSwgZ3JvdXBpbmc/OiBib29sZWFuLCBwYXR0ZXJuPzogc3RyaW5nLCBzY2FsZT86IG51bWJlciwgZGlnaXRzPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWVbMF0gOiB2YWx1ZTtcbiAgICBsZXQgbnVtYmVyID0gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUsIGRpZ2l0cywgbG9jYWxlKTtcbiAgICBpZiAobnVtYmVyICYmICFncm91cGluZykge1xuICAgICAgbnVtYmVyID0gbnVtYmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXCcgKyB0aGlzLnNlcGFyYXRvciwgJ2cnKSwgJycpO1xuICAgIH1cbiAgICByZXR1cm4gbnVtYmVyID8gKHBhdHRlcm4gfHwgJ3t7bnVtYmVyfX0nKS5yZXBsYWNlKCd7e251bWJlcn19JywgbnVtYmVyKSA6IG51bWJlcjtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VwYXJhdG9ycyhsYW5nOiBzdHJpbmcpIHtcbiAgICBpZiAobGFuZykge1xuICAgICAgY29uc3QgcGF0dGVybiA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKDExMTEuMTEsICcxLjItMicsIGxhbmcpO1xuICAgICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gcGF0dGVybls1XTtcbiAgICAgIHRoaXMuc2VwYXJhdG9yID0gcGF0dGVyblsxXTtcbiAgICB9XG4gIH1cblxuICBzdHJpbmdUb051bWJlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdmFsdWUgPSAodmFsdWUgfHwgJycpLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxcXCcgKyB0aGlzLnNlcGFyYXRvciArIFwifFxcXFxzfCd84oCvXCIsICdnJyksICcnKS5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGFyYXRvciwgJy4nKTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNOYU4oTnVtYmVyKHZhbHVlKSAtIHBhcnNlRmxvYXQodmFsdWUpKSkge1xuICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBOYU47XG4gIH1cblxuICBudW1iZXJUb1N0cmluZyh2YWx1ZTogbnVtYmVyLCBncm91cGluZz86IGJvb2xlYW4sIHBhdHRlcm4/OiBzdHJpbmcsIHNjYWxlPzogbnVtYmVyKSB7XG4gICAgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWU7XG4gICAgc2NhbGUgPSB0eXBlb2Ygc2NhbGUgPT09ICdudW1iZXInID8gc2NhbGUgOiAyO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybSh2YWx1ZSwgZ3JvdXBpbmcsIHBhdHRlcm4gYXMgc3RyaW5nLCBzY2FsZSwgYDEuJHtzY2FsZX0tJHtzY2FsZX1gKTtcbiAgfVxufVxuIl19