@cqa-lib/cqa-ui 1.1.557 → 1.1.558
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/esm2020/lib/sidebar/nav-item.component.mjs +171 -0
- package/esm2020/lib/sidebar/nav-menu.component.mjs +56 -0
- package/esm2020/lib/sidebar/nav-sub-item.component.mjs +27 -0
- package/esm2020/lib/sidebar/profile-menu/profile-menu.component.mjs +122 -0
- package/esm2020/lib/sidebar/profile-menu/profile-menu.models.mjs +4 -0
- package/esm2020/lib/sidebar/sidebar.component.mjs +286 -0
- package/esm2020/lib/sidebar/sidebar.models.mjs +5 -0
- package/esm2020/lib/sidebar/workspace-menu/workspace-menu.component.mjs +120 -0
- package/esm2020/lib/sidebar/workspace-menu/workspace-menu.models.mjs +2 -0
- package/esm2020/lib/templates/modular-table-template/modular-table-template.component.mjs +3 -3
- package/esm2020/lib/ui-kit.module.mjs +31 -1
- package/esm2020/lib/utils/tw-overlay-container.mjs +3 -1
- package/esm2020/public-api.mjs +10 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +818 -20
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +801 -20
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/sidebar/nav-item.component.d.ts +48 -0
- package/lib/sidebar/nav-menu.component.d.ts +19 -0
- package/lib/sidebar/nav-sub-item.component.d.ts +11 -0
- package/lib/sidebar/profile-menu/profile-menu.component.d.ts +35 -0
- package/lib/sidebar/profile-menu/profile-menu.models.d.ts +35 -0
- package/lib/sidebar/sidebar.component.d.ts +97 -0
- package/lib/sidebar/sidebar.models.d.ts +63 -0
- package/lib/sidebar/workspace-menu/workspace-menu.component.d.ts +34 -0
- package/lib/sidebar/workspace-menu/workspace-menu.models.d.ts +12 -0
- package/lib/ui-kit.module.d.ts +164 -158
- package/package.json +1 -1
- package/public-api.d.ts +9 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, } from '@angular/core';
|
|
2
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class WorkspaceMenuComponent {
|
|
7
|
+
constructor(overlay, viewContainerRef) {
|
|
8
|
+
this.overlay = overlay;
|
|
9
|
+
this.viewContainerRef = viewContainerRef;
|
|
10
|
+
this.workspaces = [];
|
|
11
|
+
this.anchor = null;
|
|
12
|
+
this.workspaceSelected = new EventEmitter();
|
|
13
|
+
this.manageWorkspacesClick = new EventEmitter();
|
|
14
|
+
this.dismissed = new EventEmitter();
|
|
15
|
+
this.overlayRef = null;
|
|
16
|
+
this.keySub = null;
|
|
17
|
+
this.backdropSub = null;
|
|
18
|
+
this.viewInitialized = false;
|
|
19
|
+
this.trackByWs = (_index, item) => item.id;
|
|
20
|
+
}
|
|
21
|
+
ngAfterViewInit() {
|
|
22
|
+
this.viewInitialized = true;
|
|
23
|
+
if (this.anchor) {
|
|
24
|
+
this.openOverlay();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ngOnChanges(changes) {
|
|
28
|
+
if (!this.viewInitialized || !changes['anchor'])
|
|
29
|
+
return;
|
|
30
|
+
if (this.anchor) {
|
|
31
|
+
this.openOverlay();
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.closeOverlay();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ngOnDestroy() {
|
|
38
|
+
this.closeOverlay();
|
|
39
|
+
}
|
|
40
|
+
onItemClick(item) {
|
|
41
|
+
this.workspaceSelected.emit(item.id);
|
|
42
|
+
}
|
|
43
|
+
onManageClick() {
|
|
44
|
+
this.manageWorkspacesClick.emit();
|
|
45
|
+
}
|
|
46
|
+
openOverlay() {
|
|
47
|
+
if (!this.anchor) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.closeOverlay();
|
|
51
|
+
// Popover floats out to the right of the workspace button, top-aligned with the button.
|
|
52
|
+
// Both position pairs pin overlayY: 'top' so the popover always extends downward (mirror of
|
|
53
|
+
// profile-menu, which always extends upward from a bottom-anchored card).
|
|
54
|
+
// `withPush(false)` is critical — otherwise CDK slides the overlay back over the sidebar
|
|
55
|
+
// when its viewport calculation thinks the popover doesn't fit.
|
|
56
|
+
const positions = [
|
|
57
|
+
{ originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetX: 0, offsetY: 0 },
|
|
58
|
+
{ originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetX: 0, offsetY: 4 },
|
|
59
|
+
];
|
|
60
|
+
const positionStrategy = this.overlay
|
|
61
|
+
.position()
|
|
62
|
+
.flexibleConnectedTo(this.anchor)
|
|
63
|
+
.withPositions(positions)
|
|
64
|
+
.withFlexibleDimensions(false)
|
|
65
|
+
.withViewportMargin(8)
|
|
66
|
+
.withPush(false);
|
|
67
|
+
this.overlayRef = this.overlay.create({
|
|
68
|
+
positionStrategy,
|
|
69
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
70
|
+
hasBackdrop: true,
|
|
71
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
72
|
+
panelClass: 'cqa-workspace-menu-panel',
|
|
73
|
+
});
|
|
74
|
+
const portal = new TemplatePortal(this.popoverTpl, this.viewContainerRef);
|
|
75
|
+
this.overlayRef.attach(portal);
|
|
76
|
+
this.backdropSub = this.overlayRef.backdropClick().subscribe(() => this.dismissed.emit());
|
|
77
|
+
this.keySub = this.overlayRef.keydownEvents().subscribe((event) => {
|
|
78
|
+
if (event.key === 'Escape') {
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
this.dismissed.emit();
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
closeOverlay() {
|
|
85
|
+
this.backdropSub?.unsubscribe();
|
|
86
|
+
this.backdropSub = null;
|
|
87
|
+
this.keySub?.unsubscribe();
|
|
88
|
+
this.keySub = null;
|
|
89
|
+
if (this.overlayRef) {
|
|
90
|
+
this.overlayRef.dispose();
|
|
91
|
+
this.overlayRef = null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
WorkspaceMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: WorkspaceMenuComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
+
WorkspaceMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: WorkspaceMenuComponent, selector: "cqa-workspace-menu", inputs: { workspaces: "workspaces", currentWorkspaceId: "currentWorkspaceId", workspaceName: "workspaceName", anchor: "anchor", popoverId: "popoverId" }, outputs: { workspaceSelected: "workspaceSelected", manageWorkspacesClick: "manageWorkspacesClick", dismissed: "dismissed" }, viewQueries: [{ propertyName: "popoverTpl", first: true, predicate: ["popoverTpl"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #popoverTpl>\n <div class=\"cqa-wm\" [attr.id]=\"popoverId\" role=\"dialog\" aria-label=\"Switch workspace\">\n <header class=\"cqa-wm-header\">\n <h2 class=\"cqa-wm-heading\">Workspaces in {{ workspaceName }}</h2>\n </header>\n\n <ul class=\"cqa-wm-list\" role=\"listbox\">\n <li *ngFor=\"let ws of workspaces; trackBy: trackByWs\">\n <button\n type=\"button\"\n class=\"cqa-wm-item\"\n [class.cqa-wm-item--active]=\"ws.id === currentWorkspaceId\"\n role=\"option\"\n [attr.aria-selected]=\"ws.id === currentWorkspaceId\"\n (click)=\"onItemClick(ws)\">\n <span class=\"cqa-wm-avatar\" [style.background]=\"ws.avatarColor || null\">\n <img *ngIf=\"ws.logoUrl; else initialsTpl\" class=\"cqa-wm-logo\" [src]=\"ws.logoUrl\" [alt]=\"ws.name\"/>\n <ng-template #initialsTpl>\n <span class=\"cqa-wm-initials\">{{ ws.initials }}</span>\n </ng-template>\n </span>\n <span class=\"cqa-wm-text\">\n <span class=\"cqa-wm-name\" [title]=\"ws.name\">{{ ws.name }}</span>\n <span *ngIf=\"ws.subtitle\" class=\"cqa-wm-subtitle\" [title]=\"ws.subtitle\">{{ ws.subtitle }}</span>\n </span>\n <span *ngIf=\"ws.id === currentWorkspaceId\" class=\"cqa-wm-check\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\">\n <polyline points=\"3,8.5 6.5,12 13,4.5\"/>\n </svg>\n </span>\n </button>\n </li>\n </ul>\n\n <div class=\"cqa-wm-divider\"></div>\n\n <button type=\"button\" class=\"cqa-wm-footer\" (click)=\"onManageClick()\">\n <span class=\"cqa-wm-footer-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"15\" height=\"15\">\n <circle cx=\"8\" cy=\"8\" r=\"2\"/>\n <path d=\"M13 8a5 5 0 0 0-.1-1l1.4-1-1.4-2.4-1.7.5a5 5 0 0 0-1.7-1L9 1H7l-.5 1.6a5 5 0 0 0-1.7 1L3.1 3.6 1.7 6l1.4 1A5 5 0 0 0 3 8a5 5 0 0 0 .1 1l-1.4 1L3.1 12.4l1.7-.5a5 5 0 0 0 1.7 1L7 15h2l.5-1.6a5 5 0 0 0 1.7-1l1.7.5L14.3 10 13 9a5 5 0 0 0 0-1z\"/>\n </svg>\n </span>\n <span class=\"cqa-wm-footer-label\">Workspace Management</span>\n </button>\n </div>\n</ng-template>\n", styles: ["::ng-deep .cqa-workspace-menu-panel{z-index:1200}.cqa-wm{width:270px;background:#fbfcff;border-radius:12px;box-shadow:0 0 0 1px #0f12a80a,0 12px 32px #0f12a82e;padding:6px;font-family:inherit;color:#161617;-webkit-user-select:none;user-select:none;animation:cqaWmFadeIn .12s cubic-bezier(.16,1,.3,1)}@keyframes cqaWmFadeIn{0%{opacity:0;transform:translateY(2px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.cqa-wm-header{display:flex;align-items:center;min-height:36px;padding:4px 16px;border-bottom:1px solid #f0f0f1}.cqa-wm-heading{font-size:12px;font-weight:600;line-height:1;color:#99999e;margin:0}.cqa-wm-list{list-style:none;margin:0;padding:0;max-height:208px;overflow-y:auto;display:flex;flex-direction:column}.cqa-wm-list::-webkit-scrollbar{width:6px}.cqa-wm-list::-webkit-scrollbar-thumb{background:rgba(15,18,168,.16);border-radius:3px}.cqa-wm-list::-webkit-scrollbar-track{background:transparent}.cqa-wm-item{width:100%;display:flex;align-items:center;gap:11px;padding:8px 10px 12px;min-height:52px;background:transparent;border:none;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:#161617;transition:background .12s}.cqa-wm-item:hover{background:#f4f5f7}.cqa-wm-item:focus-visible{outline:2px solid #3f43ee;outline-offset:1px}.cqa-wm-item--active,.cqa-wm-item--active:hover{background:#d8d9fc}.cqa-wm-avatar{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,#a78bfa,#6d28d9);box-shadow:0 1px 2px #0000001f;color:#fff}.cqa-wm-logo{width:100%;height:100%;object-fit:contain;display:block}.cqa-wm-initials{font-family:Nunito Sans,Inter,system-ui,sans-serif;font-size:14px;font-weight:800;letter-spacing:0;line-height:1;color:#fff}.cqa-wm-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cqa-wm-name{font-size:13px;font-weight:600;line-height:16.2px;color:#161617;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cqa-wm-subtitle{font-size:11px;font-weight:400;line-height:1;color:#6d6d74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cqa-wm-check{color:#3f43ee;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.cqa-wm-divider{height:1px;background:#f0f0f1;margin:0}.cqa-wm-footer{width:100%;display:flex;align-items:center;gap:10px;padding:9px 12px;background:transparent;border:none;border-radius:7px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:400;line-height:1;color:#4c4c51;text-align:left;transition:background .12s}.cqa-wm-footer:hover{background:#f4f5f7}.cqa-wm-footer:focus-visible{outline:2px solid #3f43ee;outline-offset:1px}.cqa-wm-footer-icon{width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.7;color:currentColor}.cqa-wm-footer-label{flex:1;min-width:0}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: WorkspaceMenuComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'cqa-workspace-menu', template: "<ng-template #popoverTpl>\n <div class=\"cqa-wm\" [attr.id]=\"popoverId\" role=\"dialog\" aria-label=\"Switch workspace\">\n <header class=\"cqa-wm-header\">\n <h2 class=\"cqa-wm-heading\">Workspaces in {{ workspaceName }}</h2>\n </header>\n\n <ul class=\"cqa-wm-list\" role=\"listbox\">\n <li *ngFor=\"let ws of workspaces; trackBy: trackByWs\">\n <button\n type=\"button\"\n class=\"cqa-wm-item\"\n [class.cqa-wm-item--active]=\"ws.id === currentWorkspaceId\"\n role=\"option\"\n [attr.aria-selected]=\"ws.id === currentWorkspaceId\"\n (click)=\"onItemClick(ws)\">\n <span class=\"cqa-wm-avatar\" [style.background]=\"ws.avatarColor || null\">\n <img *ngIf=\"ws.logoUrl; else initialsTpl\" class=\"cqa-wm-logo\" [src]=\"ws.logoUrl\" [alt]=\"ws.name\"/>\n <ng-template #initialsTpl>\n <span class=\"cqa-wm-initials\">{{ ws.initials }}</span>\n </ng-template>\n </span>\n <span class=\"cqa-wm-text\">\n <span class=\"cqa-wm-name\" [title]=\"ws.name\">{{ ws.name }}</span>\n <span *ngIf=\"ws.subtitle\" class=\"cqa-wm-subtitle\" [title]=\"ws.subtitle\">{{ ws.subtitle }}</span>\n </span>\n <span *ngIf=\"ws.id === currentWorkspaceId\" class=\"cqa-wm-check\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"14\" height=\"14\">\n <polyline points=\"3,8.5 6.5,12 13,4.5\"/>\n </svg>\n </span>\n </button>\n </li>\n </ul>\n\n <div class=\"cqa-wm-divider\"></div>\n\n <button type=\"button\" class=\"cqa-wm-footer\" (click)=\"onManageClick()\">\n <span class=\"cqa-wm-footer-icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" width=\"15\" height=\"15\">\n <circle cx=\"8\" cy=\"8\" r=\"2\"/>\n <path d=\"M13 8a5 5 0 0 0-.1-1l1.4-1-1.4-2.4-1.7.5a5 5 0 0 0-1.7-1L9 1H7l-.5 1.6a5 5 0 0 0-1.7 1L3.1 3.6 1.7 6l1.4 1A5 5 0 0 0 3 8a5 5 0 0 0 .1 1l-1.4 1L3.1 12.4l1.7-.5a5 5 0 0 0 1.7 1L7 15h2l.5-1.6a5 5 0 0 0 1.7-1l1.7.5L14.3 10 13 9a5 5 0 0 0 0-1z\"/>\n </svg>\n </span>\n <span class=\"cqa-wm-footer-label\">Workspace Management</span>\n </button>\n </div>\n</ng-template>\n", styles: ["::ng-deep .cqa-workspace-menu-panel{z-index:1200}.cqa-wm{width:270px;background:#fbfcff;border-radius:12px;box-shadow:0 0 0 1px #0f12a80a,0 12px 32px #0f12a82e;padding:6px;font-family:inherit;color:#161617;-webkit-user-select:none;user-select:none;animation:cqaWmFadeIn .12s cubic-bezier(.16,1,.3,1)}@keyframes cqaWmFadeIn{0%{opacity:0;transform:translateY(2px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.cqa-wm-header{display:flex;align-items:center;min-height:36px;padding:4px 16px;border-bottom:1px solid #f0f0f1}.cqa-wm-heading{font-size:12px;font-weight:600;line-height:1;color:#99999e;margin:0}.cqa-wm-list{list-style:none;margin:0;padding:0;max-height:208px;overflow-y:auto;display:flex;flex-direction:column}.cqa-wm-list::-webkit-scrollbar{width:6px}.cqa-wm-list::-webkit-scrollbar-thumb{background:rgba(15,18,168,.16);border-radius:3px}.cqa-wm-list::-webkit-scrollbar-track{background:transparent}.cqa-wm-item{width:100%;display:flex;align-items:center;gap:11px;padding:8px 10px 12px;min-height:52px;background:transparent;border:none;border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;color:#161617;transition:background .12s}.cqa-wm-item:hover{background:#f4f5f7}.cqa-wm-item:focus-visible{outline:2px solid #3f43ee;outline-offset:1px}.cqa-wm-item--active,.cqa-wm-item--active:hover{background:#d8d9fc}.cqa-wm-avatar{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,#a78bfa,#6d28d9);box-shadow:0 1px 2px #0000001f;color:#fff}.cqa-wm-logo{width:100%;height:100%;object-fit:contain;display:block}.cqa-wm-initials{font-family:Nunito Sans,Inter,system-ui,sans-serif;font-size:14px;font-weight:800;letter-spacing:0;line-height:1;color:#fff}.cqa-wm-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cqa-wm-name{font-size:13px;font-weight:600;line-height:16.2px;color:#161617;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cqa-wm-subtitle{font-size:11px;font-weight:400;line-height:1;color:#6d6d74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cqa-wm-check{color:#3f43ee;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.cqa-wm-divider{height:1px;background:#f0f0f1;margin:0}.cqa-wm-footer{width:100%;display:flex;align-items:center;gap:10px;padding:9px 12px;background:transparent;border:none;border-radius:7px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:400;line-height:1;color:#4c4c51;text-align:left;transition:background .12s}.cqa-wm-footer:hover{background:#f4f5f7}.cqa-wm-footer:focus-visible{outline:2px solid #3f43ee;outline-offset:1px}.cqa-wm-footer-icon{width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.7;color:currentColor}.cqa-wm-footer-label{flex:1;min-width:0}\n"] }]
|
|
100
|
+
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { workspaces: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], currentWorkspaceId: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], workspaceName: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], anchor: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], popoverId: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], workspaceSelected: [{
|
|
111
|
+
type: Output
|
|
112
|
+
}], manageWorkspacesClick: [{
|
|
113
|
+
type: Output
|
|
114
|
+
}], dismissed: [{
|
|
115
|
+
type: Output
|
|
116
|
+
}], popoverTpl: [{
|
|
117
|
+
type: ViewChild,
|
|
118
|
+
args: ['popoverTpl', { static: true }]
|
|
119
|
+
}] } });
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zaWRlYmFyL3dvcmtzcGFjZS1tZW51L3dvcmtzcGFjZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2lkZWJhci93b3Jrc3BhY2UtbWVudS93b3Jrc3BhY2UtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUlaLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTckQsTUFBTSxPQUFPLHNCQUFzQjtJQW9CakMsWUFDVSxPQUFnQixFQUNoQixnQkFBa0M7UUFEbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckJuQyxlQUFVLEdBQXdCLEVBQUUsQ0FBQztRQUlyQyxXQUFNLEdBQXVCLElBQUksQ0FBQztRQUlqQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUN4RCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSXZDLGVBQVUsR0FBc0IsSUFBSSxDQUFDO1FBQ3JDLFdBQU0sR0FBd0IsSUFBSSxDQUFDO1FBQ25DLGdCQUFXLEdBQXdCLElBQUksQ0FBQztRQUN4QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQTJCaEMsY0FBUyxHQUFHLENBQUMsTUFBYyxFQUFFLElBQXVCLEVBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBdEIvRSxDQUFDO0lBRUosZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQUUsT0FBTztRQUN4RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFJRCxXQUFXLENBQUMsSUFBdUI7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLHdGQUF3RjtRQUN4Riw0RkFBNEY7UUFDNUYsMEVBQTBFO1FBQzFFLHlGQUF5RjtRQUN6RixnRUFBZ0U7UUFDaEUsTUFBTSxTQUFTLEdBQTZCO1lBQzFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFLLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDakcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtTQUNsRyxDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNsQyxRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ2hDLGFBQWEsQ0FBQyxTQUFTLENBQUM7YUFDeEIsc0JBQXNCLENBQUMsS0FBSyxDQUFDO2FBQzdCLGtCQUFrQixDQUFDLENBQUMsQ0FBQzthQUNyQixRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNwQyxnQkFBZ0I7WUFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1lBQzFELFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsVUFBVSxFQUFFLDBCQUEwQjtTQUN2QyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDL0UsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDSCxDQUFDOzttSEE1R1Usc0JBQXNCO3VHQUF0QixzQkFBc0IsOGRDdkJuQyw0K0VBaURBOzJGRDFCYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzZIQUtyQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFb0MsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VNZW51SXRlbSB9IGZyb20gJy4vd29ya3NwYWNlLW1lbnUubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXdvcmtzcGFjZS1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtzcGFjZS1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya3NwYWNlLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgd29ya3NwYWNlczogV29ya3NwYWNlTWVudUl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBjdXJyZW50V29ya3NwYWNlSWQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKiBOYW1lIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIHdvcmtzcGFjZSDigJQgaW50ZXJwb2xhdGVkIGludG8gdGhlIHBvcG92ZXIgaGVhZGluZy4gKi9cbiAgQElucHV0KCkgd29ya3NwYWNlTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgYW5jaG9yOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAvKiogT3B0aW9uYWwgaWQgb24gdGhlIHBvcG92ZXIgZWxlbWVudCDigJQgdXNlZnVsIGZvciBhcmlhLWxhYmVsbGVkYnkgd2lyaW5nLiAqL1xuICBASW5wdXQoKSBwb3BvdmVySWQ/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHdvcmtzcGFjZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBtYW5hZ2VXb3Jrc3BhY2VzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBkaXNtaXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgncG9wb3ZlclRwbCcsIHsgc3RhdGljOiB0cnVlIH0pIHBvcG92ZXJUcGwhOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBrZXlTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGJhY2tkcm9wU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB2aWV3SW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlld0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5hbmNob3IpIHtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXkoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpZXdJbml0aWFsaXplZCB8fCAhY2hhbmdlc1snYW5jaG9yJ10pIHJldHVybjtcbiAgICBpZiAodGhpcy5hbmNob3IpIHtcbiAgICAgIHRoaXMub3Blbk92ZXJsYXkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlT3ZlcmxheSgpO1xuICB9XG5cbiAgdHJhY2tCeVdzID0gKF9pbmRleDogbnVtYmVyLCBpdGVtOiBXb3Jrc3BhY2VNZW51SXRlbSk6IHN0cmluZyB8IG51bWJlciA9PiBpdGVtLmlkO1xuXG4gIG9uSXRlbUNsaWNrKGl0ZW06IFdvcmtzcGFjZU1lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy53b3Jrc3BhY2VTZWxlY3RlZC5lbWl0KGl0ZW0uaWQpO1xuICB9XG5cbiAgb25NYW5hZ2VDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZVdvcmtzcGFjZXNDbGljay5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5PdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hbmNob3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jbG9zZU92ZXJsYXkoKTtcblxuICAgIC8vIFBvcG92ZXIgZmxvYXRzIG91dCB0byB0aGUgcmlnaHQgb2YgdGhlIHdvcmtzcGFjZSBidXR0b24sIHRvcC1hbGlnbmVkIHdpdGggdGhlIGJ1dHRvbi5cbiAgICAvLyBCb3RoIHBvc2l0aW9uIHBhaXJzIHBpbiBvdmVybGF5WTogJ3RvcCcgc28gdGhlIHBvcG92ZXIgYWx3YXlzIGV4dGVuZHMgZG93bndhcmQgKG1pcnJvciBvZlxuICAgIC8vIHByb2ZpbGUtbWVudSwgd2hpY2ggYWx3YXlzIGV4dGVuZHMgdXB3YXJkIGZyb20gYSBib3R0b20tYW5jaG9yZWQgY2FyZCkuXG4gICAgLy8gYHdpdGhQdXNoKGZhbHNlKWAgaXMgY3JpdGljYWwg4oCUIG90aGVyd2lzZSBDREsgc2xpZGVzIHRoZSBvdmVybGF5IGJhY2sgb3ZlciB0aGUgc2lkZWJhclxuICAgIC8vIHdoZW4gaXRzIHZpZXdwb3J0IGNhbGN1bGF0aW9uIHRoaW5rcyB0aGUgcG9wb3ZlciBkb2Vzbid0IGZpdC5cbiAgICBjb25zdCBwb3NpdGlvbnM6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSA9IFtcbiAgICAgIHsgb3JpZ2luWDogJ2VuZCcsIG9yaWdpblk6ICd0b3AnLCAgICBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICd0b3AnLCBvZmZzZXRYOiAwLCBvZmZzZXRZOiAwIH0sXG4gICAgICB7IG9yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJywgb2Zmc2V0WDogMCwgb2Zmc2V0WTogNCB9LFxuICAgIF07XG5cbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5hbmNob3IpXG4gICAgICAud2l0aFBvc2l0aW9ucyhwb3NpdGlvbnMpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoVmlld3BvcnRNYXJnaW4oOClcbiAgICAgIC53aXRoUHVzaChmYWxzZSk7XG5cbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgcGFuZWxDbGFzczogJ2NxYS13b3Jrc3BhY2UtbWVudS1wYW5lbCcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5wb3BvdmVyVHBsLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuICAgIHRoaXMuYmFja2Ryb3BTdWIgPSB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmRpc21pc3NlZC5lbWl0KCkpO1xuICAgIHRoaXMua2V5U3ViID0gdGhpcy5vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKS5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRpc21pc3NlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tkcm9wU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuICAgIHRoaXMua2V5U3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMua2V5U3ViID0gbnVsbDtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjcG9wb3ZlclRwbD5cbiAgPGRpdiBjbGFzcz1cImNxYS13bVwiIFthdHRyLmlkXT1cInBvcG92ZXJJZFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsPVwiU3dpdGNoIHdvcmtzcGFjZVwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJjcWEtd20taGVhZGVyXCI+XG4gICAgICA8aDIgY2xhc3M9XCJjcWEtd20taGVhZGluZ1wiPldvcmtzcGFjZXMgaW4ge3sgd29ya3NwYWNlTmFtZSB9fTwvaDI+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8dWwgY2xhc3M9XCJjcWEtd20tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IHdzIG9mIHdvcmtzcGFjZXM7IHRyYWNrQnk6IHRyYWNrQnlXc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtd20taXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmNxYS13bS1pdGVtLS1hY3RpdmVdPVwid3MuaWQgPT09IGN1cnJlbnRXb3Jrc3BhY2VJZFwiXG4gICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ3cy5pZCA9PT0gY3VycmVudFdvcmtzcGFjZUlkXCJcbiAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2sod3MpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtd20tYXZhdGFyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwid3MuYXZhdGFyQ29sb3IgfHwgbnVsbFwiPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIndzLmxvZ29Vcmw7IGVsc2UgaW5pdGlhbHNUcGxcIiBjbGFzcz1cImNxYS13bS1sb2dvXCIgW3NyY109XCJ3cy5sb2dvVXJsXCIgW2FsdF09XCJ3cy5uYW1lXCIvPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbml0aWFsc1RwbD5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtd20taW5pdGlhbHNcIj57eyB3cy5pbml0aWFscyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXdtLXRleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXdtLW5hbWVcIiBbdGl0bGVdPVwid3MubmFtZVwiPnt7IHdzLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIndzLnN1YnRpdGxlXCIgY2xhc3M9XCJjcWEtd20tc3VidGl0bGVcIiBbdGl0bGVdPVwid3Muc3VidGl0bGVcIj57eyB3cy5zdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJ3cy5pZCA9PT0gY3VycmVudFdvcmtzcGFjZUlkXCIgY2xhc3M9XCJjcWEtd20tY2hlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS40XCJcbiAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCI+XG4gICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIzLDguNSA2LjUsMTIgMTMsNC41XCIvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cblxuICAgIDxkaXYgY2xhc3M9XCJjcWEtd20tZGl2aWRlclwiPjwvZGl2PlxuXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtd20tZm9vdGVyXCIgKGNsaWNrKT1cIm9uTWFuYWdlQ2xpY2soKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtd20tZm9vdGVyLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNVwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjJcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk0xMyA4YTUgNSAwIDAgMC0uMS0xbDEuNC0xLTEuNC0yLjQtMS43LjVhNSA1IDAgMCAwLTEuNy0xTDkgMUg3bC0uNSAxLjZhNSA1IDAgMCAwLTEuNyAxTDMuMSAzLjYgMS43IDZsMS40IDFBNSA1IDAgMCAwIDMgOGE1IDUgMCAwIDAgLjEgMWwtMS40IDFMMy4xIDEyLjRsMS43LS41YTUgNSAwIDAgMCAxLjcgMUw3IDE1aDJsLjUtMS42YTUgNSAwIDAgMCAxLjctMWwxLjcuNUwxNC4zIDEwIDEzIDlhNSA1IDAgMCAwIDAtMXpcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtd20tZm9vdGVyLWxhYmVsXCI+V29ya3NwYWNlIE1hbmFnZW1lbnQ8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLW1lbnUubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zaWRlYmFyL3dvcmtzcGFjZS1tZW51L3dvcmtzcGFjZS1tZW51Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VNZW51SXRlbSB7XG4gIGlkOiBzdHJpbmcgfCBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9uZS1saW5lIG1ldGEgdGV4dCBzaG93biB1bmRlciB0aGUgbmFtZSwgZS5nLiBcIldlYiDCtyAxMiBtZW1iZXJzXCIuIEZyZWUtZm9ybS4gKi9cbiAgc3VidGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBJbml0aWFscyBkcmF3biBpbnNpZGUgdGhlIGF2YXRhciB0aWxlIHdoZW4gbm8gbG9nbyBVUkwgaXMgcHJvdmlkZWQgKGUuZy4gXCJDUVwiKS4gKi9cbiAgaW5pdGlhbHM/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBsb2dvIGltYWdlIFVSTCBvciBkYXRhLVVSSS4gVGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBpbml0aWFsc2AuICovXG4gIGxvZ29Vcmw/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBDU1MgYmFja2dyb3VuZCBmb3IgdGhlIGF2YXRhciB0aWxlIChncmFkaWVudCBvciBzb2xpZCkuICovXG4gIGF2YXRhckNvbG9yPzogc3RyaW5nO1xufVxuIl19
|