@tolle_/tolle-ui 18.2.30 → 18.3.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/esm2022/lib/alert-dialog-dynamic.component.mjs +8 -3
- package/esm2022/lib/alert-dialog.component.mjs +39 -6
- package/esm2022/lib/alert-dialog.service.mjs +38 -6
- package/esm2022/lib/context-menu.service.mjs +11 -7
- package/esm2022/lib/modal-ref.mjs +36 -7
- package/esm2022/lib/modal.component.mjs +42 -28
- package/esm2022/lib/modal.mjs +2 -29
- package/esm2022/lib/modal.service.mjs +26 -4
- package/esm2022/lib/resizable-panel.component.mjs +5 -5
- package/esm2022/lib/segment.component.mjs +3 -3
- package/fesm2022/tolle-ui.mjs +196 -88
- package/fesm2022/tolle-ui.mjs.map +1 -1
- package/lib/alert-dialog-dynamic.component.d.ts +5 -0
- package/lib/alert-dialog.component.d.ts +13 -0
- package/lib/modal-ref.d.ts +6 -1
- package/lib/modal.component.d.ts +7 -4
- package/lib/modal.d.ts +9 -3
- package/package.json +3 -2
- package/preset.js +7 -1
- package/registry/manifest.json +1 -1
- package/registry/r/alert-dialog-dynamic.json +1 -1
- package/registry/r/alert-dialog.json +1 -1
- package/registry/r/context-menu-trigger.json +1 -1
- package/registry/r/context-menu.json +1 -1
- package/registry/r/modal.json +3 -3
- package/registry/r/resizable-panel.json +1 -1
- package/registry/r/segment.json +1 -1
- package/theme.css +15 -3
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Component, TemplateRef } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Component, inject, TemplateRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
4
5
|
import { cn } from './utils/cn';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "./modal-ref";
|
|
@@ -8,9 +9,13 @@ import * as i2 from "@angular/common";
|
|
|
8
9
|
import * as i3 from "@angular/cdk/a11y";
|
|
9
10
|
export class ModalComponent {
|
|
10
11
|
ref;
|
|
12
|
+
cdr = inject(ChangeDetectorRef);
|
|
13
|
+
subscription = new Subscription();
|
|
11
14
|
contentType = 'string';
|
|
12
15
|
content;
|
|
13
16
|
modalClasses = '';
|
|
17
|
+
/** True while the exit animation plays, just before the overlay is torn down. */
|
|
18
|
+
closing = false;
|
|
14
19
|
/** Stable, per-instance ids used to wire dialog ARIA relationships. */
|
|
15
20
|
_uid = Math.random().toString(36).substr(2, 9);
|
|
16
21
|
titleId = `tolle-modal-title-${this._uid}`;
|
|
@@ -22,16 +27,21 @@ export class ModalComponent {
|
|
|
22
27
|
this.content = this.ref.modal.content;
|
|
23
28
|
this.modalClasses = this.getModalSizeCss();
|
|
24
29
|
this.determineContentType();
|
|
30
|
+
this.subscription.add(this.ref.closing$.subscribe((closing) => {
|
|
31
|
+
this.closing = closing;
|
|
32
|
+
this.cdr.markForCheck();
|
|
33
|
+
}));
|
|
25
34
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return !!(this.ref.modal.showCloseButton || this.ref.modal.title);
|
|
35
|
+
ngOnDestroy() {
|
|
36
|
+
this.subscription.unsubscribe();
|
|
29
37
|
}
|
|
30
38
|
getModalSizeCss() {
|
|
31
39
|
const { size } = this.ref.modal;
|
|
32
40
|
return cn(
|
|
33
41
|
// Surface: overlay card that never exceeds the viewport (header stays, body scrolls).
|
|
34
|
-
'
|
|
42
|
+
'relative flex w-full mx-auto flex-col gap-4 rounded-lg border border-border bg-background p-6 text-foreground shadow-lg duration-200',
|
|
43
|
+
// Enter/exit animation, driven by `data-state` (see `closing` above).
|
|
44
|
+
'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95', size === 'fullscreen' ? 'h-screen w-screen rounded-none' : 'max-h-[85vh]',
|
|
35
45
|
// Sizing scale with explicit max-widths
|
|
36
46
|
size === 'xs' && 'max-w-[320px]', size === 'sm' && 'max-w-[425px]', size === 'default' && 'max-w-[512px]', size === 'lg' && 'max-w-[1024px]', size === 'xl' && 'max-w-[1280px]');
|
|
37
47
|
}
|
|
@@ -49,6 +59,7 @@ export class ModalComponent {
|
|
|
49
59
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
60
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ModalComponent, isStandalone: true, selector: "tolle-modal", ngImport: i0, template: `
|
|
51
61
|
<div [class]="modalClasses" class="pointer-events-auto"
|
|
62
|
+
[attr.data-state]="closing ? 'closed' : 'open'"
|
|
52
63
|
role="dialog"
|
|
53
64
|
aria-modal="true"
|
|
54
65
|
[attr.aria-labelledby]="ref.modal.title ? titleId : null"
|
|
@@ -56,25 +67,26 @@ export class ModalComponent {
|
|
|
56
67
|
cdkTrapFocus cdkTrapFocusAutoCapture
|
|
57
68
|
(mousedown)="$event.stopPropagation()">
|
|
58
69
|
|
|
70
|
+
<button
|
|
71
|
+
*ngIf="ref.modal.showCloseButton"
|
|
72
|
+
type="button"
|
|
73
|
+
(click)="ref.close()"
|
|
74
|
+
aria-label="Close"
|
|
75
|
+
class="absolute right-4 top-4 grid h-6 w-6 place-items-center rounded-sm text-muted-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2">
|
|
76
|
+
<i class="ri-close-line text-base" aria-hidden="true"></i>
|
|
77
|
+
</button>
|
|
78
|
+
|
|
59
79
|
<!-- Header -->
|
|
60
|
-
<div *ngIf="
|
|
61
|
-
<h2
|
|
80
|
+
<div *ngIf="ref.modal.title" class="flex shrink-0 flex-col gap-1.5 pr-8 text-center sm:text-left">
|
|
81
|
+
<h2 [id]="titleId" class="text-lg font-semibold leading-none tracking-tight text-foreground">
|
|
62
82
|
{{ ref.modal.title }}
|
|
63
83
|
</h2>
|
|
64
|
-
<button
|
|
65
|
-
*ngIf="ref.modal.showCloseButton"
|
|
66
|
-
type="button"
|
|
67
|
-
(click)="ref.close()"
|
|
68
|
-
aria-label="Close"
|
|
69
|
-
class="-mr-2 -mt-2 ml-auto grid h-8 w-8 shrink-0 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">
|
|
70
|
-
<i class="ri-close-line text-xl"></i>
|
|
71
|
-
</button>
|
|
72
84
|
</div>
|
|
73
85
|
|
|
74
86
|
<!-- Body -->
|
|
75
87
|
<div class="min-h-0 flex-1 overflow-y-auto">
|
|
76
88
|
<ng-container [ngSwitch]="contentType">
|
|
77
|
-
<p *ngSwitchCase="'string'" [id]="descId"
|
|
89
|
+
<p *ngSwitchCase="'string'" [id]="descId" class="text-sm leading-relaxed text-muted-foreground">{{ content }}</p>
|
|
78
90
|
|
|
79
91
|
<ng-container *ngSwitchCase="'template'">
|
|
80
92
|
<ng-container *ngTemplateOutlet="asTemplate; context: ref.modal.context"></ng-container>
|
|
@@ -92,6 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
92
104
|
type: Component,
|
|
93
105
|
args: [{ selector: 'tolle-modal', standalone: true, imports: [CommonModule, A11yModule], template: `
|
|
94
106
|
<div [class]="modalClasses" class="pointer-events-auto"
|
|
107
|
+
[attr.data-state]="closing ? 'closed' : 'open'"
|
|
95
108
|
role="dialog"
|
|
96
109
|
aria-modal="true"
|
|
97
110
|
[attr.aria-labelledby]="ref.modal.title ? titleId : null"
|
|
@@ -99,25 +112,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
99
112
|
cdkTrapFocus cdkTrapFocusAutoCapture
|
|
100
113
|
(mousedown)="$event.stopPropagation()">
|
|
101
114
|
|
|
115
|
+
<button
|
|
116
|
+
*ngIf="ref.modal.showCloseButton"
|
|
117
|
+
type="button"
|
|
118
|
+
(click)="ref.close()"
|
|
119
|
+
aria-label="Close"
|
|
120
|
+
class="absolute right-4 top-4 grid h-6 w-6 place-items-center rounded-sm text-muted-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2">
|
|
121
|
+
<i class="ri-close-line text-base" aria-hidden="true"></i>
|
|
122
|
+
</button>
|
|
123
|
+
|
|
102
124
|
<!-- Header -->
|
|
103
|
-
<div *ngIf="
|
|
104
|
-
<h2
|
|
125
|
+
<div *ngIf="ref.modal.title" class="flex shrink-0 flex-col gap-1.5 pr-8 text-center sm:text-left">
|
|
126
|
+
<h2 [id]="titleId" class="text-lg font-semibold leading-none tracking-tight text-foreground">
|
|
105
127
|
{{ ref.modal.title }}
|
|
106
128
|
</h2>
|
|
107
|
-
<button
|
|
108
|
-
*ngIf="ref.modal.showCloseButton"
|
|
109
|
-
type="button"
|
|
110
|
-
(click)="ref.close()"
|
|
111
|
-
aria-label="Close"
|
|
112
|
-
class="-mr-2 -mt-2 ml-auto grid h-8 w-8 shrink-0 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">
|
|
113
|
-
<i class="ri-close-line text-xl"></i>
|
|
114
|
-
</button>
|
|
115
129
|
</div>
|
|
116
130
|
|
|
117
131
|
<!-- Body -->
|
|
118
132
|
<div class="min-h-0 flex-1 overflow-y-auto">
|
|
119
133
|
<ng-container [ngSwitch]="contentType">
|
|
120
|
-
<p *ngSwitchCase="'string'" [id]="descId"
|
|
134
|
+
<p *ngSwitchCase="'string'" [id]="descId" class="text-sm leading-relaxed text-muted-foreground">{{ content }}</p>
|
|
121
135
|
|
|
122
136
|
<ng-container *ngSwitchCase="'template'">
|
|
123
137
|
<ng-container *ngTemplateOutlet="asTemplate; context: ref.modal.context"></ng-container>
|
|
@@ -131,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
131
145
|
</div>
|
|
132
146
|
`, styles: [":host{display:contents}\n"] }]
|
|
133
147
|
}], ctorParameters: () => [{ type: i1.ModalRef }] });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLFdBQVcsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFzRGhDLE1BQU0sT0FBTyxjQUFjO0lBZU47SUFkRixHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDaEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkQsV0FBVyxHQUF3QyxRQUFRLENBQUM7SUFDNUQsT0FBTyxDQUFNO0lBQ2IsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUNsQixpRkFBaUY7SUFDakYsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVoQix1RUFBdUU7SUFDdEQsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RCxPQUFPLEdBQUcscUJBQXFCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxNQUFNLEdBQUcsb0JBQW9CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVsRCxZQUFtQixHQUFhO1FBQWIsUUFBRyxHQUFILEdBQUcsQ0FBVTtJQUFHLENBQUM7SUFFcEMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBRWhDLE9BQU8sRUFBRTtRQUNQLHNGQUFzRjtRQUN0RixzSUFBc0k7UUFFdEksc0VBQXNFO1FBQ3RFLHVGQUF1RixFQUN2RixnR0FBZ0csRUFFaEcsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFFekUsd0NBQXdDO1FBQ3hDLElBQUksS0FBSyxJQUFJLElBQUksZUFBZSxFQUNoQyxJQUFJLEtBQUssSUFBSSxJQUFJLGVBQWUsRUFDaEMsSUFBSSxLQUFLLFNBQVMsSUFBSSxlQUFlLEVBQ3JDLElBQUksS0FBSyxJQUFJLElBQUksZ0JBQWdCLEVBQ2pDLElBQUksS0FBSyxJQUFJLElBQUksZ0JBQWdCLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVE7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQzthQUM3RCxJQUFJLElBQUksQ0FBQyxPQUFPLFlBQVksV0FBVztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDOztZQUN2RSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBMkIsQ0FBQyxDQUFDLENBQUM7SUFDN0QsSUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBb0IsQ0FBQyxDQUFDLENBQUM7SUFDN0MsRUFBRSxHQUFHLEVBQUUsQ0FBQzt3R0FoRVAsY0FBYzs0RkFBZCxjQUFjLHVFQWhEZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q1Qsa0dBMUNTLFlBQVksNnVCQUFFLFVBQVU7OzRGQWlEdkIsY0FBYztrQkFwRDFCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQTExeU1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwibW9kYWxDbGFzc2VzXCIgY2xhc3M9XCJwb2ludGVyLWV2ZW50cy1hdXRvXCJcbiAgICAgIFthdHRyLmRhdGEtc3RhdGVdPVwiY2xvc2luZyA/ICdjbG9zZWQnIDogJ29wZW4nXCJcbiAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInJlZi5tb2RhbC50aXRsZSA/IHRpdGxlSWQgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiY29udGVudFR5cGUgPT09ICdzdHJpbmcnID8gZGVzY0lkIDogbnVsbFwiXG4gICAgICBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVcbiAgICAgIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJyZWYubW9kYWwuc2hvd0Nsb3NlQnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJyZWYuY2xvc2UoKVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZVwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtNCB0b3AtNCBncmlkIGgtNiB3LTYgcGxhY2UtaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG9wYWNpdHktNzAgcmluZy1vZmZzZXQtYmFja2dyb3VuZCB0cmFuc2l0aW9uLW9wYWNpdHkgaG92ZXI6b3BhY2l0eS0xMDAgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicmktY2xvc2UtbGluZSB0ZXh0LWJhc2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwicmVmLm1vZGFsLnRpdGxlXCIgY2xhc3M9XCJmbGV4IHNocmluay0wIGZsZXgtY29sIGdhcC0xLjUgcHItOCB0ZXh0LWNlbnRlciBzbTp0ZXh0LWxlZnRcIj5cbiAgICAgICAgPGgyIFtpZF09XCJ0aXRsZUlkXCIgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0IHRleHQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgIHt7IHJlZi5tb2RhbC50aXRsZSB9fVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQm9keSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW4taC0wIGZsZXgtMSBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udGVudFR5cGVcIj5cbiAgICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ3N0cmluZydcIiBbaWRdPVwiZGVzY0lkXCIgY2xhc3M9XCJ0ZXh0LXNtIGxlYWRpbmctcmVsYXhlZCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBjb250ZW50IH19PC9wPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RlbXBsYXRlJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFzVGVtcGxhdGU7IGNvbnRleHQ6IHJlZi5tb2RhbC5jb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29tcG9uZW50J1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJhc0NvbXBvbmVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogY29udGVudHM7IC8qIFRoaXMgbWFrZXMgdGhlIGhvc3QgXCJkaXNhcHBlYXJcIiBzbyB0aGUgZGl2IHRhcmdldHMgdGhlIG92ZXJsYXkgcGFuZSBkaXJlY3RseSAqL1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29udGVudFR5cGU6ICd0ZW1wbGF0ZScgfCAnc3RyaW5nJyB8ICdjb21wb25lbnQnID0gJ3N0cmluZyc7XG4gIGNvbnRlbnQ6IGFueTtcbiAgbW9kYWxDbGFzc2VzID0gJyc7XG4gIC8qKiBUcnVlIHdoaWxlIHRoZSBleGl0IGFuaW1hdGlvbiBwbGF5cywganVzdCBiZWZvcmUgdGhlIG92ZXJsYXkgaXMgdG9ybiBkb3duLiAqL1xuICBjbG9zaW5nID0gZmFsc2U7XG5cbiAgLyoqIFN0YWJsZSwgcGVyLWluc3RhbmNlIGlkcyB1c2VkIHRvIHdpcmUgZGlhbG9nIEFSSUEgcmVsYXRpb25zaGlwcy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfdWlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICByZWFkb25seSB0aXRsZUlkID0gYHRvbGxlLW1vZGFsLXRpdGxlLSR7dGhpcy5fdWlkfWA7XG4gIHJlYWRvbmx5IGRlc2NJZCA9IGB0b2xsZS1tb2RhbC1kZXNjLSR7dGhpcy5fdWlkfWA7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlZjogTW9kYWxSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5yZWYubW9kYWwuY29udGVudDtcbiAgICB0aGlzLm1vZGFsQ2xhc3NlcyA9IHRoaXMuZ2V0TW9kYWxTaXplQ3NzKCk7XG4gICAgdGhpcy5kZXRlcm1pbmVDb250ZW50VHlwZSgpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5yZWYuY2xvc2luZyQuc3Vic2NyaWJlKChjbG9zaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2luZyA9IGNsb3Npbmc7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kYWxTaXplQ3NzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBzaXplIH0gPSB0aGlzLnJlZi5tb2RhbDtcblxuICAgIHJldHVybiBjbihcbiAgICAgIC8vIFN1cmZhY2U6IG92ZXJsYXkgY2FyZCB0aGF0IG5ldmVyIGV4Y2VlZHMgdGhlIHZpZXdwb3J0IChoZWFkZXIgc3RheXMsIGJvZHkgc2Nyb2xscykuXG4gICAgICAncmVsYXRpdmUgZmxleCB3LWZ1bGwgbXgtYXV0byBmbGV4LWNvbCBnYXAtNCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLWJhY2tncm91bmQgcC02IHRleHQtZm9yZWdyb3VuZCBzaGFkb3ctbGcgZHVyYXRpb24tMjAwJyxcblxuICAgICAgLy8gRW50ZXIvZXhpdCBhbmltYXRpb24sIGRyaXZlbiBieSBgZGF0YS1zdGF0ZWAgKHNlZSBgY2xvc2luZ2AgYWJvdmUpLlxuICAgICAgJ2RhdGEtW3N0YXRlPW9wZW5dOmFuaW1hdGUtaW4gZGF0YS1bc3RhdGU9b3Blbl06ZmFkZS1pbi0wIGRhdGEtW3N0YXRlPW9wZW5dOnpvb20taW4tOTUnLFxuICAgICAgJ2RhdGEtW3N0YXRlPWNsb3NlZF06YW5pbWF0ZS1vdXQgZGF0YS1bc3RhdGU9Y2xvc2VkXTpmYWRlLW91dC0wIGRhdGEtW3N0YXRlPWNsb3NlZF06em9vbS1vdXQtOTUnLFxuXG4gICAgICBzaXplID09PSAnZnVsbHNjcmVlbicgPyAnaC1zY3JlZW4gdy1zY3JlZW4gcm91bmRlZC1ub25lJyA6ICdtYXgtaC1bODV2aF0nLFxuXG4gICAgICAvLyBTaXppbmcgc2NhbGUgd2l0aCBleHBsaWNpdCBtYXgtd2lkdGhzXG4gICAgICBzaXplID09PSAneHMnICYmICdtYXgtdy1bMzIwcHhdJyxcbiAgICAgIHNpemUgPT09ICdzbScgJiYgJ21heC13LVs0MjVweF0nLFxuICAgICAgc2l6ZSA9PT0gJ2RlZmF1bHQnICYmICdtYXgtdy1bNTEycHhdJyxcbiAgICAgIHNpemUgPT09ICdsZycgJiYgJ21heC13LVsxMDI0cHhdJyxcbiAgICAgIHNpemUgPT09ICd4bCcgJiYgJ21heC13LVsxMjgwcHhdJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZUNvbnRlbnRUeXBlKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnc3RyaW5nJykgdGhpcy5jb250ZW50VHlwZSA9ICdzdHJpbmcnO1xuICAgIGVsc2UgaWYgKHRoaXMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB0aGlzLmNvbnRlbnRUeXBlID0gJ3RlbXBsYXRlJztcbiAgICBlbHNlIHRoaXMuY29udGVudFR5cGUgPSAnY29tcG9uZW50JztcbiAgfVxuXG4gIGdldCBhc1RlbXBsYXRlKCkgeyByZXR1cm4gdGhpcy5jb250ZW50IGFzIFRlbXBsYXRlUmVmPGFueT47IH1cbiAgZ2V0IGFzQ29tcG9uZW50KCkgeyByZXR1cm4gdGhpcy5jb250ZW50IGFzIFR5cGU8YW55PjsgfVxuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cbiJdfQ==
|
package/esm2022/lib/modal.mjs
CHANGED
|
@@ -1,29 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
content;
|
|
4
|
-
/** Optional title for the standard header */
|
|
5
|
-
title;
|
|
6
|
-
/** * Predefined size scale.
|
|
7
|
-
* - xs: 320px (Mobile alerts)
|
|
8
|
-
* - sm: 425px (Standard dialogs)
|
|
9
|
-
* - default: 544px (Forms)
|
|
10
|
-
* - lg: 90% / 1024px (Data tables)
|
|
11
|
-
* - xl: 1280px (Large forms, dashboards)
|
|
12
|
-
* - fullscreen: 100vw/100vh (Complex workflows)
|
|
13
|
-
*/
|
|
14
|
-
size = 'default';
|
|
15
|
-
/** * If true (default), clicking the backdrop closes the modal.
|
|
16
|
-
* Set to false for "blocking" modals (e.g., Terms of Service).
|
|
17
|
-
*/
|
|
18
|
-
backdropClose = true;
|
|
19
|
-
/** * Data to pass to a Component content.
|
|
20
|
-
* Accessed via @Input() in the child component.
|
|
21
|
-
*/
|
|
22
|
-
data;
|
|
23
|
-
/** * Context to pass to a TemplateRef content.
|
|
24
|
-
* Accessed via `let-val` in the HTML.
|
|
25
|
-
*/
|
|
26
|
-
context;
|
|
27
|
-
showCloseButton = true;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLDhEQUE4RDtJQUM5RCxPQUFPLENBQXlDO0lBRWhELDZDQUE2QztJQUM3QyxLQUFLLENBQVU7SUFFZjs7Ozs7OztPQU9HO0lBQ0gsSUFBSSxHQUEwRCxTQUFTLENBQUM7SUFFeEU7O09BRUc7SUFDSCxhQUFhLEdBQWEsSUFBSSxDQUFDO0lBRS9COztPQUVHO0lBQ0gsSUFBSSxDQUEwQjtJQUU5Qjs7T0FFRztJQUNILE9BQU8sQ0FBSztJQUVaLGVBQWUsR0FBYSxJQUFJLENBQUM7Q0FDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBNb2RhbDxUID0gYW55PiB7XG4gIC8qKiBUaGUgY29udGVudCB0byBkaXNwbGF5IChTdHJpbmcsIENvbXBvbmVudCwgb3IgVGVtcGxhdGUpICovXG4gIGNvbnRlbnQhOiBzdHJpbmcgfCBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBPcHRpb25hbCB0aXRsZSBmb3IgdGhlIHN0YW5kYXJkIGhlYWRlciAqL1xuICB0aXRsZT86IHN0cmluZztcblxuICAvKiogKiBQcmVkZWZpbmVkIHNpemUgc2NhbGUuXG4gICAqIC0geHM6IDMyMHB4IChNb2JpbGUgYWxlcnRzKVxuICAgKiAtIHNtOiA0MjVweCAoU3RhbmRhcmQgZGlhbG9ncylcbiAgICogLSBkZWZhdWx0OiA1NDRweCAoRm9ybXMpXG4gICAqIC0gbGc6IDkwJSAvIDEwMjRweCAoRGF0YSB0YWJsZXMpXG4gICAqIC0geGw6IDEyODBweCAoTGFyZ2UgZm9ybXMsIGRhc2hib2FyZHMpXG4gICAqIC0gZnVsbHNjcmVlbjogMTAwdncvMTAwdmggKENvbXBsZXggd29ya2Zsb3dzKVxuICAgKi9cbiAgc2l6ZT86ICd4cycgfCAnc20nIHwgJ2RlZmF1bHQnIHwgJ2xnJyB8ICd4bCcgfCAnZnVsbHNjcmVlbicgPSAnZGVmYXVsdCc7XG5cbiAgLyoqICogSWYgdHJ1ZSAoZGVmYXVsdCksIGNsaWNraW5nIHRoZSBiYWNrZHJvcCBjbG9zZXMgdGhlIG1vZGFsLlxuICAgKiBTZXQgdG8gZmFsc2UgZm9yIFwiYmxvY2tpbmdcIiBtb2RhbHMgKGUuZy4sIFRlcm1zIG9mIFNlcnZpY2UpLlxuICAgKi9cbiAgYmFja2Ryb3BDbG9zZT86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKiAqIERhdGEgdG8gcGFzcyB0byBhIENvbXBvbmVudCBjb250ZW50LlxuICAgKiBBY2Nlc3NlZCB2aWEgQElucHV0KCkgaW4gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICovXG4gIGRhdGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8qKiAqIENvbnRleHQgdG8gcGFzcyB0byBhIFRlbXBsYXRlUmVmIGNvbnRlbnQuXG4gICAqIEFjY2Vzc2VkIHZpYSBgbGV0LXZhbGAgaW4gdGhlIEhUTUwuXG4gICAqL1xuICBjb250ZXh0PzogVDtcblxuICBzaG93Q2xvc2VCdXR0b24/OiBib29sZWFuID0gdHJ1ZTtcbn1cbiJdfQ==
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL21vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYE1vZGFsU2VydmljZS5vcGVuKClgLiBBbHdheXMgcGFzc2VkIGFzIGEgcGxhaW4gb2JqZWN0XG4gKiBsaXRlcmFsLCBzbyB1bnNldCBmaWVsZHMgZmFsbCBiYWNrIHRvIGBNT0RBTF9ERUZBVUxUU2AgaW4gYG1vZGFsLnNlcnZpY2UudHNgXG4gKiByYXRoZXIgdGhhbiBhIGNsYXNzIGZpZWxkIGluaXRpYWxpemVyIOKAlCB0aG9zZSBuZXZlciBydW4gZm9yIGEgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb2RhbDxUID0gYW55PiB7XG4gIC8qKiBUaGUgY29udGVudCB0byBkaXNwbGF5IChTdHJpbmcsIENvbXBvbmVudCwgb3IgVGVtcGxhdGUpICovXG4gIGNvbnRlbnQ6IHN0cmluZyB8IFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqIE9wdGlvbmFsIHRpdGxlIGZvciB0aGUgc3RhbmRhcmQgaGVhZGVyICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKiAqIFByZWRlZmluZWQgc2l6ZSBzY2FsZS5cbiAgICogLSB4czogMzIwcHggKE1vYmlsZSBhbGVydHMpXG4gICAqIC0gc206IDQyNXB4IChTdGFuZGFyZCBkaWFsb2dzKVxuICAgKiAtIGRlZmF1bHQ6IDUxMnB4IChGb3JtcylcbiAgICogLSBsZzogMTAyNHB4IChEYXRhIHRhYmxlcylcbiAgICogLSB4bDogMTI4MHB4IChMYXJnZSBmb3JtcywgZGFzaGJvYXJkcylcbiAgICogLSBmdWxsc2NyZWVuOiAxMDB2dy8xMDB2aCAoQ29tcGxleCB3b3JrZmxvd3MpXG4gICAqL1xuICBzaXplPzogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgfCAnbGcnIHwgJ3hsJyB8ICdmdWxsc2NyZWVuJztcblxuICAvKiogKiBJZiB0cnVlIChkZWZhdWx0KSwgY2xpY2tpbmcgdGhlIGJhY2tkcm9wIGNsb3NlcyB0aGUgbW9kYWwuXG4gICAqIFNldCB0byBmYWxzZSBmb3IgXCJibG9ja2luZ1wiIG1vZGFscyAoZS5nLiwgVGVybXMgb2YgU2VydmljZSkuXG4gICAqL1xuICBiYWNrZHJvcENsb3NlPzogYm9vbGVhbjtcblxuICAvKiogKiBEYXRhIHRvIHBhc3MgdG8gYSBDb21wb25lbnQgY29udGVudC5cbiAgICogQWNjZXNzZWQgdmlhIEBJbnB1dCgpIGluIHRoZSBjaGlsZCBjb21wb25lbnQuXG4gICAqL1xuICBkYXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICAvKiogKiBDb250ZXh0IHRvIHBhc3MgdG8gYSBUZW1wbGF0ZVJlZiBjb250ZW50LlxuICAgKiBBY2Nlc3NlZCB2aWEgYGxldC12YWxgIGluIHRoZSBIVE1MLlxuICAgKi9cbiAgY29udGV4dD86IFQ7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJ1aWx0LWluIGNvcm5lciBjbG9zZSBidXR0b24gcmVuZGVycy4gRGVmYXVsdHMgdG8gdHJ1ZS4gKi9cbiAgc2hvd0Nsb3NlQnV0dG9uPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -6,6 +6,16 @@ import { ModalComponent } from './modal.component';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/cdk/overlay";
|
|
8
8
|
import * as i2 from "./modal-stack.service";
|
|
9
|
+
/**
|
|
10
|
+
* `open()` always receives a plain object literal, never a `new Modal()`
|
|
11
|
+
* instance, so a class field initializer would never actually apply — these
|
|
12
|
+
* are the real defaults, merged in explicitly below.
|
|
13
|
+
*/
|
|
14
|
+
const MODAL_DEFAULTS = {
|
|
15
|
+
size: 'default',
|
|
16
|
+
backdropClose: true,
|
|
17
|
+
showCloseButton: true,
|
|
18
|
+
};
|
|
9
19
|
export class ModalService {
|
|
10
20
|
overlay;
|
|
11
21
|
injector;
|
|
@@ -16,12 +26,13 @@ export class ModalService {
|
|
|
16
26
|
this.stack = stack;
|
|
17
27
|
}
|
|
18
28
|
open(config) {
|
|
29
|
+
const resolved = { ...MODAL_DEFAULTS, ...config };
|
|
19
30
|
// 0. Remember what was focused so we can restore it after the modal closes.
|
|
20
31
|
const previouslyFocused = document.activeElement;
|
|
21
32
|
// 1. Create the Overlay (DOM placeholder)
|
|
22
33
|
const overlayRef = this.createOverlay();
|
|
23
34
|
// 2. Create the Controller (Ref)
|
|
24
|
-
const modalRef = new ModalRef(overlayRef,
|
|
35
|
+
const modalRef = new ModalRef(overlayRef, resolved, this.stack);
|
|
25
36
|
// 3. Create Injector to allow the Component to access the Ref
|
|
26
37
|
const injector = Injector.create({
|
|
27
38
|
parent: this.injector,
|
|
@@ -30,7 +41,7 @@ export class ModalService {
|
|
|
30
41
|
// Escape-to-close: mirror the backdrop close path, but only for
|
|
31
42
|
// non-blocking modals (backdropClose !== false).
|
|
32
43
|
overlayRef.keydownEvents().subscribe((event) => {
|
|
33
|
-
if (event.key === 'Escape' &&
|
|
44
|
+
if (event.key === 'Escape' && resolved.backdropClose) {
|
|
34
45
|
event.preventDefault();
|
|
35
46
|
modalRef.close();
|
|
36
47
|
}
|
|
@@ -40,6 +51,9 @@ export class ModalService {
|
|
|
40
51
|
// 4. Attach the UI Component to the Overlay
|
|
41
52
|
const portal = new ComponentPortal(ModalComponent, null, injector);
|
|
42
53
|
overlayRef.attach(portal);
|
|
54
|
+
// The backdrop element only exists once attached — setting this any
|
|
55
|
+
// earlier (e.g. in ModalRef's constructor) would silently no-op.
|
|
56
|
+
overlayRef.backdropElement?.setAttribute('data-state', 'open');
|
|
43
57
|
return modalRef;
|
|
44
58
|
}
|
|
45
59
|
/** Global helper to close everything */
|
|
@@ -50,7 +64,15 @@ export class ModalService {
|
|
|
50
64
|
createOverlay() {
|
|
51
65
|
const config = new OverlayConfig({
|
|
52
66
|
hasBackdrop: true,
|
|
53
|
-
backdropClass: [
|
|
67
|
+
backdropClass: [
|
|
68
|
+
'cdk-overlay-backdrop',
|
|
69
|
+
'bg-black/80',
|
|
70
|
+
'backdrop-blur-sm',
|
|
71
|
+
'data-[state=open]:animate-in',
|
|
72
|
+
'data-[state=open]:fade-in-0',
|
|
73
|
+
'data-[state=closed]:animate-out',
|
|
74
|
+
'data-[state=closed]:fade-out-0',
|
|
75
|
+
],
|
|
54
76
|
panelClass: [
|
|
55
77
|
'w-full',
|
|
56
78
|
'h-full',
|
|
@@ -74,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
74
96
|
type: Injectable,
|
|
75
97
|
args: [{ providedIn: 'root' }]
|
|
76
98
|
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i2.ModalStackService }] });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR25EOzs7O0dBSUc7QUFDSCxNQUFNLGNBQWMsR0FBd0U7SUFDMUYsSUFBSSxFQUFFLFNBQVM7SUFDZixhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtDQUN0QixDQUFDO0FBR0YsTUFBTSxPQUFPLFlBQVk7SUFFYjtJQUNBO0lBQ0E7SUFIVixZQUNVLE9BQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLEtBQXdCO1FBRnhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUMvQixDQUFDO0lBRUosSUFBSSxDQUFVLE1BQWE7UUFDekIsTUFBTSxRQUFRLEdBQVUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXpELDRFQUE0RTtRQUM1RSxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUFtQyxDQUFDO1FBRXZFLDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFeEMsaUNBQWlDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5FLDhEQUE4RDtRQUM5RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztRQUVILGdFQUFnRTtRQUNoRSxpREFBaUQ7UUFDakQsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUM1RCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsOERBQThEO1FBQzlELFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLDRDQUE0QztRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUIsb0VBQW9FO1FBQ3BFLGlFQUFpRTtRQUNqRSxVQUFVLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsbUJBQW1CO0lBQ1gsYUFBYTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUMvQixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUU7Z0JBQ2Isc0JBQXNCO2dCQUN0QixhQUFhO2dCQUNiLGtCQUFrQjtnQkFDbEIsOEJBQThCO2dCQUM5Qiw2QkFBNkI7Z0JBQzdCLGlDQUFpQztnQkFDakMsZ0NBQWdDO2FBQ2pDO1lBQ0QsVUFBVSxFQUFFO2dCQUNWLFFBQVE7Z0JBQ1IsUUFBUTtnQkFDUixNQUFNO2dCQUNOLGNBQWM7Z0JBQ2QsZ0JBQWdCO2dCQUNoQixxQkFBcUI7YUFDdEI7WUFDRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDckQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7aUJBQ3RDLE1BQU0sRUFBRTtpQkFDUixrQkFBa0IsRUFBRTtpQkFDcEIsZ0JBQWdCLEVBQUU7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO3dHQWxGVSxZQUFZOzRHQUFaLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTW9kYWwgfSBmcm9tICcuL21vZGFsJztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9tb2RhbC1yZWYnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbFN0YWNrU2VydmljZSB9IGZyb20gJy4vbW9kYWwtc3RhY2suc2VydmljZSc7XG5cbi8qKlxuICogYG9wZW4oKWAgYWx3YXlzIHJlY2VpdmVzIGEgcGxhaW4gb2JqZWN0IGxpdGVyYWwsIG5ldmVyIGEgYG5ldyBNb2RhbCgpYFxuICogaW5zdGFuY2UsIHNvIGEgY2xhc3MgZmllbGQgaW5pdGlhbGl6ZXIgd291bGQgbmV2ZXIgYWN0dWFsbHkgYXBwbHkg4oCUIHRoZXNlXG4gKiBhcmUgdGhlIHJlYWwgZGVmYXVsdHMsIG1lcmdlZCBpbiBleHBsaWNpdGx5IGJlbG93LlxuICovXG5jb25zdCBNT0RBTF9ERUZBVUxUUzogUmVxdWlyZWQ8UGljazxNb2RhbCwgJ3NpemUnIHwgJ2JhY2tkcm9wQ2xvc2UnIHwgJ3Nob3dDbG9zZUJ1dHRvbic+PiA9IHtcbiAgc2l6ZTogJ2RlZmF1bHQnLFxuICBiYWNrZHJvcENsb3NlOiB0cnVlLFxuICBzaG93Q2xvc2VCdXR0b246IHRydWUsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHN0YWNrOiBNb2RhbFN0YWNrU2VydmljZVxuICApIHt9XG5cbiAgb3BlbjxSID0gYW55Pihjb25maWc6IE1vZGFsKTogTW9kYWxSZWY8Uj4ge1xuICAgIGNvbnN0IHJlc29sdmVkOiBNb2RhbCA9IHsgLi4uTU9EQUxfREVGQVVMVFMsIC4uLmNvbmZpZyB9O1xuXG4gICAgLy8gMC4gUmVtZW1iZXIgd2hhdCB3YXMgZm9jdXNlZCBzbyB3ZSBjYW4gcmVzdG9yZSBpdCBhZnRlciB0aGUgbW9kYWwgY2xvc2VzLlxuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAvLyAxLiBDcmVhdGUgdGhlIE92ZXJsYXkgKERPTSBwbGFjZWhvbGRlcilcbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAvLyAyLiBDcmVhdGUgdGhlIENvbnRyb2xsZXIgKFJlZilcbiAgICBjb25zdCBtb2RhbFJlZiA9IG5ldyBNb2RhbFJlZjxSPihvdmVybGF5UmVmLCByZXNvbHZlZCwgdGhpcy5zdGFjayk7XG5cbiAgICAvLyAzLiBDcmVhdGUgSW5qZWN0b3IgdG8gYWxsb3cgdGhlIENvbXBvbmVudCB0byBhY2Nlc3MgdGhlIFJlZlxuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTW9kYWxSZWYsIHVzZVZhbHVlOiBtb2RhbFJlZiB9XVxuICAgIH0pO1xuXG4gICAgLy8gRXNjYXBlLXRvLWNsb3NlOiBtaXJyb3IgdGhlIGJhY2tkcm9wIGNsb3NlIHBhdGgsIGJ1dCBvbmx5IGZvclxuICAgIC8vIG5vbi1ibG9ja2luZyBtb2RhbHMgKGJhY2tkcm9wQ2xvc2UgIT09IGZhbHNlKS5cbiAgICBvdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiByZXNvbHZlZC5iYWNrZHJvcENsb3NlKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG1vZGFsUmVmLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSB0cmlnZ2VyIG9uY2UgdGhlIG92ZXJsYXkgaXMgdG9ybiBkb3duLlxuICAgIG92ZXJsYXlSZWYuZGV0YWNobWVudHMoKS5zdWJzY3JpYmUoKCkgPT4gcHJldmlvdXNseUZvY3VzZWQ/LmZvY3VzPy4oKSk7XG5cbiAgICAvLyA0LiBBdHRhY2ggdGhlIFVJIENvbXBvbmVudCB0byB0aGUgT3ZlcmxheVxuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoTW9kYWxDb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcbiAgICBvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG4gICAgLy8gVGhlIGJhY2tkcm9wIGVsZW1lbnQgb25seSBleGlzdHMgb25jZSBhdHRhY2hlZCDigJQgc2V0dGluZyB0aGlzIGFueVxuICAgIC8vIGVhcmxpZXIgKGUuZy4gaW4gTW9kYWxSZWYncyBjb25zdHJ1Y3Rvcikgd291bGQgc2lsZW50bHkgbm8tb3AuXG4gICAgb3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsICdvcGVuJyk7XG5cbiAgICByZXR1cm4gbW9kYWxSZWY7XG4gIH1cblxuICAvKiogR2xvYmFsIGhlbHBlciB0byBjbG9zZSBldmVyeXRoaW5nICovXG4gIGNsb3NlQWxsKCkge1xuICAgIHRoaXMuc3RhY2suY2xvc2VBbGwoKTtcbiAgfVxuXG4gIC8vIG1vZGFsLnNlcnZpY2UudHNcbiAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogW1xuICAgICAgICAnY2RrLW92ZXJsYXktYmFja2Ryb3AnLFxuICAgICAgICAnYmctYmxhY2svODAnLFxuICAgICAgICAnYmFja2Ryb3AtYmx1ci1zbScsXG4gICAgICAgICdkYXRhLVtzdGF0ZT1vcGVuXTphbmltYXRlLWluJyxcbiAgICAgICAgJ2RhdGEtW3N0YXRlPW9wZW5dOmZhZGUtaW4tMCcsXG4gICAgICAgICdkYXRhLVtzdGF0ZT1jbG9zZWRdOmFuaW1hdGUtb3V0JyxcbiAgICAgICAgJ2RhdGEtW3N0YXRlPWNsb3NlZF06ZmFkZS1vdXQtMCcsXG4gICAgICBdLFxuICAgICAgcGFuZWxDbGFzczogW1xuICAgICAgICAndy1mdWxsJyxcbiAgICAgICAgJ2gtZnVsbCcsXG4gICAgICAgICdmbGV4JyxcbiAgICAgICAgJ2l0ZW1zLWNlbnRlcicsXG4gICAgICAgICdqdXN0aWZ5LWNlbnRlcicsXG4gICAgICAgICdwb2ludGVyLWV2ZW50cy1ub25lJ1xuICAgICAgXSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgICAgICAuY2VudGVyVmVydGljYWxseSgpXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWcpO1xuICB9XG5cblxufVxuIl19
|
|
@@ -105,21 +105,21 @@ export class ResizablePanelComponent {
|
|
|
105
105
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
106
106
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ResizablePanelComponent, isStandalone: true, selector: "tolle-resizable-panel", inputs: { direction: "direction", class: "class" }, queries: [{ propertyName: "panels", predicate: i0.forwardRef(() => ResizablePanelItemComponent) }], ngImport: i0, template: `
|
|
107
107
|
<div [class]="computedContainerClass">
|
|
108
|
-
<div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
|
|
108
|
+
<div class="flex h-full w-full" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
|
|
109
109
|
<ng-content></ng-content>
|
|
110
110
|
</div>
|
|
111
111
|
</div>
|
|
112
|
-
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
112
|
+
`, isInline: true, styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
113
113
|
}
|
|
114
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizablePanelComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
116
116
|
args: [{ selector: 'tolle-resizable-panel', standalone: true, imports: [CommonModule], template: `
|
|
117
117
|
<div [class]="computedContainerClass">
|
|
118
|
-
<div class="flex" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
|
|
118
|
+
<div class="flex h-full w-full" [class.flex-col]="direction === 'vertical'" [class.flex-row]="direction === 'horizontal'">
|
|
119
119
|
<ng-content></ng-content>
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
122
|
-
`, styles: [":host{display:block}\n"] }]
|
|
122
|
+
`, styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
|
123
123
|
}], propDecorators: { direction: [{
|
|
124
124
|
type: Input
|
|
125
125
|
}], class: [{
|
|
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
128
128
|
type: ContentChildren,
|
|
129
129
|
args: [forwardRef(() => ResizablePanelItemComponent)]
|
|
130
130
|
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQStCLFVBQVUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWEsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQW1CL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixTQUFTLEdBQThCLFlBQVksQ0FBQztJQUNwRCxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLHVGQUF1RjtJQUN2QixNQUFNLENBQTBDO0lBRXhHLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFL0IsaUJBQWlCLENBQTJCO0lBQzVDLGVBQWUsQ0FBMkI7SUFFbEQsa0JBQWtCO1FBQ2hCLG1DQUFtQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxD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LENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLEVBQUUsQ0FDUCxlQUFlLEVBQ2YsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0lBQ0osQ0FBQzt3R0E1SFUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsZ0xBS0EsMkJBQTJCLDhCQWxCbkQ7Ozs7OztHQU1ULCtGQVBTLFlBQVk7OzRGQWNYLHVCQUF1QjtrQkFqQm5DLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7R0FNVDs4QkFRUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHMEQsTUFBTTtzQkFBckUsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJDb250ZW50SW5pdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcbmltcG9ydCB7IFJlc2l6YWJsZVBhbmVsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcmVzaXphYmxlLXBhbmVsLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtcmVzaXphYmxlLXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbY2xhc3NdPVwiY29tcHV0ZWRDb250YWluZXJDbGFzc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIiBbY2xhc3MuZmxleC1jb2xdPVwiZGlyZWN0aW9uID09PSAndmVydGljYWwnXCIgW2NsYXNzLmZsZXgtcm93XT1cImRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuXG4gIC8vIGZvcndhcmRSZWYgYnJlYWtzIHRoZSBwYW5lbCA8LT4gaXRlbSBjaXJjdWxhciBpbXBvcnQgKFREWiBhdCBjbGFzcy1kZWNvcmF0aW9uIHRpbWUpLlxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gUmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50KSkgcGFuZWxzITogUXVlcnlMaXN0PFJlc2l6YWJsZVBhbmVsSXRlbUNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByaXZhdGUgaXNSZXNpemluZyA9IGZhbHNlO1xuICBwcml2YXRlIGFjdGl2ZVBhbmVsSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBzdGFydEN1cnNvclBvc2l0aW9uID0gMDtcbiAgcHJpdmF0ZSBzdGFydFBhbmVsU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgcHJpdmF0ZSBtb3VzZU1vdmVMaXN0ZW5lcj86IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBwcml2YXRlIG1vdXNlVXBMaXN0ZW5lcj86IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAvLyBJbml0aWFsaXplIHBhbmVsIHNpemVzIGlmIG5lZWRlZFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQYW5lbFNpemVzKCk7XG4gICAgICB0aGlzLnVwZGF0ZUxhc3RTdGF0dXMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucGFuZWxzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUGFuZWxTaXplcygpO1xuICAgICAgdGhpcy51cGRhdGVMYXN0U3RhdHVzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsZWFudXBMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFzdFN0YXR1cygpIHtcbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgcGFuZWxzLmZvckVhY2goKHAsIGkpID0+IHAuaXNMYXN0ID0gaSA9PT0gcGFuZWxzLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgc3RhcnRSZXNpemUoaXRlbTogUmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50LCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzLnRvQXJyYXkoKTtcbiAgICB0aGlzLmFjdGl2ZVBhbmVsSW5kZXggPSBwYW5lbHMuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAodGhpcy5hY3RpdmVQYW5lbEluZGV4ID09PSAtMSB8fCB0aGlzLmFjdGl2ZVBhbmVsSW5kZXggPT09IHBhbmVscy5sZW5ndGggLSAxKSByZXR1cm47XG5cbiAgICB0aGlzLmlzUmVzaXppbmcgPSB0cnVlO1xuICAgIHRoaXMuc3RhcnRDdXJzb3JQb3NpdGlvbiA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyBldmVudC5jbGllbnRYIDogZXZlbnQuY2xpZW50WTtcbiAgICB0aGlzLnN0YXJ0UGFuZWxTaXplcyA9IHBhbmVscy5tYXAocCA9PiBwLnNpemUpO1xuXG4gICAgdGhpcy5zZXR1cExpc3RlbmVycygpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICdjb2wtcmVzaXplJyA6ICdyb3ctcmVzaXplJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnbm9uZSc7XG4gIH1cblxuICBwcml2YXRlIHNldHVwTGlzdGVuZXJzKCkge1xuICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIgPSAoZTogTW91c2VFdmVudCkgPT4gdGhpcy5vbk1vdXNlTW92ZShlKTtcbiAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lciA9ICgpID0+IHRoaXMuc3RvcFJlc2l6ZSgpO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lcik7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cExpc3RlbmVycygpIHtcbiAgICBpZiAodGhpcy5tb3VzZU1vdmVMaXN0ZW5lcikgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lcik7XG4gICAgaWYgKHRoaXMubW91c2VVcExpc3RlbmVyKSBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc1Jlc2l6aW5nKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50UG9zID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRZO1xuICAgIGNvbnN0IGRlbHRhUHggPSBjdXJyZW50UG9zIC0gdGhpcy5zdGFydEN1cnNvclBvc2l0aW9uO1xuXG4gICAgY29uc3QgY29udGFpbmVyU2l6ZSA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCdcbiAgICAgID8gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgICA6IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBjb25zdCBkZWx0YVBlcmNlbnQgPSAoZGVsdGFQeCAvIGNvbnRhaW5lclNpemUpICogMTAwO1xuXG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIGNvbnN0IHBhbmVsQSA9IHBhbmVsc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdO1xuICAgIGNvbnN0IHBhbmVsQiA9IHBhbmVsc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXTtcblxuICAgIGNvbnN0IG5ld1NpemVBID0gTWF0aC5tYXgocGFuZWxBLm1pblNpemUsIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF0gKyBkZWx0YVBlcmNlbnQpO1xuICAgIGNvbnN0IGFjdHVhbERlbHRhID0gbmV3U2l6ZUEgLSB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdO1xuICAgIGNvbnN0IG5ld1NpemVCID0gTWF0aC5tYXgocGFuZWxCLm1pblNpemUsIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdIC0gYWN0dWFsRGVsdGEpO1xuXG4gICAgcGFuZWxBLnNpemUgPSBuZXdTaXplQTtcbiAgICBwYW5lbEIuc2l6ZSA9IHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF0gKyB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXSAtIHBhbmVsQS5zaXplO1xuXG4gICAgaWYgKHBhbmVsQi5zaXplIDwgcGFuZWxCLm1pblNpemUpIHtcbiAgICAgIHBhbmVsQi5zaXplID0gcGFuZWxCLm1pblNpemU7XG4gICAgICBwYW5lbEEuc2l6ZSA9ICh0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXhdICsgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4ICsgMV0pIC0gcGFuZWxCLm1pblNpemU7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wUmVzaXplKCkge1xuICAgIHRoaXMuaXNSZXNpemluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycygpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yID0gJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0ID0gJyc7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVBhbmVsU2l6ZXMoKSB7XG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIGNvbnN0IHRvdGFsUGFuZWxzID0gcGFuZWxzLmxlbmd0aDtcblxuICAgIGlmICh0b3RhbFBhbmVscyA+IDApIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRTaXplID0gMTAwIC8gdG90YWxQYW5lbHM7XG4gICAgICBwYW5lbHMuZm9yRWFjaChwYW5lbCA9PiB7XG4gICAgICAgIGlmICghcGFuZWwuc2l6ZSkge1xuICAgICAgICAgIHBhbmVsLnNpemUgPSBkZWZhdWx0U2l6ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbXB1dGVkQ29udGFpbmVyQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgJ3ctZnVsbCBoLWZ1bGwnLFxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQStCLFVBQVUsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQWEsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQXdCL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUN6QixTQUFTLEdBQThCLFlBQVksQ0FBQztJQUNwRCxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBRTVCLHVGQUF1RjtJQUN2QixNQUFNLENBQTBDO0lBRXhHLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWhDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFL0IsaUJBQWlCLENBQTJCO0lBQzVDLGVBQWUsQ0FBMkI7SUFFbEQsa0JBQWtCO1FBQ2hCLG1DQUFtQztRQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxD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LENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLEVBQUUsQ0FDUCxlQUFlLEVBQ2YsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO0lBQ0osQ0FBQzt3R0E1SFUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsZ0xBS0EsMkJBQTJCLDhCQXZCbkQ7Ozs7OztHQU1ULHNIQVBTLFlBQVk7OzRGQW1CWCx1QkFBdUI7a0JBdEJuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7O0dBTVQ7OEJBYVEsU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRzBELE1BQU07c0JBQXJFLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyQ29udGVudEluaXQsIEVsZW1lbnRSZWYsIGluamVjdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5pbXBvcnQgeyBSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3Jlc2l6YWJsZS1wYW5lbC1pdGVtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLXJlc2l6YWJsZS1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgW2NsYXNzXT1cImNvbXB1dGVkQ29udGFpbmVyQ2xhc3NcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCB3LWZ1bGxcIiBbY2xhc3MuZmxleC1jb2xdPVwiZGlyZWN0aW9uID09PSAndmVydGljYWwnXCIgW2NsYXNzLmZsZXgtcm93XT1cImRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgLyogRmlsbHMgaXRzIHBhcmVudCBieSBkZWZhdWx0IHNvIGNvbnN1bWVycyBkb24ndCBoYXZlIHRvIHJlbWVtYmVyIGFcbiAgICAgICBtYW51YWwgaC1mdWxsIOKAlCB0aGUgZmxleCByb3cvY29sIHdyYXBwZXIgYmVsb3cgb25seSBoYXMgc29tZXRoaW5nIHRvXG4gICAgICAgZGlzdHJpYnV0ZSBvbmNlIHRoaXMgYW5kIHRoZSBjb250YWluZXIgZGl2IGFjdHVhbGx5IGhhdmUgYSBoZWlnaHQuICovXG4gICAgOmhvc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZVBhbmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nID0gJyc7XG5cbiAgLy8gZm9yd2FyZFJlZiBicmVha3MgdGhlIHBhbmVsIDwtPiBpdGVtIGNpcmN1bGFyIGltcG9ydCAoVERaIGF0IGNsYXNzLWRlY29yYXRpb24gdGltZSkuXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQpKSBwYW5lbHMhOiBRdWVyeUxpc3Q8UmVzaXphYmxlUGFuZWxJdGVtQ29tcG9uZW50PjtcblxuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJpdmF0ZSBpc1Jlc2l6aW5nID0gZmFsc2U7XG4gIHByaXZhdGUgYWN0aXZlUGFuZWxJbmRleCA9IC0xO1xuICBwcml2YXRlIHN0YXJ0Q3Vyc29yUG9zaXRpb24gPSAwO1xuICBwcml2YXRlIHN0YXJ0UGFuZWxTaXplczogbnVtYmVyW10gPSBbXTtcblxuICBwcml2YXRlIG1vdXNlTW92ZUxpc3RlbmVyPzogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VVcExpc3RlbmVyPzogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIC8vIEluaXRpYWxpemUgcGFuZWwgc2l6ZXMgaWYgbmVlZGVkXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsU2l6ZXMoKTtcbiAgICAgIHRoaXMudXBkYXRlTGFzdFN0YXR1cygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5wYW5lbHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQYW5lbFNpemVzKCk7XG4gICAgICB0aGlzLnVwZGF0ZUxhc3RTdGF0dXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2xlYW51cExpc3RlbmVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVMYXN0U3RhdHVzKCkge1xuICAgIGNvbnN0IHBhbmVscyA9IHRoaXMucGFuZWxzLnRvQXJyYXkoKTtcbiAgICBwYW5lbHMuZm9yRWFjaCgocCwgaSkgPT4gcC5pc0xhc3QgPSBpID09PSBwYW5lbHMubGVuZ3RoIC0gMSk7XG4gIH1cblxuICBzdGFydFJlc2l6ZShpdGVtOiBSZXNpemFibGVQYW5lbEl0ZW1Db21wb25lbnQsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgcGFuZWxzID0gdGhpcy5wYW5lbHMudG9BcnJheSgpO1xuICAgIHRoaXMuYWN0aXZlUGFuZWxJbmRleCA9IHBhbmVscy5pbmRleE9mKGl0ZW0pO1xuICAgIGlmICh0aGlzLmFjdGl2ZVBhbmVsSW5kZXggPT09IC0xIHx8IHRoaXMuYWN0aXZlUGFuZWxJbmRleCA9PT0gcGFuZWxzLmxlbmd0aCAtIDEpIHJldHVybjtcblxuICAgIHRoaXMuaXNSZXNpemluZyA9IHRydWU7XG4gICAgdGhpcy5zdGFydEN1cnNvclBvc2l0aW9uID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRZO1xuICAgIHRoaXMuc3RhcnRQYW5lbFNpemVzID0gcGFuZWxzLm1hcChwID0+IHAuc2l6ZSk7XG5cbiAgICB0aGlzLnNldHVwTGlzdGVuZXJzKCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2NvbC1yZXNpemUnIDogJ3Jvdy1yZXNpemUnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdCA9ICdub25lJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lciA9IChlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLm9uTW91c2VNb3ZlKGUpO1xuICAgIHRoaXMubW91c2VVcExpc3RlbmVyID0gKCkgPT4gdGhpcy5zdG9wUmVzaXplKCk7XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5tb3VzZVVwTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKSBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKTtcbiAgICBpZiAodGhpcy5tb3VzZVVwTGlzdGVuZXIpIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm1vdXNlVXBMaXN0ZW5lcik7XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzUmVzaXppbmcpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRQb3MgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFk7XG4gICAgY29uc3QgZGVsdGFQeCA9IGN1cnJlbnRQb3MgLSB0aGlzLnN0YXJ0Q3Vyc29yUG9zaXRpb247XG5cbiAgICBjb25zdCBjb250YWluZXJTaXplID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgPyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgIDogdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgIGNvbnN0IGRlbHRhUGVyY2VudCA9IChkZWx0YVB4IC8gY29udGFpbmVyU2l6ZSkgKiAxMDA7XG5cbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgY29uc3QgcGFuZWxBID0gcGFuZWxzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF07XG4gICAgY29uc3QgcGFuZWxCID0gcGFuZWxzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdO1xuXG4gICAgY29uc3QgbmV3U2l6ZUEgPSBNYXRoLm1heChwYW5lbEEubWluU2l6ZSwgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XSArIGRlbHRhUGVyY2VudCk7XG4gICAgY29uc3QgYWN0dWFsRGVsdGEgPSBuZXdTaXplQSAtIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF07XG4gICAgY29uc3QgbmV3U2l6ZUIgPSBNYXRoLm1heChwYW5lbEIubWluU2l6ZSwgdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4ICsgMV0gLSBhY3R1YWxEZWx0YSk7XG5cbiAgICBwYW5lbEEuc2l6ZSA9IG5ld1NpemVBO1xuICAgIHBhbmVsQi5zaXplID0gdGhpcy5zdGFydFBhbmVsU2l6ZXNbdGhpcy5hY3RpdmVQYW5lbEluZGV4XSArIHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleCArIDFdIC0gcGFuZWxBLnNpemU7XG5cbiAgICBpZiAocGFuZWxCLnNpemUgPCBwYW5lbEIubWluU2l6ZSkge1xuICAgICAgcGFuZWxCLnNpemUgPSBwYW5lbEIubWluU2l6ZTtcbiAgICAgIHBhbmVsQS5zaXplID0gKHRoaXMuc3RhcnRQYW5lbFNpemVzW3RoaXMuYWN0aXZlUGFuZWxJbmRleF0gKyB0aGlzLnN0YXJ0UGFuZWxTaXplc1t0aGlzLmFjdGl2ZVBhbmVsSW5kZXggKyAxXSkgLSBwYW5lbEIubWluU2l6ZTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3BSZXNpemUoKSB7XG4gICAgdGhpcy5pc1Jlc2l6aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzKCk7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3IgPSAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3QgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxTaXplcygpIHtcbiAgICBjb25zdCBwYW5lbHMgPSB0aGlzLnBhbmVscy50b0FycmF5KCk7XG4gICAgY29uc3QgdG90YWxQYW5lbHMgPSBwYW5lbHMubGVuZ3RoO1xuXG4gICAgaWYgKHRvdGFsUGFuZWxzID4gMCkge1xuICAgICAgY29uc3QgZGVmYXVsdFNpemUgPSAxMDAgLyB0b3RhbFBhbmVscztcbiAgICAgIHBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHtcbiAgICAgICAgaWYgKCFwYW5lbC5zaXplKSB7XG4gICAgICAgICAgcGFuZWwuc2l6ZSA9IGRlZmF1bHRTaXplO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29tcHV0ZWRDb250YWluZXJDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAndy1mdWxsIGgtZnVsbCcsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -162,7 +162,7 @@ export class SegmentComponent {
|
|
|
162
162
|
(keydown)="onKeydown($event)"
|
|
163
163
|
>
|
|
164
164
|
<div
|
|
165
|
-
class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-
|
|
165
|
+
class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-tolle"
|
|
166
166
|
[style.left.px]="gliderLeft"
|
|
167
167
|
[style.width.px]="gliderWidth"
|
|
168
168
|
[class.opacity-0]="!hasValue"
|
|
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
219
219
|
(keydown)="onKeydown($event)"
|
|
220
220
|
>
|
|
221
221
|
<div
|
|
222
|
-
class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-
|
|
222
|
+
class="absolute top-1 bottom-1 bg-primary shadow-sm rounded-md transition-all duration-300 ease-tolle"
|
|
223
223
|
[style.left.px]="gliderLeft"
|
|
224
224
|
[style.width.px]="gliderWidth"
|
|
225
225
|
[class.opacity-0]="!hasValue"
|
|
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
281
281
|
* @deprecated Use `SegmentComponent`. This alias will be removed in a future major.
|
|
282
282
|
*/
|
|
283
283
|
export { SegmentComponent as SegmentedComponent };
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NlZ21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFFVixZQUFZLEVBUVosU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQTRFaEMsTUFBTSxPQUFPLGdCQUFnQjtJQW1CUDtJQWxCWCxLQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUMxQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixZQUFZLENBQW9CLENBQUMsdUJBQXVCO0lBRWpFLEtBQUssR0FBUSxJQUFJLENBQUM7SUFDbEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVPLFdBQVcsQ0FBMkI7SUFDckMsWUFBWSxDQUFzQztJQUVuRSxjQUFjLENBQWtCO0lBRXhDLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUzQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFJLENBQUM7SUFFL0MsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdB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Z0JBQWdCO2tCQWpFNUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxhQUN6Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7c0ZBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT2tCLFdBQVc7c0JBQWxDLFNBQVM7dUJBQUMsV0FBVztnQkFDRyxZQUFZO3NCQUFwQyxZQUFZO3VCQUFDLFNBQVM7O0FBK0l6Qjs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRJdGVtID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7ICAgLy8gQWRkZWQ6IE9wdGlvbmFsIGljb24gY2xhc3MgKGUuZy4sICdyaS1ob21lLWxpbmUnKVxuICBjbGFzcz86IHN0cmluZzsgIC8vIEFkZGVkOiBDdXN0b20gY2xhc3MgZm9yIHNwZWNpZmljIGl0ZW0gd3JhcHBlclxuICBkYXRhPzogYW55OyAgICAgIC8vIEFkZGVkOiBFeHRyYSBkYXRhIHBheWxvYWQgZm9yIGN1c3RvbSB0ZW1wbGF0ZXNcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2VnbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWdtZW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNjb250YWluZXJcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3JlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHAtMSBiZy1tdXRlZCByb3VuZGVkLWxnIHNlbGVjdC1ub25lIHctZnVsbCBnYXAtMScsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEgYm90dG9tLTEgYmctcHJpbWFyeSBzaGFkb3ctc20gcm91bmRlZC1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZWFzZS1bY3ViaWMtYmV6aWVyKDAuMiwwLjAsMC4yLDEpXVwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdsaWRlckxlZnRcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2xpZGVyV2lkdGhcIlxuICAgICAgICBbY2xhc3Mub3BhY2l0eS0wXT1cIiFoYXNWYWx1ZVwiXG4gICAgICA+PC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgICAgICAjaXRlbUVsc1xuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidmFsdWUgPT09IGl0ZW0udmFsdWVcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleChpdGVtKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoaXRlbS52YWx1ZSlcIlxuICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgJ3JlbGF0aXZlIHotMTAgZmxleC0xIHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwIHJvdW5kZWQtbWQgdGV4dC1jZW50ZXIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yJyxcbiAgICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTInLFxuICAgICAgICAgIHZhbHVlID09PSBpdGVtLnZhbHVlXG4gICAgICAgICAgICA/ICd0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCdcbiAgICAgICAgICAgIDogJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQvNzAnLFxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgJiYgJ29wYWNpdHktNTAgY3Vyc29yLW5vdC1hbGxvd2VkJyxcbiAgICAgICAgICBpdGVtLmNsYXNzXG4gICAgICAgIClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIHNlbGVjdGVkOiB2YWx1ZSA9PT0gaXRlbS52YWx1ZSB9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnQ+XG4gICAgICAgICAgPGkgKm5nSWY9XCJpdGVtLmljb25cIiBbY2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpdGVtczogU2VnbWVudEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBBbGxvdyBjdXN0b20gY29udGVudFxuXG4gIHZhbHVlOiBhbnkgPSBudWxsO1xuICBnbGlkZXJMZWZ0ID0gMDtcbiAgZ2xpZGVyV2lkdGggPSAwO1xuICBoYXNWYWx1ZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGRyZW4oJ2l0ZW1FbHMnKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb250YWluZXJFbCkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gUmVjYWxjdWxhdGUgaWYgaXRlbXMgY2hhbmdlIG9yIGlmIHZhbHVlIGNoYW5nZXMgZXh0ZXJuYWxseVxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmICFjaGFuZ2VzWydpdGVtcyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZChpID0+IGkudmFsdWUgPT09IHZhbCk7XG4gICAgaWYgKGl0ZW0/LmRpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gIH1cblxuICAvKiogVHJ1ZSB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIG1hdGNoZXMgb25lIG9mIHRoZSBpdGVtcy4gKi9cbiAgcHJpdmF0ZSBoYXNTZWxlY3RlZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnNvbWUoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlyc3RFbmFibGVkSXRlbSgpOiBTZWdtZW50SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZChpID0+ICFpLmRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3ZpbmcgdGFiaW5kZXg6IHRoZSBzZWxlY3RlZCBpdGVtIGlzIHRhYi1yZWFjaGFibGUsIG9yIC0gd2hlbiBub3RoaW5nIGlzXG4gICAqIHNlbGVjdGVkIC0gdGhlIGZpcnN0IGVuYWJsZWQgaXRlbS4gQWxsIG90aGVyIGl0ZW1zIGdldCAtMS5cbiAgICovXG4gIGdldFRhYkluZGV4KGl0ZW06IFNlZ21lbnRJdGVtKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkKSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IGl0ZW0udmFsdWUpIHJldHVybiAwO1xuICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZFZhbHVlKCkgJiYgdGhpcy5maXJzdEVuYWJsZWRJdGVtKCkgPT09IGl0ZW0pIHJldHVybiAwO1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXQUktQVJJQSByYWRpbyBncm91cCBrZXlib2FyZCBuYXY6IEFycm93IExlZnQvUmlnaHQgKGFuZCBIb21lL0VuZCkgbW92ZVxuICAgKiBzZWxlY3Rpb24gKyBmb2N1cyBhY3Jvc3MgdGhlIGVuYWJsZWQgaXRlbXMsIHdyYXBwaW5nIGFuZCBza2lwcGluZyBkaXNhYmxlZC5cbiAgICovXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgY29uc3QgZm9yd2FyZCA9IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgIGNvbnN0IGJhY2t3YXJkID0ga2V5ID09PSAnQXJyb3dMZWZ0JztcbiAgICBjb25zdCBob21lID0ga2V5ID09PSAnSG9tZSc7XG4gICAgY29uc3QgZW5kID0ga2V5ID09PSAnRW5kJztcbiAgICBpZiAoIWZvcndhcmQgJiYgIWJhY2t3YXJkICYmICFob21lICYmICFlbmQpIHJldHVybjtcblxuICAgIGNvbnN0IGVuYWJsZWQgPSB0aGlzLml0ZW1zLm1hcCgoaXQsIGkpID0+ICh7IGl0LCBpIH0pKS5maWx0ZXIoeCA9PiAheC5pdC5kaXNhYmxlZCk7XG4gICAgaWYgKCFlbmFibGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLml0ZW1FbGVtZW50cz8udG9BcnJheSgpLm1hcChyID0+IHIubmF0aXZlRWxlbWVudCkgPz8gW107XG4gICAgY29uc3QgZm9jdXNlZEluZGV4ID0gYnV0dG9ucy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgbGV0IHBvcyA9IGVuYWJsZWQuZmluZEluZGV4KHggPT4geC5pID09PSBmb2N1c2VkSW5kZXgpO1xuICAgIGlmIChwb3MgPCAwKSBwb3MgPSBlbmFibGVkLmZpbmRJbmRleCh4ID0+IHguaXQudmFsdWUgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgbGV0IHRhcmdldFBvczogbnVtYmVyO1xuICAgIGlmIChob21lKSB7XG4gICAgICB0YXJnZXRQb3MgPSAwO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICB0YXJnZXRQb3MgPSBlbmFibGVkLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIGlmIChmb3J3YXJkKSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gMCA6IChwb3MgKyAxKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gZW5hYmxlZC5sZW5ndGggLSAxIDogKHBvcyAtIDEgKyBlbmFibGVkLmxlbmd0aCkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBlbmFibGVkW3RhcmdldFBvc107XG4gICAgdGhpcy5zZWxlY3QodGFyZ2V0Lml0LnZhbHVlKTtcbiAgICB0aGlzLml0ZW1FbGVtZW50cy5nZXQodGFyZ2V0LmkpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB1cGRhdGVHbGlkZXIoKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1FbGVtZW50cyB8fCAhdGhpcy5pdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZ2xpZGVyV2lkdGggPSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLml0ZW1FbGVtZW50cy5nZXQoaW5kZXgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5nbGlkZXJMZWZ0ID0gYWN0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgdGhpcy5nbGlkZXJXaWR0aCA9IGFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ1ZBIEltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVHbGlkZXIoKSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG5cbi8qKlxuICogQmFjay1jb21wYXQgYWxpYXM6IHRoZSBjbGFzcyB3YXMgcmVuYW1lZCB0byBtYXRjaCBpdHMgYHRvbGxlLXNlZ21lbnRgIHNlbGVjdG9yLlxuICpcbiAqIEEgcmUtZXhwb3J0IGJpbmRpbmcgcmF0aGVyIHRoYW4gYGNvbnN0IFNlZ21lbnRlZENvbXBvbmVudCA9IFNlZ21lbnRDb21wb25lbnRgLFxuICogYmVjYXVzZSBBbmd1bGFyJ3MgQU9UIGNvbXBpbGVyIHJlc29sdmVzIGFuIGFsaWFzZWQgZXhwb3J0IHN0cmFpZ2h0IGJhY2sgdG8gdGhlXG4gKiBjbGFzcyBkZWNsYXJhdGlvbiDigJQgc28gaXQgc3RpbGwgd29ya3MgaW4gYSBjb25zdW1lcidzIGBpbXBvcnRzOiBbXWAgYXJyYXkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTZWdtZW50Q29tcG9uZW50YC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IuXG4gKi9cbmV4cG9ydCB7IFNlZ21lbnRDb21wb25lbnQgYXMgU2VnbWVudGVkQ29tcG9uZW50IH07XG4iXX0=
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL3NlZ21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFVBQVUsRUFFVixZQUFZLEVBUVosU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQTRFaEMsTUFBTSxPQUFPLGdCQUFnQjtJQW1CUDtJQWxCWCxLQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUMxQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixZQUFZLENBQW9CLENBQUMsdUJBQXVCO0lBRWpFLEtBQUssR0FBUSxJQUFJLENBQUM7SUFDbEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNmLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVPLFdBQVcsQ0FBMkI7SUFDckMsWUFBWSxDQUFzQztJQUVuRSxjQUFjLENBQWtCO0lBRXhDLFFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUIsU0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUzQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFJLENBQUM7SUFFL0MsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUV0QyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdB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Z0JBQWdCO2tCQWpFNUIsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxhQUN6Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Q7c0ZBUVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT2tCLFdBQVc7c0JBQWxDLFNBQVM7dUJBQUMsV0FBVztnQkFDRyxZQUFZO3NCQUFwQyxZQUFZO3VCQUFDLFNBQVM7O0FBK0l6Qjs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxrQkFBa0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnRJdGVtID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7ICAgLy8gQWRkZWQ6IE9wdGlvbmFsIGljb24gY2xhc3MgKGUuZy4sICdyaS1ob21lLWxpbmUnKVxuICBjbGFzcz86IHN0cmluZzsgIC8vIEFkZGVkOiBDdXN0b20gY2xhc3MgZm9yIHNwZWNpZmljIGl0ZW0gd3JhcHBlclxuICBkYXRhPzogYW55OyAgICAgIC8vIEFkZGVkOiBFeHRyYSBkYXRhIHBheWxvYWQgZm9yIGN1c3RvbSB0ZW1wbGF0ZXNcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtc2VnbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWdtZW50Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgICNjb250YWluZXJcbiAgICAgIFtjbGFzc109XCJjbihcbiAgICAgICAgJ3JlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIHAtMSBiZy1tdXRlZCByb3VuZGVkLWxnIHNlbGVjdC1ub25lIHctZnVsbCBnYXAtMScsXG4gICAgICAgIGNsYXNzXG4gICAgICApXCJcbiAgICAgIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEgYm90dG9tLTEgYmctcHJpbWFyeSBzaGFkb3ctc20gcm91bmRlZC1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgZWFzZS10b2xsZVwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImdsaWRlckxlZnRcIlxuICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2xpZGVyV2lkdGhcIlxuICAgICAgICBbY2xhc3Mub3BhY2l0eS0wXT1cIiFoYXNWYWx1ZVwiXG4gICAgICA+PC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxuICAgICAgICAjaXRlbUVsc1xuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwidmFsdWUgPT09IGl0ZW0udmFsdWVcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJnZXRUYWJJbmRleChpdGVtKVwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3QoaXRlbS52YWx1ZSlcIlxuICAgICAgICBbY2xhc3NdPVwiY24oXG4gICAgICAgICAgJ3JlbGF0aXZlIHotMTAgZmxleC0xIHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwIHJvdW5kZWQtbWQgdGV4dC1jZW50ZXIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yJyxcbiAgICAgICAgICAnZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTInLFxuICAgICAgICAgIHZhbHVlID09PSBpdGVtLnZhbHVlXG4gICAgICAgICAgICA/ICd0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCdcbiAgICAgICAgICAgIDogJ3RleHQtbXV0ZWQtZm9yZWdyb3VuZCBob3Zlcjp0ZXh0LWZvcmVncm91bmQvNzAnLFxuICAgICAgICAgIGl0ZW0uZGlzYWJsZWQgJiYgJ29wYWNpdHktNTAgY3Vyc29yLW5vdC1hbGxvd2VkJyxcbiAgICAgICAgICBpdGVtLmNsYXNzXG4gICAgICAgIClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlOyBlbHNlIGRlZmF1bHRDb250ZW50XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIHNlbGVjdGVkOiB2YWx1ZSA9PT0gaXRlbS52YWx1ZSB9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRlbnQ+XG4gICAgICAgICAgPGkgKm5nSWY9XCJpdGVtLmljb25cIiBbY2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpdGVtczogU2VnbWVudEl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+OyAvLyBBbGxvdyBjdXN0b20gY29udGVudFxuXG4gIHZhbHVlOiBhbnkgPSBudWxsO1xuICBnbGlkZXJMZWZ0ID0gMDtcbiAgZ2xpZGVyV2lkdGggPSAwO1xuICBoYXNWYWx1ZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lckVsITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGRyZW4oJ2l0ZW1FbHMnKSBpdGVtRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuXG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb250YWluZXJFbCkge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmNvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gUmVjYWxjdWxhdGUgaWYgaXRlbXMgY2hhbmdlIG9yIGlmIHZhbHVlIGNoYW5nZXMgZXh0ZXJuYWxseVxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmICFjaGFuZ2VzWydpdGVtcyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlR2xpZGVyKCkpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCh2YWw6IGFueSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXMuZmluZChpID0+IGkudmFsdWUgPT09IHZhbCk7XG4gICAgaWYgKGl0ZW0/LmRpc2FibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMudXBkYXRlR2xpZGVyKCk7XG4gIH1cblxuICAvKiogVHJ1ZSB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIG1hdGNoZXMgb25lIG9mIHRoZSBpdGVtcy4gKi9cbiAgcHJpdmF0ZSBoYXNTZWxlY3RlZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLnNvbWUoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlyc3RFbmFibGVkSXRlbSgpOiBTZWdtZW50SXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZChpID0+ICFpLmRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSb3ZpbmcgdGFiaW5kZXg6IHRoZSBzZWxlY3RlZCBpdGVtIGlzIHRhYi1yZWFjaGFibGUsIG9yIC0gd2hlbiBub3RoaW5nIGlzXG4gICAqIHNlbGVjdGVkIC0gdGhlIGZpcnN0IGVuYWJsZWQgaXRlbS4gQWxsIG90aGVyIGl0ZW1zIGdldCAtMS5cbiAgICovXG4gIGdldFRhYkluZGV4KGl0ZW06IFNlZ21lbnRJdGVtKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBpdGVtLmRpc2FibGVkKSByZXR1cm4gLTE7XG4gICAgaWYgKHRoaXMudmFsdWUgPT09IGl0ZW0udmFsdWUpIHJldHVybiAwO1xuICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZFZhbHVlKCkgJiYgdGhpcy5maXJzdEVuYWJsZWRJdGVtKCkgPT09IGl0ZW0pIHJldHVybiAwO1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXQUktQVJJQSByYWRpbyBncm91cCBrZXlib2FyZCBuYXY6IEFycm93IExlZnQvUmlnaHQgKGFuZCBIb21lL0VuZCkgbW92ZVxuICAgKiBzZWxlY3Rpb24gKyBmb2N1cyBhY3Jvc3MgdGhlIGVuYWJsZWQgaXRlbXMsIHdyYXBwaW5nIGFuZCBza2lwcGluZyBkaXNhYmxlZC5cbiAgICovXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgY29uc3QgZm9yd2FyZCA9IGtleSA9PT0gJ0Fycm93UmlnaHQnO1xuICAgIGNvbnN0IGJhY2t3YXJkID0ga2V5ID09PSAnQXJyb3dMZWZ0JztcbiAgICBjb25zdCBob21lID0ga2V5ID09PSAnSG9tZSc7XG4gICAgY29uc3QgZW5kID0ga2V5ID09PSAnRW5kJztcbiAgICBpZiAoIWZvcndhcmQgJiYgIWJhY2t3YXJkICYmICFob21lICYmICFlbmQpIHJldHVybjtcblxuICAgIGNvbnN0IGVuYWJsZWQgPSB0aGlzLml0ZW1zLm1hcCgoaXQsIGkpID0+ICh7IGl0LCBpIH0pKS5maWx0ZXIoeCA9PiAheC5pdC5kaXNhYmxlZCk7XG4gICAgaWYgKCFlbmFibGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGNvbnN0IGJ1dHRvbnMgPSB0aGlzLml0ZW1FbGVtZW50cz8udG9BcnJheSgpLm1hcChyID0+IHIubmF0aXZlRWxlbWVudCkgPz8gW107XG4gICAgY29uc3QgZm9jdXNlZEluZGV4ID0gYnV0dG9ucy5pbmRleE9mKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgbGV0IHBvcyA9IGVuYWJsZWQuZmluZEluZGV4KHggPT4geC5pID09PSBmb2N1c2VkSW5kZXgpO1xuICAgIGlmIChwb3MgPCAwKSBwb3MgPSBlbmFibGVkLmZpbmRJbmRleCh4ID0+IHguaXQudmFsdWUgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgbGV0IHRhcmdldFBvczogbnVtYmVyO1xuICAgIGlmIChob21lKSB7XG4gICAgICB0YXJnZXRQb3MgPSAwO1xuICAgIH0gZWxzZSBpZiAoZW5kKSB7XG4gICAgICB0YXJnZXRQb3MgPSBlbmFibGVkLmxlbmd0aCAtIDE7XG4gICAgfSBlbHNlIGlmIChmb3J3YXJkKSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gMCA6IChwb3MgKyAxKSAlIGVuYWJsZWQubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQb3MgPSBwb3MgPCAwID8gZW5hYmxlZC5sZW5ndGggLSAxIDogKHBvcyAtIDEgKyBlbmFibGVkLmxlbmd0aCkgJSBlbmFibGVkLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBlbmFibGVkW3RhcmdldFBvc107XG4gICAgdGhpcy5zZWxlY3QodGFyZ2V0Lml0LnZhbHVlKTtcbiAgICB0aGlzLml0ZW1FbGVtZW50cy5nZXQodGFyZ2V0LmkpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB1cGRhdGVHbGlkZXIoKSB7XG4gICAgaWYgKCF0aGlzLml0ZW1FbGVtZW50cyB8fCAhdGhpcy5pdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtcy5maW5kSW5kZXgoaSA9PiBpLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZ2xpZGVyV2lkdGggPSAwO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLml0ZW1FbGVtZW50cy5nZXQoaW5kZXgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuaGFzVmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5nbGlkZXJMZWZ0ID0gYWN0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgdGhpcy5nbGlkZXJXaWR0aCA9IGFjdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ1ZBIEltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVHbGlkZXIoKSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vbkNoYW5nZSA9IGZuOyB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgdGhpcy5vblRvdWNoZWQgPSBmbjsgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNuID0gY247XG59XG5cbi8qKlxuICogQmFjay1jb21wYXQgYWxpYXM6IHRoZSBjbGFzcyB3YXMgcmVuYW1lZCB0byBtYXRjaCBpdHMgYHRvbGxlLXNlZ21lbnRgIHNlbGVjdG9yLlxuICpcbiAqIEEgcmUtZXhwb3J0IGJpbmRpbmcgcmF0aGVyIHRoYW4gYGNvbnN0IFNlZ21lbnRlZENvbXBvbmVudCA9IFNlZ21lbnRDb21wb25lbnRgLFxuICogYmVjYXVzZSBBbmd1bGFyJ3MgQU9UIGNvbXBpbGVyIHJlc29sdmVzIGFuIGFsaWFzZWQgZXhwb3J0IHN0cmFpZ2h0IGJhY2sgdG8gdGhlXG4gKiBjbGFzcyBkZWNsYXJhdGlvbiDigJQgc28gaXQgc3RpbGwgd29ya3MgaW4gYSBjb25zdW1lcidzIGBpbXBvcnRzOiBbXWAgYXJyYXkuXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBTZWdtZW50Q29tcG9uZW50YC4gVGhpcyBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IuXG4gKi9cbmV4cG9ydCB7IFNlZ21lbnRDb21wb25lbnQgYXMgU2VnbWVudGVkQ29tcG9uZW50IH07XG4iXX0=
|