@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.
- package/README.md +111 -0
- package/esm2022/index.mjs +65 -0
- package/esm2022/lib/client-core.module.mjs +117 -0
- package/esm2022/lib/client-core.shared.module.mjs +18 -0
- package/esm2022/lib/common/pipes/filesize.pipe.mjs +37 -0
- package/esm2022/lib/common/pipes/index.mjs +6 -0
- package/esm2022/lib/common/pipes/keys.pipe.mjs +17 -0
- package/esm2022/lib/common/pipes/locale-date.pipe.mjs +45 -0
- package/esm2022/lib/common/pipes/locale-number.pipe.mjs +115 -0
- package/esm2022/lib/common/pipes/safe-html.pipe.mjs +44 -0
- package/esm2022/lib/common/services/native-notifications.interface.mjs +2 -0
- package/esm2022/lib/common/services/native-notifications.mjs +40 -0
- package/esm2022/lib/model/dms-object.interface.mjs +2 -0
- package/esm2022/lib/model/dms-object.model.mjs +79 -0
- package/esm2022/lib/model/object-flavor.interface.mjs +2 -0
- package/esm2022/lib/model/range-value.interface.mjs +2 -0
- package/esm2022/lib/model/yuv-error.model.mjs +37 -0
- package/esm2022/lib/model/yuv-user.model.mjs +38 -0
- package/esm2022/lib/service/audit/audit.interface.mjs +2 -0
- package/esm2022/lib/service/audit/audit.service.mjs +135 -0
- package/esm2022/lib/service/auth/auth.interceptor.mjs +50 -0
- package/esm2022/lib/service/auth/auth.interface.mjs +7 -0
- package/esm2022/lib/service/auth/auth.service.mjs +130 -0
- package/esm2022/lib/service/auth/oidc.service.mjs +81 -0
- package/esm2022/lib/service/backend/api.enum.mjs +11 -0
- package/esm2022/lib/service/backend/backend.interface.mjs +2 -0
- package/esm2022/lib/service/backend/backend.service.mjs +206 -0
- package/esm2022/lib/service/bpm/bpm.interface.mjs +8 -0
- package/esm2022/lib/service/bpm/bpm.service.mjs +51 -0
- package/esm2022/lib/service/cache/app-cache.service.mjs +51 -0
- package/esm2022/lib/service/catalog/catalog.interface.mjs +2 -0
- package/esm2022/lib/service/catalog/catalog.service.mjs +13 -0
- package/esm2022/lib/service/clipboard/clipboard.interface.mjs +2 -0
- package/esm2022/lib/service/clipboard/clipboard.service.mjs +90 -0
- package/esm2022/lib/service/config/config.interface.mjs +6 -0
- package/esm2022/lib/service/config/config.service.mjs +115 -0
- package/esm2022/lib/service/config/core-config.mjs +20 -0
- package/esm2022/lib/service/config/core-config.tokens.mjs +9 -0
- package/esm2022/lib/service/connection/connection.service.mjs +36 -0
- package/esm2022/lib/service/connection/offline.interceptor.mjs +28 -0
- package/esm2022/lib/service/core-init/core-init.service.mjs +29 -0
- package/esm2022/lib/service/core-init/missing-translation-handler.mjs +10 -0
- package/esm2022/lib/service/core-init/translate-json-loader.mjs +117 -0
- package/esm2022/lib/service/device/device.interface.mjs +6 -0
- package/esm2022/lib/service/device/device.service.mjs +144 -0
- package/esm2022/lib/service/dms/dms.service.interface.mjs +2 -0
- package/esm2022/lib/service/dms/dms.service.mjs +440 -0
- package/esm2022/lib/service/event/event.interface.mjs +2 -0
- package/esm2022/lib/service/event/event.service.mjs +38 -0
- package/esm2022/lib/service/event/events.mjs +14 -0
- package/esm2022/lib/service/idm/idm.interface.mjs +2 -0
- package/esm2022/lib/service/idm/idm.service.mjs +34 -0
- package/esm2022/lib/service/logger/logger-console.service.mjs +73 -0
- package/esm2022/lib/service/logger/logger.interface.mjs +2 -0
- package/esm2022/lib/service/logger/logger.mjs +27 -0
- package/esm2022/lib/service/notification/notification.service.mjs +131 -0
- package/esm2022/lib/service/object-config/object-config.interface.mjs +2 -0
- package/esm2022/lib/service/object-config/object-config.service.mjs +229 -0
- package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +5 -0
- package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +25 -0
- package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +123 -0
- package/esm2022/lib/service/prediction/prediction.interface.mjs +2 -0
- package/esm2022/lib/service/prediction/prediction.service.mjs +60 -0
- package/esm2022/lib/service/search/search.service.interface.mjs +39 -0
- package/esm2022/lib/service/search/search.service.mjs +178 -0
- package/esm2022/lib/service/session-storage/session-storage.service.mjs +50 -0
- package/esm2022/lib/service/system/object-form.interface.mjs +2 -0
- package/esm2022/lib/service/system/system.enum.mjs +179 -0
- package/esm2022/lib/service/system/system.interface.mjs +2 -0
- package/esm2022/lib/service/system/system.service.mjs +597 -0
- package/esm2022/lib/service/upload/upload.interface.mjs +2 -0
- package/esm2022/lib/service/upload/upload.service.mjs +228 -0
- package/esm2022/lib/service/user/user.service.mjs +211 -0
- package/esm2022/lib/util/utils.helper.enum.mjs +15 -0
- package/esm2022/lib/util/utils.mjs +373 -0
- package/esm2022/yuuvis-client-core.mjs +5 -0
- package/fesm2022/yuuvis-client-core.mjs +4775 -0
- package/fesm2022/yuuvis-client-core.mjs.map +1 -0
- package/index.d.ts +61 -0
- package/lib/client-core.module.d.ts +20 -0
- package/lib/client-core.shared.module.d.ts +10 -0
- package/lib/common/pipes/filesize.pipe.d.ts +18 -0
- package/lib/common/pipes/index.d.ts +5 -0
- package/lib/common/pipes/keys.pipe.d.ts +10 -0
- package/lib/common/pipes/locale-date.pipe.d.ts +12 -0
- package/lib/common/pipes/locale-number.pipe.d.ts +47 -0
- package/lib/common/pipes/safe-html.pipe.d.ts +28 -0
- package/lib/common/services/native-notifications.d.ts +8 -0
- package/lib/common/services/native-notifications.interface.d.ts +5 -0
- package/lib/model/dms-object.interface.d.ts +16 -0
- package/lib/model/dms-object.model.d.ts +26 -0
- package/lib/model/object-flavor.interface.d.ts +30 -0
- package/lib/model/range-value.interface.d.ts +9 -0
- package/lib/model/yuv-error.model.d.ts +18 -0
- package/lib/model/yuv-user.model.d.ts +44 -0
- package/lib/service/audit/audit.interface.d.ts +47 -0
- package/lib/service/audit/audit.service.d.ts +35 -0
- package/lib/service/auth/auth.interceptor.d.ts +12 -0
- package/lib/service/auth/auth.interface.d.ts +34 -0
- package/lib/service/auth/auth.service.d.ts +50 -0
- package/lib/service/auth/oidc.service.d.ts +16 -0
- package/lib/service/backend/api.enum.d.ts +7 -0
- package/lib/service/backend/backend.interface.d.ts +29 -0
- package/lib/service/backend/backend.service.d.ts +118 -0
- package/lib/service/bpm/bpm.interface.d.ts +86 -0
- package/lib/service/bpm/bpm.service.d.ts +19 -0
- package/lib/service/cache/app-cache.service.d.ts +18 -0
- package/lib/service/catalog/catalog.interface.d.ts +12 -0
- package/lib/service/catalog/catalog.service.d.ts +5 -0
- package/lib/service/clipboard/clipboard.interface.d.ts +11 -0
- package/lib/service/clipboard/clipboard.service.d.ts +23 -0
- package/lib/service/config/config.interface.d.ts +34 -0
- package/lib/service/config/config.service.d.ts +45 -0
- package/lib/service/config/core-config.d.ts +14 -0
- package/lib/service/config/core-config.tokens.d.ts +7 -0
- package/lib/service/connection/connection.service.d.ts +25 -0
- package/lib/service/connection/offline.interceptor.d.ts +15 -0
- package/lib/service/core-init/core-init.service.d.ts +11 -0
- package/lib/service/core-init/missing-translation-handler.d.ts +8 -0
- package/lib/service/core-init/translate-json-loader.d.ts +20 -0
- package/lib/service/device/device.interface.d.ts +15 -0
- package/lib/service/device/device.service.d.ts +54 -0
- package/lib/service/dms/dms.service.d.ts +153 -0
- package/lib/service/dms/dms.service.interface.d.ts +59 -0
- package/lib/service/event/event.interface.d.ts +13 -0
- package/lib/service/event/event.service.d.ts +23 -0
- package/lib/service/event/events.d.ts +12 -0
- package/lib/service/idm/idm.interface.d.ts +5 -0
- package/lib/service/idm/idm.service.d.ts +9 -0
- package/lib/service/logger/logger-console.service.d.ts +20 -0
- package/lib/service/logger/logger.d.ts +17 -0
- package/lib/service/logger/logger.interface.d.ts +10 -0
- package/lib/service/notification/notification.service.d.ts +71 -0
- package/lib/service/object-config/object-config.interface.d.ts +62 -0
- package/lib/service/object-config/object-config.service.d.ts +38 -0
- package/lib/service/pending-changes/pending-changes-component.interface.d.ts +6 -0
- package/lib/service/pending-changes/pending-changes-guard.service.d.ts +14 -0
- package/lib/service/pending-changes/pending-changes.service.d.ts +57 -0
- package/lib/service/prediction/prediction.interface.d.ts +18 -0
- package/lib/service/prediction/prediction.service.d.ts +15 -0
- package/lib/service/search/search.service.d.ts +46 -0
- package/lib/service/search/search.service.interface.d.ts +119 -0
- package/lib/service/session-storage/session-storage.service.d.ts +15 -0
- package/lib/service/system/object-form.interface.d.ts +46 -0
- package/lib/service/system/system.enum.d.ts +141 -0
- package/lib/service/system/system.interface.d.ts +146 -0
- package/lib/service/system/system.service.d.ts +168 -0
- package/lib/service/upload/upload.interface.d.ts +55 -0
- package/lib/service/upload/upload.service.d.ts +34 -0
- package/lib/service/user/user.service.d.ts +69 -0
- package/lib/util/utils.d.ts +118 -0
- package/lib/util/utils.helper.enum.d.ts +13 -0
- 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
|