@skyux/config 8.7.2 → 9.0.0-alpha.1
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/esm2022/lib/app-config-host.mjs +30 -0
- package/esm2022/lib/app-config-params.mjs +34 -0
- package/{esm2020 → esm2022}/lib/app-config.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/config.mjs +4 -4
- package/esm2022/lib/params-provider.mjs +28 -0
- package/esm2022/lib/params.mjs +175 -0
- package/fesm2022/skyux-config.mjs +314 -0
- package/{fesm2015 → fesm2022}/skyux-config.mjs.map +1 -1
- package/package.json +7 -13
- package/esm2020/lib/app-config-host.mjs +0 -35
- package/esm2020/lib/app-config-params.mjs +0 -39
- package/esm2020/lib/params-provider.mjs +0 -31
- package/esm2020/lib/params.mjs +0 -178
- package/fesm2015/skyux-config.mjs +0 -323
- package/fesm2020/skyux-config.mjs +0 -327
- package/fesm2020/skyux-config.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/app-config-module-for-root-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-params.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-config.mjs +0 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
const DEFAULTS = {
|
4
|
+
frameOptions: {
|
5
|
+
none: true,
|
6
|
+
},
|
7
|
+
url: 'https://host.nxt.blackbaud.com/',
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* Host configuration for components and applications.
|
11
|
+
* @deprecated Use `SkyAppConfig.skyux.host` instead.
|
12
|
+
*/
|
13
|
+
export class SkyAppConfigHost {
|
14
|
+
get host() {
|
15
|
+
return this.#_host;
|
16
|
+
}
|
17
|
+
#_host;
|
18
|
+
init(config) {
|
19
|
+
this.#_host = {
|
20
|
+
...DEFAULTS,
|
21
|
+
...(config || {}),
|
22
|
+
};
|
23
|
+
}
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigHost }); }
|
26
|
+
}
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigHost, decorators: [{
|
28
|
+
type: Injectable
|
29
|
+
}] });
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy1ob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbmZpZy9zcmMvbGliL2FwcC1jb25maWctaG9zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLFFBQVEsR0FBb0I7SUFDaEMsWUFBWSxFQUFFO1FBQ1osSUFBSSxFQUFFLElBQUk7S0FDWDtJQUNELEdBQUcsRUFBRSxpQ0FBaUM7Q0FDdkMsQ0FBQztBQUVGOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQW1CO0lBRWxCLElBQUksQ0FBQyxNQUF3QjtRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osR0FBRyxRQUFRO1lBQ1gsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7U0FDbEIsQ0FBQztJQUNKLENBQUM7OEdBWlUsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreXV4Q29uZmlnSG9zdCB9IGZyb20gJy4vY29uZmlnJztcblxuY29uc3QgREVGQVVMVFM6IFNreXV4Q29uZmlnSG9zdCA9IHtcbiAgZnJhbWVPcHRpb25zOiB7XG4gICAgbm9uZTogdHJ1ZSxcbiAgfSxcbiAgdXJsOiAnaHR0cHM6Ly9ob3N0Lm54dC5ibGFja2JhdWQuY29tLycsXG59O1xuXG4vKipcbiAqIEhvc3QgY29uZmlndXJhdGlvbiBmb3IgY29tcG9uZW50cyBhbmQgYXBwbGljYXRpb25zLlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTa3lBcHBDb25maWcuc2t5dXguaG9zdGAgaW5zdGVhZC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFwcENvbmZpZ0hvc3Qge1xuICBwdWJsaWMgZ2V0IGhvc3QoKTogU2t5dXhDb25maWdIb3N0IHtcbiAgICByZXR1cm4gdGhpcy4jX2hvc3Q7XG4gIH1cblxuICAjX2hvc3QhOiBTa3l1eENvbmZpZ0hvc3Q7XG5cbiAgcHVibGljIGluaXQoY29uZmlnPzogU2t5dXhDb25maWdIb3N0KTogdm9pZCB7XG4gICAgdGhpcy4jX2hvc3QgPSB7XG4gICAgICAuLi5ERUZBVUxUUyxcbiAgICAgIC4uLihjb25maWcgfHwge30pLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
const DEFAULTS = {
|
4
|
+
envid: {
|
5
|
+
required: false,
|
6
|
+
},
|
7
|
+
leid: {
|
8
|
+
required: false,
|
9
|
+
},
|
10
|
+
svcid: {
|
11
|
+
required: false,
|
12
|
+
},
|
13
|
+
};
|
14
|
+
/**
|
15
|
+
* @deprecated Use `SkyAppConfig.skyux.params` instead.
|
16
|
+
*/
|
17
|
+
export class SkyAppConfigParams {
|
18
|
+
get params() {
|
19
|
+
return this.#_params;
|
20
|
+
}
|
21
|
+
#_params;
|
22
|
+
init(params) {
|
23
|
+
this.#_params = {
|
24
|
+
...DEFAULTS,
|
25
|
+
...(params || {}),
|
26
|
+
};
|
27
|
+
}
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigParams, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigParams }); }
|
30
|
+
}
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigParams, decorators: [{
|
32
|
+
type: Injectable
|
33
|
+
}] });
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29uZmlnL3NyYy9saWIvYXBwLWNvbmZpZy1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxRQUFRLEdBQXNCO0lBQ2xDLEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLEtBQUs7S0FDaEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxRQUFRLEVBQUUsS0FBSztLQUNoQjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRLENBQXFCO0lBRXRCLElBQUksQ0FBQyxNQUEwQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsR0FBRyxRQUFRO1lBQ1gsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7U0FDbEIsQ0FBQztJQUNKLENBQUM7OEdBWlUsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreXV4Q29uZmlnUGFyYW1zIH0gZnJvbSAnLi9jb25maWctcGFyYW1zJztcblxuY29uc3QgREVGQVVMVFM6IFNreXV4Q29uZmlnUGFyYW1zID0ge1xuICBlbnZpZDoge1xuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgfSxcbiAgbGVpZDoge1xuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgfSxcbiAgc3ZjaWQ6IHtcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gIH0sXG59O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgU2t5QXBwQ29uZmlnLnNreXV4LnBhcmFtc2AgaW5zdGVhZC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFwcENvbmZpZ1BhcmFtcyB7XG4gIHB1YmxpYyBnZXQgcGFyYW1zKCk6IFNreXV4Q29uZmlnUGFyYW1zIHtcbiAgICByZXR1cm4gdGhpcy4jX3BhcmFtcztcbiAgfVxuXG4gICNfcGFyYW1zITogU2t5dXhDb25maWdQYXJhbXM7XG5cbiAgcHVibGljIGluaXQocGFyYW1zPzogU2t5dXhDb25maWdQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLiNfcGFyYW1zID0ge1xuICAgICAgLi4uREVGQVVMVFMsXG4gICAgICAuLi4ocGFyYW1zIHx8IHt9KSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
@@ -29,12 +29,12 @@ export class SkyAppConfigModule {
|
|
29
29
|
],
|
30
30
|
};
|
31
31
|
}
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
33
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigModule }); }
|
34
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigModule }); }
|
32
35
|
}
|
33
|
-
|
34
|
-
SkyAppConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyAppConfigModule });
|
35
|
-
SkyAppConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAppConfigModule });
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAppConfigModule, decorators: [{
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfigModule, decorators: [{
|
37
37
|
type: NgModule,
|
38
38
|
args: [{}]
|
39
39
|
}] });
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29uZmlnL3NyYy9saWIvYXBwLWNvbmZpZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUN0QixNQUFNLENBQUMsT0FBTyxDQUNuQixTQUF3QyxFQUFFO1FBRTFDLE9BQU87WUFDTCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixVQUFVO3dCQUNSLE1BQU0sZUFBZSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQzt3QkFDakQsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ3BDLE9BQU8sZUFBZSxDQUFDO29CQUN6QixDQUFDO2lCQUNGO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLFVBQVU7d0JBQ1IsTUFBTSxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO3dCQUM3QyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEMsT0FBTyxhQUFhLENBQUM7b0JBQ3ZCLENBQUM7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQXpCVSxrQkFBa0I7K0dBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixRQUFRO21CQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBcHBDb25maWdIb3N0IH0gZnJvbSAnLi9hcHAtY29uZmlnLWhvc3QnO1xuaW1wb3J0IHsgU2t5QXBwQ29uZmlnTW9kdWxlRm9yUm9vdEFyZ3MgfSBmcm9tICcuL2FwcC1jb25maWctbW9kdWxlLWZvci1yb290LWFyZ3MnO1xuaW1wb3J0IHsgU2t5QXBwQ29uZmlnUGFyYW1zIH0gZnJvbSAnLi9hcHAtY29uZmlnLXBhcmFtcyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUHJvdmlkZSBgU2t5QXBwQ29uZmlnYCBhdCB0aGUgcm9vdCBpbnN0ZWFkLlxuICovXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgU2t5QXBwQ29uZmlnTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KFxuICAgIGNvbmZpZzogU2t5QXBwQ29uZmlnTW9kdWxlRm9yUm9vdEFyZ3MgPSB7fVxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNreUFwcENvbmZpZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2t5QXBwQ29uZmlnTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTa3lBcHBDb25maWdQYXJhbXMsXG4gICAgICAgICAgdXNlRmFjdG9yeSgpIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcENvbmZpZ1BhcmFtcyA9IG5ldyBTa3lBcHBDb25maWdQYXJhbXMoKTtcbiAgICAgICAgICAgIGFwcENvbmZpZ1BhcmFtcy5pbml0KGNvbmZpZy5wYXJhbXMpO1xuICAgICAgICAgICAgcmV0dXJuIGFwcENvbmZpZ1BhcmFtcztcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU2t5QXBwQ29uZmlnSG9zdCxcbiAgICAgICAgICB1c2VGYWN0b3J5KCkge1xuICAgICAgICAgICAgY29uc3QgYXBwQ29uZmlnSG9zdCA9IG5ldyBTa3lBcHBDb25maWdIb3N0KCk7XG4gICAgICAgICAgICBhcHBDb25maWdIb3N0LmluaXQoY29uZmlnLmhvc3QpO1xuICAgICAgICAgICAgcmV0dXJuIGFwcENvbmZpZ0hvc3Q7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
@@ -3,10 +3,10 @@ import * as i0 from "@angular/core";
|
|
3
3
|
export class SkyuxPactConfig {
|
4
4
|
}
|
5
5
|
export class SkyAppConfig {
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
7
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfig }); }
|
6
8
|
}
|
7
|
-
|
8
|
-
SkyAppConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAppConfig });
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAppConfig, decorators: [{
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppConfig, decorators: [{
|
10
10
|
type: Injectable
|
11
11
|
}] });
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbmZpZy9zcmMvbGliL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVkzQyxNQUFNLE9BQU8sZUFBZTtDQVMzQjtBQWtLRCxNQUFNLE9BQU8sWUFBWTs4R0FBWixZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreXV4Q29uZmlnUGFyYW1zIH0gZnJvbSAnLi9jb25maWctcGFyYW1zJztcbmltcG9ydCB7IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXMgfSBmcm9tICcuL3BhcmFtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUNvbmZpZ0FwcCB7XG4gIGJhc2U6IHN0cmluZztcbiAgaW5qZWN0OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2t5dXhQYWN0Q29uZmlnIHtcbiAgcHVibGljIHByb3ZpZGVycz86IHtcbiAgICBbcHJvdmlkZXI6IHN0cmluZ106IHtcbiAgICAgIGhvc3Q/OiBzdHJpbmc7XG4gICAgICBwb3J0Pzogc3RyaW5nO1xuICAgICAgZnVsbFVybD86IHN0cmluZztcbiAgICB9O1xuICB9O1xuICBwdWJsaWMgcGFjdFByb3h5U2VydmVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnRTJFVGVzdFNldHRpbmdzIHtcbiAgYnJvd3NlclNldD86ICdzcGVlZHknO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnVW5pdFRlc3RTZXR0aW5ncyB7XG4gIGJyb3dzZXJTZXQ/OiAnc3BlZWR5JyB8ICdxdWlya3knIHwgJ3BhcmFub2lkJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTa3l1eENvbmZpZ1Rlc3RTZXR0aW5ncyB7XG4gIGUyZT86IFNreXV4Q29uZmlnRTJFVGVzdFNldHRpbmdzO1xuICB1bml0PzogU2t5dXhDb25maWdVbml0VGVzdFNldHRpbmdzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnTGlicmFyeVNldHRpbmdzIHtcbiAgd2hpdGVsaXN0ZWROb25QZWVyRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUNvbmZpZyB7XG4gIGFwcDogUnVudGltZUNvbmZpZ0FwcDtcbiAgY29tbWFuZD86IHN0cmluZzsgLy8gRHluYW1pY2FsbHkgYWRkZWQgaW4gXCJoaWdoZXIgdXBcIiB3ZWJwYWNrc1xuICBjb21wb25lbnRzUGF0dGVybjogc3RyaW5nO1xuICBjb21wb25lbnRzSWdub3JlUGF0dGVybjogc3RyaW5nO1xuICBoYW5kbGU0MDQ/OiBib29sZWFuOyAvLyBEeW5hbWljYWxseSBhZGRlZCBpbiBza3ktcGFnZXMtbW9kdWxlLWdlbmVyYXRvci5qc1xuICBpbmNsdWRlUm91dGVNb2R1bGU6IGJvb2xlYW47XG4gIHBhY3RDb25maWc/OiBTa3l1eFBhY3RDb25maWc7XG4gIHBhcmFtczogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtcztcbiAgcm91dGVzPzogT2JqZWN0W107IC8vIER5bmFtaWNhbGx5IGFkZGVkIGluIHNreS1wYWdlcy1tb2R1bGUtZ2VuZXJhdG9yLmpzXG4gIHJvdXRlc1BhdHRlcm46IHN0cmluZztcbiAgcnVudGltZUFsaWFzOiBzdHJpbmc7XG4gIHNwYVBhdGhBbGlhczogc3RyaW5nO1xuICBza3lQYWdlc091dEFsaWFzOiBzdHJpbmc7XG4gIHNreXV4UGF0aEFsaWFzOiBzdHJpbmc7XG4gIHNyY1BhdGg6IHN0cmluZztcbiAgdXNlVGVtcGxhdGVVcmw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2t5dXhDb25maWdBMTF5IHtcbiAgcnVsZXM/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFNreXV4Q29uZmlnQXBwU3VwcG9ydGVkVGhlbWUgPSAnZGVmYXVsdCcgfCAnbW9kZXJuJztcblxuZXhwb3J0IGludGVyZmFjZSBTa3l1eENvbmZpZ0FwcFRoZW1pbmcge1xuICBzdXBwb3J0ZWRUaGVtZXM6IFNreXV4Q29uZmlnQXBwU3VwcG9ydGVkVGhlbWVbXTtcbiAgdGhlbWU6IFNreXV4Q29uZmlnQXBwU3VwcG9ydGVkVGhlbWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2t5dXhDb25maWdBcHAge1xuICBiYXNlPzogc3RyaW5nO1xuICBleHRlcm5hbHM/OiBPYmplY3Q7XG4gIHBvcnQ/OiBzdHJpbmc7XG4gIHN0eWxlcz86IHN0cmluZ1tdO1xuICB0aGVtaW5nPzogU2t5dXhDb25maWdBcHBUaGVtaW5nO1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTa3l1eENvbmZpZ0F1dGhTZXR0aW5ncyB7XG4gIGJsYWNrYmF1ZEVtcGxveWVlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTa3l1eENvbmZpZ0hvc3RCQkNoZWNrb3V0IHtcbiAgdmVyc2lvbjogJzInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnSG9zdEZyYW1lT3B0aW9uc05vbmUge1xuICBibGFja2JhdWQ/OiBmYWxzZTtcbiAgbm9uZTogdHJ1ZTtcbiAgc2VsZj86IGZhbHNlO1xuICB1cmxzPzogW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2t5dXhDb25maWdIb3N0RnJhbWVPcHRpb25zT3RoZXJzIHtcbiAgYmxhY2tiYXVkPzogYm9vbGVhbjtcbiAgbm9uZT86IGZhbHNlO1xuICBzZWxmPzogYm9vbGVhbjtcbiAgdXJscz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnSG9zdENzcERpcmVjdGl2ZXMge1xuICBbZGlyZWN0aXZlTmFtZTogc3RyaW5nXTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2t5dXhDb25maWdIb3N0Q3NwIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgZGlyZWN0aXZlcz86IFNreXV4Q29uZmlnSG9zdENzcERpcmVjdGl2ZXM7XG59XG5cbi8qKlxuICogQmxhY2tiYXVkIE9ubHkgLSBTcGVjaWZpZXMgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBjb21tdW5pY2F0aW9uIHdpdGggU0tZIFVYIEhvc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2t5dXhDb25maWdIb3N0IHtcbiAgYmJDaGVja291dD86IFNreXV4Q29uZmlnSG9zdEJCQ2hlY2tvdXQ7XG4gIGNzcD86IFNreXV4Q29uZmlnSG9zdENzcDtcbiAgZnJhbWVPcHRpb25zPzpcbiAgICB8IFNreXV4Q29uZmlnSG9zdEZyYW1lT3B0aW9uc05vbmVcbiAgICB8IFNreXV4Q29uZmlnSG9zdEZyYW1lT3B0aW9uc090aGVycztcbiAgdXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnQW55QWxsU2V0IHtcbiAgYW55Pzogc3RyaW5nW107XG4gIGFsbD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNreXV4Q29uZmlnIHtcbiAgJHNjaGVtYT86IHN0cmluZztcbiAgYTExeT86IFNreXV4Q29uZmlnQTExeSB8IGJvb2xlYW47XG4gIGFuZ3VsYXJTZXR0aW5ncz86IHtcbiAgICBkZWZhdWx0UHJvamVjdDogc3RyaW5nO1xuICB9O1xuICBhcHA/OiBTa3l1eENvbmZpZ0FwcDtcbiAgYXBwU2V0dGluZ3M/OiBhbnk7XG4gIGF1dGg/OiBib29sZWFuO1xuICBhdXRoU2V0dGluZ3M/OiBTa3l1eENvbmZpZ0F1dGhTZXR0aW5ncztcbiAgY29kZUNvdmVyYWdlVGhyZXNob2xkPzogJ25vbmUnIHwgJ3N0YW5kYXJkJyB8ICdzdHJpY3QnO1xuICBjb21tYW5kPzogc3RyaW5nO1xuICBjb21waWxlTW9kZT86IHN0cmluZztcbiAgY3NzUGF0aD86IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzRm9yVHJhbnNwaWxhdGlvbj86IHN0cmluZ1tdO1xuICBlbmFibGVJdnk/OiBib29sZWFuO1xuICBoZWxwPzogYW55O1xuICBob3N0PzogU2t5dXhDb25maWdIb3N0O1xuICBpbXBvcnRQYXRoPzogc3RyaW5nO1xuICBsaWJyYXJ5U2V0dGluZ3M/OiBTa3l1eENvbmZpZ0xpYnJhcnlTZXR0aW5ncztcbiAgbW9kZT86IHN0cmluZztcbiAgbW9kdWxlQWxpYXNlcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHBhY3RzPzogYW55W107XG4gIHBhcmFtcz86IFNreXV4Q29uZmlnUGFyYW1zOyAvLyBMaXN0IG9mIGFsbG93ZWQgcGFyYW1zXG4gIHBpcGVsaW5lU2V0dGluZ3M/OiBhbnk7XG4gIHBsdWdpbnM/OiBzdHJpbmdbXTtcbiAgcmVkaXJlY3RzPzogeyBbZnJvbTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJvdXRlcz86IHtcbiAgICBwdWJsaWM/OiB7XG4gICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgZ2xvYmFsPzogYm9vbGVhbjtcbiAgICAgIHJvdXRlOiBzdHJpbmc7XG4gICAgICBjbGFpbXM/OiBTa3l1eENvbmZpZ0FueUFsbFNldDtcbiAgICAgIGVudGl0bGVtZW50VHlwZT86IHN0cmluZztcbiAgICAgIGVudGl0bGVtZW50cz86IFNreXV4Q29uZmlnQW55QWxsU2V0O1xuICAgICAgcGVybWlzc2lvbklkPzogc3RyaW5nO1xuICAgICAgcGVybWlzc2lvbnM/OiB7XG4gICAgICAgIGFkbWluPzogYm9vbGVhbjtcbiAgICAgICAgbGVnYWxFbnRpdHlBZG1pbj86IGJvb2xlYW47XG4gICAgICAgIHBlcm1pc3Npb25JZHM/OiBTa3l1eENvbmZpZ0FueUFsbFNldDtcbiAgICAgIH07XG4gICAgfVtdO1xuICAgIHJlZmVyZW5jZWQ/OiB7XG4gICAgICBhcHA6IHN0cmluZztcbiAgICAgIHJvdXRlOiBzdHJpbmc7XG4gICAgfVtdO1xuICB9O1xuICB0ZXN0U2V0dGluZ3M/OiBTa3l1eENvbmZpZ1Rlc3RTZXR0aW5ncztcbiAgb21uaWJhcj86IGFueTtcbiAgdXNlSGFzaFJvdXRpbmc/OiBib29sZWFuO1xuICBza3l1eE1vZHVsZXM/OiBzdHJpbmdbXTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUFwcENvbmZpZyB7XG4gIC8vIEFueSBwcm9wZXJ0aWVzIGR5bmFtaWNhbGx5IGFkZGVkIHZpYSBjb2RlXG4gIHB1YmxpYyBydW50aW1lITogUnVudGltZUNvbmZpZztcblxuICAvLyBBbnkgcHJvcGVydGllcyBkZWZpbmVkIGluIG9yIGluaGVyaXRlZCBmcm9tIHNreXV4Y29uZmlnLmpzb24gLyBza3l1eGNvbmZpZy5jb21tYW5kLmpzb25cbiAgcHVibGljIHNreXV4ITogU2t5dXhDb25maWc7XG59XG4iXX0=
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
2
|
+
import { SkyAppRuntimeConfigParams } from './params';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "./app-config-params";
|
5
|
+
/**
|
6
|
+
* Provides methods to interact with runtime config query parameters.
|
7
|
+
* @deprecated Use `SkyAppConfig.runtime.params` instead.
|
8
|
+
*/
|
9
|
+
export class SkyAppRuntimeConfigParamsProvider {
|
10
|
+
get params() {
|
11
|
+
return this.#_params;
|
12
|
+
}
|
13
|
+
#_params;
|
14
|
+
constructor(configParams) {
|
15
|
+
this.#_params = new SkyAppRuntimeConfigParams(window.location.href, configParams?.params || {});
|
16
|
+
}
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppRuntimeConfigParamsProvider, deps: [{ token: i1.SkyAppConfigParams, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
18
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppRuntimeConfigParamsProvider, providedIn: 'root' }); }
|
19
|
+
}
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppRuntimeConfigParamsProvider, decorators: [{
|
21
|
+
type: Injectable,
|
22
|
+
args: [{
|
23
|
+
providedIn: 'root',
|
24
|
+
}]
|
25
|
+
}], ctorParameters: function () { return [{ type: i1.SkyAppConfigParams, decorators: [{
|
26
|
+
type: Optional
|
27
|
+
}] }]; } });
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbmZpZy9zcmMvbGliL3BhcmFtcy1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7OztBQUVyRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUNBQWlDO0lBQzVDLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUSxDQUE0QjtJQUVwQyxZQUF3QixZQUFpQztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQXlCLENBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNwQixZQUFZLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztJQUNKLENBQUM7OEdBWlUsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsY0FGaEMsTUFBTTs7MkZBRVAsaUNBQWlDO2tCQUg3QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUFwcENvbmZpZ1BhcmFtcyB9IGZyb20gJy4vYXBwLWNvbmZpZy1wYXJhbXMnO1xuaW1wb3J0IHsgU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtcyB9IGZyb20gJy4vcGFyYW1zJztcblxuLyoqXG4gKiBQcm92aWRlcyBtZXRob2RzIHRvIGludGVyYWN0IHdpdGggcnVudGltZSBjb25maWcgcXVlcnkgcGFyYW1ldGVycy5cbiAqIEBkZXByZWNhdGVkIFVzZSBgU2t5QXBwQ29uZmlnLnJ1bnRpbWUucGFyYW1zYCBpbnN0ZWFkLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldCBwYXJhbXMoKTogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtcyB7XG4gICAgcmV0dXJuIHRoaXMuI19wYXJhbXM7XG4gIH1cblxuICAjX3BhcmFtczogU2t5QXBwUnVudGltZUNvbmZpZ1BhcmFtcztcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBjb25maWdQYXJhbXM/OiBTa3lBcHBDb25maWdQYXJhbXMpIHtcbiAgICB0aGlzLiNfcGFyYW1zID0gbmV3IFNreUFwcFJ1bnRpbWVDb25maWdQYXJhbXMoXG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgIGNvbmZpZ1BhcmFtcz8ucGFyYW1zIHx8IHt9XG4gICAgKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,175 @@
|
|
1
|
+
import { HttpParams, HttpUrlEncodingCodec } from '@angular/common/http';
|
2
|
+
/**
|
3
|
+
* Override Angular's default encoder because it excludes certain characters.
|
4
|
+
* @see https://github.com/angular/angular/blob/cb31dbc75ca4141d61cec3ba6e60505198208a0a/packages/common/http/src/params.ts#L96-L111
|
5
|
+
*/
|
6
|
+
class UrlEncoder extends HttpUrlEncodingCodec {
|
7
|
+
encodeKey(key) {
|
8
|
+
return encodeURIComponent(key);
|
9
|
+
}
|
10
|
+
encodeValue(key) {
|
11
|
+
return encodeURIComponent(key);
|
12
|
+
}
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Given a "url" (could be just querystring, or fully qualified),
|
16
|
+
* Returns the extracted HttpParams.
|
17
|
+
*/
|
18
|
+
function getUrlSearchParams(url) {
|
19
|
+
let qs = '';
|
20
|
+
if (url.indexOf('?') > -1) {
|
21
|
+
qs = url.split('?')[1];
|
22
|
+
qs = qs.split('#')[0];
|
23
|
+
}
|
24
|
+
return new HttpParams({
|
25
|
+
encoder: new UrlEncoder(),
|
26
|
+
fromString: qs,
|
27
|
+
});
|
28
|
+
}
|
29
|
+
export class SkyAppRuntimeConfigParams {
|
30
|
+
#params = {};
|
31
|
+
#defaultParamValues = {};
|
32
|
+
#requiredParams = [];
|
33
|
+
#encodedParams = [];
|
34
|
+
#excludeFromLinksParams = new Set();
|
35
|
+
#excludeFromRequestsParams = new Set();
|
36
|
+
constructor(url, configParams) {
|
37
|
+
const allowed = [];
|
38
|
+
for (const paramName of Object.keys(configParams)) {
|
39
|
+
const configParam = configParams[paramName];
|
40
|
+
// The config param could be present but be set to false/undefined indicating
|
41
|
+
// an override of the default parameter.
|
42
|
+
if (configParam) {
|
43
|
+
allowed.push(paramName);
|
44
|
+
// A boolean value may be present to simply indicate that a parameter is allowed.
|
45
|
+
// If the type is object, look for additional config properties.
|
46
|
+
if (typeof configParam === 'object') {
|
47
|
+
const paramValue = configParam.value;
|
48
|
+
if (configParam.required) {
|
49
|
+
this.#requiredParams.push(paramName);
|
50
|
+
}
|
51
|
+
if (paramValue) {
|
52
|
+
this.#params[paramName] = paramValue;
|
53
|
+
this.#defaultParamValues[paramName] = paramValue;
|
54
|
+
}
|
55
|
+
if (configParam.excludeFromLinks) {
|
56
|
+
this.#excludeFromLinksParams.add(paramName);
|
57
|
+
}
|
58
|
+
if (configParam.excludeFromRequests) {
|
59
|
+
this.#excludeFromRequestsParams.add(paramName);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
const httpParams = getUrlSearchParams(url);
|
65
|
+
// Get uppercase keys.
|
66
|
+
const allowedKeysUC = allowed.map((key) => key.toUpperCase());
|
67
|
+
const urlSearchParamKeys = Array.from(httpParams.keys());
|
68
|
+
// Filter to allowed params and override default values.
|
69
|
+
urlSearchParamKeys.forEach((givenKey) => {
|
70
|
+
const givenKeyUC = givenKey.toUpperCase();
|
71
|
+
allowedKeysUC.forEach((allowedKeyUC, index) => {
|
72
|
+
if (givenKeyUC === allowedKeyUC) {
|
73
|
+
const param = httpParams.get(givenKey);
|
74
|
+
if (param) {
|
75
|
+
this.#params[allowed[index]] = param;
|
76
|
+
this.#encodedParams.push(givenKey);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
});
|
80
|
+
});
|
81
|
+
}
|
82
|
+
/**
|
83
|
+
* Does the key exist
|
84
|
+
*/
|
85
|
+
has(key) {
|
86
|
+
return Object.prototype.hasOwnProperty.call(this.#params, key);
|
87
|
+
}
|
88
|
+
/**
|
89
|
+
* Are all the required params defined?
|
90
|
+
*/
|
91
|
+
hasAllRequiredParams() {
|
92
|
+
if (this.#requiredParams.length === 0) {
|
93
|
+
return true;
|
94
|
+
}
|
95
|
+
return this.#requiredParams.every((param) => {
|
96
|
+
return this.#params[param] !== undefined;
|
97
|
+
});
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Returns a flag indicating whether a parameter is required.
|
101
|
+
*/
|
102
|
+
isRequired(key) {
|
103
|
+
return this.#requiredParams.indexOf(key) >= 0;
|
104
|
+
}
|
105
|
+
/**
|
106
|
+
* Returns the decoded value of the requested param.
|
107
|
+
* @param key The parameter's key.
|
108
|
+
*/
|
109
|
+
get(key) {
|
110
|
+
if (this.has(key)) {
|
111
|
+
return this.#params[key];
|
112
|
+
}
|
113
|
+
return;
|
114
|
+
}
|
115
|
+
/**
|
116
|
+
* Returns the params object.
|
117
|
+
* @param excludeDefaults Exclude params that have default values
|
118
|
+
*/
|
119
|
+
getAll(excludeDefaults) {
|
120
|
+
const filteredParams = {};
|
121
|
+
this.getAllKeys().forEach((key) => {
|
122
|
+
if (!excludeDefaults ||
|
123
|
+
this.#params[key] !== this.#defaultParamValues[key]) {
|
124
|
+
filteredParams[key] = this.#params[key];
|
125
|
+
}
|
126
|
+
});
|
127
|
+
return filteredParams;
|
128
|
+
}
|
129
|
+
/**
|
130
|
+
* Returns all keys for current params.
|
131
|
+
*/
|
132
|
+
getAllKeys() {
|
133
|
+
return Object.keys(this.#params);
|
134
|
+
}
|
135
|
+
/**
|
136
|
+
* Adds the current params to the supplied URL.
|
137
|
+
*/
|
138
|
+
getUrl(url) {
|
139
|
+
return this.#buildUrlWithParams(url, this.#excludeFromRequestsParams);
|
140
|
+
}
|
141
|
+
/**
|
142
|
+
* Adds the current params to the supplied link URL.
|
143
|
+
*/
|
144
|
+
getLinkUrl(url) {
|
145
|
+
return this.#buildUrlWithParams(url, new Set([
|
146
|
+
...this.#excludeFromRequestsParams,
|
147
|
+
...this.#excludeFromLinksParams,
|
148
|
+
]));
|
149
|
+
}
|
150
|
+
#buildUrlWithParams(url, excludeParams) {
|
151
|
+
const existingParams = getUrlSearchParams(url);
|
152
|
+
// When encoding the params, keep the requested params separate so that
|
153
|
+
// we can leave the existing params as-is.
|
154
|
+
let requestedParams = getUrlSearchParams('');
|
155
|
+
// Add requested parameters to the URL.
|
156
|
+
for (const key of this.getAllKeys()) {
|
157
|
+
if (!excludeParams.has(key) && !existingParams.has(key)) {
|
158
|
+
const decodedValue = this.get(key);
|
159
|
+
if (decodedValue) {
|
160
|
+
requestedParams = requestedParams.set(key, decodedValue);
|
161
|
+
}
|
162
|
+
}
|
163
|
+
}
|
164
|
+
// Combine all requested parameters and their values, e.g. 'a=b'.
|
165
|
+
const joinedParams = requestedParams.toString();
|
166
|
+
// Build and return the final URL.
|
167
|
+
const [beforeFragment, fragment] = url.split('#', 2);
|
168
|
+
const delimiter = url.includes('?') ? '&' : '?';
|
169
|
+
return joinedParams.length === 0
|
170
|
+
? url
|
171
|
+
: `${beforeFragment}${delimiter}${joinedParams}` +
|
172
|
+
(fragment ? `#${fragment}` : '');
|
173
|
+
}
|
174
|
+
}
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbmZpZy9zcmMvbGliL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEU7OztHQUdHO0FBQ0gsTUFBTSxVQUFXLFNBQVEsb0JBQW9CO0lBQzNCLFNBQVMsQ0FBQyxHQUE4QjtRQUN0RCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFZSxXQUFXLENBQUMsR0FBOEI7UUFDeEQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGtCQUFrQixDQUFDLEdBQVc7SUFDckMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRVosSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUNwQixPQUFPLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDekIsVUFBVSxFQUFFLEVBQUU7S0FDZixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxPQUFPLEdBQTJCLEVBQUUsQ0FBQztJQUVyQyxtQkFBbUIsR0FBMkIsRUFBRSxDQUFDO0lBRWpELGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFL0IsY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUU5Qix1QkFBdUIsR0FB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LEdBQUcsQ0FBQztRQUVoRCxPQUFPLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUM5QixDQUFDLENBQUMsR0FBRztZQUNMLENBQUMsQ0FBQyxHQUFHLGNBQWMsR0FBRyxTQUFTLEdBQUcsWUFBWSxFQUFFO2dCQUM1QyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcywgSHR0cFVybEVuY29kaW5nQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IFNreXV4Q29uZmlnUGFyYW1zIH0gZnJvbSAnLi9jb25maWctcGFyYW1zJztcblxuLyoqXG4gKiBPdmVycmlkZSBBbmd1bGFyJ3MgZGVmYXVsdCBlbmNvZGVyIGJlY2F1c2UgaXQgZXhjbHVkZXMgY2VydGFpbiBjaGFyYWN0ZXJzLlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvY2IzMWRiYzc1Y2E0MTQxZDYxY2VjM2JhNmU2MDUwNTE5ODIwOGEwYS9wYWNrYWdlcy9jb21tb24vaHR0cC9zcmMvcGFyYW1zLnRzI0w5Ni1MMTExXG4gKi9cbmNsYXNzIFVybEVuY29kZXIgZXh0ZW5kcyBIdHRwVXJsRW5jb2RpbmdDb2RlYyB7XG4gIHB1YmxpYyBvdmVycmlkZSBlbmNvZGVLZXkoa2V5OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZW5jb2RlVmFsdWUoa2V5OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gIH1cbn1cblxuLyoqXG4gKiBHaXZlbiBhIFwidXJsXCIgKGNvdWxkIGJlIGp1c3QgcXVlcnlzdHJpbmcsIG9yIGZ1bGx5IHF1YWxpZmllZCksXG4gKiBSZXR1cm5zIHRoZSBleHRyYWN0ZWQgSHR0cFBhcmFtcy5cbiAqL1xuZnVuY3Rpb24gZ2V0VXJsU2VhcmNoUGFyYW1zKHVybDogc3RyaW5nKTogSHR0cFBhcmFtcyB7XG4gIGxldCBxcyA9ICcnO1xuXG4gIGlmICh1cmwuaW5kZXhPZignPycpID4gLTEpIHtcbiAgICBxcyA9IHVybC5zcGxpdCgnPycpWzFdO1xuICAgIHFzID0gcXMuc3BsaXQoJyMnKVswXTtcbiAgfVxuXG4gIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XG4gICAgZW5jb2RlcjogbmV3IFVybEVuY29kZXIoKSxcbiAgICBmcm9tU3RyaW5nOiBxcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBTa3lBcHBSdW50aW1lQ29uZmlnUGFyYW1zIHtcbiAgI3BhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICNkZWZhdWx0UGFyYW1WYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAjcmVxdWlyZWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgI2VuY29kZWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgI2V4Y2x1ZGVGcm9tTGlua3NQYXJhbXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgI2V4Y2x1ZGVGcm9tUmVxdWVzdHNQYXJhbXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZywgY29uZmlnUGFyYW1zOiBTa3l1eENvbmZpZ1BhcmFtcykge1xuICAgIGNvbnN0IGFsbG93ZWQ6IHN0cmluZ1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHBhcmFtTmFtZSBvZiBPYmplY3Qua2V5cyhjb25maWdQYXJhbXMpKSB7XG4gICAgICBjb25zdCBjb25maWdQYXJhbSA9IGNvbmZpZ1BhcmFtc1twYXJhbU5hbWVdO1xuXG4gICAgICAvLyBUaGUgY29uZmlnIHBhcmFtIGNvdWxkIGJlIHByZXNlbnQgYnV0IGJlIHNldCB0byBmYWxzZS91bmRlZmluZWQgaW5kaWNhdGluZ1xuICAgICAgLy8gYW4gb3ZlcnJpZGUgb2YgdGhlIGRlZmF1bHQgcGFyYW1ldGVyLlxuICAgICAgaWYgKGNvbmZpZ1BhcmFtKSB7XG4gICAgICAgIGFsbG93ZWQucHVzaChwYXJhbU5hbWUpO1xuXG4gICAgICAgIC8vIEEgYm9vbGVhbiB2YWx1ZSBtYXkgYmUgcHJlc2VudCB0byBzaW1wbHkgaW5kaWNhdGUgdGhhdCBhIHBhcmFtZXRlciBpcyBhbGxvd2VkLlxuICAgICAgICAvLyBJZiB0aGUgdHlwZSBpcyBvYmplY3QsIGxvb2sgZm9yIGFkZGl0aW9uYWwgY29uZmlnIHByb3BlcnRpZXMuXG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnUGFyYW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgcGFyYW1WYWx1ZSA9IGNvbmZpZ1BhcmFtLnZhbHVlO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZ1BhcmFtLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLiNyZXF1aXJlZFBhcmFtcy5wdXNoKHBhcmFtTmFtZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhcmFtVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuI3BhcmFtc1twYXJhbU5hbWVdID0gcGFyYW1WYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuI2RlZmF1bHRQYXJhbVZhbHVlc1twYXJhbU5hbWVdID0gcGFyYW1WYWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29uZmlnUGFyYW0uZXhjbHVkZUZyb21MaW5rcykge1xuICAgICAgICAgICAgdGhpcy4jZXhjbHVkZUZyb21MaW5rc1BhcmFtcy5hZGQocGFyYW1OYW1lKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29uZmlnUGFyYW0uZXhjbHVkZUZyb21SZXF1ZXN0cykge1xuICAgICAgICAgICAgdGhpcy4jZXhjbHVkZUZyb21SZXF1ZXN0c1BhcmFtcy5hZGQocGFyYW1OYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBodHRwUGFyYW1zID0gZ2V0VXJsU2VhcmNoUGFyYW1zKHVybCk7XG5cbiAgICAvLyBHZXQgdXBwZXJjYXNlIGtleXMuXG4gICAgY29uc3QgYWxsb3dlZEtleXNVQyA9IGFsbG93ZWQubWFwKChrZXkpID0+IGtleS50b1VwcGVyQ2FzZSgpKTtcbiAgICBjb25zdCB1cmxTZWFyY2hQYXJhbUtleXMgPSBBcnJheS5mcm9tKGh0dHBQYXJhbXMua2V5cygpKTtcblxuICAgIC8vIEZpbHRlciB0byBhbGxvd2VkIHBhcmFtcyBhbmQgb3ZlcnJpZGUgZGVmYXVsdCB2YWx1ZXMuXG4gICAgdXJsU2VhcmNoUGFyYW1LZXlzLmZvckVhY2goKGdpdmVuS2V5KSA9PiB7XG4gICAgICBjb25zdCBnaXZlbktleVVDID0gZ2l2ZW5LZXkudG9VcHBlckNhc2UoKTtcbiAgICAgIGFsbG93ZWRLZXlzVUMuZm9yRWFjaCgoYWxsb3dlZEtleVVDLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoZ2l2ZW5LZXlVQyA9PT0gYWxsb3dlZEtleVVDKSB7XG4gICAgICAgICAgY29uc3QgcGFyYW0gPSBodHRwUGFyYW1zLmdldChnaXZlbktleSk7XG5cbiAgICAgICAgICBpZiAocGFyYW0pIHtcbiAgICAgICAgICAgIHRoaXMuI3BhcmFtc1thbGxvd2VkW2luZGV4XV0gPSBwYXJhbTtcbiAgICAgICAgICAgIHRoaXMuI2VuY29kZWRQYXJhbXMucHVzaChnaXZlbktleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEb2VzIHRoZSBrZXkgZXhpc3RcbiAgICovXG4gIHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuI3BhcmFtcywga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcmUgYWxsIHRoZSByZXF1aXJlZCBwYXJhbXMgZGVmaW5lZD9cbiAgICovXG4gIHB1YmxpYyBoYXNBbGxSZXF1aXJlZFBhcmFtcygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jcmVxdWlyZWRQYXJhbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jcmVxdWlyZWRQYXJhbXMuZXZlcnkoKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLiNwYXJhbXNbcGFyYW1dICE9PSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIGEgcGFyYW1ldGVyIGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcHVibGljIGlzUmVxdWlyZWQoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jcmVxdWlyZWRQYXJhbXMuaW5kZXhPZihrZXkpID49IDA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGVjb2RlZCB2YWx1ZSBvZiB0aGUgcmVxdWVzdGVkIHBhcmFtLlxuICAgKiBAcGFyYW0ga2V5IFRoZSBwYXJhbWV0ZXIncyBrZXkuXG4gICAqL1xuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5oYXMoa2V5KSkge1xuICAgICAgcmV0dXJuIHRoaXMuI3BhcmFtc1trZXldO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwYXJhbXMgb2JqZWN0LlxuICAgKiBAcGFyYW0gZXhjbHVkZURlZmF1bHRzIEV4Y2x1ZGUgcGFyYW1zIHRoYXQgaGF2ZSBkZWZhdWx0IHZhbHVlc1xuICAgKi9cbiAgcHVibGljIGdldEFsbChleGNsdWRlRGVmYXVsdHM/OiBib29sZWFuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgZmlsdGVyZWRQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIHRoaXMuZ2V0QWxsS2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhZXhjbHVkZURlZmF1bHRzIHx8XG4gICAgICAgIHRoaXMuI3BhcmFtc1trZXldICE9PSB0aGlzLiNkZWZhdWx0UGFyYW1WYWx1ZXNba2V5XVxuICAgICAgKSB7XG4gICAgICAgIGZpbHRlcmVkUGFyYW1zW2tleV0gPSB0aGlzLiNwYXJhbXNba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWx0ZXJlZFBhcmFtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBrZXlzIGZvciBjdXJyZW50IHBhcmFtcy5cbiAgICovXG4gIHB1YmxpYyBnZXRBbGxLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy4jcGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBjdXJyZW50IHBhcmFtcyB0byB0aGUgc3VwcGxpZWQgVVJMLlxuICAgKi9cbiAgcHVibGljIGdldFVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2J1aWxkVXJsV2l0aFBhcmFtcyh1cmwsIHRoaXMuI2V4Y2x1ZGVGcm9tUmVxdWVzdHNQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIGN1cnJlbnQgcGFyYW1zIHRvIHRoZSBzdXBwbGllZCBsaW5rIFVSTC5cbiAgICovXG4gIHB1YmxpYyBnZXRMaW5rVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jYnVpbGRVcmxXaXRoUGFyYW1zKFxuICAgICAgdXJsLFxuICAgICAgbmV3IFNldChbXG4gICAgICAgIC4uLnRoaXMuI2V4Y2x1ZGVGcm9tUmVxdWVzdHNQYXJhbXMsXG4gICAgICAgIC4uLnRoaXMuI2V4Y2x1ZGVGcm9tTGlua3NQYXJhbXMsXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICAjYnVpbGRVcmxXaXRoUGFyYW1zKHVybDogc3RyaW5nLCBleGNsdWRlUGFyYW1zOiBTZXQ8c3RyaW5nPik6IHN0cmluZyB7XG4gICAgY29uc3QgZXhpc3RpbmdQYXJhbXMgPSBnZXRVcmxTZWFyY2hQYXJhbXModXJsKTtcblxuICAgIC8vIFdoZW4gZW5jb2RpbmcgdGhlIHBhcmFtcywga2VlcCB0aGUgcmVxdWVzdGVkIHBhcmFtcyBzZXBhcmF0ZSBzbyB0aGF0XG4gICAgLy8gd2UgY2FuIGxlYXZlIHRoZSBleGlzdGluZyBwYXJhbXMgYXMtaXMuXG4gICAgbGV0IHJlcXVlc3RlZFBhcmFtcyA9IGdldFVybFNlYXJjaFBhcmFtcygnJyk7XG5cbiAgICAvLyBBZGQgcmVxdWVzdGVkIHBhcmFtZXRlcnMgdG8gdGhlIFVSTC5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmdldEFsbEtleXMoKSkge1xuICAgICAgaWYgKCFleGNsdWRlUGFyYW1zLmhhcyhrZXkpICYmICFleGlzdGluZ1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICBjb25zdCBkZWNvZGVkVmFsdWUgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICBpZiAoZGVjb2RlZFZhbHVlKSB7XG4gICAgICAgICAgcmVxdWVzdGVkUGFyYW1zID0gcmVxdWVzdGVkUGFyYW1zLnNldChrZXksIGRlY29kZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb21iaW5lIGFsbCByZXF1ZXN0ZWQgcGFyYW1ldGVycyBhbmQgdGhlaXIgdmFsdWVzLCBlLmcuICdhPWInLlxuICAgIGNvbnN0IGpvaW5lZFBhcmFtcyA9IHJlcXVlc3RlZFBhcmFtcy50b1N0cmluZygpO1xuXG4gICAgLy8gQnVpbGQgYW5kIHJldHVybiB0aGUgZmluYWwgVVJMLlxuICAgIGNvbnN0IFtiZWZvcmVGcmFnbWVudCwgZnJhZ21lbnRdID0gdXJsLnNwbGl0KCcjJywgMik7XG4gICAgY29uc3QgZGVsaW1pdGVyID0gdXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPyc7XG5cbiAgICByZXR1cm4gam9pbmVkUGFyYW1zLmxlbmd0aCA9PT0gMFxuICAgICAgPyB1cmxcbiAgICAgIDogYCR7YmVmb3JlRnJhZ21lbnR9JHtkZWxpbWl0ZXJ9JHtqb2luZWRQYXJhbXN9YCArXG4gICAgICAgICAgKGZyYWdtZW50ID8gYCMke2ZyYWdtZW50fWAgOiAnJyk7XG4gIH1cbn1cbiJdfQ==
|