@eui/showcase 18.0.0-rc.21 → 18.0.0-rc.23
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-page/doc-page-dev-guide.component.mjs +93 -0
- package/esm2022/lib/components/doc-page/doc-page.component.mjs +9 -5
- package/esm2022/lib/components/index.mjs +2 -1
- package/esm2022/lib/eui-showcase.module.mjs +12 -4
- package/fesm2022/eui-showcase.mjs +106 -10
- package/fesm2022/eui-showcase.mjs.map +1 -1
- package/lib/components/doc-page/doc-page-dev-guide.component.d.ts +29 -0
- package/lib/components/doc-page/doc-page-dev-guide.component.d.ts.map +1 -0
- package/lib/components/doc-page/doc-page.component.d.ts +1 -0
- package/lib/components/doc-page/doc-page.component.d.ts.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.d.ts.map +1 -1
- package/lib/eui-showcase.module.d.ts +25 -23
- package/lib/eui-showcase.module.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { map, take } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-markdown";
|
|
5
|
+
import * as i2 from "@angular/common/http";
|
|
6
|
+
import * as i3 from "@angular/router";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@eui/components/eui-page";
|
|
9
|
+
export class DocPageDevGuideComponent {
|
|
10
|
+
constructor(markdownService, http, router, route) {
|
|
11
|
+
this.markdownService = markdownService;
|
|
12
|
+
this.http = http;
|
|
13
|
+
this.router = router;
|
|
14
|
+
this.route = route;
|
|
15
|
+
this.headers = [];
|
|
16
|
+
this.subscription = this.route.url.subscribe((u) => {
|
|
17
|
+
this._loadMdContent('/docs/' + u.join('/'));
|
|
18
|
+
});
|
|
19
|
+
// eslint-disable-next-line
|
|
20
|
+
this.markdownService.renderer.heading = (text, level, str) => {
|
|
21
|
+
if (level === 2 || level === 3) {
|
|
22
|
+
const newHeader = '<h' + level + ' id="' + str + '">' +
|
|
23
|
+
text +
|
|
24
|
+
'</h' + level + '>';
|
|
25
|
+
console.log(text);
|
|
26
|
+
if (text.indexOf('<a ') === -1 && text.indexOf('<em>') === -1) {
|
|
27
|
+
this.headers.push({ id: str, label: text, level });
|
|
28
|
+
}
|
|
29
|
+
return newHeader;
|
|
30
|
+
}
|
|
31
|
+
return '<h' + level + '>' +
|
|
32
|
+
text +
|
|
33
|
+
'</h' + level + '>';
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
ngAfterViewInit() {
|
|
37
|
+
this.route.fragment.pipe(take(1)).subscribe((fragment) => {
|
|
38
|
+
if (fragment) {
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
this.fragmentId = fragment;
|
|
41
|
+
const fgm = document.getElementById(fragment);
|
|
42
|
+
fgm.scrollIntoView();
|
|
43
|
+
}, 1);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
ngOnDestroy() {
|
|
48
|
+
if (this.subscription) {
|
|
49
|
+
this.subscription.unsubscribe();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
onNavClick(fragmentId) {
|
|
53
|
+
this._scrollToFragment(fragmentId);
|
|
54
|
+
}
|
|
55
|
+
_loadMdContent(url) {
|
|
56
|
+
let mdPath, contextRoot;
|
|
57
|
+
const currentUrl = window.location;
|
|
58
|
+
const pathNameArray = currentUrl.pathname.split('/');
|
|
59
|
+
this.headers = [];
|
|
60
|
+
if (url) {
|
|
61
|
+
mdPath = url.substr(1);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
mdPath = pathNameArray.slice(pathNameArray.length - 3).join('/');
|
|
65
|
+
}
|
|
66
|
+
contextRoot = `${currentUrl.protocol}//${currentUrl.host}`;
|
|
67
|
+
if (pathNameArray[1] !== 'showcase-dev-guide') {
|
|
68
|
+
contextRoot += `/${pathNameArray[1]}`;
|
|
69
|
+
}
|
|
70
|
+
const filePath = `${contextRoot}/assets/${mdPath}.md`;
|
|
71
|
+
this.http.get(filePath, { responseType: 'text' }).pipe(map((md) => md.replace(new RegExp('assets/docs', 'g'), `${contextRoot}/assets/docs`))).subscribe((md) => this.markdown = md);
|
|
72
|
+
}
|
|
73
|
+
_scrollToFragment(fragmentId) {
|
|
74
|
+
// forcing reload when deep link with fragment
|
|
75
|
+
this.router.onSameUrlNavigation = 'reload';
|
|
76
|
+
this.router.navigate(['.'], { relativeTo: this.route, fragment: fragmentId });
|
|
77
|
+
if (fragmentId) {
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
const fgm = document.getElementById(fragmentId);
|
|
80
|
+
if (fgm) {
|
|
81
|
+
fgm.scrollIntoView();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageDevGuideComponent, deps: [{ token: i1.MarkdownService }, { token: i2.HttpClient }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0", type: DocPageDevGuideComponent, selector: "eui-showcase-doc-page-dev-guide", ngImport: i0, template: "<eui-page>\n <eui-page-content>\n <eui-page-columns>\n <eui-page-column>\n <eui-page-column-body>\n <markdown class=\"doc-content\" [data]=\"markdown\"></markdown>\n </eui-page-column-body>\n </eui-page-column>\n\n <eui-page-column class=\"eui-u-hidden-mobile\"\n label=\"On this page\"\n size=\"4xl\"\n isCollapsible\n isRightCollapsible>\n\n <eui-page-column-body>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <li class=\"doc-page-navigation-item\"\n *ngFor=\"let header of headers\" (click)=\"onNavClick(header.id)\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === header.id\">\n <span [ngClass]=\"header.level === 3 ? 'eui-u-ml-m eui-u-f-regular': ''\">\n {{header.label}}\n </span>\n </li>\n </ul>\n </div>\n </eui-page-column-body>\n\n </eui-page-column>\n\n </eui-page-columns>\n </eui-page-content>\n</eui-page>\n", styles: [".doc-page-navigation,.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-c-info-darker);cursor:pointer;overflow:hidden;padding:var(--eui-s-3xs);text-overflow:ellipsis;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-c-info-darker);padding-left:var(--eui-s-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-s-s)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-neutral-lightest)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-c-info-bg);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item-sub{padding-left:var(--eui-s-l)}.doc-page-navigation .doc-page-navigation-category{padding-left:var(--eui-s-m);color:var(--eui-c-text);margin-top:var(--eui-s-s);font-weight:700;text-transform:capitalize}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-s-2xl);margin-bottom:var(--eui-s-xl);color:var(--eui-c-info-darker);letter-spacing:-1px;font:var(--eui-f-2xl-bold)}.doc-page-section-subtitle{font:var(--eui-f-l-bold);letter-spacing:-.25px;margin:var(--eui-s-2xl) 0 var(--eui-s-s);padding-bottom:var(--eui-s-2xs);width:auto;display:table;color:var(--eui-c-neutral)}.doc-content h2{color:var(--eui-c-info-dark);margin-top:var(--eui-s-3xl)}.doc-content h3{color:var(--eui-c-neutral);margin-top:var(--eui-s-3xl)}.doc-content h4{margin-top:var(--eui-s-xl);text-decoration:underline;color:var(--eui-c-neutral-light)}.doc-content h5{font:var(--eui-f-bold);font-style:italic}.doc-content ul{margin-top:1rem}.doc-content ul li{list-style:circle;margin-left:2rem}.doc-content ol{list-style:none;counter-reset:item;margin-top:1rem}.doc-content ol li{counter-increment:item;margin-bottom:1rem}.doc-content ol li:before{margin-right:1.25rem;content:counter(item);background:var(--eui-c-info-dark);border-radius:50%;color:#fff;width:2rem;height:2rem;text-align:center;display:inline-block;font-size:1.25rem;font-weight:600}.doc-content ol li p:first-child{display:inline-block}.doc-content ol ol li{margin-top:1rem}.doc-content ol ol li:before{margin-left:20px;width:1.25rem;font-size:1rem;font-weight:400;background:transparent;color:var(--eui-c-info-dark);line-height:1.5rem}.doc-content em{color:var(--eui-c-danger);font-style:normal;font-weight:700}.doc-content em.info{color:var(--eui-c-info-dark)}.doc-content em.warning{color:var(--eui-c-warning)}.doc-content table{border-collapse:collapse;width:100%}.doc-content table,.doc-content th,.doc-content td{padding:.25rem;border:1px solid var(--eui-c-neutral-light)}.doc-content td{text-align:left}.doc-content code.language-none{display:inline-block;background-color:var(--eui-c-neutral-bg-light)}.doc-content img{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.EuiPageComponent, selector: "eui-page" }, { kind: "component", type: i5.EuiPageColumnComponent, selector: "eui-page-column", inputs: ["size", "label", "subLabel", "autocloseContainerWidth", "expandAriaLabel", "collapseAriaLabel", "isCollapsible", "isCollapsed", "isRightCollapsible", "isHighlighted", "isCollapsedWithIcons", "hasSidebarMenu", "hasHeaderBodyShrinkable", "isAutocloseOnContainerResize"], outputs: ["collapse", "headerCollapse"] }, { kind: "directive", type: i5.EuiPageColumnBodyContentDirective, selector: "eui-page-column-body" }, { kind: "component", type: i5.EuiPageColumnsComponent, selector: "eui-page-columns" }, { kind: "component", type: i5.EuiPageContentComponent, selector: "eui-page-content" }, { kind: "component", type: i1.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DocPageDevGuideComponent, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: 'eui-showcase-doc-page-dev-guide', encapsulation: ViewEncapsulation.None, template: "<eui-page>\n <eui-page-content>\n <eui-page-columns>\n <eui-page-column>\n <eui-page-column-body>\n <markdown class=\"doc-content\" [data]=\"markdown\"></markdown>\n </eui-page-column-body>\n </eui-page-column>\n\n <eui-page-column class=\"eui-u-hidden-mobile\"\n label=\"On this page\"\n size=\"4xl\"\n isCollapsible\n isRightCollapsible>\n\n <eui-page-column-body>\n <div class=\"doc-page-navigation-content\" tabindex=\"0\">\n <ul class=\"doc-page-navigation\">\n <li class=\"doc-page-navigation-item\"\n *ngFor=\"let header of headers\" (click)=\"onNavClick(header.id)\"\n [class.doc-page-navigation-item--selected]=\"fragmentId === header.id\">\n <span [ngClass]=\"header.level === 3 ? 'eui-u-ml-m eui-u-f-regular': ''\">\n {{header.label}}\n </span>\n </li>\n </ul>\n </div>\n </eui-page-column-body>\n\n </eui-page-column>\n\n </eui-page-columns>\n </eui-page-content>\n</eui-page>\n", styles: [".doc-page-navigation,.doc-page-navigation .doc-page-navigation-list{margin:0;padding:0}.doc-page-navigation .doc-page-navigation-item{color:var(--eui-c-info-darker);cursor:pointer;overflow:hidden;padding:var(--eui-s-3xs);text-overflow:ellipsis;white-space:nowrap;list-style:none}.doc-page-navigation .doc-page-navigation-item span{font-weight:700;color:var(--eui-c-info-darker);padding-left:var(--eui-s-xs)}.doc-page-navigation .doc-page-navigation-item:not(.doc-page-navigation-sub):hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item span{font-weight:400;padding-left:var(--eui-s-s)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-sub .doc-page-navigation-item:hover{background-color:var(--eui-c-neutral-bg-light);border-left:2px solid var(--eui-c-neutral-lightest)}.doc-page-navigation .doc-page-navigation-item.doc-page-navigation-item--selected{background-color:var(--eui-c-info-bg);border-left:2px solid var(--eui-c-info-darker)}.doc-page-navigation .doc-page-navigation-item-sub{padding-left:var(--eui-s-l)}.doc-page-navigation .doc-page-navigation-category{padding-left:var(--eui-s-m);color:var(--eui-c-text);margin-top:var(--eui-s-s);font-weight:700;text-transform:capitalize}.doc-page-api-iframe-wrapper{display:flex;justify-content:space-around;margin:0}.doc-page-section-title{margin-top:var(--eui-s-2xl);margin-bottom:var(--eui-s-xl);color:var(--eui-c-info-darker);letter-spacing:-1px;font:var(--eui-f-2xl-bold)}.doc-page-section-subtitle{font:var(--eui-f-l-bold);letter-spacing:-.25px;margin:var(--eui-s-2xl) 0 var(--eui-s-s);padding-bottom:var(--eui-s-2xs);width:auto;display:table;color:var(--eui-c-neutral)}.doc-content h2{color:var(--eui-c-info-dark);margin-top:var(--eui-s-3xl)}.doc-content h3{color:var(--eui-c-neutral);margin-top:var(--eui-s-3xl)}.doc-content h4{margin-top:var(--eui-s-xl);text-decoration:underline;color:var(--eui-c-neutral-light)}.doc-content h5{font:var(--eui-f-bold);font-style:italic}.doc-content ul{margin-top:1rem}.doc-content ul li{list-style:circle;margin-left:2rem}.doc-content ol{list-style:none;counter-reset:item;margin-top:1rem}.doc-content ol li{counter-increment:item;margin-bottom:1rem}.doc-content ol li:before{margin-right:1.25rem;content:counter(item);background:var(--eui-c-info-dark);border-radius:50%;color:#fff;width:2rem;height:2rem;text-align:center;display:inline-block;font-size:1.25rem;font-weight:600}.doc-content ol li p:first-child{display:inline-block}.doc-content ol ol li{margin-top:1rem}.doc-content ol ol li:before{margin-left:20px;width:1.25rem;font-size:1rem;font-weight:400;background:transparent;color:var(--eui-c-info-dark);line-height:1.5rem}.doc-content em{color:var(--eui-c-danger);font-style:normal;font-weight:700}.doc-content em.info{color:var(--eui-c-info-dark)}.doc-content em.warning{color:var(--eui-c-warning)}.doc-content table{border-collapse:collapse;width:100%}.doc-content table,.doc-content th,.doc-content td{padding:.25rem;border:1px solid var(--eui-c-neutral-light)}.doc-content td{text-align:left}.doc-content code.language-none{display:inline-block;background-color:var(--eui-c-neutral-bg-light)}.doc-content img{max-width:100%}\n"] }]
|
|
92
|
+
}], ctorParameters: () => [{ type: i1.MarkdownService }, { type: i2.HttpClient }, { type: i3.Router }, { type: i3.ActivatedRoute }] });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLXBhZ2UtZGV2LWd1aWRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kb2MtcGFnZS9kb2MtcGFnZS1kZXYtZ3VpZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RvYy1wYWdlL2RvYy1wYWdlLWRldi1ndWlkZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUl2RixPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyx3QkFBd0I7SUFRakMsWUFDWSxlQUFnQyxFQUNoQyxJQUFnQixFQUNoQixNQUFjLEVBQ2QsS0FBcUI7UUFIckIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBUmpDLFlBQU8sR0FBd0QsRUFBRSxDQUFDO1FBVTlELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFBO1FBRUYsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDekUsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FB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LElBQUksQ0FDcEUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLFdBQVcsY0FBYyxDQUFDLENBQUMsQ0FDeEYsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQWtCO1FBQ3hDLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFOUUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDTixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDOzhHQWhHUSx3QkFBd0I7a0dBQXhCLHdCQUF3Qix1RUNickMsNDNDQWtDQTs7MkZEckJhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSxpQ0FBaUMsaUJBRzVCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWFya2Rvd25TZXJ2aWNlIH0gZnJvbSAnbmd4LW1hcmtkb3duJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktc2hvd2Nhc2UtZG9jLXBhZ2UtZGV2LWd1aWRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG9jLXBhZ2UtZGV2LWd1aWRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zaGFyZWQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIERvY1BhZ2VEZXZHdWlkZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBtYXJrZG93bjogc3RyaW5nO1xuICAgIGlzRmlyc3Q6IGJvb2xlYW47XG4gICAgaGVhZGVyczogQXJyYXk8eyBpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBsZXZlbDogbnVtYmVyIH0+ID0gW107XG4gICAgZnJhZ21lbnRJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBtYXJrZG93blNlcnZpY2U6IE1hcmtkb3duU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLnVybC5zdWJzY3JpYmUoKHUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRNZENvbnRlbnQoJy9kb2NzLycgKyB1LmpvaW4oJy8nKSk7XG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIHRoaXMubWFya2Rvd25TZXJ2aWNlLnJlbmRlcmVyLmhlYWRpbmcgPSAodGV4dDogc3RyaW5nLCBsZXZlbDogbnVtYmVyLCBzdHIpID0+IHtcbiAgICAgICAgICAgIGlmIChsZXZlbCA9PT0gMiB8fCBsZXZlbCA9PT0gMykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0hlYWRlciA9ICc8aCcgKyBsZXZlbCArICcgaWQ9XCInICsgc3RyICsgJ1wiPicgK1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ICtcbiAgICAgICAgICAgICAgICAgICAgJzwvaCcgKyBsZXZlbCArICc+JztcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codGV4dCk7XG4gICAgICAgICAgICAgICAgaWYgKHRleHQuaW5kZXhPZignPGEgJykgPT09IC0xICYmIHRleHQuaW5kZXhPZignPGVtPicpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlcnMucHVzaCh7IGlkOiBzdHIsIGxhYmVsOiB0ZXh0LCBsZXZlbCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0hlYWRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAnPGgnICsgbGV2ZWwgKyAnPicgK1xuICAgICAgICAgICAgICAgIHRleHQgK1xuICAgICAgICAgICAgICAgICc8L2gnICsgbGV2ZWwgKyAnPic7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvdXRlLmZyYWdtZW50LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChmcmFnbWVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZnJhZ21lbnRJZCA9IGZyYWdtZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmZ20gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGZnbS5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25OYXZDbGljayhmcmFnbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsVG9GcmFnbWVudChmcmFnbWVudElkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9sb2FkTWRDb250ZW50KHVybD86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgbWRQYXRoLCBjb250ZXh0Um9vdDtcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9IHdpbmRvdy5sb2NhdGlvbjtcbiAgICAgICAgY29uc3QgcGF0aE5hbWVBcnJheSA9IGN1cnJlbnRVcmwucGF0aG5hbWUuc3BsaXQoJy8nKTtcblxuICAgICAgICB0aGlzLmhlYWRlcnMgPSBbXTtcblxuICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICBtZFBhdGggPSB1cmwuc3Vic3RyKDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWRQYXRoID0gcGF0aE5hbWVBcnJheS5zbGljZShwYXRoTmFtZUFycmF5Lmxlbmd0aCAtIDMpLmpvaW4oJy8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHRSb290ID0gYCR7Y3VycmVudFVybC5wcm90b2NvbH0vLyR7Y3VycmVudFVybC5ob3N0fWA7XG4gICAgICAgIGlmIChwYXRoTmFtZUFycmF5WzFdICE9PSAnc2hvd2Nhc2UtZGV2LWd1aWRlJykge1xuICAgICAgICAgICAgY29udGV4dFJvb3QgKz0gYC8ke3BhdGhOYW1lQXJyYXlbMV19YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7Y29udGV4dFJvb3R9L2Fzc2V0cy8ke21kUGF0aH0ubWRgO1xuXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPihmaWxlUGF0aCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyBhcyAnanNvbicgfSkucGlwZShcbiAgICAgICAgICAgIG1hcCgobWQpID0+IG1kLnJlcGxhY2UobmV3IFJlZ0V4cCgnYXNzZXRzL2RvY3MnLCAnZycpLCBgJHtjb250ZXh0Um9vdH0vYXNzZXRzL2RvY3NgKSksXG4gICAgICAgICkuc3Vic2NyaWJlKChtZCkgPT4gdGhpcy5tYXJrZG93biA9IG1kKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JvbGxUb0ZyYWdtZW50KGZyYWdtZW50SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBmb3JjaW5nIHJlbG9hZCB3aGVuIGRlZXAgbGluayB3aXRoIGZyYWdtZW50XG4gICAgICAgIHRoaXMucm91dGVyLm9uU2FtZVVybE5hdmlnYXRpb24gPSAncmVsb2FkJztcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgZnJhZ21lbnQ6IGZyYWdtZW50SWQgfSk7XG5cbiAgICAgICAgaWYgKGZyYWdtZW50SWQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZnbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZyYWdtZW50SWQpO1xuICAgICAgICAgICAgICAgIGlmIChmZ20pIHtcbiAgICAgICAgICAgICAgICAgICAgZmdtLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZXVpLXBhZ2U+XG4gICAgPGV1aS1wYWdlLWNvbnRlbnQ+XG4gICAgICAgIDxldWktcGFnZS1jb2x1bW5zPlxuICAgICAgICAgICAgPGV1aS1wYWdlLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZXVpLXBhZ2UtY29sdW1uLWJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDxtYXJrZG93biBjbGFzcz1cImRvYy1jb250ZW50XCIgW2RhdGFdPVwibWFya2Rvd25cIj48L21hcmtkb3duPlxuICAgICAgICAgICAgICAgIDwvZXVpLXBhZ2UtY29sdW1uLWJvZHk+XG4gICAgICAgICAgICA8L2V1aS1wYWdlLWNvbHVtbj5cblxuICAgICAgICAgICAgPGV1aS1wYWdlLWNvbHVtbiBjbGFzcz1cImV1aS11LWhpZGRlbi1tb2JpbGVcIlxuICAgICAgICAgICAgICAgIGxhYmVsPVwiT24gdGhpcyBwYWdlXCJcbiAgICAgICAgICAgICAgICBzaXplPVwiNHhsXCJcbiAgICAgICAgICAgICAgICBpc0NvbGxhcHNpYmxlXG4gICAgICAgICAgICAgICAgaXNSaWdodENvbGxhcHNpYmxlPlxuXG4gICAgICAgICAgICAgICAgPGV1aS1wYWdlLWNvbHVtbi1ib2R5PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1jb250ZW50XCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkb2MtcGFnZS1uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZG9jLXBhZ2UtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCIgKGNsaWNrKT1cIm9uTmF2Q2xpY2soaGVhZGVyLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kb2MtcGFnZS1uYXZpZ2F0aW9uLWl0ZW0tLXNlbGVjdGVkXT1cImZyYWdtZW50SWQgPT09IGhlYWRlci5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiaGVhZGVyLmxldmVsID09PSAzID8gJ2V1aS11LW1sLW0gZXVpLXUtZi1yZWd1bGFyJzogJydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2hlYWRlci5sYWJlbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZXVpLXBhZ2UtY29sdW1uLWJvZHk+XG5cbiAgICAgICAgICAgIDwvZXVpLXBhZ2UtY29sdW1uPlxuXG4gICAgICAgIDwvZXVpLXBhZ2UtY29sdW1ucz5cbiAgICA8L2V1aS1wYWdlLWNvbnRlbnQ+XG48L2V1aS1wYWdlPlxuIl19
|