@covalent/flavored-markdown 6.4.0 → 6.4.2

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.
@@ -33,19 +33,20 @@ function TdFlavoredListComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
33
33
  i0.ɵɵproperty("ngIf", !last_r2);
34
34
  } }
35
35
  export class TdFlavoredListComponent {
36
- lines;
37
- dense = false;
38
- static ɵfac = function TdFlavoredListComponent_Factory(t) { return new (t || TdFlavoredListComponent)(); };
39
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredListComponent, selectors: [["td-cfm-list"]], inputs: { lines: "lines", dense: "dense" }, decls: 2, vars: 2, consts: [["ngFor", "", 3, "ngForOf"], ["matListItemTitle", ""], ["matListItemLine", "", 4, "ngFor", "ngForOf"], ["matListItemLine", "", 4, "ngIf"], ["matListItemLine", ""]], template: function TdFlavoredListComponent_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵelementStart(0, "mat-list");
41
- i0.ɵɵtemplate(1, TdFlavoredListComponent_ng_template_1_Template, 5, 3, "ng-template", 0);
42
- i0.ɵɵelementEnd();
43
- } if (rf & 2) {
44
- i0.ɵɵattribute("dense", ctx.dense ? true : null);
45
- i0.ɵɵadvance(1);
46
- i0.ɵɵproperty("ngForOf", ctx.lines);
47
- } }, dependencies: [i1.NgForOf, i1.NgIf, i2.MatList, i2.MatListItem, i3.MatDivider, i2.MatListItemLine, i2.MatListItemTitle] });
36
+ constructor() {
37
+ this.dense = false;
38
+ }
48
39
  }
