@firestitch/popover 18.0.1 → 18.1.0
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/app/class/popover-ref.d.ts +13 -4
- package/app/components/popover/popover.component.d.ts +1 -1
- package/app/components/popover-wrapper/popover-wrapper.component.d.ts +4 -3
- package/app/directives/popover.directive.d.ts +57 -11
- package/app/fs-popover.module.d.ts +2 -5
- package/app/helpers/create-overlay-ref.d.ts +6 -2
- package/app/helpers/has-overlay-above.d.ts +10 -0
- package/app/interfaces/popover-config.interface.d.ts +1 -0
- package/app/services/popover.service.d.ts +1 -3
- package/esm2022/app/class/popover-ref.mjs +16 -2
- package/esm2022/app/components/popover/popover.component.mjs +5 -5
- package/esm2022/app/components/popover-wrapper/popover-wrapper.component.mjs +20 -18
- package/esm2022/app/directives/popover.directive.mjs +172 -23
- package/esm2022/app/fs-popover.module.mjs +4 -15
- package/esm2022/app/helpers/create-overlay-ref.mjs +11 -6
- package/esm2022/app/helpers/create-position-strategy.mjs +49 -45
- package/esm2022/app/helpers/has-overlay-above.mjs +24 -0
- package/esm2022/app/interfaces/popover-config.interface.mjs +1 -1
- package/esm2022/app/services/popover.service.mjs +6 -11
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/firestitch-popover.mjs +312 -134
- package/fesm2022/firestitch-popover.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { OverlayRef } from '@angular/cdk/overlay';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
2
3
|
import { IPopoverConfig } from '../interfaces/popover-config.interface';
|
|
3
4
|
export declare class FsPopoverRef {
|
|
4
5
|
overlayRef: OverlayRef;
|
|
5
6
|
private readonly _autoShow$;
|
|
6
7
|
private readonly _autoClose$;
|
|
7
8
|
private readonly _componentLoading$;
|
|
9
|
+
private readonly _closed$;
|
|
8
10
|
private _maxWidth;
|
|
11
|
+
private _maxHeight;
|
|
9
12
|
private _wrapperClass;
|
|
10
13
|
private _loadingDiameter;
|
|
11
14
|
private _loading;
|
|
@@ -16,17 +19,23 @@ export declare class FsPopoverRef {
|
|
|
16
19
|
get size(): string;
|
|
17
20
|
get theme(): string;
|
|
18
21
|
get loading(): boolean;
|
|
19
|
-
get autoShow$():
|
|
22
|
+
get autoShow$(): Observable<boolean>;
|
|
20
23
|
get autoShow(): boolean;
|
|
21
24
|
set autoShow(value: boolean);
|
|
22
|
-
get autoClose$():
|
|
25
|
+
get autoClose$(): Observable<boolean>;
|
|
23
26
|
get autoClose(): boolean;
|
|
24
27
|
set autoClose(value: boolean);
|
|
25
|
-
get componentVisible$():
|
|
26
|
-
get componentLoading$():
|
|
28
|
+
get componentVisible$(): Observable<boolean>;
|
|
29
|
+
get componentLoading$(): Observable<boolean>;
|
|
27
30
|
get componentLoading(): boolean;
|
|
28
31
|
get wrapperClass(): string;
|
|
29
32
|
get maxWidth(): number;
|
|
33
|
+
get maxHeight(): number;
|
|
34
|
+
/**
|
|
35
|
+
* Emits after each close(). A panel listens to it, so content that calls
|
|
36
|
+
* `popover.close()` closes the panel the same way Escape or an outside click does.
|
|
37
|
+
*/
|
|
38
|
+
get closed$(): Observable<void>;
|
|
30
39
|
show(): void;
|
|
31
40
|
close(): void;
|
|
32
41
|
updatePosition(): void;
|
|
@@ -2,5 +2,5 @@ import { FsPopoverDirective } from '../../directives/popover.directive';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class FsPopoverComponent extends FsPopoverDirective {
|
|
4
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsPopoverComponent, never>;
|
|
5
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FsPopoverComponent, "fs-popover",
|
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FsPopoverComponent, "fs-popover", ["fsPopover"], {}, {}, never, ["*"], true, never>;
|
|
6
6
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentRef, ElementRef, EmbeddedViewRef,
|
|
1
|
+
import { ComponentRef, ElementRef, EmbeddedViewRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
|
|
3
3
|
import { FsPopoverRef } from '../../class/popover-ref';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -14,8 +14,9 @@ export declare class FsPopoverWrapperComponent extends BasePortalOutlet implemen
|
|
|
14
14
|
private _contentChangesObserver;
|
|
15
15
|
private _updatePosition;
|
|
16
16
|
private _destroy$;
|
|
17
|
-
constructor(
|
|
17
|
+
constructor();
|
|
18
18
|
set maxWidth(value: number);
|
|
19
|
+
set maxHeight(value: number);
|
|
19
20
|
set wrapperClass(value: string);
|
|
20
21
|
ngOnInit(): void;
|
|
21
22
|
ngOnDestroy(): void;
|
|
@@ -36,5 +37,5 @@ export declare class FsPopoverWrapperComponent extends BasePortalOutlet implemen
|
|
|
36
37
|
private _observeContentChanges;
|
|
37
38
|
private _listenUpdatePositionRequests;
|
|
38
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsPopoverWrapperComponent, never>;
|
|
39
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FsPopoverWrapperComponent, "fs-popover-wrapper", never, {}, {}, never, never,
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FsPopoverWrapperComponent, "fs-popover-wrapper", never, {}, {}, never, never, true, never>;
|
|
40
41
|
}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Router } from '@angular/router';
|
|
1
|
+
import { OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
|
|
3
2
|
import { Observable } from 'rxjs';
|
|
4
3
|
import { Position } from '../enums/position';
|
|
5
|
-
import { FsPopoverService } from '../services/popover.service';
|
|
6
4
|
import * as i0 from "@angular/core";
|
|
7
5
|
export declare class FsPopoverDirective implements OnInit, OnChanges, OnDestroy {
|
|
8
|
-
private _elRef;
|
|
9
|
-
private _popoverService;
|
|
10
|
-
private _ngZone;
|
|
11
|
-
private _router;
|
|
12
|
-
private _guid;
|
|
13
6
|
text: string;
|
|
14
7
|
template: TemplateRef<any>;
|
|
15
8
|
data: any;
|
|
16
9
|
leaveDelay: number;
|
|
17
10
|
showDelay: number;
|
|
18
11
|
maxWidth: number;
|
|
12
|
+
maxHeight: number;
|
|
19
13
|
wrapperClass: string;
|
|
20
14
|
autoShow: boolean;
|
|
21
15
|
autoClose: boolean;
|
|
@@ -27,6 +21,17 @@ export declare class FsPopoverDirective implements OnInit, OnChanges, OnDestroy
|
|
|
27
21
|
size: 'tiny' | 'small' | 'normal';
|
|
28
22
|
trigger: 'click' | 'mouseover';
|
|
29
23
|
enabled: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Panel mode: a host click or open() opens it; it stays open until close(), an outside
|
|
26
|
+
* click, Escape (only when no later overlay with a backdrop sits above it) or `popover.close()`
|
|
27
|
+
* from the content. Focus is trapped inside and returns on close to the element that had it
|
|
28
|
+
* when the panel opened. `trigger`, `showDelay`, `leaveDelay` and `autoClose` don't apply.
|
|
29
|
+
*/
|
|
30
|
+
panel: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Emits each time the panel closes.
|
|
33
|
+
*/
|
|
34
|
+
closed: import("@angular/core").OutputEmitterRef<void>;
|
|
30
35
|
private _initialized;
|
|
31
36
|
private _popoverRef;
|
|
32
37
|
private _wrapperElement;
|
|
@@ -36,12 +41,34 @@ export declare class FsPopoverDirective implements OnInit, OnChanges, OnDestroy
|
|
|
36
41
|
private _mouseLeave$;
|
|
37
42
|
private _popoverClosed$;
|
|
38
43
|
private _destroy$;
|
|
39
|
-
|
|
44
|
+
private _elRef;
|
|
45
|
+
private _popoverService;
|
|
46
|
+
private _ngZone;
|
|
47
|
+
private _router;
|
|
48
|
+
private _guid;
|
|
49
|
+
private _overlay;
|
|
50
|
+
private _injector;
|
|
51
|
+
private _focusTrapFactory;
|
|
52
|
+
private _document;
|
|
53
|
+
private _panelOverlayRef;
|
|
54
|
+
private _panelFocusTrap;
|
|
55
|
+
private _panelOpener;
|
|
56
|
+
private _panelTopmostKeydown;
|
|
57
|
+
private _panelClosed$;
|
|
58
|
+
constructor();
|
|
40
59
|
get openTimer$(): Observable<number>;
|
|
41
60
|
get closeTimer$(): Observable<number>;
|
|
42
61
|
ngOnInit(): void;
|
|
43
62
|
ngOnChanges(changes: SimpleChanges): void;
|
|
44
63
|
ngOnDestroy(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Opens the panel on this element. Panel mode only.
|
|
66
|
+
*/
|
|
67
|
+
open(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Closes the panel, or in hover and click modes the open popover.
|
|
70
|
+
*/
|
|
71
|
+
close(): void;
|
|
45
72
|
private _closePopover;
|
|
46
73
|
private _initialize;
|
|
47
74
|
private _listenRouteChange;
|
|
@@ -50,6 +77,25 @@ export declare class FsPopoverDirective implements OnInit, OnChanges, OnDestroy
|
|
|
50
77
|
private _openPopover;
|
|
51
78
|
private _listenMouseHostLeave$;
|
|
52
79
|
private _mouseLeftTheTargets;
|
|
53
|
-
|
|
54
|
-
|
|
80
|
+
private _listenPanelHostClick;
|
|
81
|
+
private _openPanel;
|
|
82
|
+
private _attachPanelContent;
|
|
83
|
+
/**
|
|
84
|
+
* The configurable trap also pulls focus back when it lands outside the panel, for
|
|
85
|
+
* example on the first Tab after a calendar inside closed and took the focused element
|
|
86
|
+
* with it. Focus inside other overlays (a select, a calendar) is left alone.
|
|
87
|
+
*/
|
|
88
|
+
private _trapPanelFocus;
|
|
89
|
+
private _listenPanelClose;
|
|
90
|
+
/**
|
|
91
|
+
* Escape closes the panel only when no later overlay with a backdrop sits above it, so
|
|
92
|
+
* Escape in a calendar, select or menu opened from the panel closes only that. The check
|
|
93
|
+
* runs in the capture phase, before any handler inside closes its own overlay; fs-datepicker,
|
|
94
|
+
* for one, closes its calendar from the input's keydown and from a document listener.
|
|
95
|
+
*/
|
|
96
|
+
private _listenPanelEscape;
|
|
97
|
+
private _finishPanel;
|
|
98
|
+
private _restorePanelFocus;
|
|
99
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FsPopoverDirective, never>;
|
|
100
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FsPopoverDirective, "[fsPopover]", ["fsPopover"], { "text": { "alias": "text"; "required": false; }; "template": { "alias": "template"; "required": false; }; "data": { "alias": "data"; "required": false; }; "leaveDelay": { "alias": "leaveDelay"; "required": false; }; "showDelay": { "alias": "showDelay"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "maxHeight": { "alias": "maxHeight"; "required": false; }; "wrapperClass": { "alias": "wrapperClass"; "required": false; }; "autoShow": { "alias": "autoShow"; "required": false; }; "autoClose": { "alias": "autoClose"; "required": false; }; "loadingDiameter": { "alias": "loadingDiameter"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "indication": { "alias": "indication"; "required": false; }; "position": { "alias": "position"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "size": { "alias": "size"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "panel": { "alias": "panel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
|
|
55
101
|
}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./components/popover/popover.component";
|
|
3
|
-
import * as i2 from "./
|
|
4
|
-
import * as i3 from "./directives/popover.directive";
|
|
5
|
-
import * as i4 from "@angular/common";
|
|
6
|
-
import * as i5 from "@angular/cdk/portal";
|
|
3
|
+
import * as i2 from "./directives/popover.directive";
|
|
7
4
|
export declare class FsPopoverModule {
|
|
8
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsPopoverModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FsPopoverModule, [typeof i1.FsPopoverComponent, typeof i2.
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FsPopoverModule, never, [typeof i1.FsPopoverComponent, typeof i2.FsPopoverDirective], [typeof i1.FsPopoverComponent, typeof i2.FsPopoverDirective]>;
|
|
10
7
|
static ɵinj: i0.ɵɵInjectorDeclaration<FsPopoverModule>;
|
|
11
8
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { Overlay, OverlayRef } from '@angular/cdk/overlay';
|
|
3
3
|
import { Position } from './../enums/position';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Hover and click popovers have no backdrop. A panel gets a transparent backdrop, so a click
|
|
6
|
+
* anywhere outside it closes it, and the `fs-popover-panel` class on its pane.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createOverlayRef(el: ElementRef, overlay: Overlay, position: Position, panel?: boolean): OverlayRef;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
2
|
+
/**
|
|
3
|
+
* True when an overlay with a backdrop was attached after this one and still shows content:
|
|
4
|
+
* a calendar, a select, a menu or a dialog opened from inside it. Overlays without a backdrop
|
|
5
|
+
* (tooltips, toasts, hover popovers) don't count.
|
|
6
|
+
*
|
|
7
|
+
* CDK inserts each backdrop right before its overlay's host, and later overlays after earlier
|
|
8
|
+
* ones, so everything after this overlay's host was attached later.
|
|
9
|
+
*/
|
|
10
|
+
export declare function hasOverlayAbove(overlayRef: OverlayRef): boolean;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ElementRef,
|
|
2
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
1
|
+
import { ElementRef, TemplateRef } from '@angular/core';
|
|
3
2
|
import { Position } from './../enums/position';
|
|
4
3
|
import { FsPopoverRef } from '../class/popover-ref';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
@@ -8,7 +7,6 @@ export declare class FsPopoverService {
|
|
|
8
7
|
private _overlay;
|
|
9
8
|
private _activeElement;
|
|
10
9
|
private _activeElementGUID;
|
|
11
|
-
constructor(_injector: Injector, _overlay: Overlay);
|
|
12
10
|
get hasActivePopover(): boolean;
|
|
13
11
|
get activeElementGUID(): string;
|
|
14
12
|
setActivePopoverGUID(value: string): void;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
1
|
+
import { BehaviorSubject, Subject, combineLatest } from 'rxjs';
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
3
|
export class FsPopoverRef {
|
|
4
4
|
overlayRef;
|
|
5
5
|
_autoShow$ = new BehaviorSubject(true);
|
|
6
6
|
_autoClose$ = new BehaviorSubject(true);
|
|
7
7
|
_componentLoading$ = new BehaviorSubject(true);
|
|
8
|
+
_closed$ = new Subject();
|
|
8
9
|
_maxWidth;
|
|
10
|
+
_maxHeight;
|
|
9
11
|
_wrapperClass;
|
|
10
12
|
_loadingDiameter;
|
|
11
13
|
_loading;
|
|
@@ -64,6 +66,16 @@ export class FsPopoverRef {
|
|
|
64
66
|
get maxWidth() {
|
|
65
67
|
return this._maxWidth;
|
|
66
68
|
}
|
|
69
|
+
get maxHeight() {
|
|
70
|
+
return this._maxHeight;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Emits after each close(). A panel listens to it, so content that calls
|
|
74
|
+
* `popover.close()` closes the panel the same way Escape or an outside click does.
|
|
75
|
+
*/
|
|
76
|
+
get closed$() {
|
|
77
|
+
return this._closed$.asObservable();
|
|
78
|
+
}
|
|
67
79
|
show() {
|
|
68
80
|
setTimeout(() => {
|
|
69
81
|
this._componentLoading$.next(false);
|
|
@@ -75,6 +87,7 @@ export class FsPopoverRef {
|
|
|
75
87
|
close() {
|
|
76
88
|
this.overlayRef.detach();
|
|
77
89
|
this._componentLoading$.next(true);
|
|
90
|
+
this._closed$.next();
|
|
78
91
|
}
|
|
79
92
|
updatePosition() {
|
|
80
93
|
this.overlayRef.updatePosition();
|
|
@@ -82,6 +95,7 @@ export class FsPopoverRef {
|
|
|
82
95
|
_init(config) {
|
|
83
96
|
this._wrapperClass = config.wrapperClass;
|
|
84
97
|
this._maxWidth = config.maxWidth;
|
|
98
|
+
this._maxHeight = config.maxHeight;
|
|
85
99
|
this._loading = config.loading;
|
|
86
100
|
this._loadingDiameter = config.loadingDiameter;
|
|
87
101
|
this._size = config.size;
|
|
@@ -90,4 +104,4 @@ export class FsPopoverRef {
|
|
|
90
104
|
this._autoClose$.next(config.autoClose);
|
|
91
105
|
}
|
|
92
106
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NsYXNzL3BvcG92ZXItcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLckMsTUFBTSxPQUFPLFlBQVk7SUFFaEIsVUFBVSxDQUFhO0lBRWIsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ2hELFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUNqRCxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUN4RCxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUN4QyxTQUFTLENBQVM7SUFDbEIsVUFBVSxDQUFTO0lBQ25CLGFBQWEsQ0FBUztJQUN0QixnQkFBZ0IsQ0FBUztJQUN6QixRQUFRLENBQVU7SUFDbEIsTUFBTSxDQUFTO0lBQ2YsS0FBSyxDQUFTO0lBRXRCLFlBQVksU0FBeUIsRUFBRTtRQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFB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TUFBTSxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJUG9wb3ZlckNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9wb3Zlci1jb25maWcuaW50ZXJmYWNlJztcblxuXG5leHBvcnQgY2xhc3MgRnNQb3BvdmVyUmVmIHtcblxuICBwdWJsaWMgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRvU2hvdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRvQ2xvc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50TG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfbWF4V2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBfbWF4SGVpZ2h0OiBudW1iZXI7XG4gIHByaXZhdGUgX3dyYXBwZXJDbGFzczogc3RyaW5nO1xuICBwcml2YXRlIF9sb2FkaW5nRGlhbWV0ZXI6IG51bWJlcjtcbiAgcHJpdmF0ZSBfbG9hZGluZzogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfdGhlbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogSVBvcG92ZXJDb25maWcgPSB7fSkge1xuICAgIHRoaXMuX2luaXQoY29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZ0RpYW1ldGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nRGlhbWV0ZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRoZW1lKCkge1xuICAgIHJldHVybiB0aGlzLl90aGVtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b1Nob3ckKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRvU2hvdyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9TaG93KCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRvU2hvdyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYXV0b1Nob3codmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdXRvU2hvdyQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9DbG9zZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9DbG9zZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9DbG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b0Nsb3NlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBhdXRvQ2xvc2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdXRvQ2xvc2UkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wb25lbnRWaXNpYmxlJCgpIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmF1dG9TaG93JCxcbiAgICAgIHRoaXMuY29tcG9uZW50TG9hZGluZyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2F1dG9TaG93LCBjb21wb25lbnRMb2FkaW5nXSkgPT4ge1xuICAgICAgICByZXR1cm4gYXV0b1Nob3cgfHwgIWNvbXBvbmVudExvYWRpbmc7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29tcG9uZW50TG9hZGluZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudExvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wb25lbnRMb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRMb2FkaW5nJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB3cmFwcGVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dyYXBwZXJDbGFzcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWF4V2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heFdpZHRoO1xuICB9XG5cbiAgcHVibGljIGdldCBtYXhIZWlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heEhlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhZnRlciBlYWNoIGNsb3NlKCkuIEEgcGFuZWwgbGlzdGVucyB0byBpdCwgc28gY29udGVudCB0aGF0IGNhbGxzXG4gICAqIGBwb3BvdmVyLmNsb3NlKClgIGNsb3NlcyB0aGUgcGFuZWwgdGhlIHNhbWUgd2F5IEVzY2FwZSBvciBhbiBvdXRzaWRlIGNsaWNrIGRvZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNsb3NlZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2hvdygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX2NvbXBvbmVudExvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICB0aGlzLl9jb21wb25lbnRMb2FkaW5nJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2Nsb3NlZCQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdChjb25maWc6IElQb3BvdmVyQ29uZmlnKSB7XG4gICAgdGhpcy5fd3JhcHBlckNsYXNzID0gY29uZmlnLndyYXBwZXJDbGFzcztcbiAgICB0aGlzLl9tYXhXaWR0aCA9IGNvbmZpZy5tYXhXaWR0aDtcbiAgICB0aGlzLl9tYXhIZWlnaHQgPSBjb25maWcubWF4SGVpZ2h0O1xuICAgIHRoaXMuX2xvYWRpbmcgPSBjb25maWcubG9hZGluZztcbiAgICB0aGlzLl9sb2FkaW5nRGlhbWV0ZXIgPSBjb25maWcubG9hZGluZ0RpYW1ldGVyO1xuICAgIHRoaXMuX3NpemUgPSBjb25maWcuc2l6ZTtcbiAgICB0aGlzLl90aGVtZSA9IGNvbmZpZy50aGVtZTtcbiAgICB0aGlzLl9hdXRvU2hvdyQubmV4dChjb25maWcuYXV0b1Nob3cpO1xuICAgIHRoaXMuX2F1dG9DbG9zZSQubmV4dChjb25maWcuYXV0b0Nsb3NlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
2
|
import { FsPopoverDirective } from '../../directives/popover.directive';
|
|
3
|
+
import { NgClass } from '@angular/common';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
5
|
export class FsPopoverComponent extends FsPopoverDirective {
|
|
6
6
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsPopoverComponent, selector: "fs-popover", host: { classAttribute: "fs-popover-component" }, usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n", dependencies: [{ kind: "directive", type:
|
|
7
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsPopoverComponent, isStandalone: true, selector: "fs-popover", host: { classAttribute: "fs-popover-component" }, exportAs: ["fsPopover"], usesInheritance: true, ngImport: i0, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPopoverComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
|
-
args: [{ selector: 'fs-popover', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
11
|
+
args: [{ selector: 'fs-popover', exportAs: 'fsPopover', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
12
12
|
'class': 'fs-popover-component',
|
|
13
|
-
}, template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n" }]
|
|
13
|
+
}, standalone: true, imports: [NgClass], template: "<span [ngClass]=\"{'popover-container': enabled}\">\n <ng-content></ng-content>\n</span>\n" }]
|
|
14
14
|
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYzFDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7dUdBQTdDLGtCQUFrQjsyRkFBbEIsa0JBQWtCLHdLQ2hCL0IsNkZBR0EsNENEV2MsT0FBTzs7MkZBRVIsa0JBQWtCO2tCQVg5QixTQUFTOytCQUNJLFlBQVksWUFDWixXQUFXLG1CQUVKLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsT0FBTyxFQUFFLHNCQUFzQjtxQkFDbEMsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGc1BvcG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3BvcG92ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZnMtcG9wb3ZlcicsXG4gICAgZXhwb3J0QXM6ICdmc1BvcG92ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAncG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZnMtcG9wb3Zlci1jb21wb25lbnQnLFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzc11cbn0pXG5leHBvcnQgY2xhc3MgRnNQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgRnNQb3BvdmVyRGlyZWN0aXZlIHt9XG4iLCI8c3BhbiBbbmdDbGFzc109XCJ7J3BvcG92ZXItY29udGFpbmVyJzogZW5hYmxlZH1cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zcGFuPlxuIl19
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, NgZone, Renderer2, ViewChild, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, NgZone, Renderer2, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { BasePortalOutlet, CdkPortalOutlet, } from '@angular/cdk/portal';
|
|
3
3
|
import { fromEvent, Subject } from 'rxjs';
|
|
4
4
|
import { debounceTime, filter, takeUntil } from 'rxjs/operators';
|
|
5
5
|
import { FsPopoverRef } from '../../class/popover-ref';
|
|
6
|
+
import { NgClass, AsyncPipe } from '@angular/common';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../class/popover-ref";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "@angular/cdk/portal";
|
|
10
8
|
export class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
11
|
-
popoverRef;
|
|
12
|
-
_el;
|
|
13
|
-
_zone;
|
|
14
|
-
_renderer;
|
|
9
|
+
popoverRef = inject(FsPopoverRef);
|
|
10
|
+
_el = inject(ElementRef);
|
|
11
|
+
_zone = inject(NgZone);
|
|
12
|
+
_renderer = inject(Renderer2);
|
|
15
13
|
_portalOutlet;
|
|
16
14
|
spinner;
|
|
17
15
|
content;
|
|
@@ -19,19 +17,19 @@ export class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
19
17
|
_contentChangesObserver;
|
|
20
18
|
_updatePosition = new Subject();
|
|
21
19
|
_destroy$ = new Subject();
|
|
22
|
-
constructor(
|
|
20
|
+
constructor() {
|
|
23
21
|
super();
|
|
24
|
-
this.popoverRef = popoverRef;
|
|
25
|
-
this._el = _el;
|
|
26
|
-
this._zone = _zone;
|
|
27
|
-
this._renderer = _renderer;
|
|
28
22
|
this._updateClass();
|
|
29
23
|
this.wrapperClass = this.popoverRef.wrapperClass;
|
|
30
24
|
this.maxWidth = this.popoverRef.maxWidth;
|
|
25
|
+
this.maxHeight = this.popoverRef.maxHeight;
|
|
31
26
|
}
|
|
32
27
|
set maxWidth(value) {
|
|
33
28
|
this._el.nativeElement.style.maxWidth = value ? `${value}px` : void 0;
|
|
34
29
|
}
|
|
30
|
+
set maxHeight(value) {
|
|
31
|
+
this._el.nativeElement.style.setProperty('--fs-popover-max-height', value ? `${value}px` : null);
|
|
32
|
+
}
|
|
35
33
|
set wrapperClass(value) {
|
|
36
34
|
this._wrapperClass = value;
|
|
37
35
|
this._updateClass();
|
|
@@ -108,19 +106,23 @@ export class FsPopoverWrapperComponent extends BasePortalOutlet {
|
|
|
108
106
|
this.popoverRef.updatePosition();
|
|
109
107
|
});
|
|
110
108
|
}
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPopoverWrapperComponent, deps: [
|
|
112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPopoverWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FsPopoverWrapperComponent, isStandalone: true, selector: "fs-popover-wrapper", host: { classAttribute: "fs-popover-wrapper" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }, { propertyName: "spinner", first: true, predicate: ["spinner"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n @if (content) {\n {{content}}\n }\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n@if (popoverRef.loading && !(popoverRef.componentVisible$ | async)) {\n <div class=\"loading-spinner\"\n #spinner\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n </div>\n}\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:auto;max-height:var(--fs-popover-max-height, calc(100vh - 100px) )}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
111
|
}
|
|
114
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsPopoverWrapperComponent, decorators: [{
|
|
115
113
|
type: Component,
|
|
116
114
|
args: [{ selector: 'fs-popover-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
117
115
|
'class': 'fs-popover-wrapper',
|
|
118
|
-
},
|
|
119
|
-
|
|
116
|
+
}, standalone: true, imports: [
|
|
117
|
+
NgClass,
|
|
118
|
+
CdkPortalOutlet,
|
|
119
|
+
AsyncPipe,
|
|
120
|
+
], template: "<div class=\"wrapper\" [ngClass]=\"{\n 'theme-dark' : popoverRef.theme === 'dark',\n 'size-tiny': popoverRef.size === 'tiny',\n 'size-small': popoverRef.size === 'small',\n 'hidden': !(popoverRef.componentVisible$ | async)\n }\">\n <div class=\"mat-elevation-z4 popover-content\">\n @if (content) {\n {{content}}\n }\n\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n\n <div class=\"fs-popover-arrow light\"></div>\n <div class=\"fs-popover-arrow dark\"></div>\n</div>\n\n@if (popoverRef.loading && !(popoverRef.componentVisible$ | async)) {\n <div class=\"loading-spinner\"\n #spinner\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"popoverRef.loadingDiameter\" [attr.height]=\"popoverRef.loadingDiameter\" viewBox=\"0 0 42 42\" stroke=\"grey\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"3\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"1s\" repeatCount=\"indefinite\"/>\n </path>\n </g>\n </g>\n </svg>\n </div>\n}\n", styles: [".wrapper{padding:6px;animation:fadeIn ease .2s}.wrapper.hidden{display:none}.wrapper .popover-content{background:#fff;border-radius:4px;padding:8px;color:#1b1b1b;box-sizing:border-box;overflow:auto;max-height:var(--fs-popover-max-height, calc(100vh - 100px) )}.wrapper.theme-dark .popover-content{background-color:#707070;color:#fff}.wrapper.size-small .popover-content{font-size:80%}.wrapper.size-tiny .popover-content{font-size:70%}.wrapper .fs-popover-arrow{width:0;height:0;font-size:0;line-height:0;position:absolute;z-index:200;z-index:1}.wrapper .fs-popover-arrow.dark{z-index:0}::ng-deep .fs-popover-top .fs-popover-arrow,::ng-deep .fs-popover-bottom .fs-popover-arrow{border-left:10px solid transparent;border-right:10px solid transparent}::ng-deep .fs-popover-left .fs-popover-arrow,::ng-deep .fs-popover-right .fs-popover-arrow{border-top:10px solid transparent;border-bottom:10px solid transparent}::ng-deep .fs-popover-top .fs-popover-arrow{bottom:-3px;left:calc(50% - 10px);border-top:10px solid #fff}::ng-deep .fs-popover-top .fs-popover-arrow.dark{border-top-color:#dfdfdf40;bottom:-4px}::ng-deep .fs-popover-bottom .fs-popover-arrow{top:-3px;left:calc(50% - 10px);border-bottom:10px solid #fff}::ng-deep .fs-popover-bottom .fs-popover-arrow.dark{border-bottom-color:#dfdfdf40;top:-4px}::ng-deep .fs-popover-left .fs-popover-arrow{left:-3px;top:calc(50% - 10px);border-right:10px solid #fff}::ng-deep .fs-popover-left .fs-popover-arrow.dark{border-right-color:#dfdfdf40;left:-4px}::ng-deep .fs-popover-right .fs-popover-arrow{right:-3px;top:calc(50% - 10px);border-left:10px solid #fff}::ng-deep .fs-popover-right .fs-popover-arrow.dark{border-left-color:#dfdfdf40;right:-4px}::ng-deep .fs-popover-bottom .wrapper.theme-dark .fs-popover-arrow{border-bottom-color:#707070}::ng-deep .fs-popover-left .wrapper.theme-dark .fs-popover-arrow{border-right-color:#707070}::ng-deep .fs-popover-right .wrapper.theme-dark .fs-popover-arrow{border-left-color:#707070}::ng-deep .fs-popover-top .wrapper.theme-dark .fs-popover-arrow{border-top-color:#707070}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
121
|
+
}], ctorParameters: () => [], propDecorators: { _portalOutlet: [{
|
|
120
122
|
type: ViewChild,
|
|
121
123
|
args: [CdkPortalOutlet, { static: true }]
|
|
122
124
|
}], spinner: [{
|
|
123
125
|
type: ViewChild,
|
|
124
126
|
args: ['spinner']
|
|
125
127
|
}] } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFFVixNQUFNLEVBR04sU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FHaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBWXZELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFpQnBEO0lBQ0M7SUFDQTtJQUNBO0lBakJILGFBQWEsQ0FBa0I7SUFHL0IsT0FBTyxDQUFhO0lBRXBCLE9BQU8sQ0FBUztJQUVmLGFBQWEsQ0FBUztJQUN0Qix1QkFBdUIsQ0FBbUI7SUFDMUMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdEMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsWUFDUyxVQUF3QixFQUN2QixHQUFlLEVBQ2YsS0FBYSxFQUNiLFNBQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBTEQsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN2QixRQUFHLEdBQUgs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bUJBR2IsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixPQUFPLEVBQUUsb0JBQW9CO3FCQUM5Qjt1SkFLTSxhQUFhO3NCQURuQixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXJDLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQmFzZVBvcnRhbE91dGxldCxcbiAgQ2RrUG9ydGFsT3V0bGV0LFxuICBDb21wb25lbnRQb3J0YWwsXG4gIFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc1BvcG92ZXJSZWYgfSBmcm9tICcuLi8uLi9jbGFzcy9wb3BvdmVyLXJlZic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtcG9wb3Zlci13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXItd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXItd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmcy1wb3BvdmVyLXdyYXBwZXInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGc1BvcG92ZXJXcmFwcGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBvcnRhbE91dGxldCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIF9wb3J0YWxPdXRsZXQ6IENka1BvcnRhbE91dGxldDtcblxuICBAVmlld0NoaWxkKCdzcGlubmVyJylcbiAgcHVibGljIHNwaW5uZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICBwcml2YXRlIF93cmFwcGVyQ2xhc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfY29udGVudENoYW5nZXNPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcbiAgcHJpdmF0ZSBfdXBkYXRlUG9zaXRpb24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcG9wb3ZlclJlZjogRnNQb3BvdmVyUmVmLFxuICAgIHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3VwZGF0ZUNsYXNzKCk7XG5cbiAgICB0aGlzLndyYXBwZXJDbGFzcyA9IHRoaXMucG9wb3ZlclJlZi53cmFwcGVyQ2xhc3M7XG4gICAgdGhpcy5tYXhXaWR0aCA9IHRoaXMucG9wb3ZlclJlZi5tYXhXaWR0aDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbWF4V2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4V2lkdGggPSB2YWx1ZSA/IGAke3ZhbHVlICB9cHhgIDogdm9pZCAwO1xuICB9XG5cbiAgcHVibGljIHNldCB3cmFwcGVyQ2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3dyYXBwZXJDbGFzcyA9IHZhbHVlO1xuICAgIHRoaXMuX3VwZGF0ZUNsYXNzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBvcG92ZXJSZWYuYXV0b1Nob3cgJiYgdGhpcy5wb3BvdmVyUmVmLmNvbXBvbmVudExvYWRpbmcpIHtcbiAgICAgIHRoaXMuX3dhdGNoTW91c2VQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuX29ic2VydmVDb250ZW50Q2hhbmdlcygpO1xuICAgIHRoaXMuX2xpc3RlblVwZGF0ZVBvc2l0aW9uUmVxdWVzdHMoKTtcbiAgfVxuXG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2NvbnRlbnRDaGFuZ2VzT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBUZW1wbGF0ZVBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgcG9wb3ZlciBjb250YWluZXIuXG4gICAqIEBwYXJhbSBwb3J0YWwgUG9ydGFsIHRvIGJlIGF0dGFjaGVkIGFzIHRoZSBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoVGVtcGxhdGVQb3J0YWw8Qz4ocG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxDPik6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG5cbiAgICBpZiAodGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRocm93IEVycm9yKCdQb3BvdmVyIHRlbXBsYXRlIGFscmVhZHkgYXR0YWNoZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHBvcnRhbCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBDb21wb25lbnRQb3J0YWwgYXMgY29udGVudCB0byB0aGlzIHBvcG92ZXIgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCBhcyB0aGUgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxUPik6IENvbXBvbmVudFJlZjxUPiB7XG5cbiAgICBpZiAodGhpcy5fcG9ydGFsT3V0bGV0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRocm93IEVycm9yKCdQb3BvdmVyIGNvbXBvbmVudCBhbHJlYWR5IGF0dGFjaGVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbE91dGxldC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUZXh0dWFsQ29udGVudChjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xuICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIF93YXRjaE1vdXNlUG9zaXRpb24oKSB7XG4gICAgY29uc3QgY29tcG9uZW50VmlzaWJpbGl0eUNoYW5nZSQgPSB0aGlzLnBvcG92ZXJSZWYuY29tcG9uZW50VmlzaWJsZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSksXG4gICAgICApO1xuXG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwoY29tcG9uZW50VmlzaWJpbGl0eUNoYW5nZSQpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHtlLnggIH1weGA7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gYCR7ZS55ICsgMjAgIH1weGA7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuX3dyYXBwZXJDbGFzcykge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWwubmF0aXZlRWxlbWVudCwgdGhpcy5fd3JhcHBlckNsYXNzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vYnNlcnZlQ29udGVudENoYW5nZXMoKSB7XG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5fY29udGVudENoYW5nZXNPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24oKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2NvbnRlbnRDaGFuZ2VzT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCBjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuVXBkYXRlUG9zaXRpb25SZXF1ZXN0cygpIHtcbiAgICB0aGlzLl91cGRhdGVQb3NpdGlvblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wb3BvdmVyUmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndyYXBwZXJcIiBbbmdDbGFzc109XCJ7XG4gICd0aGVtZS1kYXJrJyA6IHBvcG92ZXJSZWYudGhlbWUgPT09ICdkYXJrJyxcbiAgJ3NpemUtdGlueSc6IHBvcG92ZXJSZWYuc2l6ZSA9PT0gJ3RpbnknLFxuICAnc2l6ZS1zbWFsbCc6IHBvcG92ZXJSZWYuc2l6ZSA9PT0gJ3NtYWxsJyxcbiAgJ2hpZGRlbic6ICEocG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJCB8IGFzeW5jKVxuICB9XCI+XG4gIDxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo0IHBvcG92ZXItY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50XCI+XG4gICAgICB7e2NvbnRlbnR9fVxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZnMtcG9wb3Zlci1hcnJvdyBsaWdodFwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnMtcG9wb3Zlci1hcnJvdyBkYXJrXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImxvYWRpbmctc3Bpbm5lclwiXG4gICAgI3NwaW5uZXJcbiAgICAqbmdJZj1cInBvcG92ZXJSZWYubG9hZGluZyAmJiAhKHBvcG92ZXJSZWYuY29tcG9uZW50VmlzaWJsZSQgfCBhc3luYylcIj5cbiAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgW2F0dHIud2lkdGhdPVwicG9wb3ZlclJlZi5sb2FkaW5nRGlhbWV0ZXJcIiBbYXR0ci5oZWlnaHRdPVwicG9wb3ZlclJlZi5sb2FkaW5nRGlhbWV0ZXJcIiB2aWV3Qm94PVwiMCAwIDQyIDQyXCIgc3Ryb2tlPVwiZ3JleVwiPlxuICAgIDxnIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEgMSlcIiBzdHJva2Utd2lkdGg9XCIzXCI+XG4gICAgICAgIDxjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9XCIuNVwiIGN4PVwiMThcIiBjeT1cIjE4XCIgcj1cIjE4XCIvPlxuICAgICAgICA8cGF0aCBkPVwiTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4XCI+XG4gICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBmcm9tPVwiMCAxOCAxOFwiIHRvPVwiMzYwIDE4IDE4XCIgZHVyPVwiMXNcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XG4gICAgICAgIDwvcGF0aD5cbiAgICAgIDwvZz5cbiAgICA8L2c+XG4gIDwvc3ZnPlxuPC9kaXY+XG4iXX0=
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wb3BvdmVyLXdyYXBwZXIvcG9wb3Zlci13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWdCLFVBQVUsRUFBbUIsTUFBTSxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FHaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFrQnJELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFDN0QsVUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQixHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUkvQixhQUFhLENBQWtCO0lBRy9CLE9BQU8sQ0FBYTtJQUVwQixPQUFPLENBQVM7SUFFZixhQUFhLENB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QyxJQUFJLENBQUMsZUFBZTthQUNqQixJQUFJLENBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt1R0FoSlUseUJBQXlCOzJGQUF6Qix5QkFBeUIsNktBT3pCLGVBQWUsMEtDdEM1Qix5dUNBa0NBLHFuRURSUSxPQUFPLG9GQUNQLGVBQWUsNElBQ2YsU0FBUzs7MkZBR0oseUJBQXlCO2tCQWZyQyxTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLE9BQU8sRUFBRSxvQkFBb0I7cUJBQ2hDLGNBQ1csSUFBSSxXQUNQO3dCQUNMLE9BQU87d0JBQ1AsZUFBZTt3QkFDZixTQUFTO3FCQUNaO3dEQVVJLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckMsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBCYXNlUG9ydGFsT3V0bGV0LFxuICBDZGtQb3J0YWxPdXRsZXQsXG4gIENvbXBvbmVudFBvcnRhbCxcbiAgVGVtcGxhdGVQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL2NsYXNzL3BvcG92ZXItcmVmJztcbmltcG9ydCB7IE5nQ2xhc3MsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmcy1wb3BvdmVyLXdyYXBwZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BvcG92ZXItd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2ZzLXBvcG92ZXItd3JhcHBlcicsXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQ2RrUG9ydGFsT3V0bGV0LFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNQb3BvdmVyV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEJhc2VQb3J0YWxPdXRsZXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHBvcG92ZXJSZWYgPSBpbmplY3QoRnNQb3BvdmVyUmVmKTtcbiAgcHJpdmF0ZSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgX3BvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuXG4gIEBWaWV3Q2hpbGQoJ3NwaW5uZXInKVxuICBwdWJsaWMgc3Bpbm5lcjogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3dyYXBwZXJDbGFzczogc3RyaW5nO1xuICBwcml2YXRlIF9jb250ZW50Q2hhbmdlc09ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuICBwcml2YXRlIF91cGRhdGVQb3NpdGlvbiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdXBkYXRlQ2xhc3MoKTtcblxuICAgIHRoaXMud3JhcHBlckNsYXNzID0gdGhpcy5wb3BvdmVyUmVmLndyYXBwZXJDbGFzcztcbiAgICB0aGlzLm1heFdpZHRoID0gdGhpcy5wb3BvdmVyUmVmLm1heFdpZHRoO1xuICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5wb3BvdmVyUmVmLm1heEhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbWF4V2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWF4V2lkdGggPSB2YWx1ZSA/IGAke3ZhbHVlICB9cHhgIDogdm9pZCAwO1xuICB9XG5cbiAgcHVibGljIHNldCBtYXhIZWlnaHQodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAnLS1mcy1wb3BvdmVyLW1heC1oZWlnaHQnLFxuICAgICAgdmFsdWUgPyBgJHt2YWx1ZX1weGAgOiBudWxsLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHdyYXBwZXJDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fd3JhcHBlckNsYXNzID0gdmFsdWU7XG4gICAgdGhpcy5fdXBkYXRlQ2xhc3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucG9wb3ZlclJlZi5hdXRvU2hvdyAmJiB0aGlzLnBvcG92ZXJSZWYuY29tcG9uZW50TG9hZGluZykge1xuICAgICAgdGhpcy5fd2F0Y2hNb3VzZVBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fb2JzZXJ2ZUNvbnRlbnRDaGFuZ2VzKCk7XG4gICAgdGhpcy5fbGlzdGVuVXBkYXRlUG9zaXRpb25SZXF1ZXN0cygpO1xuICB9XG5cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fY29udGVudENoYW5nZXNPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIFRlbXBsYXRlUG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBwb3BvdmVyIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+KTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcblxuICAgIGlmICh0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1BvcG92ZXIgdGVtcGxhdGUgYWxyZWFkeSBhdHRhY2hlZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wb3J0YWxPdXRsZXQuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIENvbXBvbmVudFBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgcG9wb3ZlciBjb250YWluZXIuXG4gICAqIEBwYXJhbSBwb3J0YWwgUG9ydGFsIHRvIGJlIGF0dGFjaGVkIGFzIHRoZSBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcblxuICAgIGlmICh0aGlzLl9wb3J0YWxPdXRsZXQuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1BvcG92ZXIgY29tcG9uZW50IGFscmVhZHkgYXR0YWNoZWQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbChwb3J0YWwpO1xuICB9XG5cbiAgcHVibGljIHNldFRleHR1YWxDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUG9zaXRpb24oKSB7XG4gICAgdGhpcy5fdXBkYXRlUG9zaXRpb24ubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dhdGNoTW91c2VQb3NpdGlvbigpIHtcbiAgICBjb25zdCBjb21wb25lbnRWaXNpYmlsaXR5Q2hhbmdlJCA9IHRoaXMucG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlKSxcbiAgICAgICk7XG5cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbChjb21wb25lbnRWaXNpYmlsaXR5Q2hhbmdlJCksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5zcGlubmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGAke2UueCAgfXB4YDtcbiAgICAgICAgICB0aGlzLnNwaW5uZXIubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSBgJHtlLnkgKyAyMCAgfXB4YDtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDbGFzcygpIHtcbiAgICBpZiAodGhpcy5fd3JhcHBlckNsYXNzKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCB0aGlzLl93cmFwcGVyQ2xhc3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29ic2VydmVDb250ZW50Q2hhbmdlcygpIHtcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH07XG5cbiAgICB0aGlzLl9jb250ZW50Q2hhbmdlc09ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbigpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fY29udGVudENoYW5nZXNPYnNlcnZlci5vYnNlcnZlKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsIGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5VcGRhdGVQb3NpdGlvblJlcXVlc3RzKCkge1xuICAgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnBvcG92ZXJSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid3JhcHBlclwiIFtuZ0NsYXNzXT1cIntcbiAgJ3RoZW1lLWRhcmsnIDogcG9wb3ZlclJlZi50aGVtZSA9PT0gJ2RhcmsnLFxuICAnc2l6ZS10aW55JzogcG9wb3ZlclJlZi5zaXplID09PSAndGlueScsXG4gICdzaXplLXNtYWxsJzogcG9wb3ZlclJlZi5zaXplID09PSAnc21hbGwnLFxuICAnaGlkZGVuJzogIShwb3BvdmVyUmVmLmNvbXBvbmVudFZpc2libGUkIHwgYXN5bmMpXG4gIH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejQgcG9wb3Zlci1jb250ZW50XCI+XG4gICAgQGlmIChjb250ZW50KSB7XG4gICAgICB7e2NvbnRlbnR9fVxuICAgIH1cblxuICAgIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZzLXBvcG92ZXItYXJyb3cgbGlnaHRcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZzLXBvcG92ZXItYXJyb3cgZGFya1wiPjwvZGl2PlxuPC9kaXY+XG5cbkBpZiAocG9wb3ZlclJlZi5sb2FkaW5nICYmICEocG9wb3ZlclJlZi5jb21wb25lbnRWaXNpYmxlJCB8IGFzeW5jKSkge1xuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCJcbiAgICAjc3Bpbm5lclxuICAgID5cbiAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBbYXR0ci53aWR0aF09XCJwb3BvdmVyUmVmLmxvYWRpbmdEaWFtZXRlclwiIFthdHRyLmhlaWdodF09XCJwb3BvdmVyUmVmLmxvYWRpbmdEaWFtZXRlclwiIHZpZXdCb3g9XCIwIDAgNDIgNDJcIiBzdHJva2U9XCJncmV5XCI+XG4gICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEgMSlcIiBzdHJva2Utd2lkdGg9XCIzXCI+XG4gICAgICAgICAgPGNpcmNsZSBzdHJva2Utb3BhY2l0eT1cIi41XCIgY3g9XCIxOFwiIGN5PVwiMThcIiByPVwiMThcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFwiPlxuICAgICAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT1cInRyYW5zZm9ybVwiIHR5cGU9XCJyb3RhdGVcIiBmcm9tPVwiMCAxOCAxOFwiIHRvPVwiMzYwIDE4IDE4XCIgZHVyPVwiMXNcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+XG4gICAgICAgICAgPC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxufVxuIl19
|