@rxap/config 16.0.0-dev.0 → 16.0.0-dev.10
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/CHANGELOG.md +309 -0
- package/LICENSE +621 -21
- package/LICENSE.md +621 -0
- package/README.md +8 -63
- package/esm2022/index.mjs +1 -1
- package/esm2022/lib/config-loader.service.mjs +9 -9
- package/esm2022/lib/config.service.mjs +88 -76
- package/esm2022/lib/tokens.mjs +1 -1
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/rxap-config.mjs +1 -1
- package/fesm2022/rxap-config.mjs +90 -76
- package/fesm2022/rxap-config.mjs.map +1 -1
- package/lib/config.service.d.ts +17 -8
- package/package.json +46 -39
- package/theme.css +1 -0
- package/collection.json +0 -15
- package/migration.json +0 -4
- package/src/schematics/ng-add/index.d.ts +0 -3
- package/src/schematics/ng-add/index.js +0 -59
- package/src/schematics/ng-add/index.js.map +0 -1
- package/src/schematics/ng-add/schema.json +0 -15
- package/src/schematics/side-load/index.d.ts +0 -3
- package/src/schematics/side-load/index.js +0 -27
- package/src/schematics/side-load/index.js.map +0 -1
- package/src/schematics/side-load/schema.json +0 -29
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
@rxap/config
|
|
2
|
-
|
|
1
|
+
# @rxap/config
|
|
2
|
+
> Simple config file manager for angular applications.
|
|
3
3
|
|
|
4
4
|
[](https://www.npmjs.com/package/@rxap/config)
|
|
5
5
|
[](https://commitizen.github.io/cz-cli/)
|
|
@@ -8,70 +8,15 @@
|
|
|
8
8
|

|
|
9
9
|

|
|
10
10
|
|
|
11
|
-
> Simple config file manager for angular applications.
|
|
12
|
-
|
|
13
11
|
- [Installation](#installation)
|
|
14
|
-
- [Get started](#get-started)
|
|
15
|
-
- [Schematics](#schematics)
|
|
16
12
|
|
|
17
13
|
# Installation
|
|
18
14
|
|
|
15
|
+
**Add the package to your workspace:**
|
|
16
|
+
```bash
|
|
17
|
+
yarn add @rxap/config
|
|
19
18
|
```
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
*Setup the package @rxap/config for the workspace.*
|
|
24
|
-
|
|
25
|
-
# Get started
|
|
26
|
-
|
|
27
|
-
Update the angular application `main.ts` to support @rxap/config.
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
// (optional) Defines a list of configuration urls.
|
|
32
|
-
ConfigService.Urls = ['/config/config.json'];
|
|
33
|
-
|
|
34
|
-
// Ensures that the configuration is loaded before the angular application is started
|
|
35
|
-
Promise.all([ConfigService.Load()]).then(() =>
|
|
36
|
-
platformBrowserDynamic()
|
|
37
|
-
.bootstrapModule(AppModule)
|
|
38
|
-
.catch((err) => console.error(err))
|
|
39
|
-
);
|
|
40
|
-
|
|
19
|
+
**Install peer dependencies:**
|
|
20
|
+
```bash
|
|
21
|
+
yarn add @angular/common@^16.1.4 @angular/core@^16.1.4 @rxap/environment@^16.0.0-dev.8 @rxap/utilities@^16.0.0-dev.6 rxjs@^7.8.0
|
|
41
22
|
```
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
# Schematics
|
|
45
|
-
|
|
46
|
-
## ng-add
|
|
47
|
-
> Setup the package @rxap/config for the workspace.
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
ng g @rxap/config:ng-add
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Option | Type | Default | Description
|
|
54
|
-
--- | --- | --- | ---
|
|
55
|
-
project | string | | The project where the environment feature should be added
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
## side-load
|
|
59
|
-
> Add a side load config to the project main file.
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
ng g @rxap/config:side-load
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Option | Type | Default | Description
|
|
66
|
-
--- | --- | --- | ---
|
|
67
|
-
project | string | | The project name
|
|
68
|
-
url | string | | Url for the config that should be side loaded
|
|
69
|
-
propertyPath | string | | Property path where the config should be added
|
|
70
|
-
required | boolean | false |
|
|
71
|
-
|
|
72
|
-
| Required |
|
|
73
|
-
| --- |
|
|
74
|
-
| project |
|
|
75
|
-
| url |
|
|
76
|
-
| propertyPath |
|
|
77
|
-
|
package/esm2022/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './lib/config.service';
|
|
2
2
|
export * from './lib/tokens';
|
|
3
3
|
export * from './lib/config-loader.service';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2NvbmZpZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZy1sb2FkZXIuc2VydmljZSc7XG4iXX0=
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Injectable,
|
|
1
|
+
import { Inject, Injectable, } from '@angular/core';
|
|
2
|
+
import { firstValueFrom, } from 'rxjs';
|
|
2
3
|
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { finalize, share } from 'rxjs/operators';
|
|
4
|
+
import { finalize, share, } from 'rxjs/operators';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common/http";
|
|
6
|
-
class ConfigLoaderService {
|
|
7
|
+
export class ConfigLoaderService {
|
|
7
8
|
constructor(http) {
|
|
8
9
|
this.http = http;
|
|
9
10
|
this.configs = new Map();
|
|
@@ -18,17 +19,16 @@ class ConfigLoaderService {
|
|
|
18
19
|
}
|
|
19
20
|
const loading$ = this.http.get(url).pipe(finalize(() => this.configLoading.delete(url)), share());
|
|
20
21
|
this.configLoading.set(url, loading$);
|
|
21
|
-
return loading
|
|
22
|
+
return firstValueFrom(loading$);
|
|
22
23
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ConfigLoaderService, deps: [{ token: HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ConfigLoaderService, providedIn: 'root' }); }
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ConfigLoaderService, decorators: [{
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ConfigLoaderService, decorators: [{
|
|
28
28
|
type: Injectable,
|
|
29
29
|
args: [{ providedIn: 'root' }]
|
|
30
30
|
}], ctorParameters: function () { return [{ type: i1.HttpClient, decorators: [{
|
|
31
31
|
type: Inject,
|
|
32
32
|
args: [HttpClient]
|
|
33
33
|
}] }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWxvYWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9jb25maWcvc3JjL2xpYi9jb25maWctbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLEtBQUssR0FDTixNQUFNLGdCQUFnQixDQUFDOzs7QUFHeEIsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUVrQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBTmxCLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBRWpDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7SUFNbkUsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQVUsR0FBVztRQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDakQ7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3pDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUM5QyxLQUFLLEVBQUUsQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBNUJVLG1CQUFtQixrQkFNcEIsVUFBVTtrSEFOVCxtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTzdCLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmaXJzdFZhbHVlRnJvbSxcbiAgT2JzZXJ2YWJsZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgZmluYWxpemUsXG4gIHNoYXJlLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29uZmlnTG9hZGVyU2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBjb25maWdzID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnTG9hZGluZyA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPGFueT4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChIdHRwQ2xpZW50KVxuICAgIHB1YmxpYyByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkJDxUID0gYW55Pih1cmw6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIGlmICh0aGlzLmNvbmZpZ3MuaGFzKHVybCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3MuZ2V0KHVybCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnTG9hZGluZy5oYXModXJsKSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnTG9hZGluZy5nZXQodXJsKSEudG9Qcm9taXNlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbG9hZGluZyQgPSB0aGlzLmh0dHAuZ2V0PFQ+KHVybCkucGlwZShcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuY29uZmlnTG9hZGluZy5kZWxldGUodXJsKSksXG4gICAgICBzaGFyZSgpLFxuICAgICk7XG5cbiAgICB0aGlzLmNvbmZpZ0xvYWRpbmcuc2V0KHVybCwgbG9hZGluZyQpO1xuXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKGxvYWRpbmckKTtcbiAgfVxufVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injectable, Optional,
|
|
2
|
-
import { deepMerge, SetObjectValue } from '@rxap/utilities';
|
|
1
|
+
import { Inject, Injectable, Optional, } from '@angular/core';
|
|
2
|
+
import { coerceArray, deepMerge, SetObjectValue, } from '@rxap/utilities';
|
|
3
3
|
import { RXAP_CONFIG } from './tokens';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
class ConfigService {
|
|
5
|
+
export class ConfigService {
|
|
6
6
|
static { this.Config = null; }
|
|
7
7
|
/**
|
|
8
8
|
* Static default values for the config object.
|
|
@@ -16,7 +16,60 @@ class ConfigService {
|
|
|
16
16
|
*/
|
|
17
17
|
static { this.Overwrites = {}; }
|
|
18
18
|
static { this.LocalStorageKey = 'rxap/config/local-config'; }
|
|
19
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated instead use the url property of the ConfigLoadOptions
|
|
21
|
+
*/
|
|
22
|
+
static { this.Urls = []; }
|
|
23
|
+
constructor(config = null) {
|
|
24
|
+
this.config = ConfigService.Config;
|
|
25
|
+
if (config) {
|
|
26
|
+
this.config = deepMerge(this.config ?? {}, config);
|
|
27
|
+
}
|
|
28
|
+
if (!this.config) {
|
|
29
|
+
throw new Error('config not available');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Used to load the app config from a remote resource.
|
|
34
|
+
*
|
|
35
|
+
* Promise.all([ ConfigService.Load() ])
|
|
36
|
+
* .then(() => platformBrowserDynamic().bootstrapModule(AppModule))
|
|
37
|
+
* .catch(err => console.error(err))
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
static async Load(options, environment) {
|
|
41
|
+
let config = deepMerge(this.Defaults, options?.static ?? {});
|
|
42
|
+
const urls = (options?.url ? coerceArray(options.url) : ConfigService.Urls).map(url => {
|
|
43
|
+
if (typeof url === 'function') {
|
|
44
|
+
if (!environment) {
|
|
45
|
+
throw new Error('environment is required when url is a function');
|
|
46
|
+
}
|
|
47
|
+
return coerceArray(url(environment));
|
|
48
|
+
}
|
|
49
|
+
return coerceArray(url);
|
|
50
|
+
}).flat();
|
|
51
|
+
for (const url of urls) {
|
|
52
|
+
config = deepMerge(config, await this.loadConfig(url, true, options?.schema));
|
|
53
|
+
}
|
|
54
|
+
config = deepMerge(config, this.Overwrites);
|
|
55
|
+
if (options?.fromLocalStorage !== false) {
|
|
56
|
+
const localConfig = localStorage.getItem(ConfigService.LocalStorageKey);
|
|
57
|
+
if (localConfig) {
|
|
58
|
+
try {
|
|
59
|
+
config = deepMerge(config, JSON.parse(localConfig));
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.error('local config could not be parsed');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (options?.fromUrlParam) {
|
|
67
|
+
const param = typeof options.fromUrlParam === 'string' ? options.fromUrlParam : 'config';
|
|
68
|
+
config = deepMerge(config, this.LoadConfigDefaultFromUrlParam(param));
|
|
69
|
+
}
|
|
70
|
+
console.debug('app config', config);
|
|
71
|
+
this.Config = config;
|
|
72
|
+
}
|
|
20
73
|
static async loadConfig(url, required, schema) {
|
|
21
74
|
let config;
|
|
22
75
|
let response;
|
|
@@ -66,64 +119,6 @@ class ConfigService {
|
|
|
66
119
|
}
|
|
67
120
|
return config;
|
|
68
121
|
}
|
|
69
|
-
static showError(message) {
|
|
70
|
-
const hasUl = document.getElementById('rxap-config-error') !== null;
|
|
71
|
-
const ul = document.getElementById('rxap-config-error') ?? document.createElement('ul');
|
|
72
|
-
ul.id = 'rxap-config-error';
|
|
73
|
-
ul.style.position = 'fixed';
|
|
74
|
-
ul.style.bottom = '16px';
|
|
75
|
-
ul.style.right = '16px';
|
|
76
|
-
ul.style.backgroundColor = 'white';
|
|
77
|
-
ul.style.padding = '32px';
|
|
78
|
-
ul.style.zIndex = '99999999';
|
|
79
|
-
ul.style.color = 'black';
|
|
80
|
-
const li = document.createElement('li');
|
|
81
|
-
li.innerText = message;
|
|
82
|
-
ul.appendChild(li);
|
|
83
|
-
if (!hasUl) {
|
|
84
|
-
document.body.appendChild(ul);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
static async SideLoad(url, propertyPath, required, schema) {
|
|
88
|
-
if (!this.Config) {
|
|
89
|
-
throw new Error('Config side load is only possible after the initial config load.');
|
|
90
|
-
}
|
|
91
|
-
const config = await this.loadConfig(url, required, schema);
|
|
92
|
-
SetObjectValue(this.Config, propertyPath, config);
|
|
93
|
-
console.debug(`Side loaded config for '${propertyPath}' successful`, this.Config);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Used to load the app config from a remote resource.
|
|
97
|
-
*
|
|
98
|
-
* Promise.all([ ConfigService.Load() ])
|
|
99
|
-
* .then(() => platformBrowserDynamic().bootstrapModule(AppModule))
|
|
100
|
-
* .catch(err => console.error(err))
|
|
101
|
-
*
|
|
102
|
-
*/
|
|
103
|
-
static async Load(options) {
|
|
104
|
-
let config = this.Defaults;
|
|
105
|
-
for (const url of ConfigService.Urls) {
|
|
106
|
-
config = await this.loadConfig(url, true, options?.schema);
|
|
107
|
-
}
|
|
108
|
-
config = deepMerge(config, this.Overwrites);
|
|
109
|
-
if (options?.fromLocalStorage !== false) {
|
|
110
|
-
const localConfig = localStorage.getItem(ConfigService.LocalStorageKey);
|
|
111
|
-
if (localConfig) {
|
|
112
|
-
try {
|
|
113
|
-
config = deepMerge(config, JSON.parse(localConfig));
|
|
114
|
-
}
|
|
115
|
-
catch (e) {
|
|
116
|
-
console.error('local config could not be parsed');
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (options?.fromUrlParam) {
|
|
121
|
-
const param = typeof options.fromUrlParam === 'string' ? options.fromUrlParam : 'config';
|
|
122
|
-
config = deepMerge(config, this.LoadConfigDefaultFromUrlParam(param));
|
|
123
|
-
}
|
|
124
|
-
console.debug('app config', config);
|
|
125
|
-
this.Config = config;
|
|
126
|
-
}
|
|
127
122
|
static LoadConfigDefaultFromUrlParam(param = 'config') {
|
|
128
123
|
const queryString = window.location.search;
|
|
129
124
|
const urlParams = new URLSearchParams(queryString);
|
|
@@ -143,6 +138,14 @@ class ConfigService {
|
|
|
143
138
|
}
|
|
144
139
|
return configFromParams;
|
|
145
140
|
}
|
|
141
|
+
static async SideLoad(url, propertyPath, required, schema) {
|
|
142
|
+
if (!this.Config) {
|
|
143
|
+
throw new Error('Config side load is only possible after the initial config load.');
|
|
144
|
+
}
|
|
145
|
+
const config = await this.loadConfig(url, required, schema);
|
|
146
|
+
SetObjectValue(this.Config, propertyPath, config);
|
|
147
|
+
console.debug(`Side loaded config for '${propertyPath}' successful`, this.Config);
|
|
148
|
+
}
|
|
146
149
|
static Get(path, defaultValue, config = this.Config) {
|
|
147
150
|
if (!config) {
|
|
148
151
|
throw new Error('config not loaded');
|
|
@@ -152,7 +155,8 @@ class ConfigService {
|
|
|
152
155
|
throw new Error('The config property path is not a string');
|
|
153
156
|
}
|
|
154
157
|
for (const fragment of path.split('.')) {
|
|
155
|
-
|
|
158
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
159
|
+
if (configValue.hasOwnProperty(fragment)) {
|
|
156
160
|
configValue = configValue[fragment];
|
|
157
161
|
}
|
|
158
162
|
else {
|
|
@@ -165,13 +169,22 @@ class ConfigService {
|
|
|
165
169
|
}
|
|
166
170
|
return configValue;
|
|
167
171
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
172
|
+
static showError(message) {
|
|
173
|
+
const hasUl = document.getElementById('rxap-config-error') !== null;
|
|
174
|
+
const ul = document.getElementById('rxap-config-error') ?? document.createElement('ul');
|
|
175
|
+
ul.id = 'rxap-config-error';
|
|
176
|
+
ul.style.position = 'fixed';
|
|
177
|
+
ul.style.bottom = '16px';
|
|
178
|
+
ul.style.right = '16px';
|
|
179
|
+
ul.style.backgroundColor = 'white';
|
|
180
|
+
ul.style.padding = '32px';
|
|
181
|
+
ul.style.zIndex = '99999999';
|
|
182
|
+
ul.style.color = 'black';
|
|
183
|
+
const li = document.createElement('li');
|
|
184
|
+
li.innerText = message;
|
|
185
|
+
ul.appendChild(li);
|
|
186
|
+
if (!hasUl) {
|
|
187
|
+
document.body.appendChild(ul);
|
|
175
188
|
}
|
|
176
189
|
}
|
|
177
190
|
setLocalConfig(config) {
|
|
@@ -190,14 +203,13 @@ class ConfigService {
|
|
|
190
203
|
}
|
|
191
204
|
return value;
|
|
192
205
|
}
|
|
193
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
194
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ConfigService, deps: [{ token: RXAP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
207
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ConfigService, providedIn: 'root' }); }
|
|
195
208
|
}
|
|
196
|
-
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: ConfigService, decorators: [{
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: ConfigService, decorators: [{
|
|
198
210
|
type: Injectable,
|
|
199
211
|
args: [{
|
|
200
|
-
providedIn: 'root'
|
|
212
|
+
providedIn: 'root',
|
|
201
213
|
}]
|
|
202
214
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
203
215
|
type: Optional
|
|
@@ -205,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImpor
|
|
|
205
217
|
type: Inject,
|
|
206
218
|
args: [RXAP_CONFIG]
|
|
207
219
|
}] }]; } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbmZpZy9zcmMvbGliL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsU0FBUyxFQUNULGNBQWMsRUFDZixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBVXZDLE1BR2EsYUFBYTthQUVWLFdBQU0sR0FBUSxJQUFJLEFBQVosQ0FBYTtJQUVqQzs7OztPQUlHO2FBQ1csYUFBUSxHQUFRLEVBQUUsQUFBVixDQUFXO0lBRWpDOzs7T0FHRzthQUNXLGVBQVUsR0FBUSxFQUFFLEFBQVYsQ0FBVzthQUVyQixvQkFBZSxHQUFHLDBCQUEwQixBQUE3QixDQUE4QjthQUU3QyxTQUFJLEdBQUcsQ0FBRSxhQUFhLENBQUUsQUFBcEIsQ0FBcUI7SUFFL0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQVUsR0FBVyxFQUFFLFFBQWtCLEVBQUUsTUFBa0I7UUFFMUYsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFBSSxRQUFhLENBQUM7UUFFbEIsSUFBSTtZQUNGLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUM1QjtRQUFDLE9BQU8sS0FBVSxFQUFFO1lBQ25CLE1BQU0sT0FBTyxHQUFHLGdDQUFnQyxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pFLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUks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Z0I7UUFDckIsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUlNLEdBQUcsQ0FBVSxZQUFvQixFQUFFLFlBQWdCO1FBQ3hELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBSU0sVUFBVSxDQUFVLFlBQW9CLEVBQUUsWUFBZ0I7UUFDL0QsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsWUFBWSxHQUFHLENBQUMsQ0FBQztTQUNwRTtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F2T1UsYUFBYSxrQkF1TVEsV0FBVztrSEF2TWhDLGFBQWEsY0FGWixNQUFNOztTQUVQLGFBQWE7MkZBQWIsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXdNYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBPcHRpb25hbCxcbiAgSW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgZGVlcE1lcmdlLFxuICBTZXRPYmplY3RWYWx1ZVxufSBmcm9tICdAcnhhcC91dGlsaXRpZXMnO1xuaW1wb3J0IHsgUlhBUF9DT05GSUcgfSBmcm9tICcuL3Rva2Vucyc7XG5pbXBvcnQgeyBOb0luZmVyVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQW55U2NoZW1hIH0gZnJvbSAnam9pJztcblxuZXhwb3J0IGludGVyZmFjZSBDb25maWdMb2FkT3B0aW9ucyB7XG4gIGZyb21VcmxQYXJhbT86IHN0cmluZyB8IGJvb2xlYW47XG4gIGZyb21Mb2NhbFN0b3JhZ2U/OiBib29sZWFuO1xuICBzY2hlbWE/OiBBbnlTY2hlbWE7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2U8Q29uZmlnIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcblxuICBwdWJsaWMgc3RhdGljIENvbmZpZzogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogU3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgY29uZmlnIG9iamVjdC5cbiAgICogV2lsbCBiZSBvdmVyd3JpdHRlbiBieSBhbiBkeW5hbWljIGNvbmZpZyBmaWxlIHNwZWNpZmllZCBpblxuICAgKiB0aGUgVXJscyBhcnJheS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRGVmYXVsdHM6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBbnkgdmFsdWUgZGVmaW5pdGlvbiBpbiB0aGUgT3ZlcndyaXRlcyBvYmplY3Qgd2lsbCBvdmVyd3JpdGUgYW55XG4gICAqIHZhbHVlIGZvcm0gdGhlIERlZmF1bHRzIHZhbHVlcyBvciBkeW5hbWljIGNvbmZpZyBmaWxlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBPdmVyd3JpdGVzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgc3RhdGljIExvY2FsU3RvcmFnZUtleSA9ICdyeGFwL2NvbmZpZy9sb2NhbC1jb25maWcnO1xuXG4gIHB1YmxpYyBzdGF0aWMgVXJscyA9IFsgJ2NvbmZpZy5qc29uJyBdO1xuXG4gIHByaXZhdGUgc3RhdGljIGFzeW5jIGxvYWRDb25maWc8VCA9IGFueT4odXJsOiBzdHJpbmcsIHJlcXVpcmVkPzogYm9vbGVhbiwgc2NoZW1hPzogQW55U2NoZW1hKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuXG4gICAgbGV0IGNvbmZpZzogYW55O1xuICAgIGxldCByZXNwb25zZTogYW55O1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ291bGQgbm90IGZldGNoIGNvbmZpZyBmcm9tICcke3VybH0nOiAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uZmlnID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBDb3VsZCBub3QgcGFyc2UgY29uZmlnIGZyb20gJyR7dXJsfScgdG8gYSBqc29uIG9iamVjdDogJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5zaG93RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihtZXNzYWdlKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNjaGVtYSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uZmlnID0gYXdhaXQgc2NoZW1hLnZhbGlkYXRlQXN5bmMoY29uZmlnKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBDb25maWcgZnJvbSAnJHt1cmx9JyBpcyBub3QgdmFsaWQ6ICR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcblxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IGhhc1VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3J4YXAtY29uZmlnLWVycm9yJykgIT09IG51bGw7XG4gICAgY29uc3QgdWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncnhhcC1jb25maWctZXJyb3InKSA/PyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bCcpO1xuICAgIHVsLmlkID0gJ3J4YXAtY29uZmlnLWVycm9yJztcbiAgICB1bC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gICAgdWwuc3R5bGUuYm90dG9tID0gJzE2cHgnO1xuICAgIHVsLnN0eWxlLnJpZ2h0ID0gJzE2cHgnO1xuICAgIHVsLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd3aGl0ZSc7XG4gICAgdWwuc3R5bGUucGFkZGluZyA9ICczMnB4JztcbiAgICB1bC5zdHlsZS56SW5kZXggPSAnOTk5OTk5OTknO1xuICAgIHVsLnN0eWxlLmNvbG9yID0gJ2JsYWNrJztcbiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7XG4gICAgbGkuaW5uZXJUZXh0ID0gbWVzc2FnZTtcbiAgICB1bC5hcHBlbmRDaGlsZChsaSk7XG4gICAgaWYgKCFoYXNVbCkge1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1bCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhc3luYyBTaWRlTG9hZCh1cmw6IHN0cmluZywgcHJvcGVydHlQYXRoOiBzdHJpbmcsIHJlcXVpcmVkPzogYm9vbGVhbiwgc2NoZW1hPzogQW55U2NoZW1hKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICBpZiAoIXRoaXMuQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZpZyBzaWRlIGxvYWQgaXMgb25seSBwb3NzaWJsZSBhZnRlciB0aGUgaW5pdGlhbCBjb25maWcgbG9hZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmxvYWRDb25maWcodXJsLCByZXF1aXJlZCwgc2NoZW1hKTtcblxuICAgIFNldE9iamVjdFZhbHVlKHRoaXMuQ29uZmlnLCBwcm9wZXJ0eVBhdGgsIGNvbmZpZyk7XG5cbiAgICBjb25zb2xlLmRlYnVnKGBTaWRlIGxvYWRlZCBjb25maWcgZm9yICcke3Byb3BlcnR5UGF0aH0nIHN1Y2Nlc3NmdWxgLCB0aGlzLkNvbmZpZyk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGxvYWQgdGhlIGFwcCBjb25maWcgZnJvbSBhIHJlbW90ZSByZXNvdXJjZS5cbiAgICpcbiAgICogUHJvbWlzZS5hbGwoWyBDb25maWdTZXJ2aWNlLkxvYWQoKSBdKVxuICAgKiAudGhlbigoKSA9PiBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljKCkuYm9vdHN0cmFwTW9kdWxlKEFwcE1vZHVsZSkpXG4gICAqIC5jYXRjaChlcnIgPT4gY29uc29sZS5lcnJvcihlcnIpKVxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBMb2FkKG9wdGlvbnM/OiBDb25maWdMb2FkT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBjb25maWcgPSB0aGlzLkRlZmF1bHRzO1xuICAgIGZvciAoY29uc3QgdXJsIG9mIENvbmZpZ1NlcnZpY2UuVXJscykge1xuICAgICAgY29uZmlnID0gYXdhaXQgdGhpcy5sb2FkQ29uZmlnKHVybCwgdHJ1ZSwgb3B0aW9ucz8uc2NoZW1hKTtcbiAgICB9XG5cbiAgICBjb25maWcgPSBkZWVwTWVyZ2UoY29uZmlnLCB0aGlzLk92ZXJ3cml0ZXMpO1xuXG4gICAgaWYgKG9wdGlvbnM/LmZyb21Mb2NhbFN0b3JhZ2UgIT09IGZhbHNlKSB7XG5cbiAgICAgIGNvbnN0IGxvY2FsQ29uZmlnID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oQ29uZmlnU2VydmljZS5Mb2NhbFN0b3JhZ2VLZXkpO1xuXG4gICAgICBpZiAobG9jYWxDb25maWcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25maWcgPSBkZWVwTWVyZ2UoY29uZmlnLCBKU09OLnBhcnNlKGxvY2FsQ29uZmlnKSk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2xvY2FsIGNvbmZpZyBjb3VsZCBub3QgYmUgcGFyc2VkJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy5mcm9tVXJsUGFyYW0pIHtcbiAgICAgIGNvbnN0IHBhcmFtID0gdHlwZW9mIG9wdGlvbnMuZnJvbVVybFBhcmFtID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuZnJvbVVybFBhcmFtIDogJ2NvbmZpZyc7XG4gICAgICBjb25maWcgICAgICA9IGRlZXBNZXJnZShjb25maWcsIHRoaXMuTG9hZENvbmZpZ0RlZmF1bHRGcm9tVXJsUGFyYW0ocGFyYW0pKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKCdhcHAgY29uZmlnJywgY29uZmlnKTtcblxuICAgIHRoaXMuQ29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgTG9hZENvbmZpZ0RlZmF1bHRGcm9tVXJsUGFyYW0ocGFyYW06IHN0cmluZyA9ICdjb25maWcnKSB7XG5cbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2g7XG4gICAgY29uc3QgdXJsUGFyYW1zICAgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHF1ZXJ5U3RyaW5nKTtcblxuICAgIGNvbnN0IGNvbmZpZ0Zyb21QYXJhbXMgPSB7fTtcblxuICAgIGZvciAoY29uc3QgY29uZmlnUGFyYW0gb2YgdXJsUGFyYW1zLmdldEFsbCgnY29uZmlnJykpIHtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSBjb25maWdQYXJhbS5zcGxpdCgnOycpO1xuICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgY29uc3Qga2V5UGF0aCA9IHNwbGl0WyAwIF07XG4gICAgICAgICAgY29uc3QgdmFsdWUgICA9IHNwbGl0WyAxIF07XG4gICAgICAgICAgU2V0T2JqZWN0VmFsdWUoY29uZmlnRnJvbVBhcmFtcywga2V5UGF0aCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBQYXJzaW5nIG9mIHVybCBjb25maWcgcGFyYW0gZmFpbGVkIGZvciAnJHtjb25maWdQYXJhbX0nOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdGcm9tUGFyYW1zO1xuXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIEdldDxUID0gYW55LCBLIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KHBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUIHwgdW5kZWZpbmVkLCBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBUXG4gIHB1YmxpYyBzdGF0aWMgR2V0PFQgPSBhbnksIEsgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGRlZmF1bHRWYWx1ZTogTm9JbmZlclR5cGU8VD4sXG4gICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGhpcy5Db25maWdcbiAgKTogVCB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29uZmlnIG5vdCBsb2FkZWQnKTtcbiAgICB9XG4gICAgbGV0IGNvbmZpZ1ZhbHVlOiBhbnkgPSBjb25maWc7XG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29uZmlnIHByb3BlcnR5IHBhdGggaXMgbm90IGEgc3RyaW5nJyk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZnJhZ21lbnQgb2YgKHBhdGggYXMgYW55KS5zcGxpdCgnLicpKSB7XG4gICAgICBpZiAoY29uZmlnVmFsdWU/Lmhhc093blByb3BlcnR5KGZyYWdtZW50KSkge1xuICAgICAgICBjb25maWdWYWx1ZSA9IGNvbmZpZ1ZhbHVlWyBmcmFnbWVudCBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLndhcm4oYENvbmZpZyB3aXRoIHBhdGggJyR7cGF0aH0nIG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIGFueTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbmZpZ1ZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyE6IENvbmZpZztcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KFJYQVBfQ09ORklHKSBjb25maWc6IGFueSB8IG51bGwgPSBudWxsKSB7XG4gICAgdGhpcy5jb25maWcgPSBDb25maWdTZXJ2aWNlLkNvbmZpZztcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmNvbmZpZyA9IGRlZXBNZXJnZSh0aGlzLmNvbmZpZyA/PyB7fSwgY29uZmlnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb25maWcgbm90IGF2YWlsYWJsZScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRMb2NhbENvbmZpZyhjb25maWc6IENvbmZpZyk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKENvbmZpZ1NlcnZpY2UuTG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckxvY2FsQ29uZmlnKCk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKENvbmZpZ1NlcnZpY2UuTG9jYWxTdG9yYWdlS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQ8VCA9IGFueT4ocHJvcGVydHlQYXRoOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZ2V0PFQgPSBhbnk+KHByb3BlcnR5UGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IE5vSW5mZXJUeXBlPFQ+KTogVDtcbiAgcHVibGljIGdldDxUID0gYW55Pihwcm9wZXJ0eVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBDb25maWdTZXJ2aWNlLkdldChwcm9wZXJ0eVBhdGgsIGRlZmF1bHRWYWx1ZSwgdGhpcy5jb25maWcpO1xuICB9XG5cbiAgcHVibGljIGdldE9yVGhyb3c8VCA9IGFueT4ocHJvcGVydHlQYXRoOiBzdHJpbmcpOiBUO1xuICBwdWJsaWMgZ2V0T3JUaHJvdzxUID0gYW55Pihwcm9wZXJ0eVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBOb0luZmVyVHlwZTxUPik6IFQ7XG4gIHB1YmxpYyBnZXRPclRocm93PFQgPSBhbnk+KHByb3BlcnR5UGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgY29uc3QgdmFsdWUgPSBDb25maWdTZXJ2aWNlLkdldChwcm9wZXJ0eVBhdGgsIGRlZmF1bHRWYWx1ZSwgdGhpcy5jb25maWcpO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGNvbmZpZyBpbiBwYXRoICcke3Byb3BlcnR5UGF0aH0nYCk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG59XG4iXX0=
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2NvbmZpZy9zcmMvbGliL2NvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxjQUFjLEdBQ2YsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQWlCdkMsTUFBTSxPQUFPLGFBQWE7YUFFVixXQUFNLEdBQVEsSUFBSSxBQUFaLENBQWE7SUFFakM7Ozs7T0FJRzthQUNXLGFBQVEsR0FBUSxFQUFFLEFBQVYsQ0FBVztJQUVqQzs7O09BR0c7YUFDVyxlQUFVLEdBQVEsRUFBRSxBQUFWLENBQVc7YUFFckIsb0JBQWUsR0FBRywwQkFBMEIsQUFBN0IsQ0FBOEI7SUFFM0Q7O09BRUc7YUFDVyxTQUFJLEdBQUcsRUFBRSxBQUFMLENBQU07SUFHeEIsWUFBNkMsU0FBcUIsSUFBSTtRQUNwRSxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDbkMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNwRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBMkIsRUFBRSxXQUF5QjtRQUM3RSxJQUFJLE1BQU0sR0FB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QUN0RTtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0EvUFUsYUFBYSxrQkF5QlEsV0FBVztrSEF6QmhDLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBMEJjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICdAcnhhcC9lbnZpcm9ubWVudCc7XG5pbXBvcnQge1xuICBjb2VyY2VBcnJheSxcbiAgZGVlcE1lcmdlLFxuICBTZXRPYmplY3RWYWx1ZSxcbn0gZnJvbSAnQHJ4YXAvdXRpbGl0aWVzJztcbmltcG9ydCB7IEFueVNjaGVtYSB9IGZyb20gJ2pvaSc7XG5pbXBvcnQgeyBSWEFQX0NPTkZJRyB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7IE5vSW5mZXJUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnTG9hZE9wdGlvbnMge1xuICBmcm9tVXJsUGFyYW0/OiBzdHJpbmcgfCBib29sZWFuO1xuICBmcm9tTG9jYWxTdG9yYWdlPzogYm9vbGVhbjtcbiAgc2NoZW1hPzogQW55U2NoZW1hO1xuICB1cmw/OiBzdHJpbmcgfCBzdHJpbmdbXSB8ICgoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KSA9PiBzdHJpbmcgfCBzdHJpbmdbXSk7XG4gIC8qKlxuICAgKiBzdGF0aWMgY29uZmlnIHZhbHVlc1xuICAgKi9cbiAgc3RhdGljPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2U8Q29uZmlnIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcblxuICBwdWJsaWMgc3RhdGljIENvbmZpZzogYW55ID0gbnVsbDtcblxuICAvKipcbiAgICogU3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgY29uZmlnIG9iamVjdC5cbiAgICogV2lsbCBiZSBvdmVyd3JpdHRlbiBieSBhbiBkeW5hbWljIGNvbmZpZyBmaWxlIHNwZWNpZmllZCBpblxuICAgKiB0aGUgVXJscyBhcnJheS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRGVmYXVsdHM6IGFueSA9IHt9O1xuXG4gIC8qKlxuICAgKiBBbnkgdmFsdWUgZGVmaW5pdGlvbiBpbiB0aGUgT3ZlcndyaXRlcyBvYmplY3Qgd2lsbCBvdmVyd3JpdGUgYW55XG4gICAqIHZhbHVlIGZvcm0gdGhlIERlZmF1bHRzIHZhbHVlcyBvciBkeW5hbWljIGNvbmZpZyBmaWxlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBPdmVyd3JpdGVzOiBhbnkgPSB7fTtcblxuICBwdWJsaWMgc3RhdGljIExvY2FsU3RvcmFnZUtleSA9ICdyeGFwL2NvbmZpZy9sb2NhbC1jb25maWcnO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBpbnN0ZWFkIHVzZSB0aGUgdXJsIHByb3BlcnR5IG9mIHRoZSBDb25maWdMb2FkT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBVcmxzID0gW107XG4gIHB1YmxpYyByZWFkb25seSBjb25maWchOiBDb25maWc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChSWEFQX0NPTkZJRykgY29uZmlnOiBhbnkgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuY29uZmlnID0gQ29uZmlnU2VydmljZS5Db25maWc7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5jb25maWcgPSBkZWVwTWVyZ2UodGhpcy5jb25maWcgPz8ge30sIGNvbmZpZyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5jb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29uZmlnIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXNlZCB0byBsb2FkIHRoZSBhcHAgY29uZmlnIGZyb20gYSByZW1vdGUgcmVzb3VyY2UuXG4gICAqXG4gICAqIFByb21pc2UuYWxsKFsgQ29uZmlnU2VydmljZS5Mb2FkKCkgXSlcbiAgICogLnRoZW4oKCkgPT4gcGxhdGZvcm1Ccm93c2VyRHluYW1pYygpLmJvb3RzdHJhcE1vZHVsZShBcHBNb2R1bGUpKVxuICAgKiAuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSlcbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgTG9hZChvcHRpb25zPzogQ29uZmlnTG9hZE9wdGlvbnMsIGVudmlyb25tZW50PzogRW52aXJvbm1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgY29uZmlnID0gZGVlcE1lcmdlKHRoaXMuRGVmYXVsdHMsIG9wdGlvbnM/LnN0YXRpYyA/PyB7fSk7XG5cbiAgICBjb25zdCB1cmxzID0gKG9wdGlvbnM/LnVybCA/IGNvZXJjZUFycmF5KG9wdGlvbnMudXJsKSA6IENvbmZpZ1NlcnZpY2UuVXJscykubWFwKHVybCA9PiB7XG4gICAgICBpZiAodHlwZW9mIHVybCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpZiAoIWVudmlyb25tZW50KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbnZpcm9ubWVudCBpcyByZXF1aXJlZCB3aGVuIHVybCBpcyBhIGZ1bmN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvZXJjZUFycmF5KHVybChlbnZpcm9ubWVudCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvZXJjZUFycmF5KHVybCk7XG4gICAgfSkuZmxhdCgpO1xuXG4gICAgZm9yIChjb25zdCB1cmwgb2YgdXJscykge1xuICAgICAgY29uZmlnID0gZGVlcE1lcmdlKGNvbmZpZywgYXdhaXQgdGhpcy5sb2FkQ29uZmlnKHVybCwgdHJ1ZSwgb3B0aW9ucz8uc2NoZW1hKSk7XG4gICAgfVxuXG4gICAgY29uZmlnID0gZGVlcE1lcmdlKGNvbmZpZywgdGhpcy5PdmVyd3JpdGVzKTtcblxuICAgIGlmIChvcHRpb25zPy5mcm9tTG9jYWxTdG9yYWdlICE9PSBmYWxzZSkge1xuXG4gICAgICBjb25zdCBsb2NhbENvbmZpZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKENvbmZpZ1NlcnZpY2UuTG9jYWxTdG9yYWdlS2V5KTtcblxuICAgICAgaWYgKGxvY2FsQ29uZmlnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uZmlnID0gZGVlcE1lcmdlKGNvbmZpZywgSlNPTi5wYXJzZShsb2NhbENvbmZpZykpO1xuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdsb2NhbCBjb25maWcgY291bGQgbm90IGJlIHBhcnNlZCcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8uZnJvbVVybFBhcmFtKSB7XG4gICAgICBjb25zdCBwYXJhbSA9IHR5cGVvZiBvcHRpb25zLmZyb21VcmxQYXJhbSA9PT0gJ3N0cmluZycgPyBvcHRpb25zLmZyb21VcmxQYXJhbSA6ICdjb25maWcnO1xuICAgICAgY29uZmlnID0gZGVlcE1lcmdlKGNvbmZpZywgdGhpcy5Mb2FkQ29uZmlnRGVmYXVsdEZyb21VcmxQYXJhbShwYXJhbSkpO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZGVidWcoJ2FwcCBjb25maWcnLCBjb25maWcpO1xuXG4gICAgdGhpcy5Db25maWcgPSBjb25maWc7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyBsb2FkQ29uZmlnPFQgPSBhbnk+KHVybDogc3RyaW5nLCByZXF1aXJlZD86IGJvb2xlYW4sIHNjaGVtYT86IEFueVNjaGVtYSk6IFByb21pc2U8VCB8IG51bGw+IHtcblxuICAgIGxldCBjb25maWc6IGFueTtcbiAgICBsZXQgcmVzcG9uc2U6IGFueTtcblxuICAgIHRyeSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBDb3VsZCBub3QgZmV0Y2ggY29uZmlnIGZyb20gJyR7IHVybCB9JzogJHsgZXJyb3IubWVzc2FnZSB9YDtcbiAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uZmlnID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ291bGQgbm90IHBhcnNlIGNvbmZpZyBmcm9tICckeyB1cmwgfScgdG8gYSBqc29uIG9iamVjdDogJHsgZXJyb3IubWVzc2FnZSB9YDtcbiAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2NoZW1hKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25maWcgPSBhd2FpdCBzY2hlbWEudmFsaWRhdGVBc3luYyhjb25maWcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYENvbmZpZyBmcm9tICckeyB1cmwgfScgaXMgbm90IHZhbGlkOiAkeyBlcnJvci5tZXNzYWdlIH1gO1xuICAgICAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICB0aGlzLnNob3dFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcblxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgTG9hZENvbmZpZ0RlZmF1bHRGcm9tVXJsUGFyYW0ocGFyYW0gPSAnY29uZmlnJykge1xuXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpO1xuXG4gICAgY29uc3QgY29uZmlnRnJvbVBhcmFtcyA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBjb25maWdQYXJhbSBvZiB1cmxQYXJhbXMuZ2V0QWxsKCdjb25maWcnKSkge1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzcGxpdCA9IGNvbmZpZ1BhcmFtLnNwbGl0KCc7Jyk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICBjb25zdCBrZXlQYXRoID0gc3BsaXRbMF07XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBzcGxpdFsxXTtcbiAgICAgICAgICBTZXRPYmplY3RWYWx1ZShjb25maWdGcm9tUGFyYW1zLCBrZXlQYXRoLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFBhcnNpbmcgb2YgdXJsIGNvbmZpZyBwYXJhbSBmYWlsZWQgZm9yICckeyBjb25maWdQYXJhbSB9JzogJHsgZS5tZXNzYWdlIH1gKTtcbiAgICAgIH1cblxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdGcm9tUGFyYW1zO1xuXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIFNpZGVMb2FkKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHByb3BlcnR5UGF0aDogc3RyaW5nLFxuICAgIHJlcXVpcmVkPzogYm9vbGVhbixcbiAgICBzY2hlbWE/OiBBbnlTY2hlbWEsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgaWYgKCF0aGlzLkNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25maWcgc2lkZSBsb2FkIGlzIG9ubHkgcG9zc2libGUgYWZ0ZXIgdGhlIGluaXRpYWwgY29uZmlnIGxvYWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5sb2FkQ29uZmlnKHVybCwgcmVxdWlyZWQsIHNjaGVtYSk7XG5cbiAgICBTZXRPYmplY3RWYWx1ZSh0aGlzLkNvbmZpZywgcHJvcGVydHlQYXRoLCBjb25maWcpO1xuXG4gICAgY29uc29sZS5kZWJ1ZyhgU2lkZSBsb2FkZWQgY29uZmlnIGZvciAnJHsgcHJvcGVydHlQYXRoIH0nIHN1Y2Nlc3NmdWxgLCB0aGlzLkNvbmZpZyk7XG5cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgR2V0PFQgPSBhbnksIEsgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGRlZmF1bHRWYWx1ZTogVCB8IHVuZGVmaW5lZCxcbiAgICBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICk6IFRcblxuICBwdWJsaWMgc3RhdGljIEdldDxUID0gYW55LCBLIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU6IE5vSW5mZXJUeXBlPFQ+LFxuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PiA9IHRoaXMuQ29uZmlnLFxuICApOiBUIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb25maWcgbm90IGxvYWRlZCcpO1xuICAgIH1cbiAgICBsZXQgY29uZmlnVmFsdWU6IGFueSA9IGNvbmZpZztcbiAgICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb25maWcgcHJvcGVydHkgcGF0aCBpcyBub3QgYSBzdHJpbmcnKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBmcmFnbWVudCBvZiAocGF0aCBhcyBhbnkpLnNwbGl0KCcuJykpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgIGlmIChjb25maWdWYWx1ZS5oYXNPd25Qcm9wZXJ0eShmcmFnbWVudCkpIHtcbiAgICAgICAgY29uZmlnVmFsdWUgPSBjb25maWdWYWx1ZVtmcmFnbWVudF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihgQ29uZmlnIHdpdGggcGF0aCAnJHsgcGF0aCB9JyBub3QgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyBhbnk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb25maWdWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoYXNVbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyeGFwLWNvbmZpZy1lcnJvcicpICE9PSBudWxsO1xuICAgIGNvbnN0IHVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3J4YXAtY29uZmlnLWVycm9yJykgPz8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndWwnKTtcbiAgICB1bC5pZCA9ICdyeGFwLWNvbmZpZy1lcnJvcic7XG4gICAgdWwuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICAgIHVsLnN0eWxlLmJvdHRvbSA9ICcxNnB4JztcbiAgICB1bC5zdHlsZS5yaWdodCA9ICcxNnB4JztcbiAgICB1bC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnd2hpdGUnO1xuICAgIHVsLnN0eWxlLnBhZGRpbmcgPSAnMzJweCc7XG4gICAgdWwuc3R5bGUuekluZGV4ID0gJzk5OTk5OTk5JztcbiAgICB1bC5zdHlsZS5jb2xvciA9ICdibGFjayc7XG4gICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpO1xuICAgIGxpLmlubmVyVGV4dCA9IG1lc3NhZ2U7XG4gICAgdWwuYXBwZW5kQ2hpbGQobGkpO1xuICAgIGlmICghaGFzVWwpIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodWwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRMb2NhbENvbmZpZyhjb25maWc6IENvbmZpZyk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKENvbmZpZ1NlcnZpY2UuTG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckxvY2FsQ29uZmlnKCk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKENvbmZpZ1NlcnZpY2UuTG9jYWxTdG9yYWdlS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQ8VCA9IGFueT4ocHJvcGVydHlQYXRoOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZ2V0PFQgPSBhbnk+KHByb3BlcnR5UGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IE5vSW5mZXJUeXBlPFQ+KTogVDtcbiAgcHVibGljIGdldDxUID0gYW55Pihwcm9wZXJ0eVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBDb25maWdTZXJ2aWNlLkdldChwcm9wZXJ0eVBhdGgsIGRlZmF1bHRWYWx1ZSwgdGhpcy5jb25maWcpO1xuICB9XG5cbiAgcHVibGljIGdldE9yVGhyb3c8VCA9IGFueT4ocHJvcGVydHlQYXRoOiBzdHJpbmcpOiBUO1xuICBwdWJsaWMgZ2V0T3JUaHJvdzxUID0gYW55Pihwcm9wZXJ0eVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBOb0luZmVyVHlwZTxUPik6IFQ7XG4gIHB1YmxpYyBnZXRPclRocm93PFQgPSBhbnk+KHByb3BlcnR5UGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgY29uc3QgdmFsdWUgPSBDb25maWdTZXJ2aWNlLkdldChwcm9wZXJ0eVBhdGgsIGRlZmF1bHRWYWx1ZSwgdGhpcy5jb25maWcpO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGNvbmZpZyBpbiBwYXRoICckeyBwcm9wZXJ0eVBhdGggfSdgKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbn1cbiJdfQ==
|
package/esm2022/lib/tokens.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const RXAP_CONFIG = new InjectionToken('rxap/config');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci9jb25maWcvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgUlhBUF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ3J4YXAvY29uZmlnJyk7XG4iXX0=
|
package/esm2022/lib/types.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2NvbmZpZy9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSB0eXBlIE5vSW5mZXJUeXBlPFQ+ID0gWyBUIF1bVCBleHRlbmRzIGFueSA/IDAgOiBuZXZlcl07XG5cbnR5cGUgUHJldiA9IFtcbiAgbmV2ZXIsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLFxuICAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgLi4uMFtdXG5dXG5cbmV4cG9ydCB0eXBlIEpvaW48SywgUD4gPSBLIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyID9cbiAgUCBleHRlbmRzIHN0cmluZyB8IG51bWJlciA/XG4gICAgYCR7IEsgfSR7ICcnIGV4dGVuZHMgUCA/ICcnIDogJy4nIH0keyBQIH1gXG4gICAgOiBuZXZlciA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBQYXRoczxULCBEIGV4dGVuZHMgbnVtYmVyID0gMTA+ID0gWyBEIF0gZXh0ZW5kcyBbIG5ldmVyIF0gPyBuZXZlciA6IFQgZXh0ZW5kcyBvYmplY3QgP1xuICB7XG4gICAgW0sgaW4ga2V5b2YgVF0tPzogSyBleHRlbmRzIHN0cmluZyB8IG51bWJlciA/XG4gICAgYCR7IEsgfWAgfCBKb2luPEssIFBhdGhzPFRbS10sIFByZXZbRF0+PlxuICAgIDogbmV2ZXJcbiAgfVtrZXlvZiBUXSA6ICcnO1xuXG5leHBvcnQgdHlwZSBMZWF2ZXM8VCwgRCBleHRlbmRzIG51bWJlciA9IDEwPiA9IFsgRCBdIGV4dGVuZHMgWyBuZXZlciBdID8gbmV2ZXIgOiBUIGV4dGVuZHMgb2JqZWN0ID9cbiAgeyBbSyBpbiBrZXlvZiBUXS0/OiBKb2luPEssIExlYXZlczxUW0tdLCBQcmV2W0RdPj4gfVtrZXlvZiBUXSA6ICcnO1xuIl19
|
package/esm2022/rxap-config.mjs
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Generated bundle index. Do not edit.
|
|
3
3
|
*/
|
|
4
4
|
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhhcC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL2NvbmZpZy9zcmMvcnhhcC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|