@c8y/ngx-components 1021.71.1 → 1021.71.2
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/core/beta-feature/beta-preview-drawer.factory.d.ts.map +1 -1
- package/core/beta-feature/beta-preview.component.d.ts +0 -1
- package/core/beta-feature/beta-preview.component.d.ts.map +1 -1
- package/core/beta-feature/beta-preview.service.d.ts +4 -0
- package/core/beta-feature/beta-preview.service.d.ts.map +1 -1
- package/core/beta-feature/feature-cache.service.d.ts.map +1 -1
- package/esm2022/core/beta-feature/beta-preview-drawer.factory.mjs +5 -2
- package/esm2022/core/beta-feature/beta-preview.component.mjs +4 -7
- package/esm2022/core/beta-feature/beta-preview.service.mjs +14 -2
- package/esm2022/core/beta-feature/feature-cache.service.mjs +9 -3
- package/fesm2022/c8y-ngx-components.mjs +28 -10
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +33 -10
- package/locales/es.po +33 -10
- package/locales/fr.po +33 -10
- package/locales/ja_JP.po +32 -10
- package/locales/ko.po +32 -9
- package/locales/nl.po +33 -10
- package/locales/pl.po +33 -10
- package/locales/pt_BR.po +32 -9
- package/locales/zh_CN.po +32 -9
- package/locales/zh_TW.po +33 -10
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beta-preview-drawer.factory.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/beta-preview-drawer.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAiB,UAAU,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;;AAE5D,qBACa,wBAAyB,YAAW,gBAAgB,CAAC,UAAU,CAAC;IASzE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IAVrB,SAAS,CAAC,UAAU,EAAE,UAAU,CAK9B;gBAGQ,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW;IAGlC,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC;IAY5C,OAAO,CAAC,sBAAsB;yCA1BnB,wBAAwB;6CAAxB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"beta-preview-drawer.factory.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/beta-preview-drawer.factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAiB,UAAU,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;;AAE5D,qBACa,wBAAyB,YAAW,gBAAgB,CAAC,UAAU,CAAC;IASzE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IAVrB,SAAS,CAAC,UAAU,EAAE,UAAU,CAK9B;gBAGQ,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW;IAGlC,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC;IAY5C,OAAO,CAAC,sBAAsB;yCA1BnB,wBAAwB;6CAAxB,wBAAwB;CA+CpC"}
|
|
@@ -17,7 +17,6 @@ export declare class BetaPreviewComponent {
|
|
|
17
17
|
updateDescription(): Promise<void>;
|
|
18
18
|
isComponent(description: string | Type<any> | Promise<string | Type<any>>): description is Type<any>;
|
|
19
19
|
onToggle(feature: BetaFeature, event: Event): Promise<void>;
|
|
20
|
-
featureKeyExists(key: string): Observable<boolean>;
|
|
21
20
|
close(): void;
|
|
22
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<BetaPreviewComponent, never>;
|
|
23
22
|
static ɵcmp: i0.ɵɵComponentDeclaration<BetaPreviewComponent, "c8y-beta-preview", never, {}, {}, never, never, true, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beta-preview.component.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/beta-preview.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,IAAI,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAkB,UAAU,EAAE,MAAM,MAAM,CAAC;;AAQnE,qBAQa,oBAAoB;IAC/B,eAAe,EAAE,WAAW,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,YAAY,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CACrD;IAC1B,OAAO,CAAC,YAAY,CAAmD;IAEvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0B;IAC7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IAEjE,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"beta-preview.component.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/beta-preview.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,IAAI,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAkB,UAAU,EAAE,MAAM,MAAM,CAAC;;AAQnE,qBAQa,oBAAoB;IAC/B,eAAe,EAAE,WAAW,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,YAAY,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CACrD;IAC1B,OAAO,CAAC,YAAY,CAAmD;IAEvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0B;IAC7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IAEjE,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAmD;;IAQjF,QAAQ;IAMR,qBAAqB,CAAC,OAAO,EAAE,WAAW;IAK1C,iBAAiB;IAUvB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAInE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjE,KAAK;yCAjDM,oBAAoB;2CAApB,oBAAoB;CAoDhC"}
|
|
@@ -35,6 +35,10 @@ export declare class PreviewService extends ExtensionPointForPlugins<BetaFeature
|
|
|
35
35
|
* This assumes all features are provided via the `items$` observable.
|
|
36
36
|
*/
|
|
37
37
|
markAllFeaturesAsSeen(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Filters the features to only include those that are available by checking the feature toggle API.
|
|
40
|
+
*/
|
|
41
|
+
getAvailableFeatures$(): Observable<BetaFeature[]>;
|
|
38
42
|
/**
|
|
39
43
|
*
|
|
40
44
|
* @returns An array of feature names that have been seen by the user. This is retrieved from local storage.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beta-preview.service.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/beta-preview.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAiC,UAAU,EAAM,MAAM,MAAM,CAAC;AAEtF,OAAO,EACL,kBAAkB,EAClB,eAAe,EAGf,wBAAwB,EAIzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;;AAK3E,eAAO,MAAM,YAAY,+BAAoD,CAAC;AAE9E,wBAAgB,WAAW,CACzB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,4HAGtC;AAED,qBACa,cAAe,SAAQ,wBAAwB,CAAC,WAAW,CAAC;IACvE,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAA+B;IAChE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,aAAa,CAAyD;IAC9E,kBAAkB,sBAGhB;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAEzD,OAAO,CAAC,yBAAyB,CAA0B;gBAE/C,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,qBAAqB;IAIxE,IAAI,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC,CAE5B;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAuB3C;;;;OAIG;IACG,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5C;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB,SAAS,CAAC,oBAAoB,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"beta-preview.service.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/beta-preview.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAiC,UAAU,EAAM,MAAM,MAAM,CAAC;AAEtF,OAAO,EACL,kBAAkB,EAClB,eAAe,EAGf,wBAAwB,EAIzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;;AAK3E,eAAO,MAAM,YAAY,+BAAoD,CAAC;AAE9E,wBAAgB,WAAW,CACzB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,4HAGtC;AAED,qBACa,cAAe,SAAQ,wBAAwB,CAAC,WAAW,CAAC;IACvE,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAA+B;IAChE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAuC;IACxE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,aAAa,CAAyD;IAC9E,kBAAkB,sBAGhB;IACF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA+B;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IAEzD,OAAO,CAAC,yBAAyB,CAA0B;gBAE/C,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,qBAAqB;IAIxE,IAAI,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC,CAE5B;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAuB3C;;;;OAIG;IACG,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5C;;OAEG;IACH,qBAAqB,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;IAgBlD;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB,SAAS,CAAC,oBAAoB,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;yCA/HhD,cAAc;6CAAd,cAAc;CA0I1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-cache.service.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/feature-cache.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAmC,UAAU,EAAE,MAAM,MAAM,CAAC;;AAEnE,qBACa,mBAAmB;IAMlB,OAAO,CAAC,cAAc;IALlC,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,SAAS,CAGf;gBACkB,cAAc,EAAE,cAAc;IAElD;;;OAGG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAI/C,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IASjD,iBAAiB,IAAI,IAAI;YAIX,YAAY;yCAtCf,mBAAmB;6CAAnB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"feature-cache.service.d.ts","sourceRoot":"","sources":["../../../core/beta-feature/feature-cache.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAmC,UAAU,EAAE,MAAM,MAAM,CAAC;;AAEnE,qBACa,mBAAmB;IAMlB,OAAO,CAAC,cAAc;IALlC,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,SAAS,CAGf;gBACkB,cAAc,EAAE,cAAc;IAElD;;;OAGG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IAI/C,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;IASjD,iBAAiB,IAAI,IAAI;YAIX,YAAY;yCAtCf,mBAAmB;6CAAnB,mBAAmB;CA+C/B"}
|
|
@@ -30,7 +30,10 @@ export class BetaPreviewDrawerFactory {
|
|
|
30
30
|
}));
|
|
31
31
|
}
|
|
32
32
|
shouldShowBetaPreview$() {
|
|
33
|
-
return combineLatest([
|
|
33
|
+
return combineLatest([
|
|
34
|
+
this.options.get$('hideBetaPreview'),
|
|
35
|
+
this.previewService.getAvailableFeatures$()
|
|
36
|
+
]).pipe(map(([hideBetaPreview, items]) => {
|
|
34
37
|
const hasItems = items.length > 0;
|
|
35
38
|
if (!hasItems) {
|
|
36
39
|
return false;
|
|
@@ -49,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
49
52
|
type: Injectable,
|
|
50
53
|
args: [{ providedIn: 'root' }]
|
|
51
54
|
}], ctorParameters: () => [{ type: i1.OptionsService }, { type: i2.PreviewService }, { type: i3.Permissions }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0YS1wcmV2aWV3LWRyYXdlci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9iZXRhLWZlYXR1cmUvYmV0YS1wcmV2aWV3LWRyYXdlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBRzVELE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDVSxPQUF1QixFQUN2QixjQUE4QixFQUM5QixXQUF3QjtRQUZ4QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFWeEIsZUFBVSxHQUFlO1lBQ2pDLFNBQVMsRUFBRSwwQkFBMEI7WUFDckMsUUFBUSxFQUFFLE9BQU87WUFDakIsUUFBUSxFQUFFLEVBQUU7WUFDWixFQUFFLEVBQUUsYUFBYTtTQUNsQixDQUFDO0lBTUMsQ0FBQztJQUVKLEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FDdkMsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDMUIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxhQUFhLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRTtTQUM1QyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBRXhGLElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNsQyxPQUFPLFFBQVEsSUFBSSxZQUFZLENBQUM7WUFDbEMsQ0FBQztZQUVELE9BQU8sQ0FBQyxlQUFlLElBQUksUUFBUSxJQUFJLFlBQVksQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0E5Q1Usd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzs0RkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4dGVuc2lvbkZhY3RvcnkgfSBmcm9tICcuLi9jb21tb24vZXh0ZW5zaW9uLWhvb2tzJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBEcmF3ZXJJdGVtIH0gZnJvbSAnLi4vZHJhd2VyL2RyYXdlci5tb2RlbCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmV0YVByZXZpZXdCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2JldGEtcHJldmlldy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9iZXRhLXByZXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gJy4uL2NvbW1vbi9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBCZXRhUHJldmlld0RyYXdlckZhY3RvcnkgaW1wbGVtZW50cyBFeHRlbnNpb25GYWN0b3J5PERyYXdlckl0ZW0+IHtcbiAgcHJvdGVjdGVkIGRyYXdlckl0ZW06IERyYXdlckl0ZW0gPSB7XG4gICAgY29tcG9uZW50OiBCZXRhUHJldmlld0J1dHRvbkNvbXBvbmVudCxcbiAgICBwb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICBwcmlvcml0eTogODAsXG4gICAgaWQ6ICdiZXRhUHJldmlldydcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJldmlld1NlcnZpY2U6IFByZXZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25zXG4gICkge31cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxEcmF3ZXJJdGVtW10gfCBEcmF3ZXJJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdWxkU2hvd0JldGFQcmV2aWV3JCgpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgbWFwKHNob3VsZFNob3dCZXRhUHJldmlldyA9PiB7XG4gICAgICAgIGlmIChzaG91bGRTaG93QmV0YVByZXZpZXcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5kcmF3ZXJJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkU2hvd0JldGFQcmV2aWV3JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm9wdGlvbnMuZ2V0JCgnaGlkZUJldGFQcmV2aWV3JyksXG4gICAgICB0aGlzLnByZXZpZXdTZXJ2aWNlLmdldEF2YWlsYWJsZUZlYXR1cmVzJCgpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2hpZGVCZXRhUHJldmlldywgaXRlbXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGhhc0l0ZW1zID0gaXRlbXMubGVuZ3RoID4gMDtcbiAgICAgICAgaWYgKCFoYXNJdGVtcykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc0FkbWluUm9sZSA9IHRoaXMucGVybWlzc2lvbnMuaGFzUm9sZShQZXJtaXNzaW9ucy5ST0xFX1RFTkFOVF9NQU5BR0VNRU5UX0FETUlOKTtcblxuICAgICAgICBpZiAoaGlkZUJldGFQcmV2aWV3ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gaGFzSXRlbXMgJiYgaGFzQWRtaW5Sb2xlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICFoaWRlQmV0YVByZXZpZXcgJiYgaGFzSXRlbXMgJiYgaGFzQWRtaW5Sb2xlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -17,7 +17,7 @@ export class BetaPreviewComponent {
|
|
|
17
17
|
this.betaPreviewService = inject(PreviewService);
|
|
18
18
|
this.featureCacheService = inject(FeatureCacheService);
|
|
19
19
|
this.markdownToHtmlPipe = inject(MarkdownToHtmlPipe);
|
|
20
|
-
this.features$ = this.betaPreviewService.
|
|
20
|
+
this.features$ = this.betaPreviewService.getAvailableFeatures$();
|
|
21
21
|
this.shouldClose = new Promise(resolve => {
|
|
22
22
|
this.resolveClose = resolve;
|
|
23
23
|
});
|
|
@@ -48,17 +48,14 @@ export class BetaPreviewComponent {
|
|
|
48
48
|
const isChecked = event.target.checked;
|
|
49
49
|
await this.betaPreviewService.setFeatureActiveState(feature.key, isChecked);
|
|
50
50
|
}
|
|
51
|
-
featureKeyExists(key) {
|
|
52
|
-
return this.featureCacheService.featureExists(key);
|
|
53
|
-
}
|
|
54
51
|
close() {
|
|
55
52
|
this.resolveClose(true);
|
|
56
53
|
}
|
|
57
54
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BetaPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BetaPreviewComponent, isStandalone: true, selector: "c8y-beta-preview", host: { classAttribute: "d-contents" }, providers: [MarkdownToHtmlPipe], ngImport: i0, template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BetaPreviewComponent, isStandalone: true, selector: "c8y-beta-preview", host: { classAttribute: "d-contents" }, providers: [MarkdownToHtmlPipe], ngImport: i0, template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <button\n class=\"d-flex gap-4 text-truncate flex-grow\"\n title=\"{{ feature.label }}\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n (click)=\"updateSelectedFeature(feature)\"\n >\n <i\n class=\"m-l-0\"\n [c8yIcon]=\"'science'\"\n ></i>\n {{ feature.label }}\n </button>\n <div\n class=\"a-s-stretch d-flex a-i-center separator-bottom p-r-16\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n >\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Enable or disable' | translate }}\"\n >\n <input\n [attr.aria-label]=\"feature.label\"\n type=\"checkbox\"\n [checked]=\"feature.key | featureState | async\"\n (change)=\"$event.stopPropagation(); onToggle(feature, $event)\"\n />\n <span class=\"slider round\"></span>\n </label>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-8 col-lg-9 p-24 inner-scroll\"\n *ngIf=\"selectedFeature\"\n >\n <span class=\"tag tag--primary h4\">\n {{ 'Feature preview' | translate }} \u2014 {{ selectedFeature.label }}\n </span>\n <div *ngIf=\"isComponent(description$.value); else stringDescription\">\n <ng-container *ngComponentOutlet=\"description$.value\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n</div>\n\n<ng-template #stringDescription>\n <p [innerHTML]=\"description$.value\"></p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: ListGroupModule }, { kind: "pipe", type: FeatureStatePipe, name: "featureState" }] }); }
|
|
59
56
|
}
|
|
60
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BetaPreviewComponent, decorators: [{
|
|
61
58
|
type: Component,
|
|
62
|
-
args: [{ selector: 'c8y-beta-preview', host: { class: 'd-contents' }, standalone: true, imports: [NgForOf, NgIf, AsyncPipe, CommonModule, ListGroupModule, FeatureStatePipe], providers: [MarkdownToHtmlPipe], template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <
|
|
59
|
+
args: [{ selector: 'c8y-beta-preview', host: { class: 'd-contents' }, standalone: true, imports: [NgForOf, NgIf, AsyncPipe, CommonModule, ListGroupModule, FeatureStatePipe], providers: [MarkdownToHtmlPipe], template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <button\n class=\"d-flex gap-4 text-truncate flex-grow\"\n title=\"{{ feature.label }}\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n (click)=\"updateSelectedFeature(feature)\"\n >\n <i\n class=\"m-l-0\"\n [c8yIcon]=\"'science'\"\n ></i>\n {{ feature.label }}\n </button>\n <div\n class=\"a-s-stretch d-flex a-i-center separator-bottom p-r-16\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n >\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Enable or disable' | translate }}\"\n >\n <input\n [attr.aria-label]=\"feature.label\"\n type=\"checkbox\"\n [checked]=\"feature.key | featureState | async\"\n (change)=\"$event.stopPropagation(); onToggle(feature, $event)\"\n />\n <span class=\"slider round\"></span>\n </label>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-8 col-lg-9 p-24 inner-scroll\"\n *ngIf=\"selectedFeature\"\n >\n <span class=\"tag tag--primary h4\">\n {{ 'Feature preview' | translate }} \u2014 {{ selectedFeature.label }}\n </span>\n <div *ngIf=\"isComponent(description$.value); else stringDescription\">\n <ng-container *ngComponentOutlet=\"description$.value\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n</div>\n\n<ng-template #stringDescription>\n <p [innerHTML]=\"description$.value\"></p>\n</ng-template>\n" }]
|
|
63
60
|
}], ctorParameters: () => [] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0YS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYmV0YS1mZWF0dXJlL2JldGEtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2JldGEtZmVhdHVyZS9iZXRhLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBVTlELE1BQU0sT0FBTyxvQkFBb0I7SUFhL0I7UUFWQSxpQkFBWSxHQUNWLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBR1QsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLGNBQVMsR0FBOEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztRQUdwRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksT0FBTyxDQUFVLE9BQU8sQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQUMsT0FBb0I7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7UUFDL0IsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQjtRQUNyQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDbEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUE2RDtRQUN2RSxPQUFPLFdBQVcsWUFBWSxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBb0IsRUFBRSxLQUFZO1FBQy9DLE1BQU0sU0FBUyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLE9BQU8sQ0FBQztRQUM3RCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0F2RFUsb0JBQW9CO21HQUFwQixvQkFBb0IsdUdBRnBCLENBQUMsa0JBQWtCLENBQUMsMEJDaEJqQywrN0dBMEdBLDRDRDNGWSxPQUFPLG1IQUFFLElBQUksd0ZBQUUsU0FBUyw2Q0FBRSxZQUFZLCtuQkFBRSxlQUFlLDBCQUFFLGdCQUFnQjs7NEZBR3hFLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxrQkFBa0IsUUFFdEIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGNBQ2pCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFDekUsQ0FBQyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZXRhRmVhdHVyZSB9IGZyb20gJy4vYmV0YS1wcmV2aWV3Lm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE1hcmtkb3duVG9IdG1sUGlwZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBMaXN0R3JvdXBNb2R1bGUgfSBmcm9tICcuLi9saXN0LWdyb3VwJztcbmltcG9ydCB7IFByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9iZXRhLXByZXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlU3RhdGVQaXBlIH0gZnJvbSAnLi9mZWF0dXJlLXN0YXRlLnBpcGUnO1xuaW1wb3J0IHsgRmVhdHVyZUNhY2hlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS1jYWNoZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJldGEtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iZXRhLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nRm9yT2YsIE5nSWYsIEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlLCBMaXN0R3JvdXBNb2R1bGUsIEZlYXR1cmVTdGF0ZVBpcGVdLFxuICBwcm92aWRlcnM6IFtNYXJrZG93blRvSHRtbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJldGFQcmV2aWV3Q29tcG9uZW50IHtcbiAgc2VsZWN0ZWRGZWF0dXJlOiBCZXRhRmVhdHVyZTtcbiAgc2hvdWxkQ2xvc2U6IFByb21pc2U8Ym9vbGVhbj47XG4gIGRlc2NyaXB0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IFR5cGU8YW55PiB8IFByb21pc2U8c3RyaW5nIHwgVHlwZTxhbnk+Pj4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBwcml2YXRlIHJlc29sdmVDbG9zZSE6ICh2YWx1ZTogYm9vbGVhbiB8IFByb21pc2VMaWtlPGJvb2xlYW4+KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmV0YVByZXZpZXdTZXJ2aWNlID0gaW5qZWN0KFByZXZpZXdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlQ2FjaGVTZXJ2aWNlID0gaW5qZWN0KEZlYXR1cmVDYWNoZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1hcmtkb3duVG9IdG1sUGlwZSA9IGluamVjdChNYXJrZG93blRvSHRtbFBpcGUpO1xuXG4gIGZlYXR1cmVzJDogT2JzZXJ2YWJsZTxCZXRhRmVhdHVyZVtdPiA9IHRoaXMuYmV0YVByZXZpZXdTZXJ2aWNlLml0ZW1zJDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNob3VsZENsb3NlID0gbmV3IFByb21pc2U8Ym9vbGVhbj4ocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmVDbG9zZSA9IHJlc29sdmU7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmJldGFQcmV2aWV3U2VydmljZS5tYXJrQWxsRmVhdHVyZXNBc1NlZW4oKTtcbiAgICBjb25zdCBmZWF0dXJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmVhdHVyZXMkKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkRmVhdHVyZShmZWF0dXJlc1swXSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVTZWxlY3RlZEZlYXR1cmUoZmVhdHVyZTogQmV0YUZlYXR1cmUpIHtcbiAgICB0aGlzLnNlbGVjdGVkRmVhdHVyZSA9IGZlYXR1cmU7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVEZXNjcmlwdGlvbigpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRGVzY3JpcHRpb24oKSB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCB0aGlzLnNlbGVjdGVkRmVhdHVyZT8uZGVzY3JpcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNDb21wb25lbnQoZGVzY3JpcHRpb24pKSB7XG4gICAgICBjb25zdCBodG1sID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5tYXJrZG93blRvSHRtbFBpcGUudHJhbnNmb3JtKGRlc2NyaXB0aW9uKSk7XG4gICAgICB0aGlzLmRlc2NyaXB0aW9uJC5uZXh0KGh0bWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlc2NyaXB0aW9uJC5uZXh0KGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICBpc0NvbXBvbmVudChkZXNjcmlwdGlvbjogc3RyaW5nIHwgVHlwZTxhbnk+IHwgUHJvbWlzZTxzdHJpbmcgfCBUeXBlPGFueT4+KSB7XG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uIGluc3RhbmNlb2YgRnVuY3Rpb247XG4gIH1cblxuICBhc3luYyBvblRvZ2dsZShmZWF0dXJlOiBCZXRhRmVhdHVyZSwgZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXNDaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgIGF3YWl0IHRoaXMuYmV0YVByZXZpZXdTZXJ2aWNlLnNldEZlYXR1cmVBY3RpdmVTdGF0ZShmZWF0dXJlLmtleSwgaXNDaGVja2VkKTtcbiAgfVxuXG4gIGZlYXR1cmVLZXlFeGlzdHMoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlQ2FjaGVTZXJ2aWNlLmZlYXR1cmVFeGlzdHMoa2V5KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMucmVzb2x2ZUNsb3NlKHRydWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBzZXBhcmF0b3ItYm90dG9tIGJnLWNvbXBvbmVudCB0ZXh0LWNlbnRlciBmbGV4LW5vLXNocmluayBwLTI0XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZml0LXcgYS1pLWNlbnRlciBqLWMtY2VudGVyXCI+XG4gICAgPGlcbiAgICAgIGNsYXNzPVwiaWNvbi0yNCBtLXItOFwiXG4gICAgICBbYzh5SWNvbl09XCInc2NpZW5jZSdcIlxuICAgID48L2k+XG4gICAgPGgzXG4gICAgICBjbGFzcz1cIm0tMFwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBCZXRhIGZlYXR1cmVzIHByZXZpZXdcbiAgICA8L2gzPlxuICA8L2Rpdj5cbiAgPHAgY2xhc3M9XCJ0ZXh0LTE2IG0tdC04XCI+XG4gICAge3tcbiAgICAgICdTZWxlY3QgYW55IGZlYXR1cmUgdG8gdmlldyBhZGRpdGlvbmFsIGRldGFpbHMgYW5kIGRvY3VtZW50YXRpb24uIFRvZ2dsZSBmZWF0dXJlcyBvbiBvciBvZmYgdXNpbmcgdGhlIHN3aXRjaGVzLidcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICB9fVxuICA8L3A+XG5cbiAgPHA+XG4gICAge3tcbiAgICAgICdUaGVzZSBiZXRhIGNhcGFiaWxpdGllcyBtYXkgY2hhbmdlIG9yIGJlIHJlbW92ZWQgYmVmb3JlIGZpbmFsIHJlbGVhc2UuIFdlIHZhbHVlIHlvdXIgZmVlZGJhY2suIFRoZSBkZXNjcmlwdGlvbnMgZm9yIHRoZSBmZWF0dXJlcyBiZWxvdyBhcmUgYXZhaWxhYmxlIG9ubHkgaW4gRW5nbGlzaC4nXG4gICAgICAgIHwgdHJhbnNsYXRlXG4gICAgfX1cbiAgPC9wPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHAtMFwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZpdC1oXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGNvbC1sZy0zIHAtbC0wIHAtci0wIHN0aWNreS10b3AgbS10LTAgaW5uZXItc2Nyb2xsIGJnLWxldmVsLTFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuYXYtdGFicyBuYXYtdGFicy12ZXJ0aWNhbCBuYXYtdGFicy12ZXJ0aWNhbC0td2lkZSBwLXQtMFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJmZWF0dXJlID09PSBzZWxlY3RlZEZlYXR1cmVcIlxuICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZpdC13IGEtaS1jZW50ZXJcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBmZWF0dXJlIG9mIGZlYXR1cmVzJCB8IGFzeW5jXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWF0dXJlLmtleSA/IChmZWF0dXJlS2V5RXhpc3RzKGZlYXR1cmUua2V5KSB8IGFzeW5jKSA6IHRydWVcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLTQgdGV4dC10cnVuY2F0ZSBmbGV4LWdyb3dcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7IGZlYXR1cmUubGFiZWwgfX1cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLWNvbXBvbmVudCc6IGZlYXR1cmUgPT09IHNlbGVjdGVkRmVhdHVyZSxcbiAgICAgICAgICAgICAgICAnYmctbGV2ZWwtMSc6IGZlYXR1cmUgIT09IHNlbGVjdGVkRmVhdHVyZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkRmVhdHVyZShmZWF0dXJlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtLWwtMFwiXG4gICAgICAgICAgICAgICAgW2M4eUljb25dPVwiJ3NjaWVuY2UnXCJcbiAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAge3sgZmVhdHVyZS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1zLXN0cmV0Y2ggZC1mbGV4IGEtaS1jZW50ZXIgc2VwYXJhdG9yLWJvdHRvbSBwLXItMTZcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLWNvbXBvbmVudCc6IGZlYXR1cmUgPT09IHNlbGVjdGVkRmVhdHVyZSxcbiAgICAgICAgICAgICAgICAnYmctbGV2ZWwtMSc6IGZlYXR1cmUgIT09IHNlbGVjdGVkRmVhdHVyZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZSBtLWwtYXV0b1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnRW5hYmxlIG9yIGRpc2FibGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmZWF0dXJlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJmZWF0dXJlLmtleSB8IGZlYXR1cmVTdGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBvblRvZ2dsZShmZWF0dXJlLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2xpZGVyIHJvdW5kXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvbC1tZC04IGNvbC1sZy05IHAtMjQgaW5uZXItc2Nyb2xsXCJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRGZWF0dXJlXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRhZyB0YWctLXByaW1hcnkgaDRcIj5cbiAgICAgICAge3sgJ0ZlYXR1cmUgcHJldmlldycgfCB0cmFuc2xhdGUgfX0g4oCUIHt7IHNlbGVjdGVkRmVhdHVyZS5sYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiAqbmdJZj1cImlzQ29tcG9uZW50KGRlc2NyaXB0aW9uJC52YWx1ZSk7IGVsc2Ugc3RyaW5nRGVzY3JpcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJkZXNjcmlwdGlvbiQudmFsdWVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2FyZC1mb290ZXIgcC0yNCBzZXBhcmF0b3JcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0aXRsZT1cInt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgPlxuICAgIHt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzdHJpbmdEZXNjcmlwdGlvbj5cbiAgPHAgW2lubmVySFRNTF09XCJkZXNjcmlwdGlvbiQudmFsdWVcIj48L3A+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0YS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvYmV0YS1mZWF0dXJlL2JldGEtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2JldGEtZmVhdHVyZS9iZXRhLXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBVTlELE1BQU0sT0FBTyxvQkFBb0I7SUFhL0I7UUFWQSxpQkFBWSxHQUNWLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBR1QsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLGNBQVMsR0FBOEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFHckYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLE9BQU8sQ0FBVSxPQUFPLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE9BQW9CO1FBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO1FBQy9CLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsV0FBNkQ7UUFDdkUsT0FBTyxXQUFXLFlBQVksUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQW9CLEVBQUUsS0FBWTtRQUMvQyxNQUFNLFNBQVMsR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDN0QsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0FuRFUsb0JBQW9CO21HQUFwQixvQkFBb0IsdUdBRnBCLENBQUMsa0JBQWtCLENBQUMsMEJDaEJqQyw2dkdBd0dBLDRDRHpGWSxPQUFPLG1IQUFFLElBQUksd0ZBQUUsU0FBUyw2Q0FBRSxZQUFZLCtuQkFBRSxlQUFlLDBCQUFFLGdCQUFnQjs7NEZBR3hFLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxrQkFBa0IsUUFFdEIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGNBQ2pCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsYUFDekUsQ0FBQyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZXRhRmVhdHVyZSB9IGZyb20gJy4vYmV0YS1wcmV2aWV3Lm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE1hcmtkb3duVG9IdG1sUGlwZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBMaXN0R3JvdXBNb2R1bGUgfSBmcm9tICcuLi9saXN0LWdyb3VwJztcbmltcG9ydCB7IFByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9iZXRhLXByZXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlU3RhdGVQaXBlIH0gZnJvbSAnLi9mZWF0dXJlLXN0YXRlLnBpcGUnO1xuaW1wb3J0IHsgRmVhdHVyZUNhY2hlU2VydmljZSB9IGZyb20gJy4vZmVhdHVyZS1jYWNoZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWJldGEtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iZXRhLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7IGNsYXNzOiAnZC1jb250ZW50cycgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nRm9yT2YsIE5nSWYsIEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlLCBMaXN0R3JvdXBNb2R1bGUsIEZlYXR1cmVTdGF0ZVBpcGVdLFxuICBwcm92aWRlcnM6IFtNYXJrZG93blRvSHRtbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJldGFQcmV2aWV3Q29tcG9uZW50IHtcbiAgc2VsZWN0ZWRGZWF0dXJlOiBCZXRhRmVhdHVyZTtcbiAgc2hvdWxkQ2xvc2U6IFByb21pc2U8Ym9vbGVhbj47XG4gIGRlc2NyaXB0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IFR5cGU8YW55PiB8IFByb21pc2U8c3RyaW5nIHwgVHlwZTxhbnk+Pj4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICBwcml2YXRlIHJlc29sdmVDbG9zZSE6ICh2YWx1ZTogYm9vbGVhbiB8IFByb21pc2VMaWtlPGJvb2xlYW4+KSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYmV0YVByZXZpZXdTZXJ2aWNlID0gaW5qZWN0KFByZXZpZXdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlQ2FjaGVTZXJ2aWNlID0gaW5qZWN0KEZlYXR1cmVDYWNoZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1hcmtkb3duVG9IdG1sUGlwZSA9IGluamVjdChNYXJrZG93blRvSHRtbFBpcGUpO1xuXG4gIGZlYXR1cmVzJDogT2JzZXJ2YWJsZTxCZXRhRmVhdHVyZVtdPiA9IHRoaXMuYmV0YVByZXZpZXdTZXJ2aWNlLmdldEF2YWlsYWJsZUZlYXR1cmVzJCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2hvdWxkQ2xvc2UgPSBuZXcgUHJvbWlzZTxib29sZWFuPihyZXNvbHZlID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZUNsb3NlID0gcmVzb2x2ZTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGF3YWl0IHRoaXMuYmV0YVByZXZpZXdTZXJ2aWNlLm1hcmtBbGxGZWF0dXJlc0FzU2VlbigpO1xuICAgIGNvbnN0IGZlYXR1cmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5mZWF0dXJlcyQpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRGZWF0dXJlKGZlYXR1cmVzWzBdKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVNlbGVjdGVkRmVhdHVyZShmZWF0dXJlOiBCZXRhRmVhdHVyZSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGZWF0dXJlID0gZmVhdHVyZTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZURlc2NyaXB0aW9uKCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVEZXNjcmlwdGlvbigpIHtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGF3YWl0IHRoaXMuc2VsZWN0ZWRGZWF0dXJlPy5kZXNjcmlwdGlvbigpO1xuICAgIGlmICghdGhpcy5pc0NvbXBvbmVudChkZXNjcmlwdGlvbikpIHtcbiAgICAgIGNvbnN0IGh0bWwgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1hcmtkb3duVG9IdG1sUGlwZS50cmFuc2Zvcm0oZGVzY3JpcHRpb24pKTtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24kLm5leHQoaHRtbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24kLm5leHQoZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIGlzQ29tcG9uZW50KGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBUeXBlPGFueT4gfCBQcm9taXNlPHN0cmluZyB8IFR5cGU8YW55Pj4pIHtcbiAgICByZXR1cm4gZGVzY3JpcHRpb24gaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgfVxuXG4gIGFzeW5jIG9uVG9nZ2xlKGZlYXR1cmU6IEJldGFGZWF0dXJlLCBldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpc0NoZWNrZWQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XG4gICAgYXdhaXQgdGhpcy5iZXRhUHJldmlld1NlcnZpY2Uuc2V0RmVhdHVyZUFjdGl2ZVN0YXRlKGZlYXR1cmUua2V5LCBpc0NoZWNrZWQpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5yZXNvbHZlQ2xvc2UodHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIHNlcGFyYXRvci1ib3R0b20gYmctY29tcG9uZW50IHRleHQtY2VudGVyIGZsZXgtbm8tc2hyaW5rIHAtMjRcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmaXQtdyBhLWktY2VudGVyIGotYy1jZW50ZXJcIj5cbiAgICA8aVxuICAgICAgY2xhc3M9XCJpY29uLTI0IG0tci04XCJcbiAgICAgIFtjOHlJY29uXT1cIidzY2llbmNlJ1wiXG4gICAgPjwvaT5cbiAgICA8aDNcbiAgICAgIGNsYXNzPVwibS0wXCJcbiAgICAgIHRyYW5zbGF0ZVxuICAgID5cbiAgICAgIEJldGEgZmVhdHVyZXMgcHJldmlld1xuICAgIDwvaDM+XG4gIDwvZGl2PlxuICA8cCBjbGFzcz1cInRleHQtMTYgbS10LThcIj5cbiAgICB7e1xuICAgICAgJ1NlbGVjdCBhbnkgZmVhdHVyZSB0byB2aWV3IGFkZGl0aW9uYWwgZGV0YWlscyBhbmQgZG9jdW1lbnRhdGlvbi4gVG9nZ2xlIGZlYXR1cmVzIG9uIG9yIG9mZiB1c2luZyB0aGUgc3dpdGNoZXMuJ1xuICAgICAgICB8IHRyYW5zbGF0ZVxuICAgIH19XG4gIDwvcD5cblxuICA8cD5cbiAgICB7e1xuICAgICAgJ1RoZXNlIGJldGEgY2FwYWJpbGl0aWVzIG1heSBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBiZWZvcmUgZmluYWwgcmVsZWFzZS4gV2UgdmFsdWUgeW91ciBmZWVkYmFjay4gVGhlIGRlc2NyaXB0aW9ucyBmb3IgdGhlIGZlYXR1cmVzIGJlbG93IGFyZSBhdmFpbGFibGUgb25seSBpbiBFbmdsaXNoLidcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICB9fVxuICA8L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgcC0wXCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggZml0LWhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgY29sLWxnLTMgcC1sLTAgcC1yLTAgc3RpY2t5LXRvcCBtLXQtMCBpbm5lci1zY3JvbGwgYmctbGV2ZWwtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5hdi10YWJzIG5hdi10YWJzLXZlcnRpY2FsIG5hdi10YWJzLXZlcnRpY2FsLS13aWRlIHAtdC0wXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImZlYXR1cmUgPT09IHNlbGVjdGVkRmVhdHVyZVwiXG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXggZml0LXcgYS1pLWNlbnRlclwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGZlYXR1cmUgb2YgZmVhdHVyZXMkIHwgYXN5bmNcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLTQgdGV4dC10cnVuY2F0ZSBmbGV4LWdyb3dcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBmZWF0dXJlLmxhYmVsIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2JnLWNvbXBvbmVudCc6IGZlYXR1cmUgPT09IHNlbGVjdGVkRmVhdHVyZSxcbiAgICAgICAgICAgICAgJ2JnLWxldmVsLTEnOiBmZWF0dXJlICE9PSBzZWxlY3RlZEZlYXR1cmVcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkRmVhdHVyZShmZWF0dXJlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJtLWwtMFwiXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cIidzY2llbmNlJ1wiXG4gICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAge3sgZmVhdHVyZS5sYWJlbCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYS1zLXN0cmV0Y2ggZC1mbGV4IGEtaS1jZW50ZXIgc2VwYXJhdG9yLWJvdHRvbSBwLXItMTZcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnYmctY29tcG9uZW50JzogZmVhdHVyZSA9PT0gc2VsZWN0ZWRGZWF0dXJlLFxuICAgICAgICAgICAgICAnYmctbGV2ZWwtMSc6IGZlYXR1cmUgIT09IHNlbGVjdGVkRmVhdHVyZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmUgbS1sLWF1dG9cIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdFbmFibGUgb3IgZGlzYWJsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZlYXR1cmUubGFiZWxcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiZmVhdHVyZS5rZXkgfCBmZWF0dXJlU3RhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IG9uVG9nZ2xlKGZlYXR1cmUsICRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvbC1tZC04IGNvbC1sZy05IHAtMjQgaW5uZXItc2Nyb2xsXCJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRGZWF0dXJlXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cInRhZyB0YWctLXByaW1hcnkgaDRcIj5cbiAgICAgICAge3sgJ0ZlYXR1cmUgcHJldmlldycgfCB0cmFuc2xhdGUgfX0g4oCUIHt7IHNlbGVjdGVkRmVhdHVyZS5sYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGRpdiAqbmdJZj1cImlzQ29tcG9uZW50KGRlc2NyaXB0aW9uJC52YWx1ZSk7IGVsc2Ugc3RyaW5nRGVzY3JpcHRpb25cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJkZXNjcmlwdGlvbiQudmFsdWVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2FyZC1mb290ZXIgcC0yNCBzZXBhcmF0b3JcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0aXRsZT1cInt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgPlxuICAgIHt7ICdDbG9zZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzdHJpbmdEZXNjcmlwdGlvbj5cbiAgPHAgW2lubmVySFRNTF09XCJkZXNjcmlwdGlvbiQudmFsdWVcIj48L3A+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -19,7 +19,7 @@ export class PreviewService extends ExtensionPointForPlugins {
|
|
|
19
19
|
this.reload$ = new BehaviorSubject(false);
|
|
20
20
|
this.LOCAL_STORAGE_KEY = 'c8y_beta_features_seen';
|
|
21
21
|
this.seenFeatures$ = new BehaviorSubject(this.getSeenFeatures());
|
|
22
|
-
this.hasUnseenFeatures$ = combineLatest([this.
|
|
22
|
+
this.hasUnseenFeatures$ = combineLatest([this.getAvailableFeatures$(), this.seenFeatures$]).pipe(map(([features, seen]) => features.some(feature => !seen.includes(feature.label))), distinctUntilChanged());
|
|
23
23
|
this.featureService = inject(FeatureService);
|
|
24
24
|
this.featureCacheService = inject(FeatureCacheService);
|
|
25
25
|
this.optionsService = inject(OptionsService);
|
|
@@ -89,6 +89,18 @@ export class PreviewService extends ExtensionPointForPlugins {
|
|
|
89
89
|
localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(featureNames));
|
|
90
90
|
this.seenFeatures$.next(featureNames);
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Filters the features to only include those that are available by checking the feature toggle API.
|
|
94
|
+
*/
|
|
95
|
+
getAvailableFeatures$() {
|
|
96
|
+
return this.items$.pipe(switchMap(features => {
|
|
97
|
+
return combineLatest(features.map(feat => feat.key
|
|
98
|
+
? this.featureCacheService
|
|
99
|
+
.featureExists(feat.key)
|
|
100
|
+
.pipe(map(exists => (exists ? feat : false)))
|
|
101
|
+
: of(feat))).pipe(map(features => features.filter(Boolean)));
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
92
104
|
/**
|
|
93
105
|
*
|
|
94
106
|
* @returns An array of feature names that have been seen by the user. This is retrieved from local storage.
|
|
@@ -111,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
111
123
|
type: Injectable,
|
|
112
124
|
args: [{ providedIn: 'root' }]
|
|
113
125
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.PluginsResolveService }] });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0YS1wcmV2aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2JldGEtZmVhdHVyZS9iZXRhLXByZXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxFQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUUzRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWdCLGNBQWMsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSxXQUFXLENBQ3pCLE9BQXFDLEVBQ3JDLE9BQXFDO0lBRXJDLE9BQU8sV0FBVyxDQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUdELE1BQU0sT0FBTyxjQUFlLFNBQVEsd0JBQXFDO0lBZXZFLFlBQVksWUFBc0IsRUFBRSxhQUFvQztRQUN0RSxLQUFLLENBQUMsWUFBWSxF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RUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1RCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGVBQWU7UUFDckIsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxlQUFlLENBQWMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUQsZ0JBQWdCLENBQWMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDM0QsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDcEIsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDNUIsQ0FBQyxDQUFDLElBQUksQ0FDTCxvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDekMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDOytHQXRIVSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBHZW5lcmljSG9va09wdGlvbnMsXG4gIEdlbmVyaWNIb29rVHlwZSxcbiAgaG9va0dlbmVyaWMsXG4gIGdldEluamVjdGVkSG9va3MsXG4gIEV4dGVuc2lvblBvaW50Rm9yUGx1Z2lucyxcbiAgZnJvbVRyaWdnZXJPbmNlLFxuICBzdGF0ZVRvRmFjdG9yeSxcbiAgc29ydEJ5UHJpb3JpdHlcbn0gZnJvbSAnLi4vY29tbW9uL2V4dGVuc2lvbi1ob29rcyc7XG5pbXBvcnQgeyBCZXRhRmVhdHVyZSB9IGZyb20gJy4vYmV0YS1wcmV2aWV3Lm1vZGVsJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMvcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZVNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBGZWF0dXJlQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9mZWF0dXJlLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vb3B0aW9ucy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEhPT0tfUFJFVklFVyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCZXRhRmVhdHVyZVtdPignSE9PS19QUkVWSUVXJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBob29rUHJldmlldyhcbiAgcHJldmlldzogR2VuZXJpY0hvb2tUeXBlPEJldGFGZWF0dXJlPixcbiAgb3B0aW9ucz86IFBhcnRpYWw8R2VuZXJpY0hvb2tPcHRpb25zPlxuKSB7XG4gIHJldHVybiBob29rR2VuZXJpYzxCZXRhRmVhdHVyZT4ocHJldmlldywgSE9PS19QUkVWSUVXLCBvcHRpb25zKTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmV2aWV3U2VydmljZSBleHRlbmRzIEV4dGVuc2lvblBvaW50Rm9yUGx1Z2luczxCZXRhRmVhdHVyZT4ge1xuICBpdGVtcyQ6IE9ic2VydmFibGU8QmV0YUZlYXR1cmVbXT4gPSB0aGlzLnNldHVwSXRlbXNPYnNlcnZhYmxlKCk7XG4gIHJlbG9hZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IExPQ0FMX1NUT1JBR0VfS0VZID0gJ2M4eV9iZXRhX2ZlYXR1cmVzX3NlZW4nO1xuICBwcml2YXRlIHNlZW5GZWF0dXJlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPih0aGlzLmdldFNlZW5GZWF0dXJlcygpKTtcbiAgaGFzVW5zZWVuRmVhdHVyZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5pdGVtcyQsIHRoaXMuc2VlbkZlYXR1cmVzJF0pLnBpcGUoXG4gICAgbWFwKChbZmVhdHVyZXMsIHNlZW5dKSA9PiBmZWF0dXJlcy5zb21lKGZlYXR1cmUgPT4gIXNlZW4uaW5jbHVkZXMoZmVhdHVyZS5sYWJlbCkpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVNlcnZpY2UgPSBpbmplY3QoRmVhdHVyZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVDYWNoZVNlcnZpY2UgPSBpbmplY3QoRmVhdHVyZUNhY2hlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uc1NlcnZpY2UgPSBpbmplY3QoT3B0aW9uc1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgdG9nZ2xlZEZlYXR1cmVzV2l0aFJlbG9hZDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7IC8vIHRyYWNrIGZlYXR1cmVzIHdpdGggc2V0dGluZ3MucmVsb2FkID0gdHJ1ZVxuXG4gIGNvbnN0cnVjdG9yKHJvb3RJbmplY3RvcjogSW5qZWN0b3IsIHBsdWdpblNlcnZpY2U6IFBsdWdpbnNSZXNvbHZlU2VydmljZSkge1xuICAgIHN1cGVyKHJvb3RJbmplY3RvciwgcGx1Z2luU2VydmljZSk7XG4gIH1cblxuICBnZXQgc3RhdGUoKTogU2V0PEJldGFGZWF0dXJlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RhdGUgb2YgYSBzcGVjaWZpYyBmZWF0dXJlLlxuICAgKiBAcGFyYW0ga2V5IFRoZSB1bmlxdWUga2V5IGZvciB0aGUgZmVhdHVyZS5cbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxib29sZWFuPiByZXByZXNlbnRpbmcgdGhlIHN0YXRlIG9mIHRoZSBmZWF0dXJlLlxuICAgKi9cbiAgZ2V0U3RhdGUkKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZmVhdHVyZXMgPT5cbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZS5nZXQkKCdlbmFibGVBbGxCZXRhRmVhdHVyZXMnKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChlbmFibGVBbGxCZXRhRmVhdHVyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKGVuYWJsZUFsbEJldGFGZWF0dXJlcykge1xuICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gZmVhdHVyZXMuZmluZChmID0+IGYua2V5ID09PSBrZXkpO1xuICAgICAgICAgICAgaWYgKCFmZWF0dXJlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmVhdHVyZSB3aXRoIGtleSBcIiR7a2V5fVwiIGRvZXMgbm90IGV4aXN0LmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZlYXR1cmUuYWN0aXZlJCkge1xuICAgICAgICAgICAgICByZXR1cm4gZmVhdHVyZS5hY3RpdmUkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmVhdHVyZUNhY2hlU2VydmljZS5nZXRGZWF0dXJlU3RhdGUoa2V5KS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIHN0YXRlIG9mIGEgc3BlY2lmaWMgZmVhdHVyZS5cbiAgICogQHBhcmFtIGtleSBUaGUgdW5pcXVlIGtleSBvciBsYWJlbCBmb3IgdGhlIGZlYXR1cmUuIExhYmVsIGlzIHVzZWQgdG8gZmluZCB0aGUgY3VzdG9tIGZlYXR1cmVzLlxuICAgKiBAcmV0dXJucyBQcm9taXNlPHZvaWQ+IGFmdGVyIHRvZ2dsaW5nIHRoZSBzdGF0ZS5cbiAgICovXG4gIGFzeW5jIHNldEZlYXR1cmVBY3RpdmVTdGF0ZShrZXk6IHN0cmluZywgdG9nZ2xlVmFsdWU6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmZWF0dXJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaXRlbXMkKTtcbiAgICBjb25zdCBmZWF0dXJlID0gZmVhdHVyZXMuZmluZChmID0+IGYua2V5ID09PSBrZXkpIHx8IGZlYXR1cmVzLmZpbmQoZiA9PiBmLmxhYmVsID09PSBrZXkpO1xuXG4gICAgaWYgKCFmZWF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZlYXR1cmUgd2l0aCBrZXkgXCIke2tleX1cIiBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG5cbiAgICBpZiAoZmVhdHVyZS5vblRvZ2dsZSkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IGZlYXR1cmUub25Ub2dnbGUodG9nZ2xlVmFsdWUpO1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHRvZ2dsZSBmZWF0dXJlIHdpdGgga2V5IFwiJHtrZXl9XCIuYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmVhdHVyZVRvVXBkYXRlID0geyBrZXk6IGZlYXR1cmUua2V5LCBhY3RpdmU6IHRvZ2dsZVZhbHVlIH07XG4gICAgYXdhaXQgdGhpcy5mZWF0dXJlU2VydmljZS51cGRhdGVGZWF0dXJlKGZlYXR1cmVUb1VwZGF0ZSk7XG4gICAgYXdhaXQgdGhpcy5mZWF0dXJlQ2FjaGVTZXJ2aWNlLnJlc2V0RmVhdHVyZVN0YXRlKCk7XG5cbiAgICBpZiAoZmVhdHVyZS5zZXR0aW5ncz8ucmVsb2FkKSB7XG4gICAgICBpZiAodGhpcy50b2dnbGVkRmVhdHVyZXNXaXRoUmVsb2FkLmhhcyhrZXkpKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlZEZlYXR1cmVzV2l0aFJlbG9hZC5kZWxldGUoa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9nZ2xlZEZlYXR1cmVzV2l0aFJlbG9hZC5hZGQoa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlbG9hZCQubmV4dCh0aGlzLnRvZ2dsZWRGZWF0dXJlc1dpdGhSZWxvYWQuc2l6ZSA+IDApO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIGFsbCBmZWF0dXJlcyBhcyBzZWVuIGJ5IHRoZSB1c2VyIGFuZCB1cGRhdGVzIHRoZSBsb2NhbCBzdG9yYWdlLlxuICAgKiBUaGlzIGFzc3VtZXMgYWxsIGZlYXR1cmVzIGFyZSBwcm92aWRlZCB2aWEgdGhlIGBpdGVtcyRgIG9ic2VydmFibGUuXG4gICAqL1xuICBhc3luYyBtYXJrQWxsRmVhdHVyZXNBc1NlZW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLml0ZW1zJCk7XG4gICAgY29uc3QgZmVhdHVyZU5hbWVzID0gZmVhdHVyZXMubWFwKGZlYXR1cmUgPT4gZmVhdHVyZS5sYWJlbCk7XG5cbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkxPQ0FMX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShmZWF0dXJlTmFtZXMpKTtcbiAgICB0aGlzLnNlZW5GZWF0dXJlcyQubmV4dChmZWF0dXJlTmFtZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGZlYXR1cmUgbmFtZXMgdGhhdCBoYXZlIGJlZW4gc2VlbiBieSB0aGUgdXNlci4gVGhpcyBpcyByZXRyaWV2ZWQgZnJvbSBsb2NhbCBzdG9yYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTZWVuRmVhdHVyZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHNlZW5GZWF0dXJlcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuTE9DQUxfU1RPUkFHRV9LRVkpO1xuICAgIHJldHVybiBzZWVuRmVhdHVyZXMgPyBKU09OLnBhcnNlKHNlZW5GZWF0dXJlcykgOiBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cEl0ZW1zT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJldGFGZWF0dXJlW10+IHtcbiAgICByZXR1cm4gZnJvbVRyaWdnZXJPbmNlPEJldGFGZWF0dXJlPih1bmRlZmluZWQsIHRoaXMucmVmcmVzaCQsIFtcbiAgICAgIGdldEluamVjdGVkSG9va3M8QmV0YUZlYXR1cmU+KEhPT0tfUFJFVklFVywgdGhpcy5pbmplY3RvcnMpLFxuICAgICAgKCkgPT4gdGhpcy5mYWN0b3JpZXMsXG4gICAgICBzdGF0ZVRvRmFjdG9yeSh0aGlzLnN0YXRlJClcbiAgICBdKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIG1hcChmZWF0dXJlcyA9PiBzb3J0QnlQcmlvcml0eShmZWF0dXJlcykpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0YS1wcmV2aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2JldGEtZmVhdHVyZS9iZXRhLXByZXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxFQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUUzRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWdCLGNBQWMsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSxXQUFXLENBQ3pCLE9BQXFDLEVBQ3JDLE9BQXFDO0lBRXJDLE9BQU8sV0FBVyxDQUFjLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUdELE1BQU0sT0FBTyxjQUFlLFNBQVEsd0JBQXFDO0lBZXZFLFlBQVksWUFBc0IsRUFBRSxhQUFvQztRQUN0RSxLQUFLLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBZnJDLFdBQU0sR0FBOEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEUsWUFBTyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN2RCxzQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFXLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLHVCQUFrQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDekYsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDbEYsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztRQUNlLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWpELDhCQUF5QixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsNkNBQTZDO0lBSXpHLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDckIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUNwRCxTQUFTLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUNoQyxJQUFJLHFCQUFxQixFQUFFLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FDSCxDQUNGLEVBQ0Qsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEdBQVcsRUFBRSxXQUFvQjtRQUMzRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFekYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbEUsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRW5ELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkIsT0FBTyxhQUFhLENBQ2xCLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLEdBQUc7Z0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUI7cUJBQ3JCLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO3FCQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDakQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDYixDQUNGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBOEIsQ0FBQztRQUNqRixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLGVBQWU7UUFDckIsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFUyxvQkFBb0I7UUFDNUIsT0FBTyxlQUFlLENBQWMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUQsZ0JBQWdCLENBQWMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDM0QsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDcEIsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDNUIsQ0FBQyxDQUFDLElBQUksQ0FDTCxvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDekMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDOytHQXpJVSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBHZW5lcmljSG9va09wdGlvbnMsXG4gIEdlbmVyaWNIb29rVHlwZSxcbiAgaG9va0dlbmVyaWMsXG4gIGdldEluamVjdGVkSG9va3MsXG4gIEV4dGVuc2lvblBvaW50Rm9yUGx1Z2lucyxcbiAgZnJvbVRyaWdnZXJPbmNlLFxuICBzdGF0ZVRvRmFjdG9yeSxcbiAgc29ydEJ5UHJpb3JpdHlcbn0gZnJvbSAnLi4vY29tbW9uL2V4dGVuc2lvbi1ob29rcyc7XG5pbXBvcnQgeyBCZXRhRmVhdHVyZSB9IGZyb20gJy4vYmV0YS1wcmV2aWV3Lm1vZGVsJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMvcGx1Z2lucy1yZXNvbHZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZVNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBGZWF0dXJlQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9mZWF0dXJlLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vb3B0aW9ucy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEhPT0tfUFJFVklFVyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCZXRhRmVhdHVyZVtdPignSE9PS19QUkVWSUVXJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBob29rUHJldmlldyhcbiAgcHJldmlldzogR2VuZXJpY0hvb2tUeXBlPEJldGFGZWF0dXJlPixcbiAgb3B0aW9ucz86IFBhcnRpYWw8R2VuZXJpY0hvb2tPcHRpb25zPlxuKSB7XG4gIHJldHVybiBob29rR2VuZXJpYzxCZXRhRmVhdHVyZT4ocHJldmlldywgSE9PS19QUkVWSUVXLCBvcHRpb25zKTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmV2aWV3U2VydmljZSBleHRlbmRzIEV4dGVuc2lvblBvaW50Rm9yUGx1Z2luczxCZXRhRmVhdHVyZT4ge1xuICBpdGVtcyQ6IE9ic2VydmFibGU8QmV0YUZlYXR1cmVbXT4gPSB0aGlzLnNldHVwSXRlbXNPYnNlcnZhYmxlKCk7XG4gIHJlbG9hZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IExPQ0FMX1NUT1JBR0VfS0VZID0gJ2M4eV9iZXRhX2ZlYXR1cmVzX3NlZW4nO1xuICBwcml2YXRlIHNlZW5GZWF0dXJlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPih0aGlzLmdldFNlZW5GZWF0dXJlcygpKTtcbiAgaGFzVW5zZWVuRmVhdHVyZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5nZXRBdmFpbGFibGVGZWF0dXJlcyQoKSwgdGhpcy5zZWVuRmVhdHVyZXMkXSkucGlwZShcbiAgICBtYXAoKFtmZWF0dXJlcywgc2Vlbl0pID0+IGZlYXR1cmVzLnNvbWUoZmVhdHVyZSA9PiAhc2Vlbi5pbmNsdWRlcyhmZWF0dXJlLmxhYmVsKSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlU2VydmljZSA9IGluamVjdChGZWF0dXJlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZUNhY2hlU2VydmljZSA9IGluamVjdChGZWF0dXJlQ2FjaGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSk7XG5cbiAgcHJpdmF0ZSB0b2dnbGVkRmVhdHVyZXNXaXRoUmVsb2FkOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTsgLy8gdHJhY2sgZmVhdHVyZXMgd2l0aCBzZXR0aW5ncy5yZWxvYWQgPSB0cnVlXG5cbiAgY29uc3RydWN0b3Iocm9vdEluamVjdG9yOiBJbmplY3RvciwgcGx1Z2luU2VydmljZTogUGx1Z2luc1Jlc29sdmVTZXJ2aWNlKSB7XG4gICAgc3VwZXIocm9vdEluamVjdG9yLCBwbHVnaW5TZXJ2aWNlKTtcbiAgfVxuXG4gIGdldCBzdGF0ZSgpOiBTZXQ8QmV0YUZlYXR1cmU+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzdGF0ZSBvZiBhIHNwZWNpZmljIGZlYXR1cmUuXG4gICAqIEBwYXJhbSBrZXkgVGhlIHVuaXF1ZSBrZXkgZm9yIHRoZSBmZWF0dXJlLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGJvb2xlYW4+IHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgdGhlIGZlYXR1cmUuXG4gICAqL1xuICBnZXRTdGF0ZSQoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcyQucGlwZShcbiAgICAgIHN3aXRjaE1hcChmZWF0dXJlcyA9PlxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldCQoJ2VuYWJsZUFsbEJldGFGZWF0dXJlcycpLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKGVuYWJsZUFsbEJldGFGZWF0dXJlcyA9PiB7XG4gICAgICAgICAgICBpZiAoZW5hYmxlQWxsQmV0YUZlYXR1cmVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmUgPSBmZWF0dXJlcy5maW5kKGYgPT4gZi5rZXkgPT09IGtleSk7XG4gICAgICAgICAgICBpZiAoIWZlYXR1cmUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGZWF0dXJlIHdpdGgga2V5IFwiJHtrZXl9XCIgZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmVhdHVyZS5hY3RpdmUkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmZWF0dXJlLmFjdGl2ZSQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mZWF0dXJlQ2FjaGVTZXJ2aWNlLmdldEZlYXR1cmVTdGF0ZShrZXkpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgc3RhdGUgb2YgYSBzcGVjaWZpYyBmZWF0dXJlLlxuICAgKiBAcGFyYW0ga2V5IFRoZSB1bmlxdWUga2V5IG9yIGxhYmVsIGZvciB0aGUgZmVhdHVyZS4gTGFiZWwgaXMgdXNlZCB0byBmaW5kIHRoZSBjdXN0b20gZmVhdHVyZXMuXG4gICAqIEByZXR1cm5zIFByb21pc2U8dm9pZD4gYWZ0ZXIgdG9nZ2xpbmcgdGhlIHN0YXRlLlxuICAgKi9cbiAgYXN5bmMgc2V0RmVhdHVyZUFjdGl2ZVN0YXRlKGtleTogc3RyaW5nLCB0b2dnbGVWYWx1ZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZlYXR1cmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5pdGVtcyQpO1xuICAgIGNvbnN0IGZlYXR1cmUgPSBmZWF0dXJlcy5maW5kKGYgPT4gZi5rZXkgPT09IGtleSkgfHwgZmVhdHVyZXMuZmluZChmID0+IGYubGFiZWwgPT09IGtleSk7XG5cbiAgICBpZiAoIWZlYXR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmVhdHVyZSB3aXRoIGtleSBcIiR7a2V5fVwiIGRvZXMgbm90IGV4aXN0LmApO1xuICAgIH1cblxuICAgIGlmIChmZWF0dXJlLm9uVG9nZ2xlKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZmVhdHVyZS5vblRvZ2dsZSh0b2dnbGVWYWx1ZSk7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gdG9nZ2xlIGZlYXR1cmUgd2l0aCBrZXkgXCIke2tleX1cIi5gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmZWF0dXJlVG9VcGRhdGUgPSB7IGtleTogZmVhdHVyZS5rZXksIGFjdGl2ZTogdG9nZ2xlVmFsdWUgfTtcbiAgICBhd2FpdCB0aGlzLmZlYXR1cmVTZXJ2aWNlLnVwZGF0ZUZlYXR1cmUoZmVhdHVyZVRvVXBkYXRlKTtcbiAgICBhd2FpdCB0aGlzLmZlYXR1cmVDYWNoZVNlcnZpY2UucmVzZXRGZWF0dXJlU3RhdGUoKTtcblxuICAgIGlmIChmZWF0dXJlLnNldHRpbmdzPy5yZWxvYWQpIHtcbiAgICAgIGlmICh0aGlzLnRvZ2dsZWRGZWF0dXJlc1dpdGhSZWxvYWQuaGFzKGtleSkpIHtcbiAgICAgICAgdGhpcy50b2dnbGVkRmVhdHVyZXNXaXRoUmVsb2FkLmRlbGV0ZShrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2dnbGVkRmVhdHVyZXNXaXRoUmVsb2FkLmFkZChrZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVsb2FkJC5uZXh0KHRoaXMudG9nZ2xlZEZlYXR1cmVzV2l0aFJlbG9hZC5zaXplID4gMCk7XG4gIH1cblxuICAvKipcbiAgICogTWFya3MgYWxsIGZlYXR1cmVzIGFzIHNlZW4gYnkgdGhlIHVzZXIgYW5kIHVwZGF0ZXMgdGhlIGxvY2FsIHN0b3JhZ2UuXG4gICAqIFRoaXMgYXNzdW1lcyBhbGwgZmVhdHVyZXMgYXJlIHByb3ZpZGVkIHZpYSB0aGUgYGl0ZW1zJGAgb2JzZXJ2YWJsZS5cbiAgICovXG4gIGFzeW5jIG1hcmtBbGxGZWF0dXJlc0FzU2VlbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmZWF0dXJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaXRlbXMkKTtcbiAgICBjb25zdCBmZWF0dXJlTmFtZXMgPSBmZWF0dXJlcy5tYXAoZmVhdHVyZSA9PiBmZWF0dXJlLmxhYmVsKTtcblxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTE9DQUxfU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KGZlYXR1cmVOYW1lcykpO1xuICAgIHRoaXMuc2VlbkZlYXR1cmVzJC5uZXh0KGZlYXR1cmVOYW1lcyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyB0aGUgZmVhdHVyZXMgdG8gb25seSBpbmNsdWRlIHRob3NlIHRoYXQgYXJlIGF2YWlsYWJsZSBieSBjaGVja2luZyB0aGUgZmVhdHVyZSB0b2dnbGUgQVBJLlxuICAgKi9cbiAgZ2V0QXZhaWxhYmxlRmVhdHVyZXMkKCk6IE9ic2VydmFibGU8QmV0YUZlYXR1cmVbXT4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGZlYXR1cmVzID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgZmVhdHVyZXMubWFwKGZlYXQgPT5cbiAgICAgICAgICAgIGZlYXQua2V5XG4gICAgICAgICAgICAgID8gdGhpcy5mZWF0dXJlQ2FjaGVTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAuZmVhdHVyZUV4aXN0cyhmZWF0LmtleSlcbiAgICAgICAgICAgICAgICAgIC5waXBlKG1hcChleGlzdHMgPT4gKGV4aXN0cyA/IGZlYXQgOiBmYWxzZSkpKVxuICAgICAgICAgICAgICA6IG9mKGZlYXQpXG4gICAgICAgICAgKVxuICAgICAgICApLnBpcGUobWFwKGZlYXR1cmVzID0+IGZlYXR1cmVzLmZpbHRlcihCb29sZWFuKSkpIGFzIE9ic2VydmFibGU8QmV0YUZlYXR1cmVbXT47XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZmVhdHVyZSBuYW1lcyB0aGF0IGhhdmUgYmVlbiBzZWVuIGJ5IHRoZSB1c2VyLiBUaGlzIGlzIHJldHJpZXZlZCBmcm9tIGxvY2FsIHN0b3JhZ2UuXG4gICAqL1xuICBwcml2YXRlIGdldFNlZW5GZWF0dXJlcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgc2VlbkZlYXR1cmVzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5MT0NBTF9TVE9SQUdFX0tFWSk7XG4gICAgcmV0dXJuIHNlZW5GZWF0dXJlcyA/IEpTT04ucGFyc2Uoc2VlbkZlYXR1cmVzKSA6IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwSXRlbXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8QmV0YUZlYXR1cmVbXT4ge1xuICAgIHJldHVybiBmcm9tVHJpZ2dlck9uY2U8QmV0YUZlYXR1cmU+KHVuZGVmaW5lZCwgdGhpcy5yZWZyZXNoJCwgW1xuICAgICAgZ2V0SW5qZWN0ZWRIb29rczxCZXRhRmVhdHVyZT4oSE9PS19QUkVWSUVXLCB0aGlzLmluamVjdG9ycyksXG4gICAgICAoKSA9PiB0aGlzLmZhY3RvcmllcyxcbiAgICAgIHN0YXRlVG9GYWN0b3J5KHRoaXMuc3RhdGUkKVxuICAgIF0pLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgbWFwKGZlYXR1cmVzID0+IHNvcnRCeVByaW9yaXR5KGZlYXR1cmVzKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -35,8 +35,14 @@ export class FeatureCacheService {
|
|
|
35
35
|
this.refreshTrigger.next();
|
|
36
36
|
}
|
|
37
37
|
async loadFeatures() {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
try {
|
|
39
|
+
const response = await this.featureService.list({ pageSize: 1000 });
|
|
40
|
+
return response.data || [];
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
console.error('Error loading features:', e);
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
40
46
|
}
|
|
41
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureCacheService, deps: [{ token: i1.FeatureService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
48
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureCacheService, providedIn: 'root' }); }
|
|
@@ -45,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
45
51
|
type: Injectable,
|
|
46
52
|
args: [{ providedIn: 'root' }]
|
|
47
53
|
}], ctorParameters: () => [{ type: i1.FeatureService }] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9iZXRhLWZlYXR1cmUvZmVhdHVyZS1jYWNoZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBa0IsTUFBTSxhQUFhLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU3RCxNQUFNLE9BQU8sbUJBQW1CO0lBTTlCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUwxQyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELGNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUNwQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNtRCxDQUFDO0lBRXREOzs7T0FHRztJQUNILHNCQUFzQixDQUFDLEdBQVc7UUFDaEMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLEdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sT0FBTyxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWTtRQUN4QixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQzsrR0E5Q1UsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FETixNQUFNOzs0RkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZlYXR1cmVTZXJ2aWNlLCBJRmVhdHVyZVRvZ2dsZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNhY2hlU2VydmljZSB7XG4gIHByaXZhdGUgcmVmcmVzaFRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgZmVhdHVyZXMkID0gdGhpcy5yZWZyZXNoVHJpZ2dlci5waXBlKFxuICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWRGZWF0dXJlcygpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZlYXR1cmVTZXJ2aWNlOiBGZWF0dXJlU2VydmljZSkge31cblxuICAvKipcbiAgICogTmVlZGVkIGZvciB0aGUgYW5ndWxhckpTIGltcGxtZW50YXRpb24gdG8gc2hvdy9oaWRlIHNvbWUgb2xkIGZlYXR1cmVzLlxuICAgKiBSZXR1cm5zIGEgcHJvbWlzZVxuICAgKi9cbiAgZ2V0RmVhdHVyZVN0YXRlUHJvbWlzZShrZXk6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmdldEZlYXR1cmVTdGF0ZShrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGZlYXR1cmUga2V5IHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGZlYXR1cmUga2V5IGV4aXN0cyBpbiB0aGUgbGlzdCBvZiBmZWF0dXJlcy5cbiAgICovXG4gIGZlYXR1cmVFeGlzdHMoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlcyQucGlwZShtYXAoZmVhdHVyZXMgPT4gZmVhdHVyZXMuc29tZShmZWF0dXJlID0+IGZlYXR1cmUua2V5ID09PSBrZXkpKSk7XG4gIH1cblxuICBnZXRGZWF0dXJlU3RhdGUoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlcyQucGlwZShcbiAgICAgIG1hcChmZWF0dXJlcyA9PiB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmUgPSBmZWF0dXJlcy5maW5kKGYgPT4gZi5rZXkgPT09IGtleSk7XG4gICAgICAgIHJldHVybiBmZWF0dXJlPy5hY3RpdmUgfHwgZmFsc2U7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZXNldEZlYXR1cmVTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2hUcmlnZ2VyLm5leHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEZlYXR1cmVzKCk6IFByb21pc2U8SUZlYXR1cmVUb2dnbGVbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZmVhdHVyZVNlcnZpY2UubGlzdCh7IHBhZ2VTaXplOiAxMDAwIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEgfHwgW107XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBmZWF0dXJlczonLCBlKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -35197,8 +35197,14 @@ class FeatureCacheService {
|
|
|
35197
35197
|
this.refreshTrigger.next();
|
|
35198
35198
|
}
|
|
35199
35199
|
async loadFeatures() {
|
|
35200
|
-
|
|
35201
|
-
|
|
35200
|
+
try {
|
|
35201
|
+
const response = await this.featureService.list({ pageSize: 1000 });
|
|
35202
|
+
return response.data || [];
|
|
35203
|
+
}
|
|
35204
|
+
catch (e) {
|
|
35205
|
+
console.error('Error loading features:', e);
|
|
35206
|
+
return [];
|
|
35207
|
+
}
|
|
35202
35208
|
}
|
|
35203
35209
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureCacheService, deps: [{ token: i1.FeatureService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35204
35210
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureCacheService, providedIn: 'root' }); }
|
|
@@ -35219,7 +35225,7 @@ class PreviewService extends ExtensionPointForPlugins {
|
|
|
35219
35225
|
this.reload$ = new BehaviorSubject(false);
|
|
35220
35226
|
this.LOCAL_STORAGE_KEY = 'c8y_beta_features_seen';
|
|
35221
35227
|
this.seenFeatures$ = new BehaviorSubject(this.getSeenFeatures());
|
|
35222
|
-
this.hasUnseenFeatures$ = combineLatest([this.
|
|
35228
|
+
this.hasUnseenFeatures$ = combineLatest([this.getAvailableFeatures$(), this.seenFeatures$]).pipe(map(([features, seen]) => features.some(feature => !seen.includes(feature.label))), distinctUntilChanged());
|
|
35223
35229
|
this.featureService = inject(FeatureService);
|
|
35224
35230
|
this.featureCacheService = inject(FeatureCacheService);
|
|
35225
35231
|
this.optionsService = inject(OptionsService);
|
|
@@ -35289,6 +35295,18 @@ class PreviewService extends ExtensionPointForPlugins {
|
|
|
35289
35295
|
localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(featureNames));
|
|
35290
35296
|
this.seenFeatures$.next(featureNames);
|
|
35291
35297
|
}
|
|
35298
|
+
/**
|
|
35299
|
+
* Filters the features to only include those that are available by checking the feature toggle API.
|
|
35300
|
+
*/
|
|
35301
|
+
getAvailableFeatures$() {
|
|
35302
|
+
return this.items$.pipe(switchMap(features => {
|
|
35303
|
+
return combineLatest(features.map(feat => feat.key
|
|
35304
|
+
? this.featureCacheService
|
|
35305
|
+
.featureExists(feat.key)
|
|
35306
|
+
.pipe(map(exists => (exists ? feat : false)))
|
|
35307
|
+
: of(feat))).pipe(map(features => features.filter(Boolean)));
|
|
35308
|
+
}));
|
|
35309
|
+
}
|
|
35292
35310
|
/**
|
|
35293
35311
|
*
|
|
35294
35312
|
* @returns An array of feature names that have been seen by the user. This is retrieved from local storage.
|
|
@@ -35338,7 +35356,7 @@ class BetaPreviewComponent {
|
|
|
35338
35356
|
this.betaPreviewService = inject(PreviewService);
|
|
35339
35357
|
this.featureCacheService = inject(FeatureCacheService);
|
|
35340
35358
|
this.markdownToHtmlPipe = inject(MarkdownToHtmlPipe);
|
|
35341
|
-
this.features$ = this.betaPreviewService.
|
|
35359
|
+
this.features$ = this.betaPreviewService.getAvailableFeatures$();
|
|
35342
35360
|
this.shouldClose = new Promise(resolve => {
|
|
35343
35361
|
this.resolveClose = resolve;
|
|
35344
35362
|
});
|
|
@@ -35369,18 +35387,15 @@ class BetaPreviewComponent {
|
|
|
35369
35387
|
const isChecked = event.target.checked;
|
|
35370
35388
|
await this.betaPreviewService.setFeatureActiveState(feature.key, isChecked);
|
|
35371
35389
|
}
|
|
35372
|
-
featureKeyExists(key) {
|
|
35373
|
-
return this.featureCacheService.featureExists(key);
|
|
35374
|
-
}
|
|
35375
35390
|
close() {
|
|
35376
35391
|
this.resolveClose(true);
|
|
35377
35392
|
}
|
|
35378
35393
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BetaPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35379
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BetaPreviewComponent, isStandalone: true, selector: "c8y-beta-preview", host: { classAttribute: "d-contents" }, providers: [MarkdownToHtmlPipe], ngImport: i0, template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <
|
|
35394
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BetaPreviewComponent, isStandalone: true, selector: "c8y-beta-preview", host: { classAttribute: "d-contents" }, providers: [MarkdownToHtmlPipe], ngImport: i0, template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <button\n class=\"d-flex gap-4 text-truncate flex-grow\"\n title=\"{{ feature.label }}\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n (click)=\"updateSelectedFeature(feature)\"\n >\n <i\n class=\"m-l-0\"\n [c8yIcon]=\"'science'\"\n ></i>\n {{ feature.label }}\n </button>\n <div\n class=\"a-s-stretch d-flex a-i-center separator-bottom p-r-16\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n >\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Enable or disable' | translate }}\"\n >\n <input\n [attr.aria-label]=\"feature.label\"\n type=\"checkbox\"\n [checked]=\"feature.key | featureState | async\"\n (change)=\"$event.stopPropagation(); onToggle(feature, $event)\"\n />\n <span class=\"slider round\"></span>\n </label>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-8 col-lg-9 p-24 inner-scroll\"\n *ngIf=\"selectedFeature\"\n >\n <span class=\"tag tag--primary h4\">\n {{ 'Feature preview' | translate }} \u2014 {{ selectedFeature.label }}\n </span>\n <div *ngIf=\"isComponent(description$.value); else stringDescription\">\n <ng-container *ngComponentOutlet=\"description$.value\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n</div>\n\n<ng-template #stringDescription>\n <p [innerHTML]=\"description$.value\"></p>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "ngmodule", type: ListGroupModule }, { kind: "pipe", type: FeatureStatePipe, name: "featureState" }] }); }
|
|
35380
35395
|
}
|
|
35381
35396
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BetaPreviewComponent, decorators: [{
|
|
35382
35397
|
type: Component,
|
|
35383
|
-
args: [{ selector: 'c8y-beta-preview', host: { class: 'd-contents' }, standalone: true, imports: [NgForOf, NgIf, AsyncPipe, CommonModule, ListGroupModule, FeatureStatePipe], providers: [MarkdownToHtmlPipe], template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <
|
|
35398
|
+
args: [{ selector: 'c8y-beta-preview', host: { class: 'd-contents' }, standalone: true, imports: [NgForOf, NgIf, AsyncPipe, CommonModule, ListGroupModule, FeatureStatePipe], providers: [MarkdownToHtmlPipe], template: "<div class=\"card-block separator-bottom bg-component text-center flex-no-shrink p-24\">\n <div class=\"d-flex fit-w a-i-center j-c-center\">\n <i\n class=\"icon-24 m-r-8\"\n [c8yIcon]=\"'science'\"\n ></i>\n <h3\n class=\"m-0\"\n translate\n >\n Beta features preview\n </h3>\n </div>\n <p class=\"text-16 m-t-8\">\n {{\n 'Select any feature to view additional details and documentation. Toggle features on or off using the switches.'\n | translate\n }}\n </p>\n\n <p>\n {{\n 'These beta capabilities may change or be removed before final release. We value your feedback. The descriptions for the features below are available only in English.'\n | translate\n }}\n </p>\n</div>\n\n<div class=\"card-block p-0\">\n <div class=\"d-flex fit-h\">\n <div class=\"col-md-4 col-lg-3 p-l-0 p-r-0 sticky-top m-t-0 inner-scroll bg-level-1\">\n <div class=\"nav-tabs nav-tabs-vertical nav-tabs-vertical--wide p-t-0\">\n <div\n [class.active]=\"feature === selectedFeature\"\n class=\"d-flex fit-w a-i-center\"\n *ngFor=\"let feature of features$ | async\"\n >\n <button\n class=\"d-flex gap-4 text-truncate flex-grow\"\n title=\"{{ feature.label }}\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n (click)=\"updateSelectedFeature(feature)\"\n >\n <i\n class=\"m-l-0\"\n [c8yIcon]=\"'science'\"\n ></i>\n {{ feature.label }}\n </button>\n <div\n class=\"a-s-stretch d-flex a-i-center separator-bottom p-r-16\"\n [ngClass]=\"{\n 'bg-component': feature === selectedFeature,\n 'bg-level-1': feature !== selectedFeature\n }\"\n >\n <label\n class=\"c8y-switch c8y-switch--inline m-l-auto\"\n title=\"{{ 'Enable or disable' | translate }}\"\n >\n <input\n [attr.aria-label]=\"feature.label\"\n type=\"checkbox\"\n [checked]=\"feature.key | featureState | async\"\n (change)=\"$event.stopPropagation(); onToggle(feature, $event)\"\n />\n <span class=\"slider round\"></span>\n </label>\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-8 col-lg-9 p-24 inner-scroll\"\n *ngIf=\"selectedFeature\"\n >\n <span class=\"tag tag--primary h4\">\n {{ 'Feature preview' | translate }} \u2014 {{ selectedFeature.label }}\n </span>\n <div *ngIf=\"isComponent(description$.value); else stringDescription\">\n <ng-container *ngComponentOutlet=\"description$.value\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n</div>\n\n<ng-template #stringDescription>\n <p [innerHTML]=\"description$.value\"></p>\n</ng-template>\n" }]
|
|
35384
35399
|
}], ctorParameters: () => [] });
|
|
35385
35400
|
|
|
35386
35401
|
class BetaPreviewButtonComponent {
|
|
@@ -35448,7 +35463,10 @@ class BetaPreviewDrawerFactory {
|
|
|
35448
35463
|
}));
|
|
35449
35464
|
}
|
|
35450
35465
|
shouldShowBetaPreview$() {
|
|
35451
|
-
return combineLatest([
|
|
35466
|
+
return combineLatest([
|
|
35467
|
+
this.options.get$('hideBetaPreview'),
|
|
35468
|
+
this.previewService.getAvailableFeatures$()
|
|
35469
|
+
]).pipe(map(([hideBetaPreview, items]) => {
|
|
35452
35470
|
const hasItems = items.length > 0;
|
|
35453
35471
|
if (!hasItems) {
|
|
35454
35472
|
return false;
|