40
+ TdFlavoredListComponent.ɵfac = function TdFlavoredListComponent_Factory(t) { return new (t || TdFlavoredListComponent)(); };
41
+ TdFlavoredListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredListComponent, selectors: [["td-cfm-list"]], inputs: { lines: "lines", dense: "dense" }, decls: 2, vars: 2, consts: [["ngFor", "", 3, "ngForOf"], ["matListItemTitle", ""], ["matListItemLine", "", 4, "ngFor", "ngForOf"], ["matListItemLine", "", 4, "ngIf"], ["matListItemLine", ""]], template: function TdFlavoredListComponent_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "mat-list");
43
+ i0.ɵɵtemplate(1, TdFlavoredListComponent_ng_template_1_Template, 5, 3, "ng-template", 0);
44
+ i0.ɵɵelementEnd();
45
+ } if (rf & 2) {
46
+ i0.ɵɵattribute("dense", ctx.dense ? true : null);
47
+ i0.ɵɵadvance(1);
48
+ i0.ɵɵproperty("ngForOf", ctx.lines);
49
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.MatList, i2.MatListItem, i3.MatDivider, i2.MatListItemLine, i2.MatListItemTitle] });
49
50
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredListComponent, [{
50
51
  type: Component,
51
52
  args: [{ selector: 'td-cfm-list', template: "<mat-list [attr.dense]=\"dense ? true : null\">\n <ng-template let-line let-last=\"last\" ngFor [ngForOf]=\"lines\">\n <mat-list-item>\n <h4 matListItemTitle>\n {{ line.line }}\n </h4>\n <p *ngFor=\"let subline of line.sublines\" matListItemLine>\n {{ subline }}\n </p>\n <mat-divider *ngIf=\"!last\" matListItemLine></mat-divider>\n </mat-list-item>\n </ng-template>\n</mat-list>\n" }]
@@ -54,4 +55,4 @@ export class TdFlavoredListComponent {
54
55
  }], dense: [{
55
56
  type: Input
56
57
  }] }); })();
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2NmbS1saXN0L2NmbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDTTNDLDRCQUF5RDtJQUN2RCxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSwyQ0FDRjs7O0lBQ0EsaUNBQXlEOzs7SUFQM0QscUNBQWUsWUFBQTtJQUVYLFlBQ0Y7SUFBQSxpQkFBSztJQUNMLGtGQUVJO0lBQ0osc0dBQXlEO0lBQzNELGlCQUFnQjs7OztJQU5aLGVBQ0Y7SUFERSw2Q0FDRjtJQUN1QixlQUFnQjtJQUFoQiwwQ0FBZ0I7SUFHekIsZUFBVztJQUFYLCtCQUFXOztBREcvQixNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLEtBQUssQ0FBdUI7SUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQztpRkFGWix1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ1pwQyxnQ0FBNkM7WUFDM0Msd0ZBVWM7WUFDaEIsaUJBQVc7O1lBWkQsZ0RBQWtDO1lBQ0UsZUFBaUI7WUFBakIsbUNBQWlCOzs7dUZEV2xELHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLGFBQWE7Z0JBS2QsS0FBSztrQkFBYixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGbGF2b3JlZExpc3RJdGVtIHtcbiAgbGluZTogc3RyaW5nO1xuICBzdWJsaW5lcz86IHN0cmluZ1tdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1jZm0tbGlzdCcsXG4gIHN0eWxlVXJsczogWycuL2NmbS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbGluZXMhOiBJRmxhdm9yZWRMaXN0SXRlbVtdO1xuICBASW5wdXQoKSBkZW5zZSA9IGZhbHNlO1xufVxuIiwiPG1hdC1saXN0IFthdHRyLmRlbnNlXT1cImRlbnNlID8gdHJ1ZSA6IG51bGxcIj5cbiAgPG5nLXRlbXBsYXRlIGxldC1saW5lIGxldC1sYXN0PVwibGFzdFwiIG5nRm9yIFtuZ0Zvck9mXT1cImxpbmVzXCI+XG4gICAgPG1hdC1saXN0LWl0ZW0+XG4gICAgICA8aDQgbWF0TGlzdEl0ZW1UaXRsZT5cbiAgICAgICAge3sgbGluZS5saW5lIH19XG4gICAgICA8L2g0PlxuICAgICAgPHAgKm5nRm9yPVwibGV0IHN1YmxpbmUgb2YgbGluZS5zdWJsaW5lc1wiIG1hdExpc3RJdGVtTGluZT5cbiAgICAgICAge3sgc3VibGluZSB9fVxuICAgICAgPC9wPlxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiIWxhc3RcIiBtYXRMaXN0SXRlbUxpbmU+PC9tYXQtZGl2aWRlcj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1saXN0PlxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZtLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tYXJrZG93bi1mbGF2b3JlZC9zcmMvbGliL2NmbS1saXN0L2NmbS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9jZm0tbGlzdC9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDTTNDLDRCQUF5RDtJQUN2RCxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSwyQ0FDRjs7O0lBQ0EsaUNBQXlEOzs7SUFQM0QscUNBQWUsWUFBQTtJQUVYLFlBQ0Y7SUFBQSxpQkFBSztJQUNMLGtGQUVJO0lBQ0osc0dBQXlEO0lBQzNELGlCQUFnQjs7OztJQU5aLGVBQ0Y7SUFERSw2Q0FDRjtJQUN1QixlQUFnQjtJQUFoQiwwQ0FBZ0I7SUFHekIsZUFBVztJQUFYLCtCQUFXOztBREcvQixNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBT1csVUFBSyxHQUFHLEtBQUssQ0FBQztLQUN4Qjs7OEZBSFksdUJBQXVCOzBFQUF2Qix1QkFBdUI7UUNacEMsZ0NBQTZDO1FBQzNDLHdGQVVjO1FBQ2hCLGlCQUFXOztRQVpELGdEQUFrQztRQUNFLGVBQWlCO1FBQWpCLG1DQUFpQjs7dUZEV2xELHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLGFBQWE7Z0JBS2QsS0FBSztrQkFBYixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGbGF2b3JlZExpc3RJdGVtIHtcbiAgbGluZTogc3RyaW5nO1xuICBzdWJsaW5lcz86IHN0cmluZ1tdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1jZm0tbGlzdCcsXG4gIHN0eWxlVXJsczogWycuL2NmbS1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9jZm0tbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRMaXN0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgbGluZXMhOiBJRmxhdm9yZWRMaXN0SXRlbVtdO1xuICBASW5wdXQoKSBkZW5zZSA9IGZhbHNlO1xufVxuIiwiPG1hdC1saXN0IFthdHRyLmRlbnNlXT1cImRlbnNlID8gdHJ1ZSA6IG51bGxcIj5cbiAgPG5nLXRlbXBsYXRlIGxldC1saW5lIGxldC1sYXN0PVwibGFzdFwiIG5nRm9yIFtuZ0Zvck9mXT1cImxpbmVzXCI+XG4gICAgPG1hdC1saXN0LWl0ZW0+XG4gICAgICA8aDQgbWF0TGlzdEl0ZW1UaXRsZT5cbiAgICAgICAge3sgbGluZS5saW5lIH19XG4gICAgICA8L2g0PlxuICAgICAgPHAgKm5nRm9yPVwibGV0IHN1YmxpbmUgb2YgbGluZS5zdWJsaW5lc1wiIG1hdExpc3RJdGVtTGluZT5cbiAgICAgICAge3sgc3VibGluZSB9fVxuICAgICAgPC9wPlxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiIWxhc3RcIiBtYXRMaXN0SXRlbUxpbmU+PC9tYXQtZGl2aWRlcj5cbiAgICA8L21hdC1saXN0LWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1saXN0PlxuIl19
@@ -0,0 +1,111 @@
1
+ import { Component, Input, ChangeDetectorRef, Output, EventEmitter, ChangeDetectionStrategy, } from '@angular/core';
2
+ import { TdMarkdownLoaderService } from '@covalent/markdown';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@covalent/markdown";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/progress-bar";
7
+ import * as i4 from "../flavored-markdown.component";
8
+ function TdFlavoredMarkdownLoaderComponent_mat_progress_bar_0_Template(rf, ctx) { if (rf & 1) {
9
+ i0.ɵɵelement(0, "mat-progress-bar", 2);
10
+ } if (rf & 2) {
11
+ i0.ɵɵproperty("ngClass", "delay");
12
+ } }
13
+ function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template(rf, ctx) { if (rf & 1) {
14
+ const _r3 = i0.ɵɵgetCurrentView();
15
+ i0.ɵɵelementStart(0, "td-flavored-markdown", 3);
16
+ i0.ɵɵlistener("contentReady", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_contentReady_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.contentReady.emit()); })("buttonClicked", function TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template_td_flavored_markdown_buttonClicked_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.buttonClicked.emit($event)); });
17
+ i0.ɵɵelementEnd();
18
+ } if (rf & 2) {
19
+ const ctx_r1 = i0.ɵɵnextContext();
20
+ let tmp_1_0;
21
+ let tmp_2_0;
22
+ i0.ɵɵproperty("content", ctx_r1.content)("hostedUrl", (tmp_1_0 = ctx_r1.url) !== null && tmp_1_0 !== undefined ? tmp_1_0 : "")("anchor", (tmp_2_0 = ctx_r1.anchor) !== null && tmp_2_0 !== undefined ? tmp_2_0 : "")("copyCodeToClipboard", ctx_r1.copyCodeToClipboard)("copyCodeTooltips", ctx_r1.copyCodeTooltips)("useCfmList", ctx_r1.useCfmList);
23
+ } }
24
+ // TODO: make a td-markdown-loader component
25
+ export class TdFlavoredMarkdownLoaderComponent {
26
+ constructor(_changeDetectorRef, _markdownUrlLoaderService) {
27
+ this._changeDetectorRef = _changeDetectorRef;
28
+ this._markdownUrlLoaderService = _markdownUrlLoaderService;
29
+ /**
30
+ * copyCodeToClipboard?: boolean
31
+ *
32
+ * Display copy button on code snippets to copy code to clipboard.
33
+ *
34
+ */
35
+ this.copyCodeToClipboard = false;
36
+ /**
37
+ * copyCodeTooltips?: ICopyCodeTooltips
38
+ *
39
+ * Tooltips for copy button to copy and upon copying.
40
+ */
41
+ this.copyCodeTooltips = {};
42
+ /**
43
+ * useCfmList?: boolean = false;
44
+ * Use CFM list component instead of vanilla markdown list. Used in covalent documentation app.
45
+ */
46
+ this.useCfmList = false;
47
+ /**
48
+ * contentReady: void
49
+ * Emitted when markdown rendering is finished.
50
+ */
51
+ this.contentReady = new EventEmitter();
52
+ /**
53
+ * loadFailed: Error
54
+ * Emitted when loading of markdown file fails.
55
+ */
56
+ this.loadFailed = new EventEmitter();
57
+ this.buttonClicked = new EventEmitter();
58
+ this.loading = true;
59
+ }
60
+ ngOnChanges(changes) {
61
+ if (changes['url'] || changes['httpOptions']) {
62
+ this.loadMarkdown();
63
+ }
64
+ }
65
+ async loadMarkdown() {
66
+ this.loading = true;
67
+ this._changeDetectorRef.markForCheck();
68
+ try {
69
+ this.content = await this._markdownUrlLoaderService.load(this.url ?? '', this.httpOptions);
70
+ }
71
+ catch (error) {
72
+ this.loadFailed.emit(error);
73
+ }
74
+ finally {
75
+ this.loading = false;
76
+ this._changeDetectorRef.markForCheck();
77
+ }
78
+ }
79
+ }
80
+ TdFlavoredMarkdownLoaderComponent.ɵfac = function TdFlavoredMarkdownLoaderComponent_Factory(t) { return new (t || TdFlavoredMarkdownLoaderComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.TdMarkdownLoaderService)); };
81
+ TdFlavoredMarkdownLoaderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TdFlavoredMarkdownLoaderComponent, selectors: [["td-flavored-markdown-loader"]], inputs: { url: "url", httpOptions: "httpOptions", anchor: "anchor", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips", useCfmList: "useCfmList" }, outputs: { contentReady: "contentReady", loadFailed: "loadFailed", buttonClicked: "buttonClicked" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [["mode", "indeterminate", "color", "accent", "class", "sticky", 3, "ngClass", 4, "ngIf"], [3, "content", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips", "useCfmList", "contentReady", "buttonClicked", 4, "ngIf"], ["mode", "indeterminate", "color", "accent", 1, "sticky", 3, "ngClass"], [3, "content", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips", "useCfmList", "contentReady", "buttonClicked"]], template: function TdFlavoredMarkdownLoaderComponent_Template(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵtemplate(0, TdFlavoredMarkdownLoaderComponent_mat_progress_bar_0_Template, 1, 1, "mat-progress-bar", 0);
83
+ i0.ɵɵtemplate(1, TdFlavoredMarkdownLoaderComponent_td_flavored_markdown_1_Template, 1, 6, "td-flavored-markdown", 1);
84
+ } if (rf & 2) {
85
+ i0.ɵɵproperty("ngIf", ctx.loading);
86
+ i0.ɵɵadvance(1);
87
+ i0.ɵɵproperty("ngIf", !ctx.loading);
88
+ } }, dependencies: [i2.NgClass, i2.NgIf, i3.MatProgressBar, i4.TdFlavoredMarkdownComponent], styles: ["[_nghost-%COMP%]{display:block}.sticky[_ngcontent-%COMP%]{position:absolute;top:0}.delay[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_delay-animation;animation-duration:.6s}@keyframes _ngcontent-%COMP%_delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}"], changeDetection: 0 });
89
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TdFlavoredMarkdownLoaderComponent, [{
90
+ type: Component,
91
+ args: [{ selector: 'td-flavored-markdown-loader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-progress-bar\n [ngClass]=\"'delay'\"\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n class=\"sticky\"\n></mat-progress-bar>\n<td-flavored-markdown\n *ngIf=\"!loading\"\n [content]=\"content\"\n [hostedUrl]=\"url ?? ''\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n [useCfmList]=\"useCfmList\"\n (contentReady)=\"contentReady.emit()\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n></td-flavored-markdown>\n", styles: [":host{display:block}.sticky{position:absolute;top:0}.delay{animation:delay-animation;animation-duration:.6s}@keyframes delay-animation{0%{opacity:0}99%{opacity:0}to{opacity:1}}\n"] }]
92
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TdMarkdownLoaderService }]; }, { url: [{
93
+ type: Input
94
+ }], httpOptions: [{
95
+ type: Input
96
+ }], anchor: [{
97
+ type: Input
98
+ }], copyCodeToClipboard: [{
99
+ type: Input
100
+ }], copyCodeTooltips: [{
101
+ type: Input
102
+ }], useCfmList: [{
103
+ type: Input
104
+ }], contentReady: [{
105
+ type: Output
106
+ }], loadFailed: [{
107
+ type: Output
108
+ }], buttonClicked: [{
109
+ type: Output
110
+ }] }); })();
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbWFya2Rvd24tZmxhdm9yZWQvc3JjL2xpYi9mbGF2b3JlZC1tYXJrZG93bi1sb2FkZXIvZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUdqQixNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztJQ1Y3RCxzQ0FNb0I7O0lBTGxCLGlDQUFtQjs7OztJQU1yQiwrQ0FVQztJQUZDLDJOQUFnQixlQUFBLDBCQUFtQixDQUFBLElBQUMsc05BQ25CLGVBQUEsaUNBQTBCLENBQUEsSUFEUDtJQUVyQyxpQkFBdUI7Ozs7O0lBUnRCLHdDQUFtQixzRkFBQSxzRkFBQSxtREFBQSw2Q0FBQSxpQ0FBQTs7QURLckIsNENBQTRDO0FBUTVDLE1BQU0sT0FBTyxpQ0FBaUM7SUEwRDVDLFlBQ1Usa0JBQXFDLEVBQ3JDLHlCQUFrRDtRQURsRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBeUI7UUF6QzVEOzs7OztXQUtHO1FBQ00sd0JBQW1CLEdBQUksS0FBSyxDQUFDO1FBRXRDOzs7O1dBSUc7UUFDTSxxQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO1FBRW5EOzs7V0FHRztRQUNNLGVBQVUsR0FBSSxLQUFLLENBQUM7UUFFN0I7OztXQUdHO1FBQ08saUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRTs7O1dBR0c7UUFDTyxlQUFVLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckQsa0JBQWEsR0FDckIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyQixZQUFPLEdBQUcsSUFBSSxDQUFDO0lBS1osQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QyxJQUFJO1lBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxFQUNkLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7U0FDSDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBYyxDQUFDLENBQUM7U0FDdEM7Z0JBQVM7WUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDeEM7SUFDSCxDQUFDOztrSEFuRlUsaUNBQWlDO29GQUFqQyxpQ0FBaUM7UUN0QjlDLDRHQU1vQjtRQUNwQixvSEFVd0I7O1FBZnJCLGtDQUFhO1FBTWIsZUFBYztRQUFkLG1DQUFjOzt1RkRjSixpQ0FBaUM7Y0FON0MsU0FBUzsyQkFDRSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU07MEdBT3RDLEdBQUc7a0JBQVgsS0FBSztZQU1HLFdBQVc7a0JBQW5CLEtBQUs7WUFNRyxNQUFNO2tCQUFkLEtBQUs7WUFRRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFPRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFNRyxVQUFVO2tCQUFsQixLQUFLO1lBTUksWUFBWTtrQkFBckIsTUFBTTtZQU1HLFVBQVU7a0JBQW5CLE1BQU07WUFFRyxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRkTWFya2Rvd25Mb2FkZXJTZXJ2aWNlIH0gZnJvbSAnQGNvdmFsZW50L21hcmtkb3duJztcbmltcG9ydCB7IElUZEZsYXZvcmVkTWFya2Rvd25CdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnLi4vZmxhdm9yZWQtbWFya2Rvd24uY29tcG9uZW50JztcbmltcG9ydCB7IElDb3B5Q29kZVRvb2x0aXBzIH0gZnJvbSAnQGNvdmFsZW50L2hpZ2hsaWdodCc7XG5cbi8vIFRPRE86IG1ha2UgYSB0ZC1tYXJrZG93bi1sb2FkZXIgY29tcG9uZW50XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RkLWZsYXZvcmVkLW1hcmtkb3duLWxvYWRlcicsXG4gIHN0eWxlVXJsczogWycuL2ZsYXZvcmVkLW1hcmtkb3duLWxvYWRlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxhdm9yZWQtbWFya2Rvd24tbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRkRmxhdm9yZWRNYXJrZG93bkxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiB1cmw6IHN0cmluZ1xuICAgKiBUaGUgdXJsIG9mIHRoZSBtYXJrZG93biBmaWxlLlxuICAgKi9cbiAgQElucHV0KCkgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBodHRwT3B0aW9uczogb2JqZWN0XG4gICAqIEhUVFAgb3B0aW9ucyB0aGF0IGNhbiBiZSBwYXJ0IG9mIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgQElucHV0KCkgaHR0cE9wdGlvbnM/OiBvYmplY3Q7XG5cbiAgLyoqXG4gICAqIGFuY2hvcjogc3RyaW5nXG4gICAqIEFuY2hvciB0byBqdW1wIHRvLlxuICAgKi9cbiAgQElucHV0KCkgYW5jaG9yPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBjb3B5Q29kZVRvQ2xpcGJvYXJkPzogYm9vbGVhblxuICAgKlxuICAgKiBEaXNwbGF5IGNvcHkgYnV0dG9uIG9uIGNvZGUgc25pcHBldHMgdG8gY29weSBjb2RlIHRvIGNsaXBib2FyZC5cbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9DbGlwYm9hcmQ/ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwc1xuICAgKlxuICAgKiBUb29sdGlwcyBmb3IgY29weSBidXR0b24gdG8gY29weSBhbmQgdXBvbiBjb3B5aW5nLlxuICAgKi9cbiAgQElucHV0KCkgY29weUNvZGVUb29sdGlwcz86IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG5cbiAgLyoqXG4gICAqIHVzZUNmbUxpc3Q/OiBib29sZWFuID0gZmFsc2U7XG4gICAqIFVzZSBDRk0gbGlzdCBjb21wb25lbnQgaW5zdGVhZCBvZiB2YW5pbGxhIG1hcmtkb3duIGxpc3QuIFVzZWQgaW4gY292YWxlbnQgZG9jdW1lbnRhdGlvbiBhcHAuXG4gICAqL1xuICBASW5wdXQoKSB1c2VDZm1MaXN0PyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBjb250ZW50UmVhZHk6IHZvaWRcbiAgICogRW1pdHRlZCB3aGVuIG1hcmtkb3duIHJlbmRlcmluZyBpcyBmaW5pc2hlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBjb250ZW50UmVhZHk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogbG9hZEZhaWxlZDogRXJyb3JcbiAgICogRW1pdHRlZCB3aGVuIGxvYWRpbmcgb2YgbWFya2Rvd24gZmlsZSBmYWlscy5cbiAgICovXG4gIEBPdXRwdXQoKSBsb2FkRmFpbGVkOiBFdmVudEVtaXR0ZXI8RXJyb3I+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29udGVudCE6IHN0cmluZztcbiAgbG9hZGluZyA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX21hcmtkb3duVXJsTG9hZGVyU2VydmljZTogVGRNYXJrZG93bkxvYWRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sndXJsJ10gfHwgY2hhbmdlc1snaHR0cE9wdGlvbnMnXSkge1xuICAgICAgdGhpcy5sb2FkTWFya2Rvd24oKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkTWFya2Rvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb250ZW50ID0gYXdhaXQgdGhpcy5fbWFya2Rvd25VcmxMb2FkZXJTZXJ2aWNlLmxvYWQoXG4gICAgICAgIHRoaXMudXJsID8/ICcnLFxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvYWRGYWlsZWQuZW1pdChlcnJvciBhcyBFcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhclxuICBbbmdDbGFzc109XCInZGVsYXknXCJcbiAgKm5nSWY9XCJsb2FkaW5nXCJcbiAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIlxuICBjb2xvcj1cImFjY2VudFwiXG4gIGNsYXNzPVwic3RpY2t5XCJcbj48L21hdC1wcm9ncmVzcy1iYXI+XG48dGQtZmxhdm9yZWQtbWFya2Rvd25cbiAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gIFtjb250ZW50XT1cImNvbnRlbnRcIlxuICBbaG9zdGVkVXJsXT1cInVybCA/PyAnJ1wiXG4gIFthbmNob3JdPVwiYW5jaG9yID8/ICcnXCJcbiAgW2NvcHlDb2RlVG9DbGlwYm9hcmRdPVwiY29weUNvZGVUb0NsaXBib2FyZFwiXG4gIFtjb3B5Q29kZVRvb2x0aXBzXT1cImNvcHlDb2RlVG9vbHRpcHNcIlxuICBbdXNlQ2ZtTGlzdF09XCJ1c2VDZm1MaXN0XCJcbiAgKGNvbnRlbnRSZWFkeSk9XCJjb250ZW50UmVhZHkuZW1pdCgpXCJcbiAgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uQ2xpY2tlZC5lbWl0KCRldmVudClcIlxuPjwvdGQtZmxhdm9yZWQtbWFya2Rvd24+XG4iXX0=