@lowcodeunit/applications-flow-common 1.34.0 → 1.34.3-lets-get-social-ish
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lcu.api.mjs +3 -3
- package/esm2020/lib/applications-flow.module.mjs +22 -11
- package/esm2020/lib/controls/devops-source-control-form/devops-source-control-form.component.mjs +3 -3
- package/esm2020/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.mjs +3 -3
- package/esm2020/lib/dialogs/feed-header-dialog/feed-header-dialog.component.mjs +287 -0
- package/esm2020/lib/elements/dynamic-tabs/dynamic-tabs.component.mjs +2 -2
- package/esm2020/lib/elements/feed-card-sm/feed-card-sm.component.mjs +2 -2
- package/esm2020/lib/elements/feed-header/feed-header.component.mjs +131 -0
- package/esm2020/lib/elements/form-card/form-card.component.mjs +2 -2
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/builds/builds.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/forms/source-control/source-control.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/git-auth/git-auth.component.mjs +6 -4
- package/esm2020/lib/elements/projects/controls/header/header.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/project-items/project-items.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/project-tabs/project-tabs.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/devops/devops.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +4 -4
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/general/general.component.mjs +2 -2
- package/esm2020/lib/elements/projects/projects.component.mjs +2 -2
- package/esm2020/lib/elements/skeleton-feed-card/skeleton-feed-card.component.mjs +2 -2
- package/esm2020/lib/models/user-feed.model.mjs +3 -1
- package/esm2020/lib/services/applications-flow.service.mjs +8 -1
- package/esm2020/lib/services/eac.service.mjs +4 -1
- package/esm2020/lib/services/project.service.mjs +25 -1
- package/esm2020/lib/state/applications-flow.state.mjs +1 -1
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +1755 -1390
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +1675 -1330
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lcu.api.d.ts +2 -2
- package/lib/applications-flow.module.d.ts +12 -10
- package/lib/dialogs/feed-header-dialog/feed-header-dialog.component.d.ts +71 -0
- package/lib/elements/{gh-control/gh-control.component.d.ts → feed-header/feed-header.component.d.ts} +9 -7
- package/lib/models/user-feed.model.d.ts +17 -0
- package/lib/services/applications-flow.service.d.ts +2 -0
- package/lib/services/eac.service.d.ts +2 -1
- package/lib/services/project.service.d.ts +2 -1
- package/lib/state/applications-flow.state.d.ts +2 -1
- package/package.json +1 -1
- package/esm2020/lib/elements/gh-control/gh-control.component.mjs +0 -107
|
@@ -31,10 +31,10 @@ export class FeedCardSmComponent {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
FeedCardSmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FeedCardSmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
FeedCardSmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FeedCardSmComponent, selector: "lcu-feed-card-sm", inputs: { FeedItem: ["feed-item", "FeedItem"] }, ngImport: i0, template: "<mat-card class=\"social-card\">\n <div class=\"feed-card-container\" fxLayout=\"row\">\n <mat-icon *ngIf=\"Icon\" [style.color]=\"IconColor\">{{ Icon }}</mat-icon>\n <div class=\"feed-card-main-content\">\n <mat-card-title *ngIf=\"FeedItem.Title\">\n {{ FeedItem.Title }}\n </mat-card-title>\n\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\n <ng-content select=\"[more-details]\"></ng-content>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"end\">\n <ng-content select=\"[actions]\"></ng-content>\n </mat-card-actions>\n</mat-card>\n", styles: [":host ::ng-deep .social-card{margin:20px;padding:15px 5px}:host ::ng-deep mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host ::ng-deep .main-slot-container{padding:10px}:host ::ng-deep .slot-header{align-items:center}:host ::ng-deep .slot-content{width:100%}:host ::ng-deep .slot-name{font-size:13px;font-weight:600}:host ::ng-deep .slot-description{font-size:12px;margin-right:10px}:host ::ng-deep .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host ::ng-deep .action-icon{height:
|
|
34
|
+
FeedCardSmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FeedCardSmComponent, selector: "lcu-feed-card-sm", inputs: { FeedItem: ["feed-item", "FeedItem"] }, ngImport: i0, template: "<mat-card class=\"social-card\">\n <div class=\"feed-card-container\" fxLayout=\"row\">\n <mat-icon *ngIf=\"Icon\" [style.color]=\"IconColor\">{{ Icon }}</mat-icon>\n <div class=\"feed-card-main-content\">\n <mat-card-title *ngIf=\"FeedItem.Title\">\n {{ FeedItem.Title }}\n </mat-card-title>\n\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\n <ng-content select=\"[more-details]\"></ng-content>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"end\">\n <ng-content select=\"[actions]\"></ng-content>\n </mat-card-actions>\n</mat-card>\n", styles: [":host ::ng-deep .social-card{margin:20px;padding:15px 5px}:host ::ng-deep mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host ::ng-deep .main-slot-container{padding:10px}:host ::ng-deep .slot-header{align-items:center}:host ::ng-deep .slot-content{width:100%}:host ::ng-deep .slot-name{font-size:13px;font-weight:600}:host ::ng-deep .slot-description{font-size:12px;margin-right:10px}:host ::ng-deep .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host ::ng-deep .action-icon{height:24px;width:24px;font-size:24px;cursor:pointer}\n"], components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] });
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FeedCardSmComponent, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
|
-
args: [{ selector: 'lcu-feed-card-sm', template: "<mat-card class=\"social-card\">\n <div class=\"feed-card-container\" fxLayout=\"row\">\n <mat-icon *ngIf=\"Icon\" [style.color]=\"IconColor\">{{ Icon }}</mat-icon>\n <div class=\"feed-card-main-content\">\n <mat-card-title *ngIf=\"FeedItem.Title\">\n {{ FeedItem.Title }}\n </mat-card-title>\n\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\n <ng-content select=\"[more-details]\"></ng-content>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"end\">\n <ng-content select=\"[actions]\"></ng-content>\n </mat-card-actions>\n</mat-card>\n", styles: [":host ::ng-deep .social-card{margin:20px;padding:15px 5px}:host ::ng-deep mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host ::ng-deep .main-slot-container{padding:10px}:host ::ng-deep .slot-header{align-items:center}:host ::ng-deep .slot-content{width:100%}:host ::ng-deep .slot-name{font-size:13px;font-weight:600}:host ::ng-deep .slot-description{font-size:12px;margin-right:10px}:host ::ng-deep .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host ::ng-deep .action-icon{height:
|
|
37
|
+
args: [{ selector: 'lcu-feed-card-sm', template: "<mat-card class=\"social-card\">\n <div class=\"feed-card-container\" fxLayout=\"row\">\n <mat-icon *ngIf=\"Icon\" [style.color]=\"IconColor\">{{ Icon }}</mat-icon>\n <div class=\"feed-card-main-content\">\n <mat-card-title *ngIf=\"FeedItem.Title\">\n {{ FeedItem.Title }}\n </mat-card-title>\n\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\n <ng-content select=\"[more-details]\"></ng-content>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"end\">\n <ng-content select=\"[actions]\"></ng-content>\n </mat-card-actions>\n</mat-card>\n", styles: [":host ::ng-deep .social-card{margin:20px;padding:15px 5px}:host ::ng-deep mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host ::ng-deep .main-slot-container{padding:10px}:host ::ng-deep .slot-header{align-items:center}:host ::ng-deep .slot-content{width:100%}:host ::ng-deep .slot-name{font-size:13px;font-weight:600}:host ::ng-deep .slot-description{font-size:12px;margin-right:10px}:host ::ng-deep .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host ::ng-deep .action-icon{height:24px;width:24px;font-size:24px;cursor:pointer}\n"] }]
|
|
38
38
|
}], ctorParameters: function () { return []; }, propDecorators: { FeedItem: [{
|
|
39
39
|
type: Input,
|
|
40
40
|
args: ['feed-item']
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Input } from '@angular/core';
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { FeedHeaderDialogComponent } from '../../dialogs/feed-header-dialog/feed-header-dialog.component';
|
|
4
|
+
import { NewApplicationDialogComponent } from '../../dialogs/new-application-dialog/new-application-dialog.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/eac.service";
|
|
7
|
+
import * as i2 from "@angular/material/dialog";
|
|
8
|
+
import * as i3 from "@angular/material/card";
|
|
9
|
+
import * as i4 from "@angular/material/icon";
|
|
10
|
+
import * as i5 from "@angular/material/button";
|
|
11
|
+
import * as i6 from "skeleton-elements/angular";
|
|
12
|
+
import * as i7 from "@angular/common";
|
|
13
|
+
import * as i8 from "@angular/flex-layout/flex";
|
|
14
|
+
export class FeedHeaderComponent {
|
|
15
|
+
constructor(eacSvc, dialog) {
|
|
16
|
+
this.eacSvc = eacSvc;
|
|
17
|
+
this.dialog = dialog;
|
|
18
|
+
this.SkeletonEffect = "wave";
|
|
19
|
+
// this.selectedBtn = "pr-btn";
|
|
20
|
+
}
|
|
21
|
+
get ActiveEnvironmentLookup() {
|
|
22
|
+
// TODO: Eventually support multiple environments
|
|
23
|
+
const envLookups = Object.keys(this.State?.EaC?.Environments || {});
|
|
24
|
+
return envLookups[0];
|
|
25
|
+
}
|
|
26
|
+
get FeedHeaderActions() {
|
|
27
|
+
return this.State?.FeedActions;
|
|
28
|
+
}
|
|
29
|
+
get State() {
|
|
30
|
+
return this.eacSvc.State;
|
|
31
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
}
|
|
34
|
+
ngAfterViewInit() {
|
|
35
|
+
this.addSelectBtn();
|
|
36
|
+
}
|
|
37
|
+
CreateAnnouncement() {
|
|
38
|
+
// this.ModalHeader = "Create Team Announcement";
|
|
39
|
+
this.OpenFHDialog('announcement', "Create Team Announcement");
|
|
40
|
+
}
|
|
41
|
+
// public CreateFeatureBranch(){
|
|
42
|
+
// this.removeSelectedBtn();
|
|
43
|
+
// this.ModalHeader = "Create Feature Branch";
|
|
44
|
+
// this.selectedBtn = "fb-btn";
|
|
45
|
+
// this.addSelectBtn();
|
|
46
|
+
// console.log("create feature branch selected");
|
|
47
|
+
// this.OpenFHDialog('branch');
|
|
48
|
+
// }
|
|
49
|
+
// public OpenIssue(){
|
|
50
|
+
// this.removeSelectedBtn();
|
|
51
|
+
// this.ModalHeader = "Open Issue";
|
|
52
|
+
// this.selectedBtn = "oi-btn";
|
|
53
|
+
// this.addSelectBtn();
|
|
54
|
+
// console.log("open issue selected");
|
|
55
|
+
// this.OpenFHDialog('issue');
|
|
56
|
+
// }
|
|
57
|
+
// public CreatePullRequest(){
|
|
58
|
+
// this.removeSelectedBtn();
|
|
59
|
+
// this.ModalHeader = "Create Pull Request";
|
|
60
|
+
// this.selectedBtn = "pr-btn";
|
|
61
|
+
// this.addSelectBtn();
|
|
62
|
+
// console.log("create pull request selected");
|
|
63
|
+
// this.OpenFHDialog('pull-request');
|
|
64
|
+
// }
|
|
65
|
+
CreateNewApp() {
|
|
66
|
+
const dialogRef = this.dialog.open(NewApplicationDialogComponent, {
|
|
67
|
+
width: '600px',
|
|
68
|
+
data: {
|
|
69
|
+
environmentLookup: this.ActiveEnvironmentLookup,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
73
|
+
// console.log('The dialog was closed');
|
|
74
|
+
// console.log("result:", result)
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
OpenFHDialog(modalType, modalHeader) {
|
|
78
|
+
const dialogRef = this.dialog.open(FeedHeaderDialogComponent, {
|
|
79
|
+
width: '600px',
|
|
80
|
+
data: {
|
|
81
|
+
dialogTitle: modalHeader,
|
|
82
|
+
type: modalType,
|
|
83
|
+
sourceControlLookup: this.SourceControlLookup ? this.SourceControlLookup : null
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
87
|
+
// console.log('The dialog was closed');
|
|
88
|
+
// console.log("result:", result)
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
RouteToPath(path) {
|
|
92
|
+
window.location.href = path;
|
|
93
|
+
}
|
|
94
|
+
Submit() {
|
|
95
|
+
console.log("submitting: ", this.value);
|
|
96
|
+
switch (this.selectedBtn) {
|
|
97
|
+
case "pr-btn":
|
|
98
|
+
//Pull request
|
|
99
|
+
console.log("creating pull request: ", this.value);
|
|
100
|
+
break;
|
|
101
|
+
case "oi-btn":
|
|
102
|
+
//Open Issue
|
|
103
|
+
console.log("Open issue: ", this.value);
|
|
104
|
+
break;
|
|
105
|
+
case "fb-btn":
|
|
106
|
+
//Feature Branch
|
|
107
|
+
console.log("creating feature branch: ", this.value);
|
|
108
|
+
break;
|
|
109
|
+
default:
|
|
110
|
+
console.log("hmm");
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//HELPERS
|
|
115
|
+
addSelectBtn() {
|
|
116
|
+
document.getElementById(this.selectedBtn)?.classList.add('selected');
|
|
117
|
+
}
|
|
118
|
+
removeSelectedBtn() {
|
|
119
|
+
document.getElementById(this.selectedBtn)?.classList.remove('selected');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
FeedHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FeedHeaderComponent, deps: [{ token: i1.EaCService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
+
FeedHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FeedHeaderComponent, selector: "lcu-feed-header", inputs: { SourceControlLookup: ["source-control-lookup", "SourceControlLookup"] }, ngImport: i0, template: "<mat-card class=\"social-card\">\n <ng-container *ngIf=\"!State?.LoadingFeed\">\n <div class=\"gh-card-container\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\" color=\"primary\">error_outline</mat-icon>\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <button \n mat-button \n class=\"main-btn\"\n (click)=\"CreateAnnouncement()\" \n color=\"primary\"\n >Create Team Announcement</button>\n\n <!-- <mat-form-field appearance=\"fill\" class=\"gh-input\">\n <mat-label>{{ InputLabel }}</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"value\" (click)=\"OpenFHDialog('announcement')\"/>\n </mat-form-field> -->\n </div>\n\n <!-- <button\n fxFlex=\"15%\"\n mat-button\n (click)=\"Submit()\"\n id=\"submit-btn\"\n color=\"primary\"\n >\n Submit\n </button> -->\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\" \n >\n <button \n *ngFor=\"let action of FeedHeaderActions\"\n mat-button \n (click)=\"OpenFHDialog(action.Action, action.Text)\" \n id=\"pr-btn\" \n color=\"primary\"\n >\n <mat-icon>{{action.Icon}}</mat-icon>\n {{action.Text}}\n </button>\n\n <!-- <button \n mat-button \n (click)=\"OpenIssue()\" \n id=\"oi-btn\" \n color=\"primary\"\n >\n Open Issue\n </button>\n\n <button \n mat-button \n (click)=\"CreateFeatureBranch()\" \n id=\"fb-btn\" \n color=\"primary\"\n >\n Feature Branch\n </button> -->\n\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button class=\"gh-menu-action\" mat-menu-item (click)=\"CreateNewApp()\">\n Create New App\n </button>\n\n <button\n class=\"gh-menu-action\"\n mat-menu-item\n (click)=\"RouteToPath('/dashboard/create-project')\"\n >\n Create Project\n </button>\n </mat-menu> -->\n </mat-card-actions>\n </ng-container>\n\n <!-- SKELETON -->\n <ng-container *ngIf=\"State?.LoadingFeed\">\n <div id=\"gh-card-skeleton\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <skeleton-avatar\n class=\"gh-icon\"\n [showIcon]=\"false\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-avatar>\n\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <skeleton-block\n height=\"60px\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-block>\n </div>\n\n <!-- <div\n skeleton-text\n fxFlex=\"15%\"\n [effect]=\"SkeletonEffect\"\n style=\"margin: 0px 10px\"\n >\n Submit\n </div> -->\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Pull Request</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Open Issue</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Feature Branch</div>\n <!-- <div skeleton-text [effect]=\"SkeletonEffect\">\n <mat-icon>more_horiz</mat-icon>\n </div> -->\n </div>\n </ng-container>\n</mat-card>\n", styles: [":host ::ng-deep .social-card{margin:20px;padding:15px 5px}:host ::ng-deep mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host ::ng-deep .main-slot-container{padding:10px}:host ::ng-deep .slot-header{align-items:center}:host ::ng-deep .slot-content{width:100%}:host ::ng-deep .slot-name{font-size:13px;font-weight:600}:host ::ng-deep .slot-description{font-size:12px;margin-right:10px}:host ::ng-deep .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host ::ng-deep .action-icon{height:24px;width:24px;font-size:24px;cursor:pointer}.gh-icon{width:60px;height:60px;font-size:60px;text-align:center}.gh-input{width:90%}.main-btn{width:90%;height:50px;border-radius:30px;border:1px solid}.selected{border:1px solid green}.gh-input ::ng-deep .mat-form-field-flex{border:1px solid;border-radius:30px!important}.gh-input ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important}.gh-input ::ng-deep .mat-form-field-underline{display:none}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.SkeletonAvatarComponent, selector: "skeleton-avatar", inputs: ["size", "color", "showIcon", "iconColor", "borderRadius", "effect"] }, { type: i6.SkeletonBlockComponent, selector: "skeleton-block", inputs: ["width", "height", "effect", "borderRadius"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }] });
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FeedHeaderComponent, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{ selector: 'lcu-feed-header', template: "<mat-card class=\"social-card\">\n <ng-container *ngIf=\"!State?.LoadingFeed\">\n <div class=\"gh-card-container\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\" color=\"primary\">error_outline</mat-icon>\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <button \n mat-button \n class=\"main-btn\"\n (click)=\"CreateAnnouncement()\" \n color=\"primary\"\n >Create Team Announcement</button>\n\n <!-- <mat-form-field appearance=\"fill\" class=\"gh-input\">\n <mat-label>{{ InputLabel }}</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"value\" (click)=\"OpenFHDialog('announcement')\"/>\n </mat-form-field> -->\n </div>\n\n <!-- <button\n fxFlex=\"15%\"\n mat-button\n (click)=\"Submit()\"\n id=\"submit-btn\"\n color=\"primary\"\n >\n Submit\n </button> -->\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\" \n >\n <button \n *ngFor=\"let action of FeedHeaderActions\"\n mat-button \n (click)=\"OpenFHDialog(action.Action, action.Text)\" \n id=\"pr-btn\" \n color=\"primary\"\n >\n <mat-icon>{{action.Icon}}</mat-icon>\n {{action.Text}}\n </button>\n\n <!-- <button \n mat-button \n (click)=\"OpenIssue()\" \n id=\"oi-btn\" \n color=\"primary\"\n >\n Open Issue\n </button>\n\n <button \n mat-button \n (click)=\"CreateFeatureBranch()\" \n id=\"fb-btn\" \n color=\"primary\"\n >\n Feature Branch\n </button> -->\n\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button class=\"gh-menu-action\" mat-menu-item (click)=\"CreateNewApp()\">\n Create New App\n </button>\n\n <button\n class=\"gh-menu-action\"\n mat-menu-item\n (click)=\"RouteToPath('/dashboard/create-project')\"\n >\n Create Project\n </button>\n </mat-menu> -->\n </mat-card-actions>\n </ng-container>\n\n <!-- SKELETON -->\n <ng-container *ngIf=\"State?.LoadingFeed\">\n <div id=\"gh-card-skeleton\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <skeleton-avatar\n class=\"gh-icon\"\n [showIcon]=\"false\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-avatar>\n\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <skeleton-block\n height=\"60px\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-block>\n </div>\n\n <!-- <div\n skeleton-text\n fxFlex=\"15%\"\n [effect]=\"SkeletonEffect\"\n style=\"margin: 0px 10px\"\n >\n Submit\n </div> -->\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Pull Request</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Open Issue</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Feature Branch</div>\n <!-- <div skeleton-text [effect]=\"SkeletonEffect\">\n <mat-icon>more_horiz</mat-icon>\n </div> -->\n </div>\n </ng-container>\n</mat-card>\n", styles: [":host ::ng-deep .social-card{margin:20px;padding:15px 5px}:host ::ng-deep mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host ::ng-deep .main-slot-container{padding:10px}:host ::ng-deep .slot-header{align-items:center}:host ::ng-deep .slot-content{width:100%}:host ::ng-deep .slot-name{font-size:13px;font-weight:600}:host ::ng-deep .slot-description{font-size:12px;margin-right:10px}:host ::ng-deep .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host ::ng-deep .action-icon{height:24px;width:24px;font-size:24px;cursor:pointer}.gh-icon{width:60px;height:60px;font-size:60px;text-align:center}.gh-input{width:90%}.main-btn{width:90%;height:50px;border-radius:30px;border:1px solid}.selected{border:1px solid green}.gh-input ::ng-deep .mat-form-field-flex{border:1px solid;border-radius:30px!important}.gh-input ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important}.gh-input ::ng-deep .mat-form-field-underline{display:none}\n"] }]
|
|
127
|
+
}], ctorParameters: function () { return [{ type: i1.EaCService }, { type: i2.MatDialog }]; }, propDecorators: { SourceControlLookup: [{
|
|
128
|
+
type: Input,
|
|
129
|
+
args: ['source-control-lookup']
|
|
130
|
+
}] } });
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZmVlZC1oZWFkZXIvZmVlZC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZmVlZC1oZWFkZXIvZmVlZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOzs7Ozs7Ozs7O0FBVXRILE1BQU0sT0FBTyxtQkFBbUI7SUE0QjlCLFlBQ2MsTUFBa0IsRUFDbEIsTUFBaUI7UUFEakIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRTdCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzdCLCtCQUErQjtJQUVqQyxDQUFDO0lBOUJELElBQVcsdUJBQXVCO1FBQ2hDLG1EQUFtRDtRQUNuRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENB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LEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRVMsaUJBQWlCO1FBQ1gsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RixDQUFDOztnSEFwSlUsbUJBQW1CO29HQUFuQixtQkFBbUIsMElDZGhDLGk0R0FtSEE7MkZEckdhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7eUhBT3BCLG1CQUFtQjtzQkFEekIsS0FBSzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGZWVkSGVhZGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9mZWVkLWhlYWRlci1kaWFsb2cvZmVlZC1oZWFkZXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkSXRlbUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWZlZWQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlZC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGZWVkSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ3NvdXJjZS1jb250cm9sLWxvb2t1cCcpXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwOiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBBY3RpdmVFbnZpcm9ubWVudExvb2t1cCgpOiBzdHJpbmcge1xuICAgIC8vICBUT0RPOiAgRXZlbnR1YWxseSBzdXBwb3J0IG11bHRpcGxlIGVudmlyb25tZW50c1xuICAgIGNvbnN0IGVudkxvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50cyB8fCB7fSk7XG5cbiAgICByZXR1cm4gZW52TG9va3Vwc1swXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRmVlZEhlYWRlckFjdGlvbnMoKTogQXJyYXk8RmVlZEl0ZW1BY3Rpb24+e1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5GZWVkQWN0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRle1xuICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBNb2RhbEhlYWRlcjogc3RyaW5nO1xuXG4gIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEJ0bjogc3RyaW5nO1xuXG4gIHB1YmxpYyB2YWx1ZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCBcbiAgICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UsXG4gICAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2cpIHsgXG5cbiAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gXCJ3YXZlXCI7XG4gICAgLy8gdGhpcy5zZWxlY3RlZEJ0biA9IFwicHItYnRuXCI7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICB0aGlzLmFkZFNlbGVjdEJ0bigpO1xuICB9XG5cbiAgcHVibGljIENyZWF0ZUFubm91bmNlbWVudCgpe1xuICAgIC8vIHRoaXMuTW9kYWxIZWFkZXIgPSBcIkNyZWF0ZSBUZWFtIEFubm91bmNlbWVudFwiO1xuICAgIHRoaXMuT3BlbkZIRGlhbG9nKCdhbm5vdW5jZW1lbnQnLCBcIkNyZWF0ZSBUZWFtIEFubm91bmNlbWVudFwiKTtcblxuICB9XG5cbiAgLy8gcHVibGljIENyZWF0ZUZlYXR1cmVCcmFuY2goKXtcbiAgLy8gICB0aGlzLnJlbW92ZVNlbGVjdGVkQnRuKCk7XG4gIC8vICAgdGhpcy5Nb2RhbEhlYWRlciA9IFwiQ3JlYXRlIEZlYXR1cmUgQnJhbmNoXCI7XG4gIC8vICAgdGhpcy5zZWxlY3RlZEJ0biA9IFwiZmItYnRuXCI7XG4gIC8vICAgdGhpcy5hZGRTZWxlY3RCdG4oKTtcbiAgLy8gICBjb25zb2xlLmxvZyhcImNyZWF0ZSBmZWF0dXJlIGJyYW5jaCBzZWxlY3RlZFwiKTtcbiAgLy8gICB0aGlzLk9wZW5GSERpYWxvZygnYnJhbmNoJyk7XG5cbiAgLy8gfVxuXG4gIFxuXG4gIC8vIHB1YmxpYyBPcGVuSXNzdWUoKXtcbiAgLy8gICB0aGlzLnJlbW92ZVNlbGVjdGVkQnRuKCk7XG4gIC8vICAgdGhpcy5Nb2RhbEhlYWRlciA9IFwiT3BlbiBJc3N1ZVwiO1xuICAvLyAgIHRoaXMuc2VsZWN0ZWRCdG4gPSBcIm9pLWJ0blwiO1xuICAvLyAgIHRoaXMuYWRkU2VsZWN0QnRuKCk7XG4gIC8vICAgY29uc29sZS5sb2coXCJvcGVuIGlzc3VlIHNlbGVjdGVkXCIpO1xuICAvLyAgIHRoaXMuT3BlbkZIRGlhbG9nKCdpc3N1ZScpO1xuXG4gIC8vIH1cblxuICAvLyBwdWJsaWMgQ3JlYXRlUHVsbFJlcXVlc3QoKXtcbiAgLy8gICB0aGlzLnJlbW92ZVNlbGVjdGVkQnRuKCk7XG4gIC8vICAgdGhpcy5Nb2RhbEhlYWRlciA9IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiO1xuICAvLyAgIHRoaXMuc2VsZWN0ZWRCdG4gPSBcInByLWJ0blwiO1xuICAvLyAgIHRoaXMuYWRkU2VsZWN0QnRuKCk7XG4gIC8vICAgY29uc29sZS5sb2coXCJjcmVhdGUgcHVsbCByZXF1ZXN0IHNlbGVjdGVkXCIpO1xuICAvLyAgIHRoaXMuT3BlbkZIRGlhbG9nKCdwdWxsLXJlcXVlc3QnKTtcblxuICAvLyB9XG5cbiAgcHVibGljIENyZWF0ZU5ld0FwcCgpe1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTmV3QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICBlbnZpcm9ubWVudExvb2t1cDogdGhpcy5BY3RpdmVFbnZpcm9ubWVudExvb2t1cCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcInJlc3VsdDpcIiwgcmVzdWx0KVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIE9wZW5GSERpYWxvZyhtb2RhbFR5cGU6IHN0cmluZywgbW9kYWxIZWFkZXI6IHN0cmluZyl7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihGZWVkSGVhZGVyRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGlhbG9nVGl0bGU6IG1vZGFsSGVhZGVyLFxuICAgICAgICB0eXBlOiBtb2RhbFR5cGUsXG4gICAgICAgIHNvdXJjZUNvbnRyb2xMb29rdXA6IHRoaXMuU291cmNlQ29udHJvbExvb2t1cCA/IHRoaXMuU291cmNlQ29udHJvbExvb2t1cCA6IG51bGxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnVGhlIGRpYWxvZyB3YXMgY2xvc2VkJyk7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcInJlc3VsdDpcIiwgcmVzdWx0KVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIFJvdXRlVG9QYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcGF0aDtcbiAgfVxuXG5cbiAgcHVibGljIFN1Ym1pdCgpe1xuICAgIGNvbnNvbGUubG9nKFwic3VibWl0dGluZzogXCIsIHRoaXMudmFsdWUpO1xuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZEJ0bil7XG4gICAgICBjYXNlIFwicHItYnRuXCI6XG4gICAgICAgIC8vUHVsbCByZXF1ZXN0XG4gICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRpbmcgcHVsbCByZXF1ZXN0OiBcIiwgdGhpcy52YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm9pLWJ0blwiOlxuICAgICAgICAvL09wZW4gSXNzdWVcbiAgICAgICAgY29uc29sZS5sb2coXCJPcGVuIGlzc3VlOiBcIiwgdGhpcy52YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImZiLWJ0blwiOlxuICAgICAgICAvL0ZlYXR1cmUgQnJhbmNoXG4gICAgICAgIGNvbnNvbGUubG9nKFwiY3JlYXRpbmcgZmVhdHVyZSBicmFuY2g6IFwiLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmxvZyhcImhtbVwiKVxuXG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vSEVMUEVSU1xuXG4gIHByb3RlY3RlZCBhZGRTZWxlY3RCdG4oKXsgICAgXG4gICAgKDxIVE1MRWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnNlbGVjdGVkQnRuKSk/LmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVtb3ZlU2VsZWN0ZWRCdG4oKXtcbiAgICAoPEhUTUxFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuc2VsZWN0ZWRCdG4pKT8uY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKTtcbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJzb2NpYWwtY2FyZFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nRmVlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJnaC1jYXJkLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgIDxtYXQtaWNvbiBmeEZsZXg9XCIxNSVcIiBjbGFzcz1cImdoLWljb25cIiBjb2xvcj1cInByaW1hcnlcIj5lcnJvcl9vdXRsaW5lPC9tYXQtaWNvbj5cbiAgICAgIDxkaXYgZnhGbGV4PVwiODUlXCIgY2xhc3M9XCJnaC1jYXJkLW1haW4tY29udGVudFwiPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgIG1hdC1idXR0b24gXG4gICAgICAgICAgY2xhc3M9XCJtYWluLWJ0blwiXG4gICAgICAgICAgKGNsaWNrKT1cIkNyZWF0ZUFubm91bmNlbWVudCgpXCIgXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgPkNyZWF0ZSBUZWFtIEFubm91bmNlbWVudDwvYnV0dG9uPlxuXG4gICAgICAgIDwhLS0gPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJnaC1pbnB1dFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+e3sgSW5wdXRMYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoY2xpY2spPVwiT3BlbkZIRGlhbG9nKCdhbm5vdW5jZW1lbnQnKVwiLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD4gLS0+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSA8YnV0dG9uXG4gICAgICAgIGZ4RmxleD1cIjE1JVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cIlN1Ym1pdCgpXCJcbiAgICAgICAgaWQ9XCJzdWJtaXQtYnRuXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAgU3VibWl0XG4gICAgICA8L2J1dHRvbj4gLS0+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCIgXG4gICAgPlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgRmVlZEhlYWRlckFjdGlvbnNcIlxuICAgICAgICBtYXQtYnV0dG9uIFxuICAgICAgICAoY2xpY2spPVwiT3BlbkZIRGlhbG9nKGFjdGlvbi5BY3Rpb24sIGFjdGlvbi5UZXh0KVwiIFxuICAgICAgICBpZD1cInByLWJ0blwiIFxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgPlxuICAgICAgPG1hdC1pY29uPnt7YWN0aW9uLkljb259fTwvbWF0LWljb24+XG4gICAgICAgIHt7YWN0aW9uLlRleHR9fVxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDwhLS0gPGJ1dHRvbiBcbiAgICAgICAgbWF0LWJ1dHRvbiBcbiAgICAgICAgKGNsaWNrKT1cIk9wZW5Jc3N1ZSgpXCIgXG4gICAgICAgIGlkPVwib2ktYnRuXCIgXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIE9wZW4gSXNzdWVcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uIFxuICAgICAgICBtYXQtYnV0dG9uIFxuICAgICAgICAoY2xpY2spPVwiQ3JlYXRlRmVhdHVyZUJyYW5jaCgpXCIgXG4gICAgICAgIGlkPVwiZmItYnRuXCIgXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIEZlYXR1cmUgQnJhbmNoXG4gICAgICA8L2J1dHRvbj4gLS0+XG5cbiAgICAgIDwhLS0gPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBhcmlhLWxhYmVsPVwibWVudVwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImdoLW1lbnUtYWN0aW9uXCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiQ3JlYXRlTmV3QXBwKClcIj5cbiAgICAgICAgICBDcmVhdGUgTmV3IEFwcFxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJnaC1tZW51LWFjdGlvblwiXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgIChjbGljayk9XCJSb3V0ZVRvUGF0aCgnL2Rhc2hib2FyZC9jcmVhdGUtcHJvamVjdCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIENyZWF0ZSBQcm9qZWN0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT4gLS0+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIFNLRUxFVE9OIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdGZWVkXCI+XG4gICAgPGRpdiBpZD1cImdoLWNhcmQtc2tlbGV0b25cIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgICA8c2tlbGV0b24tYXZhdGFyXG4gICAgICAgIGNsYXNzPVwiZ2gtaWNvblwiXG4gICAgICAgIFtzaG93SWNvbl09XCJmYWxzZVwiXG4gICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgPjwvc2tlbGV0b24tYXZhdGFyPlxuXG4gICAgICA8ZGl2IGZ4RmxleD1cIjg1JVwiIGNsYXNzPVwiZ2gtY2FyZC1tYWluLWNvbnRlbnRcIj5cbiAgICAgICAgPHNrZWxldG9uLWJsb2NrXG4gICAgICAgICAgaGVpZ2h0PVwiNjBweFwiXG4gICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgID48L3NrZWxldG9uLWJsb2NrPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gPGRpdlxuICAgICAgICBza2VsZXRvbi10ZXh0XG4gICAgICAgIGZ4RmxleD1cIjE1JVwiXG4gICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICBzdHlsZT1cIm1hcmdpbjogMHB4IDEwcHhcIlxuICAgICAgPlxuICAgICAgICBTdWJtaXRcbiAgICAgIDwvZGl2PiAtLT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiPlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5QdWxsIFJlcXVlc3Q8L2Rpdj5cbiAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+T3BlbiBJc3N1ZTwvZGl2PlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5GZWF0dXJlIEJyYW5jaDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlxuICAgICAgICA8bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9tYXQtY2FyZD5cbiJdfQ==
|