@bravura/ui 2.3.4 → 2.5.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/CHANGELOG.md +15 -0
- package/alert/alert-container.component.d.ts +3 -1
- package/clip-note/clip-note.component.d.ts +45 -0
- package/clip-note/clip-note.directive.d.ts +69 -0
- package/clip-note/clip-note.module.d.ts +19 -0
- package/clip-note/index.d.ts +5 -0
- package/clip-note/public-api.d.ts +1 -0
- package/common/common-utils.d.ts +9 -0
- package/esm2020/alert/alert-container.component.mjs +9 -3
- package/esm2020/clip-note/bravura-ui-clip-note.mjs +5 -0
- package/esm2020/clip-note/clip-note.component.mjs +216 -0
- package/esm2020/clip-note/clip-note.directive.mjs +141 -0
- package/esm2020/clip-note/clip-note.module.mjs +32 -0
- package/esm2020/clip-note/public-api.mjs +2 -0
- package/esm2020/common/common-utils.mjs +25 -4
- package/esm2020/tooltip/tooltip.component.mjs +6 -3
- package/fesm2015/bravura-ui-alert.mjs +7 -1
- package/fesm2015/bravura-ui-alert.mjs.map +1 -1
- package/fesm2015/bravura-ui-clip-note.mjs +393 -0
- package/fesm2015/bravura-ui-clip-note.mjs.map +1 -0
- package/fesm2015/bravura-ui-common.mjs +25 -4
- package/fesm2015/bravura-ui-common.mjs.map +1 -1
- package/fesm2015/bravura-ui-tooltip.mjs +5 -2
- package/fesm2015/bravura-ui-tooltip.mjs.map +1 -1
- package/fesm2020/bravura-ui-alert.mjs +7 -1
- package/fesm2020/bravura-ui-alert.mjs.map +1 -1
- package/fesm2020/bravura-ui-clip-note.mjs +388 -0
- package/fesm2020/bravura-ui-clip-note.mjs.map +1 -0
- package/fesm2020/bravura-ui-common.mjs +25 -4
- package/fesm2020/bravura-ui-common.mjs.map +1 -1
- package/fesm2020/bravura-ui-tooltip.mjs +5 -2
- package/fesm2020/bravura-ui-tooltip.mjs.map +1 -1
- package/package.json +9 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Change history
|
|
2
2
|
|
|
3
|
+
## 2.5.0 (2022-09-23)
|
|
4
|
+
|
|
5
|
+
* feat: add new ui component - clip note ([2c55879](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2c55879))
|
|
6
|
+
|
|
7
|
+
## 2.4.0 (2022-09-19)
|
|
8
|
+
|
|
9
|
+
* test: fix test failures ([2ed4fdd](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2ed4fdd))
|
|
10
|
+
* test(panel): fix test failure ([a623612](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/a623612))
|
|
11
|
+
* docs(panel): add real world sample story ([18bd2d6](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/18bd2d6))
|
|
12
|
+
* docs(storybook): sort story groups ([2acf72f](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2acf72f))
|
|
13
|
+
* feat(tooltip): automate calculation of default width ([9076924](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/9076924))
|
|
14
|
+
* build(storybook): add more missing packages ([2cb6c86](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/2cb6c86))
|
|
15
|
+
* build(storybook): fix package resolution error ([0e57024](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/0e57024))
|
|
16
|
+
* build(storybook): move storybook build from chromatic to build stage ([50e7ec1](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/50e7ec1))
|
|
17
|
+
|
|
3
18
|
## <small>2.3.4 (2022-09-16)</small>
|
|
4
19
|
|
|
5
20
|
* test: enrich test cases and enforce coverage check ([4176208](https://scm.bravurasolutions.net/projects/DIGI/repos/ui-components/commits/4176208))
|
|
@@ -47,6 +47,8 @@ export declare class AlertContainerComponent implements OnInit, OnDestroy {
|
|
|
47
47
|
readonly _animationEnded: Subject<AnimationEvent>;
|
|
48
48
|
private _destroyed$;
|
|
49
49
|
private _endFloatingSub?;
|
|
50
|
+
/** Emits the component instance after initialisation. */
|
|
51
|
+
private init;
|
|
50
52
|
constructor(zone: NgZone, cdRef: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>, scroll: ScrollDispatcher);
|
|
51
53
|
ngOnInit(): void;
|
|
52
54
|
ngOnDestroy(): void;
|
|
@@ -64,6 +66,6 @@ export declare class AlertContainerComponent implements OnInit, OnDestroy {
|
|
|
64
66
|
clear(): Promise<void>;
|
|
65
67
|
private _endFloating;
|
|
66
68
|
static ɵfac: i0.ɵɵFactoryDeclaration<AlertContainerComponent, never>;
|
|
67
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AlertContainerComponent, "bui-alert-container", never, { "max": "max"; "outsideViewportBehavior": "outsideViewportBehavior"; "floatDuration": "floatDuration"; }, {}, never, never, false>;
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlertContainerComponent, "bui-alert-container", never, { "max": "max"; "outsideViewportBehavior": "outsideViewportBehavior"; "floatDuration": "floatDuration"; }, { "init": "init"; }, never, never, false>;
|
|
68
70
|
}
|
|
69
71
|
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Directionality } from '@angular/cdk/bidi';
|
|
2
|
+
import { ChangeDetectorRef, ElementRef, EmbeddedViewRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
|
|
3
|
+
import { ThemePalette } from '@angular/material/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class ClipNoteComponent implements OnInit, OnDestroy {
|
|
6
|
+
private _cd;
|
|
7
|
+
private _dir;
|
|
8
|
+
private _elemRef;
|
|
9
|
+
buttonText: string;
|
|
10
|
+
get buttonState(): string;
|
|
11
|
+
get buttonIconState(): string;
|
|
12
|
+
panelState: 'open' | 'closed-ltr' | 'closed-rtl';
|
|
13
|
+
direction: string;
|
|
14
|
+
_contentView?: EmbeddedViewRef<any>;
|
|
15
|
+
_content?: string;
|
|
16
|
+
_color: ThemePalette;
|
|
17
|
+
_buttonAnimating: boolean;
|
|
18
|
+
_icon?: string;
|
|
19
|
+
_hasContent: boolean;
|
|
20
|
+
readonly opened: EventEmitter<void>;
|
|
21
|
+
readonly closed: EventEmitter<void>;
|
|
22
|
+
private _hovering;
|
|
23
|
+
private _destroyed$;
|
|
24
|
+
private _toggleQueue;
|
|
25
|
+
private _viewDiv;
|
|
26
|
+
private _noteViewRef;
|
|
27
|
+
private _fallbackTemplate;
|
|
28
|
+
constructor(_cd: ChangeDetectorRef, _dir: Directionality, _elemRef: ElementRef<HTMLElement>);
|
|
29
|
+
ngOnInit(): void;
|
|
30
|
+
ngOnDestroy(): void;
|
|
31
|
+
_mouseOverButton(hovering: boolean): void;
|
|
32
|
+
toggle(): void;
|
|
33
|
+
_scheduleToggle(): void;
|
|
34
|
+
_checkToggle(): void;
|
|
35
|
+
open(): void;
|
|
36
|
+
close(): void;
|
|
37
|
+
_emit(): void;
|
|
38
|
+
_contentChanged(content?: string | TemplateRef<any>): void;
|
|
39
|
+
_checkContent(initial?: boolean): void;
|
|
40
|
+
_assignColor(color: ThemePalette): void;
|
|
41
|
+
_assignButtonText(text: string): void;
|
|
42
|
+
_assignButtonIcon(icon?: string): void;
|
|
43
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipNoteComponent, [null, null, { host: true; }]>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ClipNoteComponent, "bui-clip-note", never, {}, {}, never, never, false>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, EventEmitter, InjectionToken, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { ThemePalette } from '@angular/material/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export interface ClipNoteDefaultConfig {
|
|
5
|
+
color: ThemePalette;
|
|
6
|
+
caption: string;
|
|
7
|
+
}
|
|
8
|
+
/** Used to provide default config for clip notes. */
|
|
9
|
+
export declare const CLIP_NOTE_DEFAULT_CONFIG: InjectionToken<ClipNoteDefaultConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* A clip note consists of a toggle button and a floating 'notepad' element, attached to the top end of the host element's
|
|
12
|
+
* viewable area. The 'notepad' normally collapses away and only reveals itself when the toggle button is active.
|
|
13
|
+
*
|
|
14
|
+
* The toggle button clips on the edge of the host element and expands to display the full caption when hovered. It hides itself
|
|
15
|
+
* automatically when there is no content provided via the `buiClipNote` property of the directive.
|
|
16
|
+
*
|
|
17
|
+
* The clip note component is suitable for large page container elements with visible boundaries. It can present contextual
|
|
18
|
+
* information regarding and in addition to the content displayed in the main view area.
|
|
19
|
+
*
|
|
20
|
+
* The properties `buiClipNoteColor` and `buiClipNoteCaption` customise the appearance of the clip note, the default values of which
|
|
21
|
+
* can optionally be provided by the `ClipNoteModule.forConfig()` method.
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
24
|
+
export declare class ClipNoteDirective implements AfterViewInit {
|
|
25
|
+
private _elementRef;
|
|
26
|
+
private _vc;
|
|
27
|
+
/**
|
|
28
|
+
* Provide content to the clip note's floating notepad element.
|
|
29
|
+
* It accepts a `string` of HTML content or a `TemplateRef` object.
|
|
30
|
+
*/
|
|
31
|
+
get buiClipNote(): string | TemplateRef<any> | undefined;
|
|
32
|
+
set buiClipNote(note: string | TemplateRef<any> | undefined);
|
|
33
|
+
/**
|
|
34
|
+
* Customise the theme color alias.
|
|
35
|
+
* @default 'primary'
|
|
36
|
+
*/
|
|
37
|
+
get buiClipNoteColor(): ThemePalette;
|
|
38
|
+
set buiClipNoteColor(color: ThemePalette);
|
|
39
|
+
/**
|
|
40
|
+
* Customise the icon on the toggle button. With this property specified, the animation on the icon
|
|
41
|
+
* will not be active.
|
|
42
|
+
*/
|
|
43
|
+
get buiClipNoteIcon(): string | undefined;
|
|
44
|
+
set buiClipNoteIcon(icon: string | undefined);
|
|
45
|
+
/**
|
|
46
|
+
* The caption of the toggle button when expanded.
|
|
47
|
+
*/
|
|
48
|
+
get buiClipNoteCaption(): string;
|
|
49
|
+
set buiClipNoteCaption(text: string);
|
|
50
|
+
/** Emits when the panel opens */
|
|
51
|
+
readonly buiClipNoteOpened: EventEmitter<void>;
|
|
52
|
+
/** Emits when the panel closes */
|
|
53
|
+
readonly buiClipNoteClosed: EventEmitter<void>;
|
|
54
|
+
private _content?;
|
|
55
|
+
private _color;
|
|
56
|
+
private _compRef;
|
|
57
|
+
private _caption;
|
|
58
|
+
private _icon?;
|
|
59
|
+
constructor(_elementRef: ElementRef<HTMLElement>, _vc: ViewContainerRef, _config: ClipNoteDefaultConfig);
|
|
60
|
+
ngAfterViewInit(): void;
|
|
61
|
+
ngOnDestroy(): void;
|
|
62
|
+
/** Open the note panel */
|
|
63
|
+
open(): void;
|
|
64
|
+
/** Close the note panel */
|
|
65
|
+
close(): void;
|
|
66
|
+
private _processContent;
|
|
67
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipNoteDirective, [{ host: true; }, null, null]>;
|
|
68
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ClipNoteDirective, "[buiClipNote]", ["buiClipNote"], { "buiClipNote": "buiClipNote"; "buiClipNoteColor": "buiClipNoteColor"; "buiClipNoteIcon": "buiClipNoteIcon"; "buiClipNoteCaption": "buiClipNoteCaption"; }, { "buiClipNoteOpened": "buiClipNoteOpened"; "buiClipNoteClosed": "buiClipNoteClosed"; }, never, never, false>;
|
|
69
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { ClipNoteDefaultConfig, ClipNoteDirective } from './clip-note.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./clip-note.component";
|
|
5
|
+
import * as i2 from "./clip-note.directive";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/material/button";
|
|
8
|
+
import * as i5 from "@angular/material/icon";
|
|
9
|
+
import * as i6 from "@angular/cdk/bidi";
|
|
10
|
+
import * as i7 from "@bravura/ui/common";
|
|
11
|
+
import * as i8 from "@angular/cdk/observers";
|
|
12
|
+
import * as i9 from "@bravura/ui/icon-font";
|
|
13
|
+
export declare class ClipNoteModule {
|
|
14
|
+
static forConfig(config: ClipNoteDefaultConfig): ModuleWithProviders<ClipNoteModule>;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ClipNoteModule, never>;
|
|
16
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ClipNoteModule, [typeof i1.ClipNoteComponent, typeof i2.ClipNoteDirective], [typeof i3.CommonModule, typeof i4.MatButtonModule, typeof i5.MatIconModule, typeof i6.BidiModule, typeof i7.BuiCommonModule, typeof i8.ObserversModule, typeof i9.IconFontModule], [typeof i2.ClipNoteDirective]>;
|
|
17
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ClipNoteModule>;
|
|
18
|
+
}
|
|
19
|
+
export { ClipNoteDirective };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './clip-note.module';
|
package/common/common-utils.d.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
export declare function generateID(): string;
|
|
2
2
|
export declare function isElementInViewport(el: HTMLElement): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Uses canvas.measureText to compute and return the width of the given text of given font in pixels.
|
|
5
|
+
*
|
|
6
|
+
* @param {String} text The text to be rendered.
|
|
7
|
+
* @param el the element used to compute the font styles
|
|
8
|
+
*
|
|
9
|
+
* @see https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393
|
|
10
|
+
*/
|
|
11
|
+
export declare function getTextWidth(text: string, el?: HTMLElement): number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
3
|
import { generateID, isElementInViewport } from '@bravura/ui/common';
|
|
4
4
|
import { Subject, timer } from 'rxjs';
|
|
5
5
|
import { delay, take, takeUntil, tap } from 'rxjs/operators';
|
|
@@ -52,6 +52,8 @@ export class AlertContainerComponent {
|
|
|
52
52
|
/** @ignore Emits whenever the animation is done. */
|
|
53
53
|
this._animationEnded = new Subject();
|
|
54
54
|
this._destroyed$ = new Subject();
|
|
55
|
+
/** Emits the component instance after initialisation. */
|
|
56
|
+
this.init = new EventEmitter();
|
|
55
57
|
}
|
|
56
58
|
ngOnInit() {
|
|
57
59
|
const checkScroll = () => {
|
|
@@ -64,6 +66,8 @@ export class AlertContainerComponent {
|
|
|
64
66
|
.pipe(takeUntil(this._destroyed$))
|
|
65
67
|
.subscribe(checkScroll);
|
|
66
68
|
checkScroll();
|
|
69
|
+
this.init.emit(this);
|
|
70
|
+
this.init.complete();
|
|
67
71
|
}
|
|
68
72
|
ngOnDestroy() {
|
|
69
73
|
this._destroyed$.next();
|
|
@@ -145,7 +149,7 @@ export class AlertContainerComponent {
|
|
|
145
149
|
}
|
|
146
150
|
}
|
|
147
151
|
AlertContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: AlertContainerComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ScrollDispatcher }], target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
-
AlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AlertContainerComponent, selector: "bui-alert-container", inputs: { max: "max", outsideViewportBehavior: "outsideViewportBehavior", floatDuration: "floatDuration" }, host: { properties: { "class": "'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')" } }, ngImport: i0, template: "<div\n\tclass=\"bui-alert-fixed-panel\"\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\n>\n\t<bui-alert\n\t\t*ngFor=\"let a of _alerts\"\n\t\t[id]=\"a.id\"\n\t\t[type]=\"a.type\"\n\t\t[message]=\"a.message\"\n\t\tdismissible\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\n\t\t(dismissed)=\"_dismiss(a)\"\n\t></bui-alert>\n</div>\n\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\n\t\t<bui-alert\n\t\t\t*ngFor=\"let a of _alerts\"\n\t\t\t[id]=\"a.id\"\n\t\t\t[type]=\"a.type\"\n\t\t\t[message]=\"a.message\"\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t></bui-alert>\n\t</div>\n</div>\n", styles: [".bui-alert:not(:first-of-type){margin-top:.5rem}:host(:not([hidden])){display:block}.bui-alert-fixed-panel{transition:opacity .2s ease-in}.bui-alert-fixed-panel.bui-alert-fixed-panel-blink .bui-alert:last-of-type{animation:blink 1s ease-in forwards}.bui-alert-float-panel-frame{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;transition:background-color .4s cubic-bezier(.25,0,.55,.2)}.bui-alert-float-panel-frame:not([hidden]){display:flex}.bui-alert-float-panel-frame.bui-alert-float-panel-shaded{background-color:#00000080}.bui-alert-float-panel-frame .bui-alert{background-color:var(--bui-bg-card)}@keyframes blink{60%{opacity:1}70%{opacity:0}80%{opacity:1}90%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AlertMessageComponent, selector: "bui-alert", inputs: ["type", "message", "dismissible", "id"], outputs: ["dismissed", "initialised"] }], animations: [
|
|
152
|
+
AlertContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: AlertContainerComponent, selector: "bui-alert-container", inputs: { max: "max", outsideViewportBehavior: "outsideViewportBehavior", floatDuration: "floatDuration" }, outputs: { init: "init" }, host: { properties: { "class": "'bui-alert-container bui-host bui-alert-container-' + (_remaining.length ? 'not-empty': 'empty')" } }, ngImport: i0, template: "<div\n\tclass=\"bui-alert-fixed-panel\"\n\t[style.opacity]=\"_floatPanelHidden ? 1 : 0\"\n\t[class.bui-alert-fixed-panel-blink]=\"outsideViewportBehavior === 'scroll'\"\n>\n\t<bui-alert\n\t\t*ngFor=\"let a of _alerts\"\n\t\t[id]=\"a.id\"\n\t\t[type]=\"a.type\"\n\t\t[message]=\"a.message\"\n\t\tdismissible\n\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t(@alertTransition.start)=\"_animationStarted.next($event)\"\n\t\t(@alertTransition.done)=\"_animationEnded.next($event)\"\n\t\t(dismissed)=\"_dismiss(a)\"\n\t></bui-alert>\n</div>\n\n<div class=\"bui-alert-float-panel-frame\" [hidden]=\"_floatPanelHidden\" [class.bui-alert-float-panel-shaded]=\"_floated\">\n\t<div class=\"bui-alert-float-panel\" [style.max-width]=\"_width + 'px'\" [@floatTransition]=\"'visible'\" *ngIf=\"_floated\">\n\t\t<bui-alert\n\t\t\t*ngFor=\"let a of _alerts\"\n\t\t\t[id]=\"a.id\"\n\t\t\t[type]=\"a.type\"\n\t\t\t[message]=\"a.message\"\n\t\t\t[@alertTransition]=\"a.deleted ? 'hidden' : 'visible'\"\n\t\t></bui-alert>\n\t</div>\n</div>\n", styles: [".bui-alert:not(:first-of-type){margin-top:.5rem}:host(:not([hidden])){display:block}.bui-alert-fixed-panel{transition:opacity .2s ease-in}.bui-alert-fixed-panel.bui-alert-fixed-panel-blink .bui-alert:last-of-type{animation:blink 1s ease-in forwards}.bui-alert-float-panel-frame{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;transition:background-color .4s cubic-bezier(.25,0,.55,.2)}.bui-alert-float-panel-frame:not([hidden]){display:flex}.bui-alert-float-panel-frame.bui-alert-float-panel-shaded{background-color:#00000080}.bui-alert-float-panel-frame .bui-alert{background-color:var(--bui-bg-card)}@keyframes blink{60%{opacity:1}70%{opacity:0}80%{opacity:1}90%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AlertMessageComponent, selector: "bui-alert", inputs: ["type", "message", "dismissible", "id"], outputs: ["dismissed", "initialised"] }], animations: [
|
|
149
153
|
trigger('floatTransition', [
|
|
150
154
|
transition(':enter', [style({ opacity: '0', transform: 'translateY(-10vh)' }), animate('.3s ease-in')]),
|
|
151
155
|
transition(':leave', [animate('.4s ease-out', style({ transform: 'translateY(-10vh)', opacity: '0' }))])
|
|
@@ -197,5 +201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
197
201
|
type: Input
|
|
198
202
|
}], floatDuration: [{
|
|
199
203
|
type: Input
|
|
204
|
+
}], init: [{
|
|
205
|
+
type: Output
|
|
200
206
|
}] } });
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC9hbGVydC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsS0FBSyxFQUlMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUU3RCxlQUFlO0FBQ2YsTUFBTSxrQkFBa0I7SUFHdkIsWUFBNEIsSUFBMkMsRUFBa0IsT0FBZTtRQUE1RSxTQUFJLEdBQUosSUFBSSxDQUF1QztRQUFrQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRHhHLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFZixJQUFJLENBQUMsRUFBRSxHQUFHLHdCQUF3QixVQUFVLEVBQUUsRUFBRSxDQUFDO0lBQ2xELENBQUM7Q0FDRDtBQUVEOzs7R0FHRztBQWtDSCxNQUFNLE9BQU8sdUJBQXVCO0lBcUNuQyxZQUNTLElBQVksRUFDWixLQUF3QixFQUN4QixXQUFvQyxFQUNwQyxNQUF3QjtRQUh4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBbUI7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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIsIEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTY3JvbGxEaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5wdXQsXG5cdE5nWm9uZSxcblx0T25EZXN0cm95LFxuXHRPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUlELCBpc0VsZW1lbnRJblZpZXdwb3J0IH0gZnJvbSAnQGJyYXZ1cmEvdWkvY29tbW9uJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqQGludGVybmFsICovXG5jbGFzcyBJbnRlcm5hbEFsZXJ0T2plY3Qge1xuXHRpZDogc3RyaW5nO1xuXHRkZWxldGVkID0gZmFsc2U7XG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5pZCA9IGBidWktYWxlcnQtY29udC1hbGVydC0ke2dlbmVyYXRlSUQoKX1gO1xuXHR9XG59XG5cbi8qKlxuICogVXNlIHRoaXMgY29tcG9uZW50IGluIGEgZGVzaWduYXRlZCBhcmVhIG9mIGEgcGFnZSBmb3IgZGlzcGxheWluZyBub3RpZmljYXRpb24gbWVzc2FnZXNcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1hbGVydC1jb250YWluZXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGhvc3Q6IHtcblx0XHQnW2NsYXNzXSc6IGAnYnVpLWFsZXJ0LWNvbnRhaW5lciBidWktaG9zdCBidWktYWxlcnQtY29udGFpbmVyLScgKyAoX3JlbWFpbmluZy5sZW5ndGggPyAnbm90LWVtcHR5JzogJ2VtcHR5JylgXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRhbmltYXRpb25zOiBbXG5cdFx0dHJpZ2dlcignZmxvYXRUcmFuc2l0aW9uJywgW1xuXHRcdFx0dHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogJzAnLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHZoKScgfSksIGFuaW1hdGUoJy4zcyBlYXNlLWluJyldKSxcblx0XHRcdHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcuNHMgZWFzZS1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwdmgpJywgb3BhY2l0eTogJzAnIH0pKV0pXG5cdFx0XSksXG5cdFx0dHJpZ2dlcignYWxlcnRUcmFuc2l0aW9uJywgW1xuXHRcdFx0c3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7fSkpLFxuXHRcdFx0c3RhdGUoXG5cdFx0XHRcdCdoaWRkZW4nLFxuXHRcdFx0XHRzdHlsZSh7XG5cdFx0XHRcdFx0aGVpZ2h0OiAwLFxuXHRcdFx0XHRcdG92ZXJmbG93OiAnaGlkZGVuJyxcblx0XHRcdFx0XHR0cmFuc2Zvcm06ICdzY2FsZVkoMCknLFxuXHRcdFx0XHRcdG9wYWNpdHk6IDAsXG5cdFx0XHRcdFx0J21hcmdpbi10b3AnOiAnLTFyZW0nXG5cdFx0XHRcdH0pXG5cdFx0XHQpLFxuXHRcdFx0dHJhbnNpdGlvbigndm9pZCA9PiB2aXNpYmxlJywgW1xuXHRcdFx0XHRzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknLCBoZWlnaHQ6IDAsIG9wYWNpdHk6ICcwJyB9KSxcblx0XHRcdFx0YW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMCwgMC41OCwgMS4wKScpXG5cdFx0XHRdKSxcblx0XHRcdHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gaGlkZGVuJywgW2FuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLCAwLjMsIDEuMCknKV0pXG5cdFx0XSlcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblx0LyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyBkaXNwbGF5ZWQgaW4gdGhlIGNvbnRhaW5lciBhcmVhLiAqL1xuXHRASW5wdXQoKVxuXHRtYXggPSA1O1xuXG5cdC8qKlxuXHQgKiBUaGlzIHByb3BlcnR5IGRldGVybWluZXMgdGhlIGJlaGF2aW9yIGZvciBkaXNwbGF5aW5nIHRoZSBub3RpZmljYXRpb25zIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBvdXRzaWRlIHRoZSB2aWV3cG9ydC5cblx0ICpcblx0ICogYHNjcm9sbGA6IFRoZSBjb21wb25lbnQgd2lsbCB0cnkgdG8gc2Nyb2xsIHRvIHJldmVhbCB0aGUgbmV3IG5vdGlmaWNhdGlvbnMuXG5cdCAqIGBmbG9hdGA6IFRoZSBjb21wb25lbnQgd2lsbCBmbG9hdCB0aGUgYWxlcnQgcGFuZWwgdG8gdGhlIGNlbnRlciBvZiB0aGUgc2NyZWVuIGZvciBhIGNvdXBsZSBvZiBzZWNvbmRzIGFuZCBtb3ZlIGl0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBvc2l0aW9uLlxuXHQgKi9cblx0QElucHV0KClcblx0b3V0c2lkZVZpZXdwb3J0QmVoYXZpb3I6ICdzY3JvbGwnIHwgJ2Zsb2F0JyA9ICdmbG9hdCc7XG5cblx0LyoqXG5cdCAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0aGUgYWxlcnQgY29udGFpbmVyIHdpbGwgYmUgZmxvYXRlZCB3aGVuIG5ldyBub3RpZmljYXRpb24gYXJyaXZlcy5cblx0ICpcblx0ICogVGhpcyB3aWxsIG9ubHkgdGFrZSBlZmZlY3Qgd2hlbiBgb3V0c2lkZVZpZXdwb3J0QmVoYXZpb3JgIGlzIHNldCB0byBgZmxvYXRgIGFuZCB0aGUgY29udGFpbmVyIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LlxuXHQgKi9cblx0QElucHV0KClcblx0ZmxvYXREdXJhdGlvbiA9IDIwMDA7XG5cblx0LyoqQGludGVybmFsICovXG5cdF9hbGVydHM6IEludGVybmFsQWxlcnRPamVjdFtdID0gW107XG5cdC8qKkBpbnRlcm5hbCAqL1xuXHRfZmxvYXRlZCA9IGZhbHNlO1xuXHQvKipAaW50ZXJuYWwgKi9cblx0X2Zsb2F0UGFuZWxIaWRkZW4gPSB0cnVlO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBhbmltYXRpb24gaXMgc3RhcnRlZC4gKi9cblx0cmVhZG9ubHkgX2FuaW1hdGlvblN0YXJ0ZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGFuaW1hdGlvbiBpcyBkb25lLiAqL1xuXHRyZWFkb25seSBfYW5pbWF0aW9uRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblxuXHRwcml2YXRlIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmdTdWI/OiBTdWJzY3JpcHRpb247XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG5cdFx0cHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0cHJpdmF0ZSBzY3JvbGw6IFNjcm9sbERpc3BhdGNoZXJcblx0KSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGNvbnN0IGNoZWNrU2Nyb2xsID0gKCkgPT4ge1xuXHRcdFx0aWYgKGlzRWxlbWVudEluVmlld3BvcnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSkge1xuXHRcdFx0XHR0aGlzLl9lbmRGbG9hdGluZygpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0dGhpcy5zY3JvbGxcblx0XHRcdC5hbmNlc3RvclNjcm9sbGVkKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcblx0XHRcdC5zdWJzY3JpYmUoY2hlY2tTY3JvbGwpO1xuXHRcdGNoZWNrU2Nyb2xsKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLl9kZXN0cm95ZWQkLm5leHQoKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG5cdFx0dGhpcy5fZW5kRmxvYXRpbmdTdWI/LnVuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHQvKipAaW50ZXJuYWwgKi9cblx0Z2V0IF9yZW1haW5pbmcoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2FsZXJ0cy5maWx0ZXIoYSA9PiAhYS5kZWxldGVkKTtcblx0fVxuXG5cdC8qKkBpbnRlcm5hbCAqL1xuXHRnZXQgX3dpZHRoKCkge1xuXHRcdHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cdH1cblxuXHQvKiogQWRkIGEgbWVzc2FnZSB0byB0aGUgbm90aWZpY2F0aW9uIGFyZWEgKi9cblx0YXN5bmMgbm90aWZ5KHR5cGU6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuJyB8ICdlcnJvcicsIG1lc3NhZ2U6IHN0cmluZykge1xuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViPy51bnN1YnNjcmliZSgpO1xuXHRcdGNvbnN0IGR1cGxpY2F0ZSA9IHRoaXMuX3JlbWFpbmluZy5maW5kKF9hID0+IG1lc3NhZ2UgPT09IF9hLm1lc3NhZ2UpO1xuXHRcdGlmIChkdXBsaWNhdGUpIHtcblx0XHRcdHRoaXMuX2Rpc21pc3MoZHVwbGljYXRlKTtcblx0XHR9XG5cblx0XHRjb25zdCByZW1haW5pbmcgPSB0aGlzLl9yZW1haW5pbmc7XG5cdFx0aWYgKHJlbWFpbmluZy5sZW5ndGggPj0gdGhpcy5tYXgpIHtcblx0XHRcdHRoaXMuX2Rpc21pc3MocmVtYWluaW5nWzBdKTtcblx0XHR9XG5cblx0XHRjb25zdCBhID0gbmV3IEludGVybmFsQWxlcnRPamVjdCh0eXBlLCBtZXNzYWdlKTtcblx0XHRhd2FpdCB0aGlzLl9jaGVja1ZpZXdwb3J0KCk7XG5cdFx0dGhpcy56b25lLnJ1bigoKSA9PiB7XG5cdFx0XHR0aGlzLl9hbGVydHMucHVzaChhKTtcblx0XHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipAaWdub3JlICovXG5cdGFzeW5jIF9jaGVja1ZpZXdwb3J0KCkge1xuXHRcdGlmICghaXNFbGVtZW50SW5WaWV3cG9ydCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKSB7XG5cdFx0XHRpZiAodGhpcy5vdXRzaWRlVmlld3BvcnRCZWhhdmlvciA9PT0gJ2Zsb2F0Jykge1xuXHRcdFx0XHRjb25zdCBkID0gdGhpcy5fZmxvYXRlZCA/IDAgOiAxMDA7XG5cdFx0XHRcdHRoaXMuX2Zsb2F0ZWQgPSB0cnVlO1xuXHRcdFx0XHR0aGlzLl9mbG9hdFBhbmVsSGlkZGVuID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuX2VuZEZsb2F0aW5nKHRoaXMuZmxvYXREdXJhdGlvbik7XG5cdFx0XHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0XHRcdGF3YWl0IHRpbWVyKGQpLnRvUHJvbWlzZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdzdGFydCcsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipAaWdub3JlICovXG5cdGFzeW5jIF9kaXNtaXNzKGE6IEludGVybmFsQWxlcnRPamVjdCkge1xuXHRcdGNvbnN0IGlkID0gYS5pZDtcblx0XHRhLmRlbGV0ZWQgPSB0cnVlO1xuXHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0YXdhaXQgdGhpcy5fYW5pbWF0aW9uRW5kZWQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcblx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHtcblx0XHRcdHRoaXMuX2FsZXJ0cyA9IHRoaXMuX2FsZXJ0cy5maWx0ZXIoX2EgPT4gX2EuaWQgIT09IGlkKTtcblx0XHRcdHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKiogUmVtb3ZlIGFsbCBtZXNzYWdlcyBjdXJyZW50bHkgZGlzcGxheWVkLiAqL1xuXHRhc3luYyBjbGVhcigpIHtcblx0XHRhd2FpdCBQcm9taXNlLmFsbCh0aGlzLl9yZW1haW5pbmcubWFwKGEgPT4gdGhpcy5fZGlzbWlzcyhhKSkpO1xuXHRcdHRoaXMuX2VuZEZsb2F0aW5nKCk7XG5cdH1cblxuXHRwcml2YXRlIF9lbmRGbG9hdGluZyhfZGVsYXkgPSAwKSB7XG5cdFx0aWYgKCF0aGlzLl9mbG9hdGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViPy51bnN1YnNjcmliZSgpO1xuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViID0gdGltZXIoX2RlbGF5KVxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdHRhcCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5fZmxvYXRlZCA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKSk7XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRkZWxheSg0MDApXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fZmxvYXRQYW5lbEhpZGRlbiA9IHRydWU7XG5cdFx0XHRcdHRoaXMuem9uZS5ydW4oKCkgPT4gdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKSk7XG5cdFx0XHR9KTtcblx0fVxufVxuIiwiPGRpdlxuXHRjbGFzcz1cImJ1aS1hbGVydC1maXhlZC1wYW5lbFwiXG5cdFtzdHlsZS5vcGFjaXR5XT1cIl9mbG9hdFBhbmVsSGlkZGVuID8gMSA6IDBcIlxuXHRbY2xhc3MuYnVpLWFsZXJ0LWZpeGVkLXBhbmVsLWJsaW5rXT1cIm91dHNpZGVWaWV3cG9ydEJlaGF2aW9yID09PSAnc2Nyb2xsJ1wiXG4+XG5cdDxidWktYWxlcnRcblx0XHQqbmdGb3I9XCJsZXQgYSBvZiBfYWxlcnRzXCJcblx0XHRbaWRdPVwiYS5pZFwiXG5cdFx0W3R5cGVdPVwiYS50eXBlXCJcblx0XHRbbWVzc2FnZV09XCJhLm1lc3NhZ2VcIlxuXHRcdGRpc21pc3NpYmxlXG5cdFx0W0BhbGVydFRyYW5zaXRpb25dPVwiYS5kZWxldGVkID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIlxuXHRcdChAYWxlcnRUcmFuc2l0aW9uLnN0YXJ0KT1cIl9hbmltYXRpb25TdGFydGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0KEBhbGVydFRyYW5zaXRpb24uZG9uZSk9XCJfYW5pbWF0aW9uRW5kZWQubmV4dCgkZXZlbnQpXCJcblx0XHQoZGlzbWlzc2VkKT1cIl9kaXNtaXNzKGEpXCJcblx0PjwvYnVpLWFsZXJ0PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJidWktYWxlcnQtZmxvYXQtcGFuZWwtZnJhbWVcIiBbaGlkZGVuXT1cIl9mbG9hdFBhbmVsSGlkZGVuXCIgW2NsYXNzLmJ1aS1hbGVydC1mbG9hdC1wYW5lbC1zaGFkZWRdPVwiX2Zsb2F0ZWRcIj5cblx0PGRpdiBjbGFzcz1cImJ1aS1hbGVydC1mbG9hdC1wYW5lbFwiIFtzdHlsZS5tYXgtd2lkdGhdPVwiX3dpZHRoICsgJ3B4J1wiIFtAZmxvYXRUcmFuc2l0aW9uXT1cIid2aXNpYmxlJ1wiICpuZ0lmPVwiX2Zsb2F0ZWRcIj5cblx0XHQ8YnVpLWFsZXJ0XG5cdFx0XHQqbmdGb3I9XCJsZXQgYSBvZiBfYWxlcnRzXCJcblx0XHRcdFtpZF09XCJhLmlkXCJcblx0XHRcdFt0eXBlXT1cImEudHlwZVwiXG5cdFx0XHRbbWVzc2FnZV09XCJhLm1lc3NhZ2VcIlxuXHRcdFx0W0BhbGVydFRyYW5zaXRpb25dPVwiYS5kZWxldGVkID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIlxuXHRcdD48L2J1aS1hbGVydD5cblx0PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2FsZXJ0L2FsZXJ0LWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9hbGVydC9hbGVydC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWtCLE1BQU0scUJBQXFCLENBQUM7QUFFakcsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRTdELGVBQWU7QUFDZixNQUFNLGtCQUFrQjtJQUd2QixZQUE0QixJQUEyQyxFQUFrQixPQUFlO1FBQTVFLFNBQUksR0FBSixJQUFJLENBQXVDO1FBQWtCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFEeEcsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLElBQUksQ0FBQyxFQUFFLEdBQUcsd0JBQXdCLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFDbEQsQ0FBQztDQUNEO0FBRUQ7OztHQUdHO0FBa0NILE1BQU0sT0FBTyx1QkFBdUI7SUF5Q25DLFlBQ1MsSUFBWSxFQUNaLEtBQXdCLEVBQ3hCLFdBQW9DLEVBQ3BDLE1BQXdCO1FBSHhCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixV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QUFDOzRCQUNGLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUM7eUJBQ25GLENBQUM7cUJBQ0Y7cUxBS0QsR0FBRztzQkFERixLQUFLO2dCQVVOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFTTixhQUFhO3NCQURaLEtBQUs7Z0JBb0JFLElBQUk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFNjcm9sbERpc3BhdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUlELCBpc0VsZW1lbnRJblZpZXdwb3J0IH0gZnJvbSAnQGJyYXZ1cmEvdWkvY29tbW9uJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqQGludGVybmFsICovXG5jbGFzcyBJbnRlcm5hbEFsZXJ0T2plY3Qge1xuXHRpZDogc3RyaW5nO1xuXHRkZWxldGVkID0gZmFsc2U7XG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5pZCA9IGBidWktYWxlcnQtY29udC1hbGVydC0ke2dlbmVyYXRlSUQoKX1gO1xuXHR9XG59XG5cbi8qKlxuICogVXNlIHRoaXMgY29tcG9uZW50IGluIGEgZGVzaWduYXRlZCBhcmVhIG9mIGEgcGFnZSBmb3IgZGlzcGxheWluZyBub3RpZmljYXRpb24gbWVzc2FnZXNcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1hbGVydC1jb250YWluZXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vYWxlcnQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG5cdGhvc3Q6IHtcblx0XHQnW2NsYXNzXSc6IGAnYnVpLWFsZXJ0LWNvbnRhaW5lciBidWktaG9zdCBidWktYWxlcnQtY29udGFpbmVyLScgKyAoX3JlbWFpbmluZy5sZW5ndGggPyAnbm90LWVtcHR5JzogJ2VtcHR5JylgXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRhbmltYXRpb25zOiBbXG5cdFx0dHJpZ2dlcignZmxvYXRUcmFuc2l0aW9uJywgW1xuXHRcdFx0dHJhbnNpdGlvbignOmVudGVyJywgW3N0eWxlKHsgb3BhY2l0eTogJzAnLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMHZoKScgfSksIGFuaW1hdGUoJy4zcyBlYXNlLWluJyldKSxcblx0XHRcdHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKCcuNHMgZWFzZS1vdXQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwdmgpJywgb3BhY2l0eTogJzAnIH0pKV0pXG5cdFx0XSksXG5cdFx0dHJpZ2dlcignYWxlcnRUcmFuc2l0aW9uJywgW1xuXHRcdFx0c3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7fSkpLFxuXHRcdFx0c3RhdGUoXG5cdFx0XHRcdCdoaWRkZW4nLFxuXHRcdFx0XHRzdHlsZSh7XG5cdFx0XHRcdFx0aGVpZ2h0OiAwLFxuXHRcdFx0XHRcdG92ZXJmbG93OiAnaGlkZGVuJyxcblx0XHRcdFx0XHR0cmFuc2Zvcm06ICdzY2FsZVkoMCknLFxuXHRcdFx0XHRcdG9wYWNpdHk6IDAsXG5cdFx0XHRcdFx0J21hcmdpbi10b3AnOiAnLTFyZW0nXG5cdFx0XHRcdH0pXG5cdFx0XHQpLFxuXHRcdFx0dHJhbnNpdGlvbigndm9pZCA9PiB2aXNpYmxlJywgW1xuXHRcdFx0XHRzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwJSknLCBoZWlnaHQ6IDAsIG9wYWNpdHk6ICcwJyB9KSxcblx0XHRcdFx0YW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMCwgMC41OCwgMS4wKScpXG5cdFx0XHRdKSxcblx0XHRcdHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gaGlkZGVuJywgW2FuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllcigwLjI1LCAwLCAwLjMsIDEuMCknKV0pXG5cdFx0XSlcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblx0LyoqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyBkaXNwbGF5ZWQgaW4gdGhlIGNvbnRhaW5lciBhcmVhLiAqL1xuXHRASW5wdXQoKVxuXHRtYXggPSA1O1xuXG5cdC8qKlxuXHQgKiBUaGlzIHByb3BlcnR5IGRldGVybWluZXMgdGhlIGJlaGF2aW9yIGZvciBkaXNwbGF5aW5nIHRoZSBub3RpZmljYXRpb25zIHdoZW4gdGhlIGNvbnRhaW5lciBpcyBvdXRzaWRlIHRoZSB2aWV3cG9ydC5cblx0ICpcblx0ICogYHNjcm9sbGA6IFRoZSBjb21wb25lbnQgd2lsbCB0cnkgdG8gc2Nyb2xsIHRvIHJldmVhbCB0aGUgbmV3IG5vdGlmaWNhdGlvbnMuXG5cdCAqIGBmbG9hdGA6IFRoZSBjb21wb25lbnQgd2lsbCBmbG9hdCB0aGUgYWxlcnQgcGFuZWwgdG8gdGhlIGNlbnRlciBvZiB0aGUgc2NyZWVuIGZvciBhIGNvdXBsZSBvZiBzZWNvbmRzIGFuZCBtb3ZlIGl0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBvc2l0aW9uLlxuXHQgKi9cblx0QElucHV0KClcblx0b3V0c2lkZVZpZXdwb3J0QmVoYXZpb3I6ICdzY3JvbGwnIHwgJ2Zsb2F0JyA9ICdmbG9hdCc7XG5cblx0LyoqXG5cdCAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGZvciB3aGljaCB0aGUgYWxlcnQgY29udGFpbmVyIHdpbGwgYmUgZmxvYXRlZCB3aGVuIG5ldyBub3RpZmljYXRpb24gYXJyaXZlcy5cblx0ICpcblx0ICogVGhpcyB3aWxsIG9ubHkgdGFrZSBlZmZlY3Qgd2hlbiBgb3V0c2lkZVZpZXdwb3J0QmVoYXZpb3JgIGlzIHNldCB0byBgZmxvYXRgIGFuZCB0aGUgY29udGFpbmVyIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LlxuXHQgKi9cblx0QElucHV0KClcblx0ZmxvYXREdXJhdGlvbiA9IDIwMDA7XG5cblx0LyoqQGludGVybmFsICovXG5cdF9hbGVydHM6IEludGVybmFsQWxlcnRPamVjdFtdID0gW107XG5cdC8qKkBpbnRlcm5hbCAqL1xuXHRfZmxvYXRlZCA9IGZhbHNlO1xuXHQvKipAaW50ZXJuYWwgKi9cblx0X2Zsb2F0UGFuZWxIaWRkZW4gPSB0cnVlO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBhbmltYXRpb24gaXMgc3RhcnRlZC4gKi9cblx0cmVhZG9ubHkgX2FuaW1hdGlvblN0YXJ0ZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGFuaW1hdGlvbiBpcyBkb25lLiAqL1xuXHRyZWFkb25seSBfYW5pbWF0aW9uRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblxuXHRwcml2YXRlIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmdTdWI/OiBTdWJzY3JpcHRpb247XG5cblx0LyoqIEVtaXRzIHRoZSBjb21wb25lbnQgaW5zdGFuY2UgYWZ0ZXIgaW5pdGlhbGlzYXRpb24uICovXG5cdEBPdXRwdXQoKVxuXHRwcml2YXRlIGluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEFsZXJ0Q29udGFpbmVyQ29tcG9uZW50PigpO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgem9uZTogTmdab25lLFxuXHRcdHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdHByaXZhdGUgc2Nyb2xsOiBTY3JvbGxEaXNwYXRjaGVyXG5cdCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBjaGVja1Njcm9sbCA9ICgpID0+IHtcblx0XHRcdGlmIChpc0VsZW1lbnRJblZpZXdwb3J0KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcblx0XHRcdFx0dGhpcy5fZW5kRmxvYXRpbmcoKTtcblx0XHRcdH1cblx0XHR9O1xuXHRcdHRoaXMuc2Nyb2xsXG5cdFx0XHQuYW5jZXN0b3JTY3JvbGxlZCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpXG5cdFx0XHQuc3Vic2NyaWJlKGNoZWNrU2Nyb2xsKTtcblx0XHRjaGVja1Njcm9sbCgpO1xuXHRcdHRoaXMuaW5pdC5lbWl0KHRoaXMpO1xuXHRcdHRoaXMuaW5pdC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fZGVzdHJveWVkJC5uZXh0KCk7XG5cdFx0dGhpcy5fZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuXHRcdHRoaXMuX2VuZEZsb2F0aW5nU3ViPy51bnN1YnNjcmliZSgpO1xuXHR9XG5cblx0LyoqQGludGVybmFsICovXG5cdGdldCBfcmVtYWluaW5nKCkge1xuXHRcdHJldHVybiB0aGlzLl9hbGVydHMuZmlsdGVyKGEgPT4gIWEuZGVsZXRlZCk7XG5cdH1cblxuXHQvKipAaW50ZXJuYWwgKi9cblx0Z2V0IF93aWR0aCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXHR9XG5cblx0LyoqIEFkZCBhIG1lc3NhZ2UgdG8gdGhlIG5vdGlmaWNhdGlvbiBhcmVhICovXG5cdGFzeW5jIG5vdGlmeSh0eXBlOiAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InLCBtZXNzYWdlOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9lbmRGbG9hdGluZ1N1Yj8udW5zdWJzY3JpYmUoKTtcblx0XHRjb25zdCBkdXBsaWNhdGUgPSB0aGlzLl9yZW1haW5pbmcuZmluZChfYSA9PiBtZXNzYWdlID09PSBfYS5tZXNzYWdlKTtcblx0XHRpZiAoZHVwbGljYXRlKSB7XG5cdFx0XHR0aGlzLl9kaXNtaXNzKGR1cGxpY2F0ZSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVtYWluaW5nID0gdGhpcy5fcmVtYWluaW5nO1xuXHRcdGlmIChyZW1haW5pbmcubGVuZ3RoID49IHRoaXMubWF4KSB7XG5cdFx0XHR0aGlzLl9kaXNtaXNzKHJlbWFpbmluZ1swXSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYSA9IG5ldyBJbnRlcm5hbEFsZXJ0T2plY3QodHlwZSwgbWVzc2FnZSk7XG5cdFx0YXdhaXQgdGhpcy5fY2hlY2tWaWV3cG9ydCgpO1xuXHRcdHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0dGhpcy5fYWxlcnRzLnB1c2goYSk7XG5cdFx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRhc3luYyBfY2hlY2tWaWV3cG9ydCgpIHtcblx0XHRpZiAoIWlzRWxlbWVudEluVmlld3BvcnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSkge1xuXHRcdFx0aWYgKHRoaXMub3V0c2lkZVZpZXdwb3J0QmVoYXZpb3IgPT09ICdmbG9hdCcpIHtcblx0XHRcdFx0Y29uc3QgZCA9IHRoaXMuX2Zsb2F0ZWQgPyAwIDogMTAwO1xuXHRcdFx0XHR0aGlzLl9mbG9hdGVkID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy5fZmxvYXRQYW5lbEhpZGRlbiA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl9lbmRGbG9hdGluZyh0aGlzLmZsb2F0RHVyYXRpb24pO1xuXHRcdFx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0XHRhd2FpdCB0aW1lcihkKS50b1Byb21pc2UoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnc3RhcnQnLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqQGlnbm9yZSAqL1xuXHRhc3luYyBfZGlzbWlzcyhhOiBJbnRlcm5hbEFsZXJ0T2plY3QpIHtcblx0XHRjb25zdCBpZCA9IGEuaWQ7XG5cdFx0YS5kZWxldGVkID0gdHJ1ZTtcblx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdGF3YWl0IHRoaXMuX2FuaW1hdGlvbkVuZGVkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG5cdFx0dGhpcy56b25lLnJ1bigoKSA9PiB7XG5cdFx0XHR0aGlzLl9hbGVydHMgPSB0aGlzLl9hbGVydHMuZmlsdGVyKF9hID0+IF9hLmlkICE9PSBpZCk7XG5cdFx0XHR0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqIFJlbW92ZSBhbGwgbWVzc2FnZXMgY3VycmVudGx5IGRpc3BsYXllZC4gKi9cblx0YXN5bmMgY2xlYXIoKSB7XG5cdFx0YXdhaXQgUHJvbWlzZS5hbGwodGhpcy5fcmVtYWluaW5nLm1hcChhID0+IHRoaXMuX2Rpc21pc3MoYSkpKTtcblx0XHR0aGlzLl9lbmRGbG9hdGluZygpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZW5kRmxvYXRpbmcoX2RlbGF5ID0gMCkge1xuXHRcdGlmICghdGhpcy5fZmxvYXRlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9lbmRGbG9hdGluZ1N1Yj8udW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLl9lbmRGbG9hdGluZ1N1YiA9IHRpbWVyKF9kZWxheSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR0YXAoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX2Zsb2F0ZWQgPSBmYWxzZTtcblx0XHRcdFx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0ZGVsYXkoNDAwKVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX2Zsb2F0UGFuZWxIaWRkZW4gPSB0cnVlO1xuXHRcdFx0XHR0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xuXHRcdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXZcblx0Y2xhc3M9XCJidWktYWxlcnQtZml4ZWQtcGFuZWxcIlxuXHRbc3R5bGUub3BhY2l0eV09XCJfZmxvYXRQYW5lbEhpZGRlbiA/IDEgOiAwXCJcblx0W2NsYXNzLmJ1aS1hbGVydC1maXhlZC1wYW5lbC1ibGlua109XCJvdXRzaWRlVmlld3BvcnRCZWhhdmlvciA9PT0gJ3Njcm9sbCdcIlxuPlxuXHQ8YnVpLWFsZXJ0XG5cdFx0Km5nRm9yPVwibGV0IGEgb2YgX2FsZXJ0c1wiXG5cdFx0W2lkXT1cImEuaWRcIlxuXHRcdFt0eXBlXT1cImEudHlwZVwiXG5cdFx0W21lc3NhZ2VdPVwiYS5tZXNzYWdlXCJcblx0XHRkaXNtaXNzaWJsZVxuXHRcdFtAYWxlcnRUcmFuc2l0aW9uXT1cImEuZGVsZXRlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcblx0XHQoQGFsZXJ0VHJhbnNpdGlvbi5zdGFydCk9XCJfYW5pbWF0aW9uU3RhcnRlZC5uZXh0KCRldmVudClcIlxuXHRcdChAYWxlcnRUcmFuc2l0aW9uLmRvbmUpPVwiX2FuaW1hdGlvbkVuZGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0KGRpc21pc3NlZCk9XCJfZGlzbWlzcyhhKVwiXG5cdD48L2J1aS1hbGVydD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYnVpLWFsZXJ0LWZsb2F0LXBhbmVsLWZyYW1lXCIgW2hpZGRlbl09XCJfZmxvYXRQYW5lbEhpZGRlblwiIFtjbGFzcy5idWktYWxlcnQtZmxvYXQtcGFuZWwtc2hhZGVkXT1cIl9mbG9hdGVkXCI+XG5cdDxkaXYgY2xhc3M9XCJidWktYWxlcnQtZmxvYXQtcGFuZWxcIiBbc3R5bGUubWF4LXdpZHRoXT1cIl93aWR0aCArICdweCdcIiBbQGZsb2F0VHJhbnNpdGlvbl09XCIndmlzaWJsZSdcIiAqbmdJZj1cIl9mbG9hdGVkXCI+XG5cdFx0PGJ1aS1hbGVydFxuXHRcdFx0Km5nRm9yPVwibGV0IGEgb2YgX2FsZXJ0c1wiXG5cdFx0XHRbaWRdPVwiYS5pZFwiXG5cdFx0XHRbdHlwZV09XCJhLnR5cGVcIlxuXHRcdFx0W21lc3NhZ2VdPVwiYS5tZXNzYWdlXCJcblx0XHRcdFtAYWxlcnRUcmFuc2l0aW9uXT1cImEuZGVsZXRlZCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcblx0XHQ+PC9idWktYWxlcnQ+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdnVyYS11aS1jbGlwLW5vdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9jbGlwLW5vdGUvYnJhdnVyYS11aS1jbGlwLW5vdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Host, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/cdk/bidi";
|
|
6
|
+
import * as i2 from "@angular/material/button";
|
|
7
|
+
import * as i3 from "@angular/material/icon";
|
|
8
|
+
import * as i4 from "@angular/cdk/observers";
|
|
9
|
+
import * as i5 from "@bravura/ui/icon-font";
|
|
10
|
+
export class ClipNoteComponent {
|
|
11
|
+
constructor(_cd, _dir, _elemRef) {
|
|
12
|
+
this._cd = _cd;
|
|
13
|
+
this._dir = _dir;
|
|
14
|
+
this._elemRef = _elemRef;
|
|
15
|
+
this.buttonText = '';
|
|
16
|
+
this.panelState = 'closed-ltr';
|
|
17
|
+
this.direction = 'ltr';
|
|
18
|
+
this._buttonAnimating = false;
|
|
19
|
+
this._hasContent = false;
|
|
20
|
+
this.opened = new EventEmitter();
|
|
21
|
+
this.closed = new EventEmitter();
|
|
22
|
+
this._hovering = false;
|
|
23
|
+
this._destroyed$ = new Subject();
|
|
24
|
+
this._toggleQueue = [];
|
|
25
|
+
}
|
|
26
|
+
get buttonState() {
|
|
27
|
+
if (this._hovering || this.panelState === 'open') {
|
|
28
|
+
return 'active';
|
|
29
|
+
}
|
|
30
|
+
return 'inactive';
|
|
31
|
+
}
|
|
32
|
+
get buttonIconState() {
|
|
33
|
+
if (this.panelState === 'open') {
|
|
34
|
+
return `open-${this.direction}`;
|
|
35
|
+
}
|
|
36
|
+
if (this.buttonState === 'active') {
|
|
37
|
+
return `active-${this.direction}`;
|
|
38
|
+
}
|
|
39
|
+
return 'inactive';
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
const changeDir = () => {
|
|
43
|
+
this.direction = this._dir.value;
|
|
44
|
+
this.panelState = `closed-${this.direction}`;
|
|
45
|
+
this._cd.markForCheck();
|
|
46
|
+
};
|
|
47
|
+
this._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(changeDir);
|
|
48
|
+
changeDir();
|
|
49
|
+
}
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
this._destroyed$.next();
|
|
52
|
+
this._destroyed$.complete();
|
|
53
|
+
}
|
|
54
|
+
_mouseOverButton(hovering) {
|
|
55
|
+
if (this._hovering !== hovering) {
|
|
56
|
+
this._hovering = hovering;
|
|
57
|
+
this._cd.markForCheck();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
toggle() {
|
|
61
|
+
this.panelState = this.panelState === `closed-${this.direction}` ? 'open' : `closed-${this.direction}`;
|
|
62
|
+
this._cd.markForCheck();
|
|
63
|
+
}
|
|
64
|
+
_scheduleToggle() {
|
|
65
|
+
if (this._buttonAnimating) {
|
|
66
|
+
this._toggleQueue.push(true);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.toggle();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
_checkToggle() {
|
|
73
|
+
if (this._toggleQueue.pop()) {
|
|
74
|
+
this.toggle();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
open() {
|
|
78
|
+
this.panelState = 'open';
|
|
79
|
+
this._cd.markForCheck();
|
|
80
|
+
this._emit();
|
|
81
|
+
}
|
|
82
|
+
close() {
|
|
83
|
+
this.panelState = `closed-${this.direction}`;
|
|
84
|
+
this._cd.markForCheck();
|
|
85
|
+
this._emit();
|
|
86
|
+
}
|
|
87
|
+
_emit() {
|
|
88
|
+
if (this.panelState === 'open') {
|
|
89
|
+
this.opened.emit();
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.closed.emit();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
_contentChanged(content) {
|
|
96
|
+
let template;
|
|
97
|
+
if (content instanceof TemplateRef) {
|
|
98
|
+
template = content;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
template = this._fallbackTemplate;
|
|
102
|
+
this._content = content;
|
|
103
|
+
}
|
|
104
|
+
this._noteViewRef.clear();
|
|
105
|
+
const context = {};
|
|
106
|
+
this._contentView = this._noteViewRef.createEmbeddedView(template, context);
|
|
107
|
+
this._checkContent(true);
|
|
108
|
+
}
|
|
109
|
+
_checkContent(initial) {
|
|
110
|
+
this._contentView?.detectChanges();
|
|
111
|
+
this._hasContent = !!this._viewDiv.nativeElement.textContent?.trim();
|
|
112
|
+
const classList = this._elemRef.nativeElement.classList;
|
|
113
|
+
const cls = 'bui-clip-note-hidden';
|
|
114
|
+
const cls1 = 'bui-clip-note-reveal';
|
|
115
|
+
if (this._hasContent) {
|
|
116
|
+
classList.remove(cls);
|
|
117
|
+
if (!initial && this.panelState !== 'open') {
|
|
118
|
+
classList.add(cls1);
|
|
119
|
+
}
|
|
120
|
+
this._elemRef.nativeElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
classList.add(cls);
|
|
124
|
+
classList.remove(cls1);
|
|
125
|
+
this.close();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
_assignColor(color) {
|
|
129
|
+
this._color = color;
|
|
130
|
+
this._cd.markForCheck();
|
|
131
|
+
}
|
|
132
|
+
_assignButtonText(text) {
|
|
133
|
+
this.buttonText = text;
|
|
134
|
+
this._cd.markForCheck();
|
|
135
|
+
}
|
|
136
|
+
_assignButtonIcon(icon) {
|
|
137
|
+
this._icon = icon;
|
|
138
|
+
this._cd.markForCheck();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
ClipNoteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ClipNoteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Directionality }, { token: i0.ElementRef, host: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
ClipNoteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ClipNoteComponent, selector: "bui-clip-note", host: { classAttribute: "bui-clip-note bui-host" }, viewQueries: [{ propertyName: "_viewDiv", first: true, predicate: ["viewDiv"], descendants: true, read: ElementRef, static: true }, { propertyName: "_noteViewRef", first: true, predicate: ["noteViewRef"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_fallbackTemplate", first: true, predicate: ["fallbackTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"bui-clip-note-wrapper\">\n\t<div\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\n\t\t[@panelAnimation]=\"panelState\"\n\t\t#viewDiv\n\t\t(cdkObserveContent)=\"_checkContent()\"\n\t>\n\t\t<ng-container #noteViewRef></ng-container>\n\t</div>\n\n\t<button\n\t\tmat-raised-button\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\n\t\t[color]=\"_color\"\n\t\t[@buttonAnimation]=\"buttonState\"\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\n\t\t(click)=\"_scheduleToggle()\"\n\t>\n\t\t<mat-icon\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\n\t\t>\n\t\t</mat-icon>\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\"> {{ buttonText }}</span>\n\t</button>\n</div>\n\n<ng-template #fallbackTemplate>\n\t<div [innerHTML]=\"_content\"></div>\n</ng-template>\n", styles: [":host{position:absolute;top:2rem;box-sizing:border-box;z-index:var(--bui-clip-note-z-index, 100)}:host(.bui-clip-note-hidden){display:none}:host-context(:not([dir=rtl])){right:0}:host-context(:not([dir=rtl])) .bui-clip-note-trigger{right:-18px}:host-context([dir=rtl]){left:0;right:unset}:host-context([dir=rtl]) .bui-clip-note-trigger{left:-18px;right:unset}.bui-clip-note-trigger{border-radius:18px;overflow:hidden;position:absolute;top:-1rem}.bui-clip-note-button-text{display:inline-block;overflow-x:hidden}.bui-clip-note-wrapper{position:relative}.bui-clip-note-content{max-width:320px;min-width:150px;background-color:var(--bui-bg-body);border-radius:6px;border-width:1px;border-style:solid;padding:1rem;overflow-y:hidden}@keyframes rubber-band{0%{transform:scaleZ(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleZ(1)}}:host(.bui-clip-note-reveal) .bui-clip-note-trigger{animation:rubber-band .8s ease}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i5.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }], animations: [
|
|
143
|
+
trigger('buttonAnimation', [
|
|
144
|
+
state('*', style({ width: '36px', minWidth: 0, padding: 0 })),
|
|
145
|
+
state('active', style({})),
|
|
146
|
+
transition('inactive <=> active', [
|
|
147
|
+
group([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),
|
|
148
|
+
query('@buttonIconAnimation', animateChild())
|
|
149
|
+
])
|
|
150
|
+
]),
|
|
151
|
+
trigger('buttonTextAnimation', [
|
|
152
|
+
state('inactive', style({ opacity: 0, width: 0 })),
|
|
153
|
+
state('active', style({ opacity: 1 })),
|
|
154
|
+
transition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),
|
|
155
|
+
transition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))
|
|
156
|
+
]),
|
|
157
|
+
trigger('buttonIconAnimation', [
|
|
158
|
+
state('active-ltr', style({ transform: 'rotate(-90deg)' })),
|
|
159
|
+
state('active-rtl', style({ transform: 'rotate(90deg)' })),
|
|
160
|
+
state('open-ltr', style({ transform: 'rotate(90deg)' })),
|
|
161
|
+
state('open-rtl', style({ transform: 'rotate(270deg)' })),
|
|
162
|
+
state('inactive', style({})),
|
|
163
|
+
transition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
|
|
164
|
+
]),
|
|
165
|
+
trigger('panelAnimation', [
|
|
166
|
+
state('open', style({})),
|
|
167
|
+
state('closed-rtl', style({ transform: 'scale(0) translate(-80%, -100%)', padding: 0, opacity: 0 })),
|
|
168
|
+
state('closed-ltr', style({ transform: 'scale(0) translate(80%, -100%)', padding: 0, opacity: 0 })),
|
|
169
|
+
transition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))
|
|
170
|
+
])
|
|
171
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ClipNoteComponent, decorators: [{
|
|
173
|
+
type: Component,
|
|
174
|
+
args: [{ selector: 'bui-clip-note', host: { class: 'bui-clip-note bui-host' }, animations: [
|
|
175
|
+
trigger('buttonAnimation', [
|
|
176
|
+
state('*', style({ width: '36px', minWidth: 0, padding: 0 })),
|
|
177
|
+
state('active', style({})),
|
|
178
|
+
transition('inactive <=> active', [
|
|
179
|
+
group([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),
|
|
180
|
+
query('@buttonIconAnimation', animateChild())
|
|
181
|
+
])
|
|
182
|
+
]),
|
|
183
|
+
trigger('buttonTextAnimation', [
|
|
184
|
+
state('inactive', style({ opacity: 0, width: 0 })),
|
|
185
|
+
state('active', style({ opacity: 1 })),
|
|
186
|
+
transition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),
|
|
187
|
+
transition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))
|
|
188
|
+
]),
|
|
189
|
+
trigger('buttonIconAnimation', [
|
|
190
|
+
state('active-ltr', style({ transform: 'rotate(-90deg)' })),
|
|
191
|
+
state('active-rtl', style({ transform: 'rotate(90deg)' })),
|
|
192
|
+
state('open-ltr', style({ transform: 'rotate(90deg)' })),
|
|
193
|
+
state('open-rtl', style({ transform: 'rotate(270deg)' })),
|
|
194
|
+
state('inactive', style({})),
|
|
195
|
+
transition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
|
|
196
|
+
]),
|
|
197
|
+
trigger('panelAnimation', [
|
|
198
|
+
state('open', style({})),
|
|
199
|
+
state('closed-rtl', style({ transform: 'scale(0) translate(-80%, -100%)', padding: 0, opacity: 0 })),
|
|
200
|
+
state('closed-ltr', style({ transform: 'scale(0) translate(80%, -100%)', padding: 0, opacity: 0 })),
|
|
201
|
+
transition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))
|
|
202
|
+
])
|
|
203
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-clip-note-wrapper\">\n\t<div\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\n\t\t[@panelAnimation]=\"panelState\"\n\t\t#viewDiv\n\t\t(cdkObserveContent)=\"_checkContent()\"\n\t>\n\t\t<ng-container #noteViewRef></ng-container>\n\t</div>\n\n\t<button\n\t\tmat-raised-button\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\n\t\t[color]=\"_color\"\n\t\t[@buttonAnimation]=\"buttonState\"\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\n\t\t(click)=\"_scheduleToggle()\"\n\t>\n\t\t<mat-icon\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\n\t\t>\n\t\t</mat-icon>\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\"> {{ buttonText }}</span>\n\t</button>\n</div>\n\n<ng-template #fallbackTemplate>\n\t<div [innerHTML]=\"_content\"></div>\n</ng-template>\n", styles: [":host{position:absolute;top:2rem;box-sizing:border-box;z-index:var(--bui-clip-note-z-index, 100)}:host(.bui-clip-note-hidden){display:none}:host-context(:not([dir=rtl])){right:0}:host-context(:not([dir=rtl])) .bui-clip-note-trigger{right:-18px}:host-context([dir=rtl]){left:0;right:unset}:host-context([dir=rtl]) .bui-clip-note-trigger{left:-18px;right:unset}.bui-clip-note-trigger{border-radius:18px;overflow:hidden;position:absolute;top:-1rem}.bui-clip-note-button-text{display:inline-block;overflow-x:hidden}.bui-clip-note-wrapper{position:relative}.bui-clip-note-content{max-width:320px;min-width:150px;background-color:var(--bui-bg-body);border-radius:6px;border-width:1px;border-style:solid;padding:1rem;overflow-y:hidden}@keyframes rubber-band{0%{transform:scaleZ(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleZ(1)}}:host(.bui-clip-note-reveal) .bui-clip-note-trigger{animation:rubber-band .8s ease}\n"] }]
|
|
204
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Directionality }, { type: i0.ElementRef, decorators: [{
|
|
205
|
+
type: Host
|
|
206
|
+
}] }]; }, propDecorators: { _viewDiv: [{
|
|
207
|
+
type: ViewChild,
|
|
208
|
+
args: ['viewDiv', { static: true, read: ElementRef }]
|
|
209
|
+
}], _noteViewRef: [{
|
|
210
|
+
type: ViewChild,
|
|
211
|
+
args: ['noteViewRef', { static: true, read: ViewContainerRef }]
|
|
212
|
+
}], _fallbackTemplate: [{
|
|
213
|
+
type: ViewChild,
|
|
214
|
+
args: ['fallbackTemplate', { static: true }]
|
|
215
|
+
}] } });
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcC1ub3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NsaXAtbm90ZS9jbGlwLW5vdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY2xpcC1ub3RlL2NsaXAtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdHLE9BQU8sRUFDTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFFVixZQUFZLEVBQ1osSUFBSSxFQUdKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBdUMxQyxNQUFNLE9BQU8saUJBQWlCO0lBOEM3QixZQUNTLEdBQXNCLEVBQ3RCLElBQW9CLEVBQ1osUUFBaUM7UUFGekMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQWhEbEQsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQW1CaEIsZUFBVSxHQUF5QyxZQUFZLENBQUM7UUFFaEUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlsQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFWCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVuQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsSUFB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QUNwRyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNuRyxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO3lCQUN2RSxDQUFDO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtRDdDLElBQUk7NENBWEUsUUFBUTtzQkFEZixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJaEQsWUFBWTtzQkFEbkIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFJMUQsaUJBQWlCO3NCQUR4QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGVDaGlsZCwgZ3JvdXAsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0LFxuXHRPbkRlc3Ryb3ksXG5cdE9uSW5pdCxcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZCxcblx0Vmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1jbGlwLW5vdGUnLFxuXHR0ZW1wbGF0ZVVybDogJy4vY2xpcC1ub3RlLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vY2xpcC1ub3RlLmNvbXBvbmVudC5zY3NzJ10sXG5cdGhvc3Q6IHsgY2xhc3M6ICdidWktY2xpcC1ub3RlIGJ1aS1ob3N0JyB9LFxuXHRhbmltYXRpb25zOiBbXG5cdFx0dHJpZ2dlcignYnV0dG9uQW5pbWF0aW9uJywgW1xuXHRcdFx0c3RhdGUoJyonLCBzdHlsZSh7IHdpZHRoOiAnMzZweCcsIG1pbldpZHRoOiAwLCBwYWRkaW5nOiAwIH0pKSxcblx0XHRcdHN0YXRlKCdhY3RpdmUnLCBzdHlsZSh7fSkpLFxuXHRcdFx0dHJhbnNpdGlvbignaW5hY3RpdmUgPD0+IGFjdGl2ZScsIFtcblx0XHRcdFx0Z3JvdXAoW2FuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllciguNTYsLjE0LC4xOCwuOTEpJyksIHF1ZXJ5KCdAYnV0dG9uVGV4dEFuaW1hdGlvbicsIGFuaW1hdGVDaGlsZCgpKV0pLFxuXHRcdFx0XHRxdWVyeSgnQGJ1dHRvbkljb25BbmltYXRpb24nLCBhbmltYXRlQ2hpbGQoKSlcblx0XHRcdF0pXG5cdFx0XSksXG5cdFx0dHJpZ2dlcignYnV0dG9uVGV4dEFuaW1hdGlvbicsIFtcblx0XHRcdHN0YXRlKCdpbmFjdGl2ZScsIHN0eWxlKHsgb3BhY2l0eTogMCwgd2lkdGg6IDAgfSkpLFxuXHRcdFx0c3RhdGUoJ2FjdGl2ZScsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXG5cdFx0XHR0cmFuc2l0aW9uKCdpbmFjdGl2ZSA9PiBhY3RpdmUnLCBhbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoLjg4LC4xNSwuNjMsLjYxKScpKSxcblx0XHRcdHRyYW5zaXRpb24oJ2FjdGl2ZSA9PiBpbmFjdGl2ZScsIGFuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllciguMDUsLjcyLC40NCwuOTIpJykpXG5cdFx0XSksXG5cdFx0dHJpZ2dlcignYnV0dG9uSWNvbkFuaW1hdGlvbicsIFtcblx0XHRcdHN0YXRlKCdhY3RpdmUtbHRyJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoLTkwZGVnKScgfSkpLFxuXHRcdFx0c3RhdGUoJ2FjdGl2ZS1ydGwnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSg5MGRlZyknIH0pKSxcblx0XHRcdHN0YXRlKCdvcGVuLWx0cicsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDkwZGVnKScgfSkpLFxuXHRcdFx0c3RhdGUoJ29wZW4tcnRsJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMjcwZGVnKScgfSkpLFxuXHRcdFx0c3RhdGUoJ2luYWN0aXZlJywgc3R5bGUoe30pKSxcblx0XHRcdHRyYW5zaXRpb24oJ2luYWN0aXZlIDw9PiAqLCAqIDw9PiBvcGVuLWx0ciwgKiA8PT4gb3Blbi1ydGwnLCBhbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpKVxuXHRcdF0pLFxuXHRcdHRyaWdnZXIoJ3BhbmVsQW5pbWF0aW9uJywgW1xuXHRcdFx0c3RhdGUoJ29wZW4nLCBzdHlsZSh7fSkpLFxuXHRcdFx0c3RhdGUoJ2Nsb3NlZC1ydGwnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDApIHRyYW5zbGF0ZSgtODAlLCAtMTAwJSknLCBwYWRkaW5nOiAwLCBvcGFjaXR5OiAwIH0pKSxcblx0XHRcdHN0YXRlKCdjbG9zZWQtbHRyJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgwKSB0cmFuc2xhdGUoODAlLCAtMTAwJSknLCBwYWRkaW5nOiAwLCBvcGFjaXR5OiAwIH0pKSxcblx0XHRcdHRyYW5zaXRpb24oJ29wZW4gPD0+IConLCBhbmltYXRlKCczMDBtcyBjdWJpYy1iZXppZXIoLjY5LC4xMiwuNiwuNjIpJykpXG5cdFx0XSlcblx0XSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ2xpcE5vdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cdGJ1dHRvblRleHQgPSAnJztcblxuXHRnZXQgYnV0dG9uU3RhdGUoKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5faG92ZXJpbmcgfHwgdGhpcy5wYW5lbFN0YXRlID09PSAnb3BlbicpIHtcblx0XHRcdHJldHVybiAnYWN0aXZlJztcblx0XHR9XG5cdFx0cmV0dXJuICdpbmFjdGl2ZSc7XG5cdH1cblxuXHRnZXQgYnV0dG9uSWNvblN0YXRlKCk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMucGFuZWxTdGF0ZSA9PT0gJ29wZW4nKSB7XG5cdFx0XHRyZXR1cm4gYG9wZW4tJHt0aGlzLmRpcmVjdGlvbn1gO1xuXHRcdH1cblx0XHRpZiAodGhpcy5idXR0b25TdGF0ZSA9PT0gJ2FjdGl2ZScpIHtcblx0XHRcdHJldHVybiBgYWN0aXZlLSR7dGhpcy5kaXJlY3Rpb259YDtcblx0XHR9XG5cdFx0cmV0dXJuICdpbmFjdGl2ZSc7XG5cdH1cblxuXHRwYW5lbFN0YXRlOiAnb3BlbicgfCAnY2xvc2VkLWx0cicgfCAnY2xvc2VkLXJ0bCcgPSAnY2xvc2VkLWx0cic7XG5cblx0ZGlyZWN0aW9uID0gJ2x0cic7XG5cdF9jb250ZW50Vmlldz86IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xuXHRfY29udGVudD86IHN0cmluZztcblx0X2NvbG9yOiBUaGVtZVBhbGV0dGU7XG5cdF9idXR0b25BbmltYXRpbmcgPSBmYWxzZTtcblx0X2ljb24/OiBzdHJpbmc7XG5cdF9oYXNDb250ZW50ID0gZmFsc2U7XG5cblx0cmVhZG9ubHkgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHRyZWFkb25seSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSBfaG92ZXJpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cdHByaXZhdGUgX3RvZ2dsZVF1ZXVlOiBib29sZWFuW10gPSBbXTtcblxuXHRAVmlld0NoaWxkKCd2aWV3RGl2JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcblx0cHJpdmF0ZSBfdmlld0RpdiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG5cdEBWaWV3Q2hpbGQoJ25vdGVWaWV3UmVmJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcblx0cHJpdmF0ZSBfbm90ZVZpZXdSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdEBWaWV3Q2hpbGQoJ2ZhbGxiYWNrVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuXHRwcml2YXRlIF9mYWxsYmFja1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSBfZGlyOiBEaXJlY3Rpb25hbGl0eSxcblx0XHRASG9zdCgpIHByaXZhdGUgX2VsZW1SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cdCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBjaGFuZ2VEaXIgPSAoKSA9PiB7XG5cdFx0XHR0aGlzLmRpcmVjdGlvbiA9IHRoaXMuX2Rpci52YWx1ZTtcblx0XHRcdHRoaXMucGFuZWxTdGF0ZSA9IGBjbG9zZWQtJHt0aGlzLmRpcmVjdGlvbn1gIGFzIGFueTtcblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHRcdH07XG5cdFx0dGhpcy5fZGlyLmNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGNoYW5nZURpcik7XG5cdFx0Y2hhbmdlRGlyKCk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLl9kZXN0cm95ZWQkLm5leHQoKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG5cdH1cblxuXHRfbW91c2VPdmVyQnV0dG9uKGhvdmVyaW5nOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuX2hvdmVyaW5nICE9PSBob3ZlcmluZykge1xuXHRcdFx0dGhpcy5faG92ZXJpbmcgPSBob3ZlcmluZztcblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHRcdH1cblx0fVxuXG5cdHRvZ2dsZSgpIHtcblx0XHR0aGlzLnBhbmVsU3RhdGUgPSB0aGlzLnBhbmVsU3RhdGUgPT09IGBjbG9zZWQtJHt0aGlzLmRpcmVjdGlvbn1gID8gJ29wZW4nIDogKGBjbG9zZWQtJHt0aGlzLmRpcmVjdGlvbn1gIGFzIGFueSk7XG5cdFx0dGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRfc2NoZWR1bGVUb2dnbGUoKSB7XG5cdFx0aWYgKHRoaXMuX2J1dHRvbkFuaW1hdGluZykge1xuXHRcdFx0dGhpcy5fdG9nZ2xlUXVldWUucHVzaCh0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy50b2dnbGUoKTtcblx0XHR9XG5cdH1cblxuXHRfY2hlY2tUb2dnbGUoKSB7XG5cdFx0aWYgKHRoaXMuX3RvZ2dsZVF1ZXVlLnBvcCgpKSB7XG5cdFx0XHR0aGlzLnRvZ2dsZSgpO1xuXHRcdH1cblx0fVxuXG5cdG9wZW4oKSB7XG5cdFx0dGhpcy5wYW5lbFN0YXRlID0gJ29wZW4nO1xuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuXHRcdHRoaXMuX2VtaXQoKTtcblx0fVxuXG5cdGNsb3NlKCkge1xuXHRcdHRoaXMucGFuZWxTdGF0ZSA9IGBjbG9zZWQtJHt0aGlzLmRpcmVjdGlvbn1gIGFzIGFueTtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0XHR0aGlzLl9lbWl0KCk7XG5cdH1cblxuXHRfZW1pdCgpIHtcblx0XHRpZiAodGhpcy5wYW5lbFN0YXRlID09PSAnb3BlbicpIHtcblx0XHRcdHRoaXMub3BlbmVkLmVtaXQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jbG9zZWQuZW1pdCgpO1xuXHRcdH1cblx0fVxuXG5cdF9jb250ZW50Q2hhbmdlZChjb250ZW50Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuXHRcdGxldCB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuXHRcdGlmIChjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcblx0XHRcdHRlbXBsYXRlID0gY29udGVudDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGVtcGxhdGUgPSB0aGlzLl9mYWxsYmFja1RlbXBsYXRlO1xuXHRcdFx0dGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cdFx0fVxuXHRcdHRoaXMuX25vdGVWaWV3UmVmLmNsZWFyKCk7XG5cdFx0Y29uc3QgY29udGV4dCA9IHt9O1xuXHRcdHRoaXMuX2NvbnRlbnRWaWV3ID0gdGhpcy5fbm90ZVZpZXdSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlLCBjb250ZXh0KTtcblx0XHR0aGlzLl9jaGVja0NvbnRlbnQodHJ1ZSk7XG5cdH1cblxuXHRfY2hlY2tDb250ZW50KGluaXRpYWw/OiBib29sZWFuKSB7XG5cdFx0dGhpcy5fY29udGVudFZpZXc/LmRldGVjdENoYW5nZXMoKTtcblx0XHR0aGlzLl9oYXNDb250ZW50ID0gISF0aGlzLl92aWV3RGl2Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKTtcblx0XHRjb25zdCBjbGFzc0xpc3QgPSB0aGlzLl9lbGVtUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xuXHRcdGNvbnN0IGNscyA9ICdidWktY2xpcC1ub3RlLWhpZGRlbic7XG5cdFx0Y29uc3QgY2xzMSA9ICdidWktY2xpcC1ub3RlLXJldmVhbCc7XG5cdFx0aWYgKHRoaXMuX2hhc0NvbnRlbnQpIHtcblx0XHRcdGNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcblx0XHRcdGlmICghaW5pdGlhbCAmJiB0aGlzLnBhbmVsU3RhdGUgIT09ICdvcGVuJykge1xuXHRcdFx0XHRjbGFzc0xpc3QuYWRkKGNsczEpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fZWxlbVJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JywgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjbGFzc0xpc3QuYWRkKGNscyk7XG5cdFx0XHRjbGFzc0xpc3QucmVtb3ZlKGNsczEpO1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH1cblx0fVxuXG5cdF9hc3NpZ25Db2xvcihjb2xvcjogVGhlbWVQYWxldHRlKSB7XG5cdFx0dGhpcy5fY29sb3IgPSBjb2xvcjtcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdF9hc3NpZ25CdXR0b25UZXh0KHRleHQ6IHN0cmluZykge1xuXHRcdHRoaXMuYnV0dG9uVGV4dCA9IHRleHQ7XG5cdFx0dGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRfYXNzaWduQnV0dG9uSWNvbihpY29uPzogc3RyaW5nKSB7XG5cdFx0dGhpcy5faWNvbiA9IGljb247XG5cdFx0dGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJidWktY2xpcC1ub3RlLXdyYXBwZXJcIj5cblx0PGRpdlxuXHRcdGNsYXNzPVwiYnVpLWNsaXAtbm90ZS1jb250ZW50IGJ1aS1ib3JkZXIte3sgX2NvbG9yIH19IG1hdC1lbGV2YXRpb24tejNcIlxuXHRcdFtAcGFuZWxBbmltYXRpb25dPVwicGFuZWxTdGF0ZVwiXG5cdFx0I3ZpZXdEaXZcblx0XHQoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX2NoZWNrQ29udGVudCgpXCJcblx0PlxuXHRcdDxuZy1jb250YWluZXIgI25vdGVWaWV3UmVmPjwvbmctY29udGFpbmVyPlxuXHQ8L2Rpdj5cblxuXHQ8YnV0dG9uXG5cdFx0bWF0LXJhaXNlZC1idXR0b25cblx0XHRjbGFzcz1cImJ1aS1jbGlwLW5vdGUtdHJpZ2dlciBidWktY2xpcC1ub3RlLXRyaWdnZXIte3sgYnV0dG9uSWNvblN0YXRlIH19XCJcblx0XHRbY29sb3JdPVwiX2NvbG9yXCJcblx0XHRbQGJ1dHRvbkFuaW1hdGlvbl09XCJidXR0b25TdGF0ZVwiXG5cdFx0KG1vdXNlZW50ZXIpPVwiX21vdXNlT3ZlckJ1dHRvbih0cnVlKVwiXG5cdFx0KG1vdXNlbGVhdmUpPVwiX21vdXNlT3ZlckJ1dHRvbihmYWxzZSlcIlxuXHRcdChjbGljayk9XCJfc2NoZWR1bGVUb2dnbGUoKVwiXG5cdD5cblx0XHQ8bWF0LWljb25cblx0XHRcdFtAYnV0dG9uSWNvbkFuaW1hdGlvbl09XCJfaWNvbiA/ICdkaXNhYmxlZCcgOiBidXR0b25JY29uU3RhdGVcIlxuXHRcdFx0KEBidXR0b25JY29uQW5pbWF0aW9uLnN0YXJ0KT1cIl9idXR0b25BbmltYXRpbmcgPSB0cnVlXCJcblx0XHRcdChAYnV0dG9uSWNvbkFuaW1hdGlvbi5kb25lKT1cIl9idXR0b25BbmltYXRpbmcgPSBmYWxzZTsgX2NoZWNrVG9nZ2xlKClcIlxuXHRcdFx0W2J1aUljb25dPVwiX2ljb24gfHwgKGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyAnY2hldnJvbl9yaWdodCcgOiAnY2hldnJvbl9sZWZ0JylcIlxuXHRcdD5cblx0XHQ8L21hdC1pY29uPlxuXHRcdDxzcGFuIFtAYnV0dG9uVGV4dEFuaW1hdGlvbl09XCJidXR0b25TdGF0ZVwiIGNsYXNzPVwiYnVpLWNsaXAtbm90ZS1idXR0b24tdGV4dFwiPiZuYnNwOyB7eyBidXR0b25UZXh0IH19PC9zcGFuPlxuXHQ8L2J1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrVGVtcGxhdGU+XG5cdDxkaXYgW2lubmVySFRNTF09XCJfY29udGVudFwiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|