@eui/showcase 17.2.3 → 17.2.4-snapshot-1710247219617
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/components/doc-sample/doc-sample.component.mjs +7 -5
- package/esm2022/lib/components/playground/playground.component.mjs +15 -6
- package/fesm2022/eui-showcase.mjs +20 -9
- package/fesm2022/eui-showcase.mjs.map +1 -1
- package/lib/components/doc-sample/doc-sample.component.d.ts +2 -0
- package/lib/components/doc-sample/doc-sample.component.d.ts.map +1 -1
- package/lib/components/playground/playground.component.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, ViewEncapsulation, HostBinding } from '@angular/core';
|
|
1
|
+
import { Component, Input, ViewEncapsulation, HostBinding, booleanAttribute, } from '@angular/core';
|
|
2
2
|
import { forkJoin, Observable } from 'rxjs';
|
|
3
3
|
import { map, catchError } from 'rxjs/operators';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -168,7 +168,7 @@ export class DocSampleComponent {
|
|
|
168
168
|
: [];
|
|
169
169
|
}
|
|
170
170
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DocSampleComponent, deps: [{ token: i1.HttpClient }, { token: i2.EuiAppShellService }, { token: i0.ChangeDetectorRef }, { token: i2.EuiGrowlService }, { token: i3.Clipboard }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
171
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
171
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.8", type: DocSampleComponent, selector: "eui-showcase-doc-sample", inputs: { id: "id", label: "label", styleClass: "styleClass", renderPlayground: ["renderPlayground", "renderPlayground", booleanAttribute], isCodeButtonVisible: ["isCodeButtonVisible", "isCodeButtonVisible", booleanAttribute] }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n *ngIf=\"isCodeButtonVisible\"\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [isLoading]=\"isCodeLoading\"\n [euiDisabled]=\"isCodeLoading\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab euiWarning [isVisible]=\"htmlContent && tsContent && renderPlayground\">\n <euiTabLabel>\n Playground\n <euiTabSubLabel>Stackblitz <eui-chip euiSizeS euiWarning>Experimental</eui-chip></euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <eui-playground\n [sampleId]=\"id\"\n [typescriptContent]=\"tsContent\"\n [htmlContent]=\"htmlContent\"\n [activated]=\"playground_activated\"></eui-playground>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-25)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);margin-top:var(--eui-base-spacing-xl);width:100%;font:normal normal 400 1.5rem/1.75rem var(--eui-base-font-family)}.eui-showcase-doc-sample .doc-sample-title__label:first-child{margin-top:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-3xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}.eui-showcase-doc-sample .doc-sample-section-title:first-child{margin-top:var(--eui-base-spacing-m)}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i6.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i8.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i8.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i8.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i8.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i8.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i9.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i10.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i11.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: i12.EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: i13.PlaygroundComponent, selector: "eui-playground", inputs: ["title", "htmlContent", "sampleId", "typescriptContent", "activated", "modules"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
172
172
|
}
|
|
173
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DocSampleComponent, decorators: [{
|
|
174
174
|
type: Component,
|
|
@@ -180,11 +180,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
180
180
|
}], styleClass: [{
|
|
181
181
|
type: Input
|
|
182
182
|
}], renderPlayground: [{
|
|
183
|
-
type: Input
|
|
183
|
+
type: Input,
|
|
184
|
+
args: [{ transform: booleanAttribute }]
|
|
184
185
|
}], isCodeButtonVisible: [{
|
|
185
|
-
type: Input
|
|
186
|
+
type: Input,
|
|
187
|
+
args: [{ transform: booleanAttribute }]
|
|
186
188
|
}], classes: [{
|
|
187
189
|
type: HostBinding,
|
|
188
190
|
args: ['class']
|
|
189
191
|
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXNhbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZG9jLXNhbXBsZS9kb2Mtc2FtcGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2Mtc2FtcGxlL2RvYy1zYW1wbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXVDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFZakQsTUFBTSxPQUFPLGtCQUFrQjtJQWlCM0IsWUFDWSxLQUFpQixFQUNqQixTQUE2QixFQUM3QixFQUFxQixFQUNyQixZQUE2QixFQUM3QixTQUFvQixFQUNwQixNQUFjO1FBTGQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBaUI7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEJqQixPQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUVkLFlBQU8sR0FBRyx5QkFBeUIsQ0FBQztRQUUxRCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLEtBQUss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SUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVsRSxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELDhEQUE4RDtJQUN0RCxPQUFPLENBQUMsS0FBb0I7UUFDaEMsT0FBTyxLQUFLO1lBQ1IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ1YsOERBQThEO1lBQzlELENBQUMsTUFBTSxFQUFFLElBQXVCLEVBQUUsRUFBRSxDQUFDO2dCQUMvQixHQUFHLE1BQU07Z0JBQ1Q7b0JBQ0ksRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO29CQUNYLHVCQUF1QixFQUFFLElBQUksQ0FBQyx1QkFBdUI7aUJBQ3hEO2dCQUNELEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ2pDLEVBQ0QsRUFBRSxDQUNMO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNiLENBQUM7aUlBL0tRLGtCQUFrQjtxSEFBbEIsa0JBQWtCLG9RQ2hCL0IsaWdHQTJFQTs7MkZEM0RhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSx5QkFBeUIsaUJBR3BCLGlCQUFpQixDQUFDLElBQUk7Mk5BRzVCLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVnQixPQUFPO3NCQUE1QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBBZnRlckNvbnRlbnRJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlLCBFdWlNZW51SXRlbSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLXRhYnMnO1xuaW1wb3J0IHsgRXVpR3Jvd2xTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXNob3djYXNlLWRvYy1zYW1wbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnZG9jLXNhbXBsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG9jLXNhbXBsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvY1NhbXBsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpIGlkID0gJyc7XG4gICAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gICAgQElucHV0KCkgcmVuZGVyUGxheWdyb3VuZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQ29kZUJ1dHRvblZpc2libGUgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzZXMgPSAnZXVpLXNob3djYXNlLWRvYy1zYW1wbGUnO1xuXG4gICAgaXNDb2RlTG9hZGVkID0gZmFsc2U7XG4gICAgaXNDb2RlTG9hZGluZyA9IGZhbHNlO1xuICAgIGlzQ29kZUV4cGFuZGVkID0gZmFsc2U7XG4gICAgcGxheWdyb3VuZF9hY3RpdmF0ZWQgPSBmYWxzZTtcblxuICAgIHRzQ29udGVudDtcbiAgICBodG1sQ29udGVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGFzU2VydmljZTogRXVpQXBwU2hlbGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBncm93bFNlcnZpY2U6IEV1aUdyb3dsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMuaWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29weUN1cnJlbnRVcmxUb0NsaXBib2FyZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlRG9tYWluID0gd2luZG93Py5sb2NhdGlvbj8ub3JpZ2luO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybC5zcGxpdCgnIycpO1xuICAgICAgICAgICAgY29uc3QgZnVsbFVybCA9IGJhc2VEb21haW4gKyBjdXJyZW50VXJsWzBdICsgJyMnICsgaWQ7XG4gICAgICAgICAgICB0aGlzLmNsaXBib2FyZC5jb3B5KGZ1bGxVcmwpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMuZ3Jvd2xTZXJ2aWNlLmdyb3dsKHsgc2V2ZXJpdHk6ICdkYW5nZXInLCBzdW1tYXJ5OiAnQ2xpcGJvYXJkIHNlcnZpY2Ugbm90IGF2YWlsYWJsZScgfSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5ncm93bCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdMaW5rIFVSTCBjb3BpZWQgdG8gY2xpcGJvYXJkJyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVG9nZ2xlQ29kZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2RlTG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ29kZUV4cGFuZGVkID0gIXRoaXMuaXNDb2RlRXhwYW5kZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNDb2RlTG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ29kZUxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgICAgICBjb25zdCBwYXRoTmFtZSA9IHVybC5wYXRobmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhOYW1lQXJyYXkgPSBwYXRoTmFtZS5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICBsZXQgc2FtcGxlUGF0aEFycmF5ID0gW107XG5cbiAgICAgICAgICAgIGNvbnN0IGNtcElkID0gcGF0aE5hbWVBcnJheVtwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgY29uc3QgY21wID0gdGhpcy5fZ2V0Q29tcG9uZW50KGNtcElkKTtcblxuICAgICAgICAgICAgaWYgKGNtcCAmJiBjbXAuYWx0ZXJuYXRlU2FtcGxlTG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICBzYW1wbGVQYXRoQXJyYXkgPSBjbXAuYWx0ZXJuYXRlU2FtcGxlTG9jYXRpb24uc3BsaXQoJy8nKS5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXRoTmFtZUFycmF5W2ldLmluZGV4T2YoJ2V1aS1zaG93Y2FzZS0nKSA+IC0xIHx8IHBhdGhOYW1lQXJyYXlbaV0uaW5kZXhPZignbG9jYWxob3N0JykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGhOYW1lQXJyYXlbaV0gIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVQYXRoQXJyYXkucHVzaChwYXRoTmFtZUFycmF5W2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coc2FtcGxlUGF0aEFycmF5KTtcblxuICAgICAgICAgICAgc2FtcGxlUGF0aEFycmF5ID0gc2FtcGxlUGF0aEFycmF5LnJldmVyc2UoKTtcbiAgICAgICAgICAgIHNhbXBsZVBhdGhBcnJheS5wdXNoKCdzYW1wbGVzJyk7XG4gICAgICAgICAgICBzYW1wbGVQYXRoQXJyYXkucHVzaCh0aGlzLmlkKTtcblxuICAgICAgICAgICAgY29uc3Qgc2FtcGxlc1BhdGggPSBgYXNzZXRzL3NhbXBsZXMvJHtzYW1wbGVQYXRoQXJyYXkuam9pbignLycpfWA7XG5cbiAgICAgICAgICAgIGZvcmtKb2luKHtcbiAgICAgICAgICAgICAgICB0eXBlc2NyaXB0OiB0aGlzLl9odHRwLmdldChgJHtzYW1wbGVzUGF0aH0vY29tcG9uZW50LnRzYCwge1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBodG1sOiB0aGlzLl9odHRwLmdldChgJHtzYW1wbGVzUGF0aH0vY29tcG9uZW50Lmh0bWxgLCB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZXM6IHsgdHlwZXNjcmlwdDogc3RyaW5nOyBodG1sOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvZGVMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvZGVFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHR5cGVzY3JpcHQ6IHJlc3BvbnNlcy50eXBlc2NyaXB0LCBodG1sOiByZXNwb25zZXMuaHRtbCB9O1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3dsU2VydmljZS5ncm93bEVycm9yKGBJc3N1ZSB3aGlsZSBmZXRjaGluZyA6ICR7ZXJyb3IudXJsfSA6ICR7ZXJyb3Iuc3RhdHVzfS0ke2Vycm9yLnN0YXR1c1RleHR9YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxSZXNwb25zZT4oKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8UmVzcG9uc2U+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2RlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZGVtbzogeyB0eXBlc2NyaXB0OiBzdHJpbmc7IGh0bWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHNDb250ZW50ID0gZGVtby50eXBlc2NyaXB0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmh0bWxDb250ZW50ID0gZGVtby5odG1sO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2RlRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBvbiBwbGF5Z3JvdW5kIHRhYiBzZWxlY3RlZCBpbmZvcm0gdGhlIHBsYXlncm91bmQgY29tcG9uZW50IHRoYXQgaXRzIGNvbnRlbnQgaXMgcmVuZGVyZWRcbiAgICAgKiBUT0RPOiBmaXggdGhlIGJ1ZyBvbiBldWktdGFiIGltcGxlbWVudGF0aW9uIHdoZXJlIHRoZSBuZ0FmdGVyVmlld0luaXQgaXMgY2FsbGVkIHdpdGhvdXQgdGhlIHZpZXcgYWN0dWFsbHlcbiAgICAgKiAgYmVpbmcgcmVuZGVyZWQgb24gc2NyZWVuLiBJc3N1ZSBpcyB0aGF0IGluaXRpYWxseSB0aGUgdmlldyBpcyBiZWluZyByZW5kZXJlZCBhbmQgdGhlbiByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICAgKiAgSW50ZXJuYWxseSBldWktdGFicyBpcyBtb3ZpbmcgdGhlIHByb2plY3RlZCBjb250ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNlbGVjdGVkIFRoZSBzZWxlY3RlZCB0YWIgY29tcG9uZW50IHJlZmVyZW5jZSBhbmQgaXRzIGluZGV4IGluIHRoZSB0YWJzIGFycmF5LlxuICAgICAqL1xuICAgIG9uU2VsZWN0ZWRUYWIoc2VsZWN0ZWQ6IHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLnBsYXlncm91bmRfYWN0aXZhdGVkID0gc2VsZWN0ZWQuaW5kZXggPT09IDI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZmlsdGVyIG91dCB0aGUgZXh0cmEgaW1wb3J0IGFuZCBtb2R1bGUgZnJvbSB0aGUgY29kZSBzYW1wbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb2RlXG4gICAgICovXG4gICAgZmlsdGVyT3V0TW9kdWxlQW5kSW1wb3J0cyhjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBmaWx0ZXIgb3V0IG1vZHVsZVxuICAgICAgICBjb25zdCBtb2R1bGVSZWdleCA9IC9ATmdNb2R1bGVcXCgoW1xcc1xcU10qPylcXClcXG5leHBvcnQgY2xhc3MgXFx3KyBcXHsoW1xcc1xcU10qPylcXH0vZztcbiAgICAgICAgY29kZSA9IGNvZGUucmVwbGFjZShtb2R1bGVSZWdleCwgJycpO1xuICAgICAgICAvLyBmaWx0ZXIgb3V0IGV4dHJhIGltcG9ydHNcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIGNvZGUgPSBjb2RlLnJlcGxhY2UoXCJpbXBvcnQgeyBFdWlBbGxNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMnO1xcblwiLCAnJyk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgICBjb2RlID0gY29kZS5yZXBsYWNlKFwiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcXG5cIiwgJycpO1xuICAgICAgICByZXR1cm4gY29kZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgX2dldENvbXBvbmVudChpZCk6IEV1aU1lbnVJdGVtIHwgYW55IHtcbiAgICAgICAgY29uc3QgZmxhdExpbmtzID0gdGhpcy5mbGF0dGVuKHRoaXMuYXNTZXJ2aWNlLnN0YXRlLnNpZGViYXJMaW5rcyk7XG5cbiAgICAgICAgcmV0dXJuIGZsYXRMaW5rcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKVswXTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgZmxhdHRlbihsaW5rczogRXVpTWVudUl0ZW1bXSk6IEV1aU1lbnVJdGVtW10gfCBhbnkge1xuICAgICAgICByZXR1cm4gbGlua3NcbiAgICAgICAgICAgID8gbGlua3MucmVkdWNlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgKHJlc3VsdCwgaXRlbTogRXVpTWVudUl0ZW0gfCBhbnkpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRlU2FtcGxlTG9jYXRpb246IGl0ZW0uYWx0ZXJuYXRlU2FtcGxlTG9jYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZsYXR0ZW4oaXRlbS5jaGlsZHJlbiksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogW107XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvYy1zYW1wbGUtdGl0bGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZG9jLXNhbXBsZS10aXRsZV9fbGFiZWxcIj5cbiAgICAgICAgPHN0cm9uZz57eyBsYWJlbCB9fTwvc3Ryb25nPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlDdXJyZW50VXJsVG9DbGlwYm9hcmQoaWQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZG9jLXNhbXBsZS10aXRsZV9fbGlua1wiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJsaW5rXCIgc2V0PVwib3V0bGluZVwiIHNpemU9XCJsXCIgZmlsbENvbG9yPVwiZ3JleS03NVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZG9jLXNhbXBsZS10aXRsZV9faXRlbXNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJpc0NvZGVCdXR0b25WaXNpYmxlXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICBbZXVpT3V0bGluZV09XCIhaXNDb2RlRXhwYW5kZWRcIlxuICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZUNvZGUoKVwiXG4gICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzQ29kZUxvYWRpbmdcIlxuICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cImlzQ29kZUxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzQ29kZUV4cGFuZGVkXCIgZXVpTGFiZWw+Q29kZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2RlRXhwYW5kZWRcIiBldWlMYWJlbD5IaWRlIENvZGU8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBldWlJY29uIGljb25DbGFzcz1cImV1aS1pY29uLWNvZGVcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc0NvZGVFeHBhbmRlZFwiPlxuICAgIDxldWktY2FyZCBldWlOb0NvbnRlbnRQYWRkaW5nPlxuICAgICAgICA8ZXVpLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDxldWktdGFicyAodGFiU2VsZWN0KT1cIm9uU2VsZWN0ZWRUYWIoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxldWktdGFiIFtpc1Zpc2libGVdPVwiaHRtbENvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgSFRNTFxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYlN1YkxhYmVsPkh5cGVyVGV4dCBNYXJrdXAgTGFuZ3VhZ2U8L2V1aVRhYlN1YkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcmU+PGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1tYXJrdXBcIiBldWlDb2RlPnt7aHRtbENvbnRlbnR9fTwvY29kZT48L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgIDwvZXVpLXRhYj5cbiAgICAgICAgICAgICAgICA8ZXVpLXRhYiBbaXNWaXNpYmxlXT1cInRzQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBUU1xuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aVRhYlN1YkxhYmVsPlR5cGVzY3JpcHQ8L2V1aVRhYlN1YkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcmU+PGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1qYXZhc2NyaXB0XCIgZXVpQ29kZT57e2ZpbHRlck91dE1vZHVsZUFuZEltcG9ydHModHNDb250ZW50KX19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuICAgICAgICAgICAgICAgIDxldWktdGFiIGV1aVdhcm5pbmcgW2lzVmlzaWJsZV09XCJodG1sQ29udGVudCAmJiB0c0NvbnRlbnQgJiYgcmVuZGVyUGxheWdyb3VuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBQbGF5Z3JvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiU3ViTGFiZWw+U3RhY2tibGl0eiA8ZXVpLWNoaXAgZXVpU2l6ZVMgZXVpV2FybmluZz5FeHBlcmltZW50YWw8L2V1aS1jaGlwPjwvZXVpVGFiU3ViTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1wbGF5Z3JvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NhbXBsZUlkXT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZXNjcmlwdENvbnRlbnRdPVwidHNDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHRtbENvbnRlbnRdPVwiaHRtbENvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmF0ZWRdPVwicGxheWdyb3VuZF9hY3RpdmF0ZWRcIj48L2V1aS1wbGF5Z3JvdW5kPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuICAgICAgICAgICAgPC9ldWktdGFicz5cbiAgICAgICAgPC9ldWktY2FyZC1jb250ZW50PlxuICAgIDwvZXVpLWNhcmQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXNhbXBsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZG9jLXNhbXBsZS9kb2Mtc2FtcGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2Mtc2FtcGxlL2RvYy1zYW1wbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBR0wsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBWWpELE1BQU0sT0FBTyxrQkFBa0I7SUFpQjNCLFlBQ1ksS0FBaUIsRUFDakIsU0FBNkIsRUFDN0IsRUFBcUIsRUFDckIsWUFBNkIsRUFDN0IsU0FBb0IsRUFDcEIsTUFBYztRQUxkLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDN0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXRCakIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2UscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUU3QyxZQUFPLEdBQUcseUJBQXlCLENBQUM7UUFFMUQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsa0JB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ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlLCBFdWlNZW51SXRlbSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLXRhYnMnO1xuaW1wb3J0IHsgRXVpR3Jvd2xTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXNob3djYXNlLWRvYy1zYW1wbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnZG9jLXNhbXBsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZG9jLXNhbXBsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvY1NhbXBsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpIGlkID0gJyc7XG4gICAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlbmRlclBsYXlncm91bmQgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNDb2RlQnV0dG9uVmlzaWJsZSA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NlcyA9ICdldWktc2hvd2Nhc2UtZG9jLXNhbXBsZSc7XG5cbiAgICBpc0NvZGVMb2FkZWQgPSBmYWxzZTtcbiAgICBpc0NvZGVMb2FkaW5nID0gZmFsc2U7XG4gICAgaXNDb2RlRXhwYW5kZWQgPSBmYWxzZTtcbiAgICBwbGF5Z3JvdW5kX2FjdGl2YXRlZCA9IGZhbHNlO1xuXG4gICAgdHNDb250ZW50O1xuICAgIGh0bWxDb250ZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgYXNTZXJ2aWNlOiBFdWlBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGdyb3dsU2VydmljZTogRXVpR3Jvd2xTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNsaXBib2FyZDogQ2xpcGJvYXJkLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsID0gdGhpcy5pZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5Q3VycmVudFVybFRvQ2xpcGJvYXJkKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2VEb21haW4gPSB3aW5kb3c/LmxvY2F0aW9uPy5vcmlnaW47XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJyk7XG4gICAgICAgICAgICBjb25zdCBmdWxsVXJsID0gYmFzZURvbWFpbiArIGN1cnJlbnRVcmxbMF0gKyAnIycgKyBpZDtcbiAgICAgICAgICAgIHRoaXMuY2xpcGJvYXJkLmNvcHkoZnVsbFVybCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5ncm93bFNlcnZpY2UuZ3Jvd2woeyBzZXZlcml0eTogJ2RhbmdlcicsIHN1bW1hcnk6ICdDbGlwYm9hcmQgc2VydmljZSBub3QgYXZhaWxhYmxlJyB9KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuZ3Jvd2xTZXJ2aWNlLmdyb3dsKHsgc2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogJ0xpbmsgVVJMIGNvcGllZCB0byBjbGlwYm9hcmQnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVDb2RlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0NvZGVMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDb2RlRXhwYW5kZWQgPSAhdGhpcy5pc0NvZGVFeHBhbmRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc0NvZGVMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNDb2RlTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhOYW1lID0gdXJsLnBhdGhuYW1lO1xuICAgICAgICAgICAgY29uc3QgcGF0aE5hbWVBcnJheSA9IHBhdGhOYW1lLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIGxldCBzYW1wbGVQYXRoQXJyYXkgPSBbXTtcblxuICAgICAgICAgICAgY29uc3QgY21wSWQgPSBwYXRoTmFtZUFycmF5W3BhdGhOYW1lQXJyYXkubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBjbXAgPSB0aGlzLl9nZXRDb21wb25lbnQoY21wSWQpO1xuXG4gICAgICAgICAgICBpZiAoY21wICYmIGNtcC5hbHRlcm5hdGVTYW1wbGVMb2NhdGlvbikge1xuICAgICAgICAgICAgICAgIHNhbXBsZVBhdGhBcnJheSA9IGNtcC5hbHRlcm5hdGVTYW1wbGVMb2NhdGlvbi5zcGxpdCgnLycpLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IHBhdGhOYW1lQXJyYXkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGhOYW1lQXJyYXlbaV0uaW5kZXhPZignZXVpLXNob3djYXNlLScpID4gLTEgfHwgcGF0aE5hbWVBcnJheVtpXS5pbmRleE9mKCdsb2NhbGhvc3QnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocGF0aE5hbWVBcnJheVtpXSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZVBhdGhBcnJheS5wdXNoKHBhdGhOYW1lQXJyYXlbaV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhzYW1wbGVQYXRoQXJyYXkpO1xuXG4gICAgICAgICAgICBzYW1wbGVQYXRoQXJyYXkgPSBzYW1wbGVQYXRoQXJyYXkucmV2ZXJzZSgpO1xuICAgICAgICAgICAgc2FtcGxlUGF0aEFycmF5LnB1c2goJ3NhbXBsZXMnKTtcbiAgICAgICAgICAgIHNhbXBsZVBhdGhBcnJheS5wdXNoKHRoaXMuaWQpO1xuXG4gICAgICAgICAgICBjb25zdCBzYW1wbGVzUGF0aCA9IGBhc3NldHMvc2FtcGxlcy8ke3NhbXBsZVBhdGhBcnJheS5qb2luKCcvJyl9YDtcblxuICAgICAgICAgICAgZm9ya0pvaW4oe1xuICAgICAgICAgICAgICAgIHR5cGVzY3JpcHQ6IHRoaXMuX2h0dHAuZ2V0KGAke3NhbXBsZXNQYXRofS9jb21wb25lbnQudHNgLCB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGh0bWw6IHRoaXMuX2h0dHAuZ2V0KGAke3NhbXBsZXNQYXRofS9jb21wb25lbnQuaHRtbGAsIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlczogeyB0eXBlc2NyaXB0OiBzdHJpbmc7IGh0bWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZUV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2RlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdHlwZXNjcmlwdDogcmVzcG9uc2VzLnR5cGVzY3JpcHQsIGh0bWw6IHJlc3BvbnNlcy5odG1sIH07XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xTZXJ2aWNlLmdyb3dsRXJyb3IoYElzc3VlIHdoaWxlIGZldGNoaW5nIDogJHtlcnJvci51cmx9IDogJHtlcnJvci5zdGF0dXN9LSR7ZXJyb3Iuc3RhdHVzVGV4dH1gKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFJlc3BvbnNlPigoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxSZXNwb25zZT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvZGVMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChkZW1vOiB7IHR5cGVzY3JpcHQ6IHN0cmluZzsgaHRtbDogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50c0NvbnRlbnQgPSBkZW1vLnR5cGVzY3JpcHQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaHRtbENvbnRlbnQgPSBkZW1vLmh0bWw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2RlTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvZGVFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2RlTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG9uIHBsYXlncm91bmQgdGFiIHNlbGVjdGVkIGluZm9ybSB0aGUgcGxheWdyb3VuZCBjb21wb25lbnQgdGhhdCBpdHMgY29udGVudCBpcyByZW5kZXJlZFxuICAgICAqIFRPRE86IGZpeCB0aGUgYnVnIG9uIGV1aS10YWIgaW1wbGVtZW50YXRpb24gd2hlcmUgdGhlIG5nQWZ0ZXJWaWV3SW5pdCBpcyBjYWxsZWQgd2l0aG91dCB0aGUgdmlldyBhY3R1YWxseVxuICAgICAqICBiZWluZyByZW5kZXJlZCBvbiBzY3JlZW4uIElzc3VlIGlzIHRoYXQgaW5pdGlhbGx5IHRoZSB2aWV3IGlzIGJlaW5nIHJlbmRlcmVkIGFuZCB0aGVuIHJlbW92ZWQgZnJvbSB0aGUgRE9NLlxuICAgICAqICBJbnRlcm5hbGx5IGV1aS10YWJzIGlzIG1vdmluZyB0aGUgcHJvamVjdGVkIGNvbnRlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWQgVGhlIHNlbGVjdGVkIHRhYiBjb21wb25lbnQgcmVmZXJlbmNlIGFuZCBpdHMgaW5kZXggaW4gdGhlIHRhYnMgYXJyYXkuXG4gICAgICovXG4gICAgb25TZWxlY3RlZFRhYihzZWxlY3RlZDogeyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxheWdyb3VuZF9hY3RpdmF0ZWQgPSBzZWxlY3RlZC5pbmRleCA9PT0gMjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmaWx0ZXIgb3V0IHRoZSBleHRyYSBpbXBvcnQgYW5kIG1vZHVsZSBmcm9tIHRoZSBjb2RlIHNhbXBsZVxuICAgICAqXG4gICAgICogQHBhcmFtIGNvZGVcbiAgICAgKi9cbiAgICBmaWx0ZXJPdXRNb2R1bGVBbmRJbXBvcnRzKGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIGZpbHRlciBvdXQgbW9kdWxlXG4gICAgICAgIGNvbnN0IG1vZHVsZVJlZ2V4ID0gL0BOZ01vZHVsZVxcKChbXFxzXFxTXSo/KVxcKVxcbmV4cG9ydCBjbGFzcyBcXHcrIFxceyhbXFxzXFxTXSo/KVxcfS9nO1xuICAgICAgICBjb2RlID0gY29kZS5yZXBsYWNlKG1vZHVsZVJlZ2V4LCAnJyk7XG4gICAgICAgIC8vIGZpbHRlciBvdXQgZXh0cmEgaW1wb3J0c1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgY29kZSA9IGNvZGUucmVwbGFjZShcImltcG9ydCB7IEV1aUFsbE1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cyc7XFxuXCIsICcnKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIGNvZGUgPSBjb2RlLnJlcGxhY2UoXCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xcblwiLCAnJyk7XG4gICAgICAgIHJldHVybiBjb2RlO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBfZ2V0Q29tcG9uZW50KGlkKTogRXVpTWVudUl0ZW0gfCBhbnkge1xuICAgICAgICBjb25zdCBmbGF0TGlua3MgPSB0aGlzLmZsYXR0ZW4odGhpcy5hc1NlcnZpY2Uuc3RhdGUuc2lkZWJhckxpbmtzKTtcblxuICAgICAgICByZXR1cm4gZmxhdExpbmtzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpWzBdO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBmbGF0dGVuKGxpbmtzOiBFdWlNZW51SXRlbVtdKTogRXVpTWVudUl0ZW1bXSB8IGFueSB7XG4gICAgICAgIHJldHVybiBsaW5rc1xuICAgICAgICAgICAgPyBsaW5rcy5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAocmVzdWx0LCBpdGVtOiBFdWlNZW51SXRlbSB8IGFueSkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVTYW1wbGVMb2NhdGlvbjogaXRlbS5hbHRlcm5hdGVTYW1wbGVMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmxhdHRlbihpdGVtLmNoaWxkcmVuKSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBbXTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZG9jLXNhbXBsZS10aXRsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkb2Mtc2FtcGxlLXRpdGxlX19sYWJlbFwiPlxuICAgICAgICA8c3Ryb25nPnt7IGxhYmVsIH19PC9zdHJvbmc+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgIGV1aVNpemVTXG4gICAgICAgICAgICAoY2xpY2spPVwiY29weUN1cnJlbnRVcmxUb0NsaXBib2FyZChpZClcIlxuICAgICAgICAgICAgY2xhc3M9XCJkb2Mtc2FtcGxlLXRpdGxlX19saW5rXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImxpbmtcIiBzZXQ9XCJvdXRsaW5lXCIgc2l6ZT1cImxcIiBmaWxsQ29sb3I9XCJncmV5LTc1XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkb2Mtc2FtcGxlLXRpdGxlX19pdGVtc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImlzQ29kZUJ1dHRvblZpc2libGVcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIFtldWlPdXRsaW5lXT1cIiFpc0NvZGVFeHBhbmRlZFwiXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlQ29kZSgpXCJcbiAgICAgICAgICAgIFtpc0xvYWRpbmddPVwiaXNDb2RlTG9hZGluZ1wiXG4gICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwiaXNDb2RlTG9hZGluZ1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNDb2RlRXhwYW5kZWRcIiBldWlMYWJlbD5Db2RlPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc0NvZGVFeHBhbmRlZFwiIGV1aUxhYmVsPkhpZGUgQ29kZTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGV1aUljb24gaWNvbkNsYXNzPVwiZXVpLWljb24tY29kZVwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzQ29kZUV4cGFuZGVkXCI+XG4gICAgPGV1aS1jYXJkIGV1aU5vQ29udGVudFBhZGRpbmc+XG4gICAgICAgIDxldWktY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGV1aS10YWJzICh0YWJTZWxlY3QpPVwib25TZWxlY3RlZFRhYigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGV1aS10YWIgW2lzVmlzaWJsZV09XCJodG1sQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBIVE1MXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiU3ViTGFiZWw+SHlwZXJUZXh0IE1hcmt1cCBMYW5ndWFnZTwvZXVpVGFiU3ViTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByZT48Y29kZSBjbGFzcz1cImxhbmd1YWdlLW1hcmt1cFwiIGV1aUNvZGU+e3todG1sQ29udGVudH19PC9jb2RlPjwvcHJlPlxuICAgICAgICAgICAgICAgICAgICA8L2V1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9ldWktdGFiPlxuICAgICAgICAgICAgICAgIDxldWktdGFiIFtpc1Zpc2libGVdPVwidHNDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRTXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpVGFiU3ViTGFiZWw+VHlwZXNjcmlwdDwvZXVpVGFiU3ViTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxldWlUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByZT48Y29kZSBjbGFzcz1cImxhbmd1YWdlLWphdmFzY3JpcHRcIiBldWlDb2RlPnt7ZmlsdGVyT3V0TW9kdWxlQW5kSW1wb3J0cyh0c0NvbnRlbnQpfX08L2NvZGU+PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG4gICAgICAgICAgICAgICAgPGV1aS10YWIgZXVpV2FybmluZyBbaXNWaXNpYmxlXT1cImh0bWxDb250ZW50ICYmIHRzQ29udGVudCAmJiByZW5kZXJQbGF5Z3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYXlncm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWlUYWJTdWJMYWJlbD5TdGFja2JsaXR6IDxldWktY2hpcCBldWlTaXplUyBldWlXYXJuaW5nPkV4cGVyaW1lbnRhbDwvZXVpLWNoaXA+PC9ldWlUYWJTdWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9ldWlUYWJMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGV1aVRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLXBsYXlncm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2FtcGxlSWRdPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlc2NyaXB0Q29udGVudF09XCJ0c0NvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtodG1sQ29udGVudF09XCJodG1sQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2YXRlZF09XCJwbGF5Z3JvdW5kX2FjdGl2YXRlZFwiPjwvZXVpLXBsYXlncm91bmQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZXVpVGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICA8L2V1aS10YWI+XG4gICAgICAgICAgICA8L2V1aS10YWJzPlxuICAgICAgICA8L2V1aS1jYXJkLWNvbnRlbnQ+XG4gICAgPC9ldWktY2FyZD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -62,6 +62,7 @@ export class PlaygroundComponent {
|
|
|
62
62
|
};
|
|
63
63
|
return sdk.embedProject(`stackblitz-${this.sampleId}`, project, {
|
|
64
64
|
height: 500,
|
|
65
|
+
openFile: 'src/component.ts',
|
|
65
66
|
});
|
|
66
67
|
})
|
|
67
68
|
.then((instance) => {
|
|
@@ -152,11 +153,14 @@ export class PlaygroundComponent {
|
|
|
152
153
|
* @private
|
|
153
154
|
*/
|
|
154
155
|
extractComponentMetadata(contents) {
|
|
155
|
-
const
|
|
156
|
-
const
|
|
156
|
+
const selectorRegex = /selector: ('(?<singleQuotedSelector>[\w\d-]+)'|"(?<doubleQuotedSelector>[\w\d-]+)")/;
|
|
157
|
+
const classRegex = /export class ([\w\d]+)/;
|
|
158
|
+
const className = contents.match(classRegex);
|
|
159
|
+
const selectorName = contents.match(selectorRegex);
|
|
160
|
+
const found = selectorName?.groups?.singleQuotedSelector || selectorName?.groups?.doubleQuotedSelector;
|
|
157
161
|
return {
|
|
158
162
|
className: className ? className[1] : '',
|
|
159
|
-
selector:
|
|
163
|
+
selector: found || '',
|
|
160
164
|
};
|
|
161
165
|
}
|
|
162
166
|
/**
|
|
@@ -182,9 +186,14 @@ export class PlaygroundComponent {
|
|
|
182
186
|
appendVitalNgModules(contents) {
|
|
183
187
|
// const imports = contents.match(/imports: \[([\s\S]*?)\]/);
|
|
184
188
|
// appends BrowserModule to imports
|
|
185
|
-
contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [
|
|
189
|
+
contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [\n\t\tBrowserModule, $1]');
|
|
186
190
|
// appends import of BrowserModule
|
|
187
|
-
|
|
191
|
+
contents = `import { BrowserModule } from '@angular/platform-browser';\n${contents}`;
|
|
192
|
+
// appends BrowserAnimationsModule to imports
|
|
193
|
+
contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [\n\t\tBrowserAnimationsModule, $1]');
|
|
194
|
+
// appends import of BrowserAnimationsModule
|
|
195
|
+
contents = `import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n${contents}`;
|
|
196
|
+
return contents;
|
|
188
197
|
}
|
|
189
198
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PlaygroundComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.EuiAppShellService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
190
199
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: PlaygroundComponent, selector: "eui-playground", inputs: { title: "title", htmlContent: "htmlContent", sampleId: "sampleId", typescriptContent: "typescriptContent", activated: "activated", modules: "modules" }, viewQueries: [{ propertyName: "stackblitzElWrapper", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<eui-block-content [isBlocked]=\"!isLoaded\">\n <iframe #container id=\"stackblitz-{{sampleId}}\"></iframe>\n</eui-block-content>\n", dependencies: [{ kind: "component", type: i3.EuiBlockContentComponent, selector: "eui-block-content", inputs: ["role", "ariaLabel", "isBlocked"] }] }); }
|
|
@@ -208,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
208
217
|
type: ViewChild,
|
|
209
218
|
args: ['container', { read: ElementRef, static: true }]
|
|
210
219
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wbGF5Z3JvdW5kL3BsYXlncm91bmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxHQUF5QyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTXJILE1BQU0sT0FBTyxtQkFBbUI7SUFtQjVCLFlBQ1ksUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsUUFBNEIsRUFDNUIsSUFBZ0I7UUFIaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQVk7UUFyQnJCLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQVF6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFXckIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO1NBQ0o7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMseUJBQXlCLEVBQUU7YUFDM0IsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztZQUMvQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDeEUsTUFBTSxPQUFPLEdBQVk7Z0JBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLDBCQUEwQixJQUFJLENBQUMsS0FBSyxHQUFHO2dCQUNwRCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsS0FBSyxFQUFFO29CQUNILG9CQUFvQixFQUFFLElBQUksQ0FBQyxXQUFXO29CQUN0QyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUNyRSw0REFBNEQ7b0JBQzVELGFBQWEsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztvQkFDbEQsa0JBQWtCLEVBQUUsYUFBYTtvQkFDakMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQztvQkFDekMsY0FBYyxFQUFFLGVBQWU7b0JBQy9CLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUMxQjt3QkFDSSxHQUFHLFlBQVk7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3FCQUNsQixFQUNELElBQUksRUFDSixDQUFDLENBQ0o7b0JBQ0QsZUFBZSxFQUFFLFFBQVE7aUJBQzVCO2dCQUNELFFBQVEsRUFBRTtvQkFDTixPQUFPLEVBQUU7d0JBQ0wsT0FBTyxFQUFFLE1BQU07d0JBQ2YsWUFBWSxFQUFFLEtBQUs7cUJBQ3RCO2lCQUNKO2dCQUNELFlBQVk7YUFDZixDQUFDO1lBRUYsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUNuQixjQUFjLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDN0IsT0FBTyxFQUNQO2dCQUNJLE1BQU0sRUFBRSxHQUFHO2FBQ2QsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBWSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7OztPQUlHO0lBQ0sseUJBQXlCO1FBSTdCLCtDQUErQztRQUMvQyxNQUFNLHNCQUFzQixHQUFHO1lBQzNCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixrQ0FBa0M7WUFDbEMsMkJBQTJCO1lBQzNCLG1DQUFtQztZQUNuQyxpQkFBaUI7WUFDakIsV0FBVztZQUNYLGlCQUFpQjtZQUNqQixXQUFXO1lBQ1gsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsYUFBYTtZQUNiLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IsV0FBVztZQUNYLFVBQVU7WUFDVixNQUFNO1lBQ04sT0FBTztZQUNQLFNBQVM7U0FDWixDQUFDO1FBRUYsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLCtCQUErQixFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUUzSCxPQUFPLElBQUksQ0FBQyw0QkFBNEIsRUFBRTthQUNyQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RCxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUNuQixvREFBb0Q7WUFDcEQsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0csTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRCxNQUFNLGlCQUFpQixHQUFHO2dCQUN0QixJQUFJLEVBQUUsT0FBTztnQkFDYixxQkFBcUIsRUFBRSxPQUFPO2dCQUM5QixZQUFZLEVBQUUsUUFBUTtnQkFDdEIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFdBQVcsRUFBRSxRQUFRO2dCQUNyQixNQUFNLEVBQUUsU0FBUztnQkFDakIsTUFBTSxFQUFFLFFBQVE7YUFDbkIsQ0FBQztZQUNGLHVEQUF1RDtZQUN2RCxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUcsWUFBWSxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQ3hELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLDJCQUEyQixDQUFDLE9BQU87UUFDdkMsT0FBTyxLQUFLLENBQUMsb0NBQW9DLE9BQU8sZUFBZSxDQUFDO2FBQ25FLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ25DLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssNEJBQTRCO1FBQ2hDLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QiwwQkFBMEIsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNsSCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsSUFBSSxRQUFRLENBQ3ZDLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyx3QkFBd0IsQ0FBQyxRQUFnQjtRQUk3QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELE9BQU87WUFDSCxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ2hELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN0QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDL0QsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLG9CQUFvQixDQUFDLFFBQWdCO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNqRSxPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFFBQWdCO1FBQ3pDLDZEQUE2RDtRQUM3RCxtQ0FBbUM7UUFDbkMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztRQUN2RixrQ0FBa0M7UUFDbEMsT0FBTywrREFBK0QsUUFBUSxFQUFFLENBQUM7SUFDckYsQ0FBQztpSUE5TlEsbUJBQW1CO3FIQUFuQixtQkFBbUIscVRBY0ksVUFBVSxnRUN6QjlDLHdJQUdBOzsyRkRRYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0ksZ0JBQWdCO2lLQUtuQixLQUFLO3NCQURYLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUdDLFNBQVM7c0JBRGYsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUUsbUJBQW1CO3NCQUQxQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV1aUFwcFNoZWxsU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHNkaywgeyBQcm9qZWN0LCBQcm9qZWN0RGVwZW5kZW5jaWVzLCBWTSB9IGZyb20gJ0BzdGFja2JsaXR6L3Nkayc7XG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBhbmd1bGFySnNvbkZpbGUsIGluZGV4SHRtbEZpbGUsIG1haW5GaWxlLCBQQUNLQUdFX0pTT04sIHBvbHlmaWxsc0ZpbGUsIHRzQ29uZmlnIH0gZnJvbSAnLi9zdGFja2JsaXR6LmZpbGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktcGxheWdyb3VuZCcsXG4gICAgdGVtcGxhdGVVcmw6ICdwbGF5Z3JvdW5kLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUGxheWdyb3VuZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGl0bGUgPSAnZVVJIFBsYXlncm91bmQnO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGh0bWxDb250ZW50OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2FtcGxlSWQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlc2NyaXB0Q29udGVudDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjdGl2YXRlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1vZHVsZXM6IFt7IG5hbWU6IHN0cmluZzsgcGF0aDogc3RyaW5nIH1dO1xuICAgIHB1YmxpYyBpc0xvYWRlZCA9IGZhbHNlO1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSBzdGFja2JsaXR6RWxXcmFwcGVyOiBFbGVtZW50UmVmPEhUTUxJRnJhbWVFbGVtZW50PjtcbiAgICAvKiogaW5zdGFuY2UgdGhhdCBob2xkcyB0aGUgc3RhY2tibGl0eiBWTSBvYmplY3QgKi9cbiAgICBwcml2YXRlIHN0YWNrYmxpdHpJbnN0YW5jZTogVk07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgYXBwU2hlbGw6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICkge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuYWN0aXZhdGVkKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5hY3RpdmF0ZWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0U3RhY2tibGl0eigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTdGFja2JsaXR6KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdldFN0YWNrYmxpdHpEZXBlbmRlbmNpZXMoKVxuICAgICAgICAgICAgLnRoZW4oKGRlcHMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGRlcGVuZGVuY2llcywgZGV2RGVwZW5kZW5jaWVzIH0gPSBkZXBzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2VsZWN0b3IgfSA9IHRoaXMuZXh0cmFjdENvbXBvbmVudE1ldGFkYXRhKHRoaXMudHlwZXNjcmlwdENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSB0aGlzLmV4dHJhY3RNb2R1bGVOYW1lKHRoaXMudHlwZXNjcmlwdENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSB0aGlzLmV4dHJhY3RDb21wb25lbnROYW1lKHRoaXMudHlwZXNjcmlwdENvbnRlbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb2plY3Q6IFByb2plY3QgPSB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYEFuIGVVSSBleGFtcGxlIGZvciB0aGUgJHt0aGlzLnRpdGxlfS5gLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogJ2FuZ3VsYXItY2xpJyxcbiAgICAgICAgICAgICAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcmMvY29tcG9uZW50Lmh0bWwnOiB0aGlzLmh0bWxDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy9jb21wb25lbnQudHMnOiB0aGlzLmFwcGVuZFZpdGFsTmdNb2R1bGVzKHRoaXMudHlwZXNjcmlwdENvbnRlbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gJ3NyYy9hcHAubW9kdWxlLnRzJzogbW9kdWxlRmlsZShjbGFzc05hbWUsIHRoaXMubW9kdWxlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3JjL21haW4udHMnOiBtYWluRmlsZShtb2R1bGVOYW1lLCBjb21wb25lbnROYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcmMvcG9seWZpbGxzLnRzJzogcG9seWZpbGxzRmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcmMvaW5kZXguaHRtbCc6IGluZGV4SHRtbEZpbGUoc2VsZWN0b3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZ3VsYXIuanNvbic6IGFuZ3VsYXJKc29uRmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwYWNrYWdlLmpzb24nOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLlBBQ0tBR0VfSlNPTixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RzY29uZmlnLmpzb24nOiB0c0NvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJDb25zb2xlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNkay5lbWJlZFByb2plY3QoXG4gICAgICAgICAgICAgICAgICAgIGBzdGFja2JsaXR6LSR7dGhpcy5zYW1wbGVJZH1gLFxuICAgICAgICAgICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwMCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChpbnN0YW5jZTogVk0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrYmxpdHpJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgb25seSB0aGUgZGVwZW5kZW5jaWVzIHRoYXQgc3RhY2tibGl0eiB3aWxsIG5lZWQgZmlsdGVyZWQgZnJvbSBAZXVpL2RlcHMtYmFzZVxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFN0YWNrYmxpdHpEZXBlbmRlbmNpZXMoKTogUHJvbWlzZTx7XG4gICAgICAgIGRlcGVuZGVuY2llczogUHJvamVjdERlcGVuZGVuY2llcztcbiAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiBQcm9qZWN0RGVwZW5kZW5jaWVzO1xuICAgIH0+IHtcbiAgICAgICAgLy8gYSBsaXN0IG9mIGRlcGVuZGVuY2llcyBvbmx5IHN0YWNrYmxpdHogbmVlZHNcbiAgICAgICAgY29uc3Qgc3RhY2tibGl0ekRlcGVuZGVuY2llcyA9IFtcbiAgICAgICAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJyxcbiAgICAgICAgICAgICdAYW5ndWxhci9jZGsnLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2NvbW1vbicsXG4gICAgICAgICAgICAnQGFuZ3VsYXIvY29tcGlsZXInLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2NvcmUnLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2Zvcm1zJyxcbiAgICAgICAgICAgICdAYW5ndWxhci9tYXRlcmlhbCcsXG4gICAgICAgICAgICAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYycsXG4gICAgICAgICAgICAnQGFuZ3VsYXIvcm91dGVyJyxcbiAgICAgICAgICAgICdAZXVpL2Jhc2UnLFxuICAgICAgICAgICAgJ0BldWkvY29tcG9uZW50cycsXG4gICAgICAgICAgICAnQGV1aS9jb3JlJyxcbiAgICAgICAgICAgICdAZXVpL3N0eWxlcycsXG4gICAgICAgICAgICAnQGV1aS9zdHlsZXMtYmFzZScsXG4gICAgICAgICAgICAnQG5ncngvZWZmZWN0cycsXG4gICAgICAgICAgICAnQG5ncngvc3RvcmUnLFxuICAgICAgICAgICAgJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnLFxuICAgICAgICAgICAgJ2xvY2FsZm9yYWdlJyxcbiAgICAgICAgICAgICdsb2Rhc2gtZXMnLFxuICAgICAgICAgICAgJ3Jlc2VsZWN0JyxcbiAgICAgICAgICAgICdyeGpzJyxcbiAgICAgICAgICAgICd0c2xpYicsXG4gICAgICAgICAgICAnem9uZS5qcycsXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3Qgc3RhY2tibGl0ekRldkRlcGVuZGVuY2llcyA9IFsnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXInLCAnQGFuZ3VsYXIvY2xpJywgJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaScsICd0eXBlc2NyaXB0J107XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudFNob3djYXNlRXVpVmVyc2lvbigpXG4gICAgICAgICAgICAudGhlbigodmVyc2lvbikgPT4gdGhpcy5yZXRyaWV2ZVBhY2thZ2VEZXBlbmRlbmNpZXModmVyc2lvbikpXG4gICAgICAgICAgICAudGhlbigoZGVwZW5kZW5jaWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIGRlcGVuZGVuY2llcyB0byBvbmx5IHdoYXQgc3RhY2tibGl0eiBuZWVkc1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZEFyciA9IE9iamVjdC5lbnRyaWVzKGRlcGVuZGVuY2llcykuZmlsdGVyKCh2KSA9PiBzdGFja2JsaXR6RGVwZW5kZW5jaWVzLmZpbmQoKHMpID0+IHMgPT09IHZbMF0pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZE9iaiA9IE9iamVjdC5mcm9tRW50cmllcyhmaWx0ZXJlZEFycik7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmFEZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHV1aWQ6ICc4LjMuMicsXG4gICAgICAgICAgICAgICAgICAgICduZ3gtZGV2aWNlLWRldGVjdG9yJzogJzMuMC4wJyxcbiAgICAgICAgICAgICAgICAgICAgJ25neC1tb21lbnQnOiAnfjYuMC4wJyxcbiAgICAgICAgICAgICAgICAgICAgJ25neC1tYXNrJzogJ14xNC4wLjAnLFxuICAgICAgICAgICAgICAgICAgICAnY2xlYXZlLmpzJzogJ14xLjYuMCcsXG4gICAgICAgICAgICAgICAgICAgIG1vbWVudDogJ14yLjE5LjMnLFxuICAgICAgICAgICAgICAgICAgICBleHRlbmQ6ICdeMy4wLjInLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIGRldkRlcGVuZGVuY2llcyB0byBvbmx5IHdoYXQgc3RhY2tibGl0eiBuZWVkc1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkQXJyID0gT2JqZWN0LmVudHJpZXMoZGVwZW5kZW5jaWVzKS5maWx0ZXIoKHYpID0+IHN0YWNrYmxpdHpEZXZEZXBlbmRlbmNpZXMuZmluZCgocykgPT4gcyA9PT0gdlswXSkpO1xuICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llcyA9IHsgLi4uZXh0cmFEZXBlbmRlbmNpZXMsIC4uLmZpbHRlcmVkT2JqIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZGV2RGVwZW5kZW5jaWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkQXJyKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRlcGVuZGVuY2llcywgZGV2RGVwZW5kZW5jaWVzIH07XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZSB0aGUgZGVwZW5kZW5jaWVzIGZyb20gdGhlIHBhY2thZ2UuanNvbiBmaWxlIG9mIEBldWkvZGVwcy1iYXNlIGZvciB0aGUgZ2l2ZW4gdmVyc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2ZXJzaW9uXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJldHJpZXZlUGFja2FnZURlcGVuZGVuY2llcyh2ZXJzaW9uKTogUHJvbWlzZTxQcm9qZWN0RGVwZW5kZW5jaWVzPiB7XG4gICAgICAgIHJldHVybiBmZXRjaChgaHR0cHM6Ly91bnBrZy5jb20vQGV1aS9kZXBzLWJhc2VAJHt2ZXJzaW9ufS9wYWNrYWdlLmpzb25gKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigocGtnKSA9PiBwa2c/LmRlcGVuZGVuY2llcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgdGhlIGVVSSB2ZXJzaW9uIHVzZWQgdG8gYnVpbGQgdGhlIHNob3djYXNlIGZyb20gYXBwbGljYXRpb24gYXBwLW1ldGFkYXRhLmpzb25cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50U2hvd2Nhc2VFdWlWZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8eyBhcHBWZXJzaW9uOiBzdHJpbmcgfT4oJ2Fzc2V0cy9hcHAtbWV0YWRhdGEuanNvbicsIHsgcmVzcG9uc2VUeXBlOiAnanNvbicgfSkpLnRoZW4oXG4gICAgICAgICAgICAocmVzKSA9PiByZXM/LmFwcFZlcnNpb24gfHwgJ2xhdGVzdCcsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IGNsYXNzIG5hbWUgYW5kIHNlbGVjdG9yIG5hbWUgZnJvbSB0aGUgdHlwZXNjcmlwdCBjb250ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZXh0cmFjdENvbXBvbmVudE1ldGFkYXRhKGNvbnRlbnRzOiBzdHJpbmcpOiB7XG4gICAgICAgIHNlbGVjdG9yOiBzdHJpbmc7XG4gICAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIH0ge1xuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBjb250ZW50cy5tYXRjaCgvZXhwb3J0IGNsYXNzIChbXFx3XFxkXSspLyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yTmFtZSA9IGNvbnRlbnRzLm1hdGNoKC9zZWxlY3RvcjogJyhbXFx3XFxkLV0rKScvKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lID8gY2xhc3NOYW1lWzFdIDogJycsXG4gICAgICAgICAgICBzZWxlY3Rvcjogc2VsZWN0b3JOYW1lID8gc2VsZWN0b3JOYW1lWzFdIDogJycsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXh0cmFjdCBtb2R1bGUgY2xhc3MgbmFtZSBmcm9tIHRoZSB0eXBlc2NyaXB0IGNvbnRlbnRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZW50c1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBleHRyYWN0TW9kdWxlTmFtZShjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbW9kdWxlQ2xhc3MgPSBjb250ZW50cy5tYXRjaCgvZXhwb3J0IGNsYXNzIChcXHcrTW9kdWxlKS8pO1xuICAgICAgICByZXR1cm4gbW9kdWxlQ2xhc3MgPyBtb2R1bGVDbGFzc1sxXSA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGV4dHJhY3QgdGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lIGFuZCBzZWxlY3RvciBuYW1lIGZyb20gdGhlIHR5cGVzY3JpcHQgY29udGVudFxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGV4dHJhY3RDb21wb25lbnROYW1lKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb21wb25lbnROYW1lID0gY29udGVudHMubWF0Y2goL2Jvb3RzdHJhcDogXFxbKFtcXHNcXFNdKj8pXS8pO1xuICAgICAgICByZXR1cm4gY29tcG9uZW50TmFtZSA/IGNvbXBvbmVudE5hbWVbMV0gOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFZpdGFsTmdNb2R1bGVzKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBjb25zdCBpbXBvcnRzID0gY29udGVudHMubWF0Y2goL2ltcG9ydHM6IFxcWyhbXFxzXFxTXSo/KVxcXS8pO1xuICAgICAgICAvLyBhcHBlbmRzIEJyb3dzZXJNb2R1bGUgdG8gaW1wb3J0c1xuICAgICAgICBjb250ZW50cyA9IGNvbnRlbnRzLnJlcGxhY2UoL2ltcG9ydHM6IFxcWyhbXFxzXFxTXSo/KVxcXS8sICdpbXBvcnRzOiBbQnJvd3Nlck1vZHVsZSwgJDFdJyk7XG4gICAgICAgIC8vIGFwcGVuZHMgaW1wb3J0IG9mIEJyb3dzZXJNb2R1bGVcbiAgICAgICAgcmV0dXJuIGBpbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XFxuJHtjb250ZW50c31gO1xuICAgIH1cbn1cbiIsIjxldWktYmxvY2stY29udGVudCBbaXNCbG9ja2VkXT1cIiFpc0xvYWRlZFwiPlxuICAgIDxpZnJhbWUgI2NvbnRhaW5lciBpZD1cInN0YWNrYmxpdHote3tzYW1wbGVJZH19XCI+PC9pZnJhbWU+XG48L2V1aS1ibG9jay1jb250ZW50PlxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wbGF5Z3JvdW5kL3BsYXlncm91bmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxHQUF5QyxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTXJILE1BQU0sT0FBTyxtQkFBbUI7SUFtQjVCLFlBQ1ksUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsUUFBNEIsRUFDNUIsSUFBZ0I7UUFIaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQVk7UUFyQnJCLFVBQUssR0FBRyxnQkFBZ0IsQ0FBQztRQVF6QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFXckIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTtnQkFDaEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNI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QkFBbUI7c0JBRDFCLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgc2RrLCB7IFByb2plY3QsIFByb2plY3REZXBlbmRlbmNpZXMsIFZNIH0gZnJvbSAnQHN0YWNrYmxpdHovc2RrJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFuZ3VsYXJKc29uRmlsZSwgaW5kZXhIdG1sRmlsZSwgbWFpbkZpbGUsIFBBQ0tBR0VfSlNPTiwgcG9seWZpbGxzRmlsZSwgdHNDb25maWcgfSBmcm9tICcuL3N0YWNrYmxpdHouZmlsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1wbGF5Z3JvdW5kJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BsYXlncm91bmQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBQbGF5Z3JvdW5kQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0aXRsZSA9ICdlVUkgUGxheWdyb3VuZCc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaHRtbENvbnRlbnQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzYW1wbGVJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR5cGVzY3JpcHRDb250ZW50OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbW9kdWxlczogW3sgbmFtZTogc3RyaW5nOyBwYXRoOiBzdHJpbmcgfV07XG4gICAgcHVibGljIGlzTG9hZGVkID0gZmFsc2U7XG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIHN0YWNrYmxpdHpFbFdyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTElGcmFtZUVsZW1lbnQ+O1xuICAgIC8qKiBpbnN0YW5jZSB0aGF0IGhvbGRzIHRoZSBzdGFja2JsaXR6IFZNIG9iamVjdCAqL1xuICAgIHByaXZhdGUgc3RhY2tibGl0ekluc3RhbmNlOiBWTTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBhcHBTaGVsbDogRXVpQXBwU2hlbGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmFjdGl2YXRlZC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTdGFja2JsaXR6KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFN0YWNrYmxpdHooKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U3RhY2tibGl0ekRlcGVuZGVuY2llcygpXG4gICAgICAgICAgICAudGhlbigoZGVwcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZGVwZW5kZW5jaWVzLCBkZXZEZXBlbmRlbmNpZXMgfSA9IGRlcHM7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3RvciB9ID0gdGhpcy5leHRyYWN0Q29tcG9uZW50TWV0YWRhdGEodGhpcy50eXBlc2NyaXB0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IHRoaXMuZXh0cmFjdE1vZHVsZU5hbWUodGhpcy50eXBlc2NyaXB0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50TmFtZSA9IHRoaXMuZXh0cmFjdENvbXBvbmVudE5hbWUodGhpcy50eXBlc2NyaXB0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvamVjdDogUHJvamVjdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQW4gZVVJIGV4YW1wbGUgZm9yIHRoZSAke3RoaXMudGl0bGV9LmAsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlOiAnYW5ndWxhci1jbGknLFxuICAgICAgICAgICAgICAgICAgICBmaWxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy9jb21wb25lbnQuaHRtbCc6IHRoaXMuaHRtbENvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3JjL2NvbXBvbmVudC50cyc6IHRoaXMuYXBwZW5kVml0YWxOZ01vZHVsZXModGhpcy50eXBlc2NyaXB0Q29udGVudCksXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAnc3JjL2FwcC5tb2R1bGUudHMnOiBtb2R1bGVGaWxlKGNsYXNzTmFtZSwgdGhpcy5tb2R1bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdzcmMvbWFpbi50cyc6IG1haW5GaWxlKG1vZHVsZU5hbWUsIGNvbXBvbmVudE5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy9wb2x5ZmlsbHMudHMnOiBwb2x5ZmlsbHNGaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy9pbmRleC5odG1sJzogaW5kZXhIdG1sRmlsZShzZWxlY3RvciksXG4gICAgICAgICAgICAgICAgICAgICAgICAnYW5ndWxhci5qc29uJzogYW5ndWxhckpzb25GaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3BhY2thZ2UuanNvbic6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uUEFDS0FHRV9KU09OLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldkRlcGVuZGVuY2llcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMixcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAndHNjb25maWcuanNvbic6IHRzQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXI6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNvbnNvbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gc2RrLmVtYmVkUHJvamVjdChcbiAgICAgICAgICAgICAgICAgICAgYHN0YWNrYmxpdHotJHt0aGlzLnNhbXBsZUlkfWAsXG4gICAgICAgICAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkZpbGU6ICdzcmMvY29tcG9uZW50LnRzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKChpbnN0YW5jZTogVk0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWNrYmxpdHpJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgb25seSB0aGUgZGVwZW5kZW5jaWVzIHRoYXQgc3RhY2tibGl0eiB3aWxsIG5lZWQgZmlsdGVyZWQgZnJvbSBAZXVpL2RlcHMtYmFzZVxuICAgICAqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFN0YWNrYmxpdHpEZXBlbmRlbmNpZXMoKTogUHJvbWlzZTx7XG4gICAgICAgIGRlcGVuZGVuY2llczogUHJvamVjdERlcGVuZGVuY2llcztcbiAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiBQcm9qZWN0RGVwZW5kZW5jaWVzO1xuICAgIH0+IHtcbiAgICAgICAgLy8gYSBsaXN0IG9mIGRlcGVuZGVuY2llcyBvbmx5IHN0YWNrYmxpdHogbmVlZHNcbiAgICAgICAgY29uc3Qgc3RhY2tibGl0ekRlcGVuZGVuY2llcyA9IFtcbiAgICAgICAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJyxcbiAgICAgICAgICAgICdAYW5ndWxhci9jZGsnLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2NvbW1vbicsXG4gICAgICAgICAgICAnQGFuZ3VsYXIvY29tcGlsZXInLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2NvcmUnLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL2Zvcm1zJyxcbiAgICAgICAgICAgICdAYW5ndWxhci9tYXRlcmlhbCcsXG4gICAgICAgICAgICAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInLFxuICAgICAgICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYycsXG4gICAgICAgICAgICAnQGFuZ3VsYXIvcm91dGVyJyxcbiAgICAgICAgICAgICdAZXVpL2Jhc2UnLFxuICAgICAgICAgICAgJ0BldWkvY29tcG9uZW50cycsXG4gICAgICAgICAgICAnQGV1aS9jb3JlJyxcbiAgICAgICAgICAgICdAZXVpL3N0eWxlcycsXG4gICAgICAgICAgICAnQGV1aS9zdHlsZXMtYmFzZScsXG4gICAgICAgICAgICAnQG5ncngvZWZmZWN0cycsXG4gICAgICAgICAgICAnQG5ncngvc3RvcmUnLFxuICAgICAgICAgICAgJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnLFxuICAgICAgICAgICAgJ2xvY2FsZm9yYWdlJyxcbiAgICAgICAgICAgICdsb2Rhc2gtZXMnLFxuICAgICAgICAgICAgJ3Jlc2VsZWN0JyxcbiAgICAgICAgICAgICdyeGpzJyxcbiAgICAgICAgICAgICd0c2xpYicsXG4gICAgICAgICAgICAnem9uZS5qcycsXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3Qgc3RhY2tibGl0ekRldkRlcGVuZGVuY2llcyA9IFsnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXInLCAnQGFuZ3VsYXIvY2xpJywgJ0Bhbmd1bGFyL2NvbXBpbGVyLWNsaScsICd0eXBlc2NyaXB0J107XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudFNob3djYXNlRXVpVmVyc2lvbigpXG4gICAgICAgICAgICAudGhlbigodmVyc2lvbikgPT4gdGhpcy5yZXRyaWV2ZVBhY2thZ2VEZXBlbmRlbmNpZXModmVyc2lvbikpXG4gICAgICAgICAgICAudGhlbigoZGVwZW5kZW5jaWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIGRlcGVuZGVuY2llcyB0byBvbmx5IHdoYXQgc3RhY2tibGl0eiBuZWVkc1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZEFyciA9IE9iamVjdC5lbnRyaWVzKGRlcGVuZGVuY2llcykuZmlsdGVyKCh2KSA9PiBzdGFja2JsaXR6RGVwZW5kZW5jaWVzLmZpbmQoKHMpID0+IHMgPT09IHZbMF0pKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZE9iaiA9IE9iamVjdC5mcm9tRW50cmllcyhmaWx0ZXJlZEFycik7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmFEZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIHV1aWQ6ICc4LjMuMicsXG4gICAgICAgICAgICAgICAgICAgICduZ3gtZGV2aWNlLWRldGVjdG9yJzogJzMuMC4wJyxcbiAgICAgICAgICAgICAgICAgICAgJ25neC1tb21lbnQnOiAnfjYuMC4wJyxcbiAgICAgICAgICAgICAgICAgICAgJ25neC1tYXNrJzogJ14xNC4wLjAnLFxuICAgICAgICAgICAgICAgICAgICAnY2xlYXZlLmpzJzogJ14xLjYuMCcsXG4gICAgICAgICAgICAgICAgICAgIG1vbWVudDogJ14yLjE5LjMnLFxuICAgICAgICAgICAgICAgICAgICBleHRlbmQ6ICdeMy4wLjInLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyIGRldkRlcGVuZGVuY2llcyB0byBvbmx5IHdoYXQgc3RhY2tibGl0eiBuZWVkc1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkQXJyID0gT2JqZWN0LmVudHJpZXMoZGVwZW5kZW5jaWVzKS5maWx0ZXIoKHYpID0+IHN0YWNrYmxpdHpEZXZEZXBlbmRlbmNpZXMuZmluZCgocykgPT4gcyA9PT0gdlswXSkpO1xuICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llcyA9IHsgLi4uZXh0cmFEZXBlbmRlbmNpZXMsIC4uLmZpbHRlcmVkT2JqIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZGV2RGVwZW5kZW5jaWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKGZpbHRlcmVkQXJyKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRlcGVuZGVuY2llcywgZGV2RGVwZW5kZW5jaWVzIH07XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZSB0aGUgZGVwZW5kZW5jaWVzIGZyb20gdGhlIHBhY2thZ2UuanNvbiBmaWxlIG9mIEBldWkvZGVwcy1iYXNlIGZvciB0aGUgZ2l2ZW4gdmVyc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2ZXJzaW9uXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJldHJpZXZlUGFja2FnZURlcGVuZGVuY2llcyh2ZXJzaW9uKTogUHJvbWlzZTxQcm9qZWN0RGVwZW5kZW5jaWVzPiB7XG4gICAgICAgIHJldHVybiBmZXRjaChgaHR0cHM6Ly91bnBrZy5jb20vQGV1aS9kZXBzLWJhc2VAJHt2ZXJzaW9ufS9wYWNrYWdlLmpzb25gKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigocGtnKSA9PiBwa2c/LmRlcGVuZGVuY2llcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmUgdGhlIGVVSSB2ZXJzaW9uIHVzZWQgdG8gYnVpbGQgdGhlIHNob3djYXNlIGZyb20gYXBwbGljYXRpb24gYXBwLW1ldGFkYXRhLmpzb25cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50U2hvd2Nhc2VFdWlWZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8eyBhcHBWZXJzaW9uOiBzdHJpbmcgfT4oJ2Fzc2V0cy9hcHAtbWV0YWRhdGEuanNvbicsIHsgcmVzcG9uc2VUeXBlOiAnanNvbicgfSkpLnRoZW4oXG4gICAgICAgICAgICAocmVzKSA9PiByZXM/LmFwcFZlcnNpb24gfHwgJ2xhdGVzdCcsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IGNsYXNzIG5hbWUgYW5kIHNlbGVjdG9yIG5hbWUgZnJvbSB0aGUgdHlwZXNjcmlwdCBjb250ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZXh0cmFjdENvbXBvbmVudE1ldGFkYXRhKGNvbnRlbnRzOiBzdHJpbmcpOiB7XG4gICAgICAgIHNlbGVjdG9yOiBzdHJpbmc7XG4gICAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIH0ge1xuICAgICAgICBjb25zdCBzZWxlY3RvclJlZ2V4ID0gL3NlbGVjdG9yOiAoJyg/PHNpbmdsZVF1b3RlZFNlbGVjdG9yPltcXHdcXGQtXSspJ3xcIig/PGRvdWJsZVF1b3RlZFNlbGVjdG9yPltcXHdcXGQtXSspXCIpLztcbiAgICAgICAgY29uc3QgY2xhc3NSZWdleCA9IC9leHBvcnQgY2xhc3MgKFtcXHdcXGRdKykvO1xuXG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGNvbnRlbnRzLm1hdGNoKGNsYXNzUmVnZXgpO1xuICAgICAgICBjb25zdCBzZWxlY3Rvck5hbWUgPSBjb250ZW50cy5tYXRjaChzZWxlY3RvclJlZ2V4KTtcbiAgICAgICAgY29uc3QgZm91bmQgPSBzZWxlY3Rvck5hbWU/Lmdyb3Vwcz8uc2luZ2xlUXVvdGVkU2VsZWN0b3IgfHwgc2VsZWN0b3JOYW1lPy5ncm91cHM/LmRvdWJsZVF1b3RlZFNlbGVjdG9yO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUgPyBjbGFzc05hbWVbMV0gOiAnJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiBmb3VuZCB8fCAnJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBleHRyYWN0IG1vZHVsZSBjbGFzcyBuYW1lIGZyb20gdGhlIHR5cGVzY3JpcHQgY29udGVudFxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbnRlbnRzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGV4dHJhY3RNb2R1bGVOYW1lKGNvbnRlbnRzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBtb2R1bGVDbGFzcyA9IGNvbnRlbnRzLm1hdGNoKC9leHBvcnQgY2xhc3MgKFxcdytNb2R1bGUpLyk7XG4gICAgICAgIHJldHVybiBtb2R1bGVDbGFzcyA/IG1vZHVsZUNsYXNzWzFdIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IGNsYXNzIG5hbWUgYW5kIHNlbGVjdG9yIG5hbWUgZnJvbSB0aGUgdHlwZXNjcmlwdCBjb250ZW50XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZXh0cmFjdENvbXBvbmVudE5hbWUoY29udGVudHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSBjb250ZW50cy5tYXRjaCgvYm9vdHN0cmFwOiBcXFsoW1xcc1xcU10qPyldLyk7XG4gICAgICAgIHJldHVybiBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZVsxXSA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwZW5kVml0YWxOZ01vZHVsZXMoY29udGVudHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIGNvbnN0IGltcG9ydHMgPSBjb250ZW50cy5tYXRjaCgvaW1wb3J0czogXFxbKFtcXHNcXFNdKj8pXFxdLyk7XG4gICAgICAgIC8vIGFwcGVuZHMgQnJvd3Nlck1vZHVsZSB0byBpbXBvcnRzXG4gICAgICAgIGNvbnRlbnRzID0gY29udGVudHMucmVwbGFjZSgvaW1wb3J0czogXFxbKFtcXHNcXFNdKj8pXFxdLywgJ2ltcG9ydHM6IFtcXG5cXHRcXHRCcm93c2VyTW9kdWxlLCAkMV0nKTtcbiAgICAgICAgLy8gYXBwZW5kcyBpbXBvcnQgb2YgQnJvd3Nlck1vZHVsZVxuICAgICAgICBjb250ZW50cyA9IGBpbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XFxuJHtjb250ZW50c31gO1xuICAgICAgICAvLyBhcHBlbmRzIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIHRvIGltcG9ydHNcbiAgICAgICAgY29udGVudHMgPSBjb250ZW50cy5yZXBsYWNlKC9pbXBvcnRzOiBcXFsoW1xcc1xcU10qPylcXF0vLCAnaW1wb3J0czogW1xcblxcdFxcdEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLCAkMV0nKTtcbiAgICAgICAgLy8gYXBwZW5kcyBpbXBvcnQgb2YgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGVcbiAgICAgICAgY29udGVudHMgPSBgaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xcbiR7Y29udGVudHN9YDtcblxuICAgICAgICByZXR1cm4gY29udGVudHM7XG4gICAgfVxufVxuIiwiPGV1aS1ibG9jay1jb250ZW50IFtpc0Jsb2NrZWRdPVwiIWlzTG9hZGVkXCI+XG4gICAgPGlmcmFtZSAjY29udGFpbmVyIGlkPVwic3RhY2tibGl0ei17e3NhbXBsZUlkfX1cIj48L2lmcmFtZT5cbjwvZXVpLWJsb2NrLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, ElementRef, Component, Input, ViewChild, ViewEncapsulation, HostBinding, ContentChildren, forwardRef, ContentChild, HostListener, NgModule } from '@angular/core';
|
|
2
|
+
import { Directive, ElementRef, Component, Input, ViewChild, booleanAttribute, ViewEncapsulation, HostBinding, ContentChildren, forwardRef, ContentChild, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i4 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i3$2 from '@eui/components/eui-card';
|
|
@@ -348,6 +348,7 @@ class PlaygroundComponent {
|
|
|
348
348
|
};
|
|
349
349
|
return sdk.embedProject(`stackblitz-${this.sampleId}`, project, {
|
|
350
350
|
height: 500,
|
|
351
|
+
openFile: 'src/component.ts',
|
|
351
352
|
});
|
|
352
353
|
})
|
|
353
354
|
.then((instance) => {
|
|
@@ -438,11 +439,14 @@ class PlaygroundComponent {
|
|
|
438
439
|
* @private
|
|
439
440
|
*/
|
|
440
441
|
extractComponentMetadata(contents) {
|
|
441
|
-
const
|
|
442
|
-
const
|
|
442
|
+
const selectorRegex = /selector: ('(?<singleQuotedSelector>[\w\d-]+)'|"(?<doubleQuotedSelector>[\w\d-]+)")/;
|
|
443
|
+
const classRegex = /export class ([\w\d]+)/;
|
|
444
|
+
const className = contents.match(classRegex);
|
|
445
|
+
const selectorName = contents.match(selectorRegex);
|
|
446
|
+
const found = selectorName?.groups?.singleQuotedSelector || selectorName?.groups?.doubleQuotedSelector;
|
|
443
447
|
return {
|
|
444
448
|
className: className ? className[1] : '',
|
|
445
|
-
selector:
|
|
449
|
+
selector: found || '',
|
|
446
450
|
};
|
|
447
451
|
}
|
|
448
452
|
/**
|
|
@@ -468,9 +472,14 @@ class PlaygroundComponent {
|
|
|
468
472
|
appendVitalNgModules(contents) {
|
|
469
473
|
// const imports = contents.match(/imports: \[([\s\S]*?)\]/);
|
|
470
474
|
// appends BrowserModule to imports
|
|
471
|
-
contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [
|
|
475
|
+
contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [\n\t\tBrowserModule, $1]');
|
|
472
476
|
// appends import of BrowserModule
|
|
473
|
-
|
|
477
|
+
contents = `import { BrowserModule } from '@angular/platform-browser';\n${contents}`;
|
|
478
|
+
// appends BrowserAnimationsModule to imports
|
|
479
|
+
contents = contents.replace(/imports: \[([\s\S]*?)\]/, 'imports: [\n\t\tBrowserAnimationsModule, $1]');
|
|
480
|
+
// appends import of BrowserAnimationsModule
|
|
481
|
+
contents = `import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n${contents}`;
|
|
482
|
+
return contents;
|
|
474
483
|
}
|
|
475
484
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: PlaygroundComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.EuiAppShellService }, { token: i2$1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
476
485
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: PlaygroundComponent, selector: "eui-playground", inputs: { title: "title", htmlContent: "htmlContent", sampleId: "sampleId", typescriptContent: "typescriptContent", activated: "activated", modules: "modules" }, viewQueries: [{ propertyName: "stackblitzElWrapper", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<eui-block-content [isBlocked]=\"!isLoaded\">\n <iframe #container id=\"stackblitz-{{sampleId}}\"></iframe>\n</eui-block-content>\n", dependencies: [{ kind: "component", type: i3.EuiBlockContentComponent, selector: "eui-block-content", inputs: ["role", "ariaLabel", "isBlocked"] }] }); }
|
|
@@ -648,7 +657,7 @@ class DocSampleComponent {
|
|
|
648
657
|
: [];
|
|
649
658
|
}
|
|
650
659
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DocSampleComponent, deps: [{ token: i2$1.HttpClient }, { token: i2.EuiAppShellService }, { token: i0.ChangeDetectorRef }, { token: i2.EuiGrowlService }, { token: i3$1.Clipboard }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
651
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
660
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.8", type: DocSampleComponent, selector: "eui-showcase-doc-sample", inputs: { id: "id", label: "label", styleClass: "styleClass", renderPlayground: ["renderPlayground", "renderPlayground", booleanAttribute], isCodeButtonVisible: ["isCodeButtonVisible", "isCodeButtonVisible", booleanAttribute] }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<div class=\"doc-sample-title\">\n <div class=\"doc-sample-title__label\">\n <strong>{{ label }}</strong>\n <button\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n euiSizeS\n (click)=\"copyCurrentUrlToClipboard(id)\"\n class=\"doc-sample-title__link\"\n tabindex=\"-1\">\n <eui-icon-svg icon=\"link\" set=\"outline\" size=\"l\" fillColor=\"grey-75\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"doc-sample-title__items\">\n <button\n *ngIf=\"isCodeButtonVisible\"\n type=\"button\"\n euiButton\n [euiOutline]=\"!isCodeExpanded\"\n euiPrimary\n euiSizeS\n (click)=\"onToggleCode()\"\n [isLoading]=\"isCodeLoading\"\n [euiDisabled]=\"isCodeLoading\">\n <span *ngIf=\"!isCodeExpanded\" euiLabel>Code</span>\n <span *ngIf=\"isCodeExpanded\" euiLabel>Hide Code</span>\n <span euiIcon iconClass=\"eui-icon-code\"></span>\n </button>\n </div>\n</div>\n\n<ng-template [ngIf]=\"isCodeExpanded\">\n <eui-card euiNoContentPadding>\n <eui-card-content>\n <eui-tabs (tabSelect)=\"onSelectedTab($event)\">\n <eui-tab [isVisible]=\"htmlContent\">\n <euiTabLabel>\n HTML\n <euiTabSubLabel>HyperText Markup Language</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-markup\" euiCode>{{htmlContent}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab [isVisible]=\"tsContent\">\n <euiTabLabel>\n TS\n <euiTabSubLabel>Typescript</euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <pre><code class=\"language-javascript\" euiCode>{{filterOutModuleAndImports(tsContent)}}</code></pre>\n </euiTabContent>\n </eui-tab>\n <eui-tab euiWarning [isVisible]=\"htmlContent && tsContent && renderPlayground\">\n <euiTabLabel>\n Playground\n <euiTabSubLabel>Stackblitz <eui-chip euiSizeS euiWarning>Experimental</eui-chip></euiTabSubLabel>\n </euiTabLabel>\n <euiTabContent>\n <eui-playground\n [sampleId]=\"id\"\n [typescriptContent]=\"tsContent\"\n [htmlContent]=\"htmlContent\"\n [activated]=\"playground_activated\"></eui-playground>\n </euiTabContent>\n </eui-tab>\n </eui-tabs>\n </eui-card-content>\n </eui-card>\n</ng-template>\n\n<ng-content></ng-content>\n", styles: [".eui-showcase-doc-sample{display:block;margin-bottom:var(--eui-base-spacing-2xl);width:100%}.eui-showcase-doc-sample .doc-sample-title{align-items:flex-end;display:flex;width:100%;margin-bottom:var(--eui-base-spacing-m);padding-bottom:var(--eui-base-spacing-s);border-bottom:1px solid var(--eui-base-color-grey-25)}.eui-showcase-doc-sample .doc-sample-title__label{align-items:center;display:flex;min-height:var(--eui-base-spacing-xl);margin-top:var(--eui-base-spacing-xl);width:100%;font:normal normal 400 1.5rem/1.75rem var(--eui-base-font-family)}.eui-showcase-doc-sample .doc-sample-title__label:first-child{margin-top:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-title__label:hover .doc-sample-title__link{opacity:1;transition:all .25s ease-in-out}.eui-showcase-doc-sample .doc-sample-title__items{display:flex;margin-left:auto}.eui-showcase-doc-sample .doc-sample-title__link{opacity:0;margin-left:var(--eui-base-spacing-m)}.eui-showcase-doc-sample .doc-sample-section-title{border-bottom:1px solid var(--eui-base-color-grey-25);font-size:var(--eui-base-font-size-l);font-weight:500;letter-spacing:-.25px;margin:var(--eui-base-spacing-3xl) 0 var(--eui-base-spacing-s);padding-bottom:var(--eui-base-spacing-2xs);width:auto;display:table;color:var(--eui-base-color-info-110)}.eui-showcase-doc-sample .doc-sample-section-title:first-child{margin-top:var(--eui-base-spacing-m)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.EuiCardComponent, selector: "eui-card", inputs: ["e2eAttr", "euiSelected", "euiCollapsible", "euiCollapsed", "euiUrgent", "euiNoShadow", "euiNoContentPadding", "euiHoverable"], outputs: ["collapse"] }, { kind: "component", type: i3$2.EuiCardContentComponent, selector: "eui-card-content" }, { kind: "component", type: i7.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiTabsComponent, selector: "eui-tabs", inputs: ["styleClass", "tabs", "activeTabIndex", "e2eAttr", "pathMatch", "isMainNavigation", "isHandleChangeTab", "isSubTabs", "isVerticalTabs"], outputs: ["tabClose", "tabSelect"] }, { kind: "component", type: i5.EuiTabComponent, selector: "eui-tab", inputs: ["url", "e2eAttr", "tooltip", "isClosable", "isVisible", "isActive", "isDisabled", "hasBackgroundFilled", "isHandleCloseOnClose"] }, { kind: "component", type: i5.EuiTabLabelComponent, selector: "eui-tab-label, euiTabLabel" }, { kind: "directive", type: i5.EuiTabSubLabelDirective, selector: "euiTabSubLabel" }, { kind: "component", type: i5.EuiTabContentComponent, selector: "eui-tab-content, euiTabContent", inputs: ["hasNoContentPadding"] }, { kind: "component", type: i9.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared"], outputs: ["remove"] }, { kind: "component", type: i10.EuiIconComponent, selector: "div[euiIcon], span[euiIcon], i[euiIcon], eui-icon", inputs: ["aria-label", "iconClass", "isLoading"] }, { kind: "component", type: i10.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i9$1.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "directive", type: EuiCodeHighlighterDirective, selector: "[euiCode]" }, { kind: "component", type: PlaygroundComponent, selector: "eui-playground", inputs: ["title", "htmlContent", "sampleId", "typescriptContent", "activated", "modules"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
652
661
|
}
|
|
653
662
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DocSampleComponent, decorators: [{
|
|
654
663
|
type: Component,
|
|
@@ -660,9 +669,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
660
669
|
}], styleClass: [{
|
|
661
670
|
type: Input
|
|
662
671
|
}], renderPlayground: [{
|
|
663
|
-
type: Input
|
|
672
|
+
type: Input,
|
|
673
|
+
args: [{ transform: booleanAttribute }]
|
|
664
674
|
}], isCodeButtonVisible: [{
|
|
665
|
-
type: Input
|
|
675
|
+
type: Input,
|
|
676
|
+
args: [{ transform: booleanAttribute }]
|
|
666
677
|
}], classes: [{
|
|
667
678
|
type: HostBinding,
|
|
668
679
|
args: ['class']
|