@lowcodeunit/applications-flow-common 1.33.97-lets-get-social-ish → 1.33.98-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/bundles/lowcodeunit-applications-flow-common.umd.js +434 -6
- package/bundles/lowcodeunit-applications-flow-common.umd.js.map +1 -1
- package/bundles/lowcodeunit-applications-flow-common.umd.min.js +2 -2
- package/bundles/lowcodeunit-applications-flow-common.umd.min.js.map +1 -1
- package/esm2015/lib/controls/build-pipeline-form/build-pipeline-form.component.js +69 -5
- package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +301 -5
- package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +1 -1
- package/fesm2015/lowcodeunit-applications-flow-common.js +359 -6
- package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -1
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +27 -1
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +1 -1
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +67 -3
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +1 -1
- package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +1 -1
- package/lowcodeunit-applications-flow-common.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,79 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { FormBuilder } from '@angular/forms';
|
|
3
|
+
import { ApplicationsFlowService } from '../../services/applications-flow.service';
|
|
4
|
+
import { ProjectHostingDetails } from '../../state/applications-flow.state';
|
|
2
5
|
export class BuildPipelineFormComponent {
|
|
3
|
-
constructor() {
|
|
6
|
+
constructor(formBldr, appsFlowSvc) {
|
|
7
|
+
this.formBldr = formBldr;
|
|
8
|
+
this.appsFlowSvc = appsFlowSvc;
|
|
9
|
+
this.HostingDetails = new ProjectHostingDetails();
|
|
10
|
+
}
|
|
11
|
+
//PROPERTIES
|
|
12
|
+
get Artifact() {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
return ((_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Artifacts) && this.ArtifactLookup
|
|
15
|
+
? ((_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Artifacts[this.ArtifactLookup]) || {}
|
|
16
|
+
: {};
|
|
17
|
+
}
|
|
18
|
+
get ArtifactLookup() {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
const artLookup = ((_a = this.DevOpsAction) === null || _a === void 0 ? void 0 : _a.ArtifactLookups) ? (_b = this.DevOpsAction) === null || _b === void 0 ? void 0 : _b.ArtifactLookups[0] : null;
|
|
21
|
+
return artLookup;
|
|
22
|
+
}
|
|
23
|
+
get DevOpsAction() {
|
|
24
|
+
return this.Environment.DevOpsActions && this.DevOpsActionLookup
|
|
25
|
+
? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}
|
|
26
|
+
: {};
|
|
27
|
+
}
|
|
28
|
+
get DevOpsActions() {
|
|
29
|
+
return this.Environment.DevOpsActions || {};
|
|
30
|
+
}
|
|
31
|
+
get EditingSourceControl() {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
let sc = ((_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Sources) ? (_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Sources[this.EditingSourceControlLookup] : null;
|
|
34
|
+
if (sc == null && this.EditingSourceControlLookup) {
|
|
35
|
+
sc = {};
|
|
36
|
+
}
|
|
37
|
+
return sc;
|
|
38
|
+
}
|
|
39
|
+
get SourceControlLookups() {
|
|
40
|
+
return Object.keys(this.SourceControls || {});
|
|
41
|
+
}
|
|
42
|
+
get SourceControls() {
|
|
43
|
+
return this.Environment.Sources || {};
|
|
44
|
+
}
|
|
4
45
|
ngOnInit() {
|
|
5
46
|
}
|
|
47
|
+
//API METHODS
|
|
48
|
+
//HELPERS
|
|
49
|
+
loadProjectHostingDetails() {
|
|
50
|
+
this.HostingDetails.Loading = true;
|
|
51
|
+
this.appsFlowSvc
|
|
52
|
+
.LoadProjectHostingDetails(this.Organization, this.Repository, this.MainBranch)
|
|
53
|
+
.subscribe((response) => {
|
|
54
|
+
this.HostingDetails = response.Model;
|
|
55
|
+
this.HostingDetails.Loading = false;
|
|
56
|
+
}, (err) => {
|
|
57
|
+
this.HostingDetails.Loading = false;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
6
60
|
}
|
|
7
61
|
BuildPipelineFormComponent.decorators = [
|
|
8
62
|
{ type: Component, args: [{
|
|
9
63
|
selector: 'lcu-build-pipeline-form',
|
|
10
|
-
template: "<
|
|
64
|
+
template: "<div class=\"form-card\" fxFlex=\"35%\" fxFlex.lt-md=\"100%\">\n <mat-card\n class=\"spread\"\n *ngIf=\"EditingSourceControl?.Branches?.length > 0\"\n >\n <mat-card-header>\n <mat-card-title> Build Pipeline </mat-card-title>\n\n <mat-hint>\n Changes made here are reflected for all sources using this\n DevOpsAction\n </mat-hint>\n </mat-card-header>\n\n <mat-card-content>\n\n <ng-container>\n <lcu-hosting-details-form-group\n [artifact]=\"Artifact\"\n [devops-action]=\"DevOpsActions[DevOpsActionLookup]\"\n [details]=\"HostingDetails\"\n [formGroup]=\"DevOpsFormGroup\"\n [organization]=\"Organization\"\n [disabled]=\"HostingDetails?.Loading\"\n ></lcu-hosting-details-form-group>\n </ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n",
|
|
11
65
|
styles: [""]
|
|
12
66
|
},] }
|
|
13
67
|
];
|
|
14
|
-
BuildPipelineFormComponent.ctorParameters = () => [
|
|
15
|
-
|
|
68
|
+
BuildPipelineFormComponent.ctorParameters = () => [
|
|
69
|
+
{ type: FormBuilder },
|
|
70
|
+
{ type: ApplicationsFlowService }
|
|
71
|
+
];
|
|
72
|
+
BuildPipelineFormComponent.propDecorators = {
|
|
73
|
+
DevOpsActionLookup: [{ type: Input, args: ['devops-action-lookup',] }],
|
|
74
|
+
Environment: [{ type: Input, args: ['environment',] }],
|
|
75
|
+
MainBranch: [{ type: Input, args: ['main-branch',] }],
|
|
76
|
+
Organization: [{ type: Input, args: ['organization',] }],
|
|
77
|
+
Repository: [{ type: Input, args: ['repository',] }]
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYXBwbGljYXRpb25zLWZsb3cvYXBwbGljYXRpb25zLWZsb3cvcHJvamVjdHMvY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9idWlsZC1waXBlbGluZS1mb3JtL2J1aWxkLXBpcGVsaW5lLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU81RSxNQUFNLE9BQU8sMEJBQTBCO0lBMEVyQyxZQUFzQixRQUFxQixFQUMvQixXQUFvQztRQUQxQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBMUVKLFlBQVk7SUFFWixJQUFXLFFBQVE7O1FBQ2pCLE9BQU8sT0FBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxTQUFTLEtBQUksSUFBSSxDQUFDLGNBQWM7WUFDdkQsQ0FBQyxDQUFDLE9BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLE1BQUssRUFBRTtZQUN4RCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsQ0FBQztJQUVELElBQVcsY0FBYzs7UUFDdkIsTUFBTSxTQUFTLEdBQUcsT0FBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxlQUFlLEVBQ2xELENBQUMsT0FBQyxJQUFJLENBQUMsWUFBWSwwQ0FBRSxlQUFlLENBQUMsQ0FBQyxFQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRVQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUlELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxrQkFBa0I7WUFDOUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDL0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7SUFLRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQU1ELElBQVcsb0JBQW9COztRQUMzQixJQUFJLEVBQUUsR0FBRyxPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sRUFDaEMsQ0FBQyxPQUFDLElBQUksQ0FBQyxXQUFXLDBDQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQzNELENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFVCxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ2pELEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDVDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQWtCRCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFPTSxRQUFRO0lBRWYsQ0FBQztJQUVILGFBQWE7SUFFYixTQUFTO0lBQ0MseUJBQXlCO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVuQyxJQUFJLENBQUMsV0FBVzthQUNiLHlCQUF5QixDQUN4QixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxVQUFVLENBQ2hCO2FBQ0EsU0FBUyxDQUNSLENBQUMsUUFBb0QsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUVyQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFdEMsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdEMsQ0FBQyxDQUNGLENBQUM7SUFFUixDQUFDOzs7WUFoSEEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLDI2QkFBbUQ7O2FBRXBEOzs7WUFWUSxXQUFXO1lBR1gsdUJBQXVCOzs7aUNBbUMvQixLQUFLLFNBQUMsc0JBQXNCOzBCQXVCMUIsS0FBSyxTQUFDLGFBQWE7eUJBT25CLEtBQUssU0FBQyxhQUFhOzJCQUduQixLQUFLLFNBQUMsY0FBYzt5QkFHcEIsS0FBSyxTQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgRWFDQXJ0aWZhY3QsIEVhQ0Rldk9wc0FjdGlvbiwgRWFDRW52aXJvbm1lbnRBc0NvZGUsIEVhQ1NvdXJjZUNvbnRyb2wgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHBsaWNhdGlvbnMtZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RIb3N0aW5nRGV0YWlscyB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWJ1aWxkLXBpcGVsaW5lLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnVpbGQtcGlwZWxpbmUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2J1aWxkLXBpcGVsaW5lLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCdWlsZFBpcGVsaW5lRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblxuLy9QUk9QRVJUSUVTXG5cbnB1YmxpYyBnZXQgQXJ0aWZhY3QoKTogRWFDQXJ0aWZhY3Qge1xuICByZXR1cm4gdGhpcy5FbnZpcm9ubWVudD8uQXJ0aWZhY3RzICYmIHRoaXMuQXJ0aWZhY3RMb29rdXBcbiAgICA/IHRoaXMuRW52aXJvbm1lbnQ/LkFydGlmYWN0c1t0aGlzLkFydGlmYWN0TG9va3VwXSB8fCB7fVxuICAgIDoge307XG59XG5cbnB1YmxpYyBnZXQgQXJ0aWZhY3RMb29rdXAoKTogc3RyaW5nIHtcbiAgY29uc3QgYXJ0TG9va3VwID0gdGhpcy5EZXZPcHNBY3Rpb24/LkFydGlmYWN0TG9va3Vwc1xuICAgID8gdGhpcy5EZXZPcHNBY3Rpb24/LkFydGlmYWN0TG9va3Vwc1swXVxuICAgIDogbnVsbDtcblxuICByZXR1cm4gYXJ0TG9va3VwO1xufVxuXG5cblxucHVibGljIGdldCBEZXZPcHNBY3Rpb24oKTogRWFDRGV2T3BzQWN0aW9uIHtcbiAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQuRGV2T3BzQWN0aW9ucyAmJiB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cFxuICAgID8gdGhpcy5FbnZpcm9ubWVudC5EZXZPcHNBY3Rpb25zW3RoaXMuRGV2T3BzQWN0aW9uTG9va3VwXSB8fCB7fVxuICAgIDoge307XG59XG5cbkBJbnB1dCgnZGV2b3BzLWFjdGlvbi1sb29rdXAnKVxucHVibGljIERldk9wc0FjdGlvbkxvb2t1cDogc3RyaW5nO1xuXG5wdWJsaWMgZ2V0IERldk9wc0FjdGlvbnMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEZXZPcHNBY3Rpb24gfSB7XG4gIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgfHwge307XG59XG5cblxuXG5wdWJsaWMgRGV2T3BzRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbnB1YmxpYyBnZXQgRWRpdGluZ1NvdXJjZUNvbnRyb2woKTogRWFDU291cmNlQ29udHJvbCB7XG4gICAgbGV0IHNjID0gdGhpcy5FbnZpcm9ubWVudD8uU291cmNlc1xuICAgICAgPyB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzW3RoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXBdXG4gICAgICA6IG51bGw7XG5cbiAgICBpZiAoc2MgPT0gbnVsbCAmJiB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwKSB7XG4gICAgICBzYyA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBzYztcbiAgfVxuXG4gIEBJbnB1dCgnZW52aXJvbm1lbnQnKVxuICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gIHB1YmxpYyBFZGl0aW5nU291cmNlQ29udHJvbExvb2t1cDogc3RyaW5nO1xuXG4gIHB1YmxpYyBIb3N0aW5nRGV0YWlsczogUHJvamVjdEhvc3RpbmdEZXRhaWxzO1xuXG4gIEBJbnB1dCgnbWFpbi1icmFuY2gnKVxuICBwdWJsaWMgTWFpbkJyYW5jaDogc3RyaW5nO1xuXG4gIEBJbnB1dCgnb3JnYW5pemF0aW9uJylcbiAgcHVibGljIE9yZ2FuaXphdGlvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgncmVwb3NpdG9yeScpXG4gIHB1YmxpYyBSZXBvc2l0b3J5OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9sTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Tb3VyY2VDb250cm9scyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xzKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDU291cmNlQ29udHJvbCB9IHtcbiAgICByZXR1cm4gdGhpcy5FbnZpcm9ubWVudC5Tb3VyY2VzIHx8IHt9O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlKSB7XG4gICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IG5ldyBQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTtcbiAgIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgXG4gIH1cblxuLy9BUEkgTUVUSE9EU1xuICBcbi8vSEVMUEVSU1xucHJvdGVjdGVkIGxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgIC5Mb2FkUHJvamVjdEhvc3RpbmdEZXRhaWxzKFxuICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbixcbiAgICAgICAgdGhpcy5SZXBvc2l0b3J5LFxuICAgICAgICB0aGlzLk1haW5CcmFuY2hcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxQcm9qZWN0SG9zdGluZ0RldGFpbHM+KSA9PiB7XG4gICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscyA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuICBcbn1cbiBcblxufVxuIl19
|
package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js
CHANGED
|
@@ -1,15 +1,311 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
|
2
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { FormBuilder, FormControl, Validators } from '@angular/forms';
|
|
4
|
+
import { ApplicationsFlowService } from '../../services/applications-flow.service';
|
|
5
|
+
import { ProjectHostingDetails } from '../../state/applications-flow.state';
|
|
2
6
|
export class DevopsSourceControlFormComponent {
|
|
3
|
-
|
|
7
|
+
// Constructors
|
|
8
|
+
constructor(formBuilder, appsFlowSvc) {
|
|
9
|
+
this.formBuilder = formBuilder;
|
|
10
|
+
this.appsFlowSvc = appsFlowSvc;
|
|
11
|
+
this.SeparatorKeysCodes = [ENTER, COMMA];
|
|
12
|
+
this.BuildPath = null;
|
|
13
|
+
this.HostingDetails = new ProjectHostingDetails();
|
|
14
|
+
this.SelectedBranches = [];
|
|
15
|
+
this.SourceControlRoot = '';
|
|
16
|
+
this.UseBranches = true;
|
|
17
|
+
this.UseBuildPath = false;
|
|
18
|
+
}
|
|
19
|
+
// Fields
|
|
20
|
+
// Properties
|
|
21
|
+
get BranchesFormControl() {
|
|
22
|
+
return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'branches');
|
|
23
|
+
}
|
|
24
|
+
get BuildPathFormControl() {
|
|
25
|
+
return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'buildPath');
|
|
26
|
+
}
|
|
27
|
+
get DevOpsActionLookups() {
|
|
28
|
+
return Object.keys(this.DevOpsActions || {});
|
|
29
|
+
}
|
|
30
|
+
get DevOpsActionLookup() {
|
|
31
|
+
var _a, _b, _c;
|
|
32
|
+
if (!!((_a = this.DevOpsActionLookupFormControl) === null || _a === void 0 ? void 0 : _a.value)) {
|
|
33
|
+
return this.DevOpsActionLookupFormControl.value;
|
|
34
|
+
}
|
|
35
|
+
if (!!((_b = this.EditingSourceControl) === null || _b === void 0 ? void 0 : _b.DevOpsActionTriggerLookups)) {
|
|
36
|
+
return (_c = this.EditingSourceControl) === null || _c === void 0 ? void 0 : _c.DevOpsActionTriggerLookups[0];
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
get DevOpsActionLookupFormControl() {
|
|
43
|
+
return this.DevOpsSourceControlFormGroup.get('devOpsActionLookup');
|
|
44
|
+
}
|
|
45
|
+
get DevOpsActions() {
|
|
46
|
+
return this.Environment.DevOpsActions || {};
|
|
47
|
+
}
|
|
48
|
+
get EditingSourceControl() {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
let sc = ((_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Sources) ? (_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Sources[this.EditingSourceControlLookup] : null;
|
|
51
|
+
if (sc == null && this.EditingSourceControlLookup) {
|
|
52
|
+
sc = {};
|
|
53
|
+
}
|
|
54
|
+
return sc;
|
|
55
|
+
}
|
|
56
|
+
get MainBranchFormControl() {
|
|
57
|
+
return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'mainBranch');
|
|
58
|
+
}
|
|
59
|
+
get OrganizationFormControl() {
|
|
60
|
+
return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'organization');
|
|
61
|
+
}
|
|
62
|
+
get RepositoryFormControl() {
|
|
63
|
+
return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'repository');
|
|
64
|
+
}
|
|
65
|
+
// Life Cycle
|
|
66
|
+
ngAfterViewInit() { }
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
this.destroyFormControls();
|
|
69
|
+
}
|
|
4
70
|
ngOnInit() {
|
|
71
|
+
this.setupFormControls();
|
|
72
|
+
this.RefreshOrganizations();
|
|
73
|
+
}
|
|
74
|
+
// API Methods
|
|
75
|
+
AddBranchOption(event) {
|
|
76
|
+
this.addBranchOption(event.value);
|
|
77
|
+
event.input.value = '';
|
|
78
|
+
}
|
|
79
|
+
BranchOptionSelected(event) {
|
|
80
|
+
this.addBranchOption(event.option.value);
|
|
81
|
+
}
|
|
82
|
+
BranchesChanged(branches) {
|
|
83
|
+
this.loadProjectHostingDetails();
|
|
84
|
+
}
|
|
85
|
+
BuildPathChanged(event) {
|
|
86
|
+
}
|
|
87
|
+
CreateRepository() {
|
|
88
|
+
this.CreatingRepository = true;
|
|
89
|
+
this.RepositoryFormControl.reset();
|
|
90
|
+
}
|
|
91
|
+
CancelCreateRepository() {
|
|
92
|
+
this.CreatingRepository = false;
|
|
93
|
+
}
|
|
94
|
+
DevOpsActionLookupChanged(event) {
|
|
95
|
+
this.configureDevOpsAction();
|
|
96
|
+
}
|
|
97
|
+
MainBranchChanged(event) {
|
|
98
|
+
this.emitBranchesChanged();
|
|
99
|
+
}
|
|
100
|
+
OrganizationChanged(event) {
|
|
101
|
+
const org = this.OrganizationFormControl;
|
|
102
|
+
this.RepositoryFormControl.reset();
|
|
103
|
+
if (this.UseBranches) {
|
|
104
|
+
this.BranchesFormControl.reset();
|
|
105
|
+
this.SelectedBranches = [];
|
|
106
|
+
}
|
|
107
|
+
this.listRepositories();
|
|
108
|
+
}
|
|
109
|
+
RefreshOrganizations() {
|
|
110
|
+
var _a, _b, _c;
|
|
111
|
+
// this.Loading = true;
|
|
112
|
+
this.listOrganizations();
|
|
113
|
+
(_a = this.OrganizationFormControl) === null || _a === void 0 ? void 0 : _a.reset();
|
|
114
|
+
(_b = this.RepositoryFormControl) === null || _b === void 0 ? void 0 : _b.reset();
|
|
115
|
+
if (this.UseBranches) {
|
|
116
|
+
(_c = this.BranchesFormControl) === null || _c === void 0 ? void 0 : _c.reset();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
RemoveBranchOption(option) {
|
|
120
|
+
const index = this.SelectedBranches.indexOf(option);
|
|
121
|
+
if (index >= 0) {
|
|
122
|
+
this.SelectedBranches.splice(index, 1);
|
|
123
|
+
}
|
|
124
|
+
this.emitBranchesChanged();
|
|
125
|
+
}
|
|
126
|
+
RepositoryChanged(event) {
|
|
127
|
+
const repo = this.RepositoryFormControl;
|
|
128
|
+
if (this.UseBranches) {
|
|
129
|
+
this.BranchesFormControl.reset();
|
|
130
|
+
this.SelectedBranches = [];
|
|
131
|
+
this.listBranches();
|
|
132
|
+
}
|
|
133
|
+
if (!this.UseBranches) {
|
|
134
|
+
this.listBuildPaths();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
SaveRepository() {
|
|
138
|
+
this.Loading = true;
|
|
139
|
+
const org = this.OrganizationFormControl.value;
|
|
140
|
+
const repoName = this.RepositoryFormControl.value;
|
|
141
|
+
this.appsFlowSvc
|
|
142
|
+
.CreateRepository(org, repoName)
|
|
143
|
+
.subscribe((response) => {
|
|
144
|
+
if (response.Status.Code === 0) {
|
|
145
|
+
this.listRepositories(repoName);
|
|
146
|
+
this.CreatingRepository = false;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// TODO: Need to surface an error to the user...
|
|
150
|
+
this.Loading = false;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
// Helpers
|
|
155
|
+
addBranchOption(value) {
|
|
156
|
+
value = (value || '').trim();
|
|
157
|
+
if (value && this.SelectedBranches.indexOf(value) < 0) {
|
|
158
|
+
this.SelectedBranches.push(value);
|
|
159
|
+
}
|
|
160
|
+
this.BranchesInput.nativeElement.blur();
|
|
161
|
+
this.emitBranchesChanged();
|
|
162
|
+
}
|
|
163
|
+
configureDevOpsAction() {
|
|
164
|
+
setTimeout(() => {
|
|
165
|
+
this.DevOpsActionLookupFormControl.setValue(this.DevOpsActionLookup);
|
|
166
|
+
}, 0);
|
|
167
|
+
}
|
|
168
|
+
destroyFormControls() {
|
|
169
|
+
var _a, _b, _c, _d;
|
|
170
|
+
this.DevOpsSourceControlFormGroup.removeControl([this.SourceControlRoot, 'mainBranch'].join(''));
|
|
171
|
+
(_a = this.DevOpsSourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.removeControl([this.SourceControlRoot, 'branches'].join(''));
|
|
172
|
+
(_b = this.DevOpsSourceControlFormGroup) === null || _b === void 0 ? void 0 : _b.removeControl([this.SourceControlRoot, 'buildPath'].join(''));
|
|
173
|
+
this.SelectedBranches = [];
|
|
174
|
+
(_c = this.DevOpsSourceControlFormGroup) === null || _c === void 0 ? void 0 : _c.removeControl([this.SourceControlRoot, 'organization'].join(''));
|
|
175
|
+
(_d = this.DevOpsSourceControlFormGroup) === null || _d === void 0 ? void 0 : _d.removeControl([this.SourceControlRoot, 'repository'].join(''));
|
|
176
|
+
}
|
|
177
|
+
emitBranchesChanged() {
|
|
178
|
+
var _a, _b;
|
|
179
|
+
if (((_a = this.SelectedBranches) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
|
|
180
|
+
(!this.MainBranchFormControl.value ||
|
|
181
|
+
this.SelectedBranches.indexOf(this.MainBranchFormControl.value) < 0)) {
|
|
182
|
+
this.MainBranchFormControl.setValue(this.SelectedBranches.find((branch) => branch === 'main' || branch === 'master') || this.SelectedBranches[0]);
|
|
183
|
+
}
|
|
184
|
+
else if (((_b = this.SelectedBranches) === null || _b === void 0 ? void 0 : _b.length) <= 0) {
|
|
185
|
+
this.MainBranchFormControl.reset();
|
|
186
|
+
}
|
|
187
|
+
this.BranchesFormControl.setValue(this.SelectedBranches.join(','));
|
|
188
|
+
this.BranchesChanged(this.SelectedBranches || []);
|
|
189
|
+
}
|
|
190
|
+
listBranches() {
|
|
191
|
+
if (this.UseBranches) {
|
|
192
|
+
this.Loading = true;
|
|
193
|
+
this.appsFlowSvc
|
|
194
|
+
.ListBranches(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
|
|
195
|
+
.subscribe((response) => {
|
|
196
|
+
var _a, _b, _c;
|
|
197
|
+
this.BranchOptions = response.Model;
|
|
198
|
+
this.Loading = false;
|
|
199
|
+
if (((_b = (_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Branches) === null || _b === void 0 ? void 0 : _b.length) > 0) {
|
|
200
|
+
this.SelectedBranches = this.EditingSourceControl.Branches;
|
|
201
|
+
}
|
|
202
|
+
else if (((_c = this.BranchOptions) === null || _c === void 0 ? void 0 : _c.length) === 1) {
|
|
203
|
+
this.BranchesFormControl.setValue(this.BranchOptions[0].Name);
|
|
204
|
+
this.SelectedBranches = [this.BranchOptions[0].Name];
|
|
205
|
+
}
|
|
206
|
+
this.emitBranchesChanged();
|
|
207
|
+
this.listBuildPaths();
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
listBuildPaths() {
|
|
212
|
+
if (this.UseBuildPath) {
|
|
213
|
+
this.Loading = true;
|
|
214
|
+
this.appsFlowSvc
|
|
215
|
+
.ListBuildPaths(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
|
|
216
|
+
.subscribe((response) => {
|
|
217
|
+
var _a;
|
|
218
|
+
this.BuildPathOptions = response.Model;
|
|
219
|
+
this.Loading = false;
|
|
220
|
+
if (((_a = this.BuildPathOptions) === null || _a === void 0 ? void 0 : _a.length) === 1) {
|
|
221
|
+
this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
listOrganizations() {
|
|
227
|
+
this.Loading = true;
|
|
228
|
+
this.appsFlowSvc
|
|
229
|
+
.ListOrganizations()
|
|
230
|
+
.subscribe((response) => {
|
|
231
|
+
var _a;
|
|
232
|
+
this.OrganizationOptions = response.Model;
|
|
233
|
+
this.Loading = false;
|
|
234
|
+
if ((_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Organization) {
|
|
235
|
+
setTimeout(() => {
|
|
236
|
+
var _a;
|
|
237
|
+
this.OrganizationFormControl.setValue(this.EditingSourceControl.Organization);
|
|
238
|
+
this.listRepositories((_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Repository);
|
|
239
|
+
}, 0);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
listRepositories(activeRepo = null) {
|
|
244
|
+
this.Loading = true;
|
|
245
|
+
this.appsFlowSvc
|
|
246
|
+
.ListRepositories(this.OrganizationFormControl.value)
|
|
247
|
+
.subscribe((response) => {
|
|
248
|
+
var _a;
|
|
249
|
+
this.RepositoryOptions = response.Model;
|
|
250
|
+
this.Loading = false;
|
|
251
|
+
if (activeRepo) {
|
|
252
|
+
setTimeout(() => {
|
|
253
|
+
this.RepositoryFormControl.setValue(activeRepo);
|
|
254
|
+
this.listBranches();
|
|
255
|
+
if (!this.UseBranches) {
|
|
256
|
+
this.listBuildPaths();
|
|
257
|
+
}
|
|
258
|
+
}, 0);
|
|
259
|
+
}
|
|
260
|
+
else if (((_a = this.RepositoryOptions) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
|
|
261
|
+
this.CreatingRepository = true;
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
loadProjectHostingDetails() {
|
|
266
|
+
var _a, _b, _c, _d;
|
|
267
|
+
if (((_a = this.SelectedBranches) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
268
|
+
this.HostingDetails.Loading = true;
|
|
269
|
+
this.appsFlowSvc
|
|
270
|
+
.LoadProjectHostingDetails((_b = this.OrganizationFormControl) === null || _b === void 0 ? void 0 : _b.value, (_c = this.RepositoryFormControl) === null || _c === void 0 ? void 0 : _c.value, (_d = this.MainBranchFormControl) === null || _d === void 0 ? void 0 : _d.value)
|
|
271
|
+
.subscribe((response) => {
|
|
272
|
+
this.HostingDetails = response.Model;
|
|
273
|
+
this.HostingDetails.Loading = false;
|
|
274
|
+
this.configureDevOpsAction();
|
|
275
|
+
}, (err) => {
|
|
276
|
+
this.HostingDetails.Loading = false;
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
setupFormControls() {
|
|
281
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
282
|
+
this.destroyFormControls();
|
|
283
|
+
this.DevOpsSourceControlFormGroup.addControl('devOpsActionLookup', new FormControl(this.DevOpsActionLookup || '', []));
|
|
284
|
+
this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'organization'].join(''), new FormControl((_a = this.EditingSourceControl.Organization) !== null && _a !== void 0 ? _a : '', Validators.required));
|
|
285
|
+
this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'repository'].join(''), new FormControl((_b = this.EditingSourceControl.Repository) !== null && _b !== void 0 ? _b : '', Validators.required));
|
|
286
|
+
if (this.UseBranches) {
|
|
287
|
+
this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'branches'].join(''), new FormControl((_d = (_c = this.EditingSourceControl) === null || _c === void 0 ? void 0 : _c.Branches) !== null && _d !== void 0 ? _d : '', Validators.required));
|
|
288
|
+
this.SelectedBranches = (_e = this.EditingSourceControl) === null || _e === void 0 ? void 0 : _e.Branches;
|
|
289
|
+
this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'mainBranch'].join(''), new FormControl((_f = this.EditingSourceControl.MainBranch) !== null && _f !== void 0 ? _f : '', Validators.required));
|
|
290
|
+
}
|
|
291
|
+
if (this.UseBuildPath) {
|
|
292
|
+
this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'buildPath'].join(''), new FormControl((_g = this.BuildPath) !== null && _g !== void 0 ? _g : '', Validators.required));
|
|
293
|
+
}
|
|
5
294
|
}
|
|
6
295
|
}
|
|
7
296
|
DevopsSourceControlFormComponent.decorators = [
|
|
8
297
|
{ type: Component, args: [{
|
|
9
298
|
selector: 'lcu-devops-source-control-form',
|
|
10
|
-
template: "<p>devops-source-control-form works!</p>\n",
|
|
299
|
+
template: "<div class=\"form-card\" fxFlex=\"35%\" fxFlex.lt-md=\"100%\">\n <mat-card class=\"spread\">\n <mat-card-header>\n <mat-card-title> Source Control </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div [formGroup]=\"DevOpsSourceControlFormGroup\">\n <div class=\"card\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"devOpsActionLookup\"\n placeholder=\"DevOps Action\"\n [disabled]=\"HostingDetails?.Loading\"\n (selectionChange)=\"DevOpsActionLookupChanged($event)\"\n >\n <ng-container\n *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\"\n >\n <mat-option\n [value]=\"devOpsActionLookup\"\n *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\"\n >\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n \n <mat-option value=\"\">-- Create New --</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"card\" *ngIf=\"OrganizationFormControl?.valid || !Loading\">\n <mat-form-field\n class=\"mat-full-width with-hint\"\n *ngIf=\"OrganizationOptions?.length > 0\"\n >\n <mat-icon class=\"org-icon\" matPrefix>corporate_fare</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'organization'\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n [disabled]=\"Loading || HostingDetails?.Loading\"\n required\n >\n <ng-container *ngFor=\"let orgOpt of OrganizationOptions\">\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-icon matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\"> refresh </mat-icon>\n \n <a\n matSuffix\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n \n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n \n <div\n class=\"card\"\n *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'repository'\"\n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \"\n [disabled]=\"\n !OrganizationFormControl?.valid || Loading || HostingDetails?.Loading\n \"\n (selectionChange)=\"RepositoryChanged($event)\"\n *ngIf=\"!CreatingRepository\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <input\n matInput\n placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\"\n *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || HostingDetails?.Loading\"\n required\n />\n \n <mat-icon\n matSuffix\n (click)=\"CreateRepository()\"\n [fxHide]=\"Loading || HostingDetails?.Loading\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\"\n >\n add_circle\n </mat-icon>\n \n <button mat-button type=\"button\" \n (click)=\"SaveRepository()\" \n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n \n <mat-icon\n matSuffix\n color=\"primary\"\n >\n save\n </mat-icon>\n </button>\n \n <button mat-button type=\"button\" \n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\">\n \n <mat-icon\n matSuffix\n \n >\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n \n <div\n class=\"card\"\n *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n \n <mat-label>Selected Branches</mat-label>\n \n <mat-autocomplete\n (optionSelected)=\"BranchOptionSelected($event)\"\n #branchOptions=\"matAutocomplete\"\n >\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n \n <mat-chip-list #selectedBranches>\n <mat-chip\n [removable]=\"true\"\n (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\"\n >\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n \n <input\n matInput\n placeholder=\"New Branch...\"\n [formControlName]=\"SourceControlRoot + 'branches'\"\n #branches\n [matAutocomplete]=\"branchOptions\"\n [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\"\n [disabled]=\"Loading || HostingDetails?.Loading\"\n required\n />\n </mat-chip-list>\n </mat-form-field>\n \n <mat-form-field\n class=\"mat-full-width with-hint\"\n [fxShow]=\"SelectedBranches?.length > 1\"\n >\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'mainBranch'\"\n placeholder=\"Main Branch\"\n [disabled]=\"Loading || HostingDetails?.Loading\"\n (selectionChange)=\"MainBranchChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let branch of SelectedBranches\">\n <mat-option [value]=\"branch\">\n {{ branch }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-icon matSuffix (click)=\"RefreshOrganizations()\"> refresh </mat-icon>\n \n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n \n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"> launch </mat-icon>\n </a>\n \n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n \n <div\n class=\"card\"\n *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \"\n >\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'buildPath'\"\n placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\"\n (selectionChange)=\"BuildPathChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n \n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n \n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n \n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n \n <h4\n class=\"mat-title\"\n *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\"\n >\n Loading branches\n </h4>\n \n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n </div>\n \n </mat-card-content>\n </mat-card>\n </div>\n",
|
|
11
300
|
styles: [""]
|
|
12
301
|
},] }
|
|
13
302
|
];
|
|
14
|
-
DevopsSourceControlFormComponent.ctorParameters = () => [
|
|
15
|
-
|
|
303
|
+
DevopsSourceControlFormComponent.ctorParameters = () => [
|
|
304
|
+
{ type: FormBuilder },
|
|
305
|
+
{ type: ApplicationsFlowService }
|
|
306
|
+
];
|
|
307
|
+
DevopsSourceControlFormComponent.propDecorators = {
|
|
308
|
+
BranchesInput: [{ type: ViewChild, args: ['branches',] }],
|
|
309
|
+
Environment: [{ type: Input, args: ['environment',] }]
|
|
310
|
+
};
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FwcGxpY2F0aW9ucy1mbG93L2FwcGxpY2F0aW9ucy1mbG93L3Byb2plY3RzL2NvbW1vbi9zcmMvIiwic291cmNlcyI6WyJsaWIvY29udHJvbHMvZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFtQixXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTWxHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBc0QscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU9oSSxNQUFNLE9BQU8sZ0NBQWdDO0lBaUgzQyxnQkFBZ0I7SUFDaEIsWUFDWSxXQUF3QixFQUN4QixXQUFvQztRQURwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFqQmhDLHVCQUFrQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBVSxDQUFDO1FBb0IzRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztRQUVsRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQS9IRCxVQUFVO0lBRVYsY0FBYztJQUNkLElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQWdCRCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFRRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7O1FBQzNCLElBQUksQ0FBQyxRQUFDLElBQUksQ0FBQyw2QkFBNkIsMENBQUUsS0FBSyxDQUFBLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLFFBQUMsSUFBSSxDQUFDLG9CQUFvQiwwQ0FBRSwwQkFBMEIsQ0FBQSxFQUFFO1lBQzNELGFBQU8sSUFBSSxDQUFDLG9CQUFvQiwwQ0FBRSwwQkFBMEIsQ0FBQyxDQUFDLEVBQUU7U0FDakU7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsSUFBVyw2QkFBNkI7UUFDdEMsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBSUQsSUFBVyxvQkFBb0I7O1FBQzdCLElBQUksRUFBRSxHQUFHLE9BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxFQUNoQyxDQUFDLE9BQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVULElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDakQsRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUNUO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBV0QsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBSUQsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBdUNELGNBQWM7SUFDUCxlQUFlLEtBQVUsQ0FBQztJQUUxQixXQUFXO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWU7SUFDUixlQUFlLENBQUMsS0FBd0I7UUFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxLQUFtQztRQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGVBQWUsQ0FBQyxRQUFrQjtRQUN2QyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBc0I7SUFDOUMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRS9CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUVNLHlCQUF5QixDQUFDLEtBQXNCO1FBQ3JELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFzQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBc0I7UUFDL0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBRXpDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWpDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sb0JBQW9COztRQUN6Qix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsTUFBQSxJQUFJLENBQUMsdUJBQXVCLDBDQUFFLEtBQUssR0FBRztRQUV0QyxNQUFBLElBQUksQ0FBQyxxQkFBcUIsMENBQUUsS0FBSyxHQUFHO1FBRXBDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsS0FBSyxHQUFHO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQWM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN4QztRQUVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFzQjtRQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1lBRTNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztRQUVsRCxJQUFJLENBQUMsV0FBVzthQUNiLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7YUFDL0IsU0FBUyxDQUFDLENBQUMsUUFBc0IsRUFBRSxFQUFFO1lBQ3BDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWhDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7YUFDakM7aUJBQU07Z0JBQ0wsa0RBQWtEO2dCQUVsRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7SUFDRCxlQUFlLENBQUMsS0FBYTtRQUNyQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0IsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVTLG1CQUFtQjs7UUFDM0IsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsQ0FDN0MsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNoRCxDQUFDO1FBRUYsTUFBQSxJQUFJLENBQUMsNEJBQTRCLDBDQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFFaEcsTUFBQSxJQUFJLENBQUMsNEJBQTRCLDBDQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFFakcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUUzQixNQUFBLElBQUksQ0FBQyw0QkFBNEIsMENBQUUsYUFBYSxDQUM5QyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQ2pEO1FBRUYsTUFBQSxJQUFJLENBQUMsNEJBQTRCLDBDQUFFLGFBQWEsQ0FDOUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUMvQztJQUNKLENBQUM7SUFFUyxtQkFBbUI7O1FBQzNCLElBQ0UsT0FBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLE1BQU0sSUFBRyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztnQkFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3RFO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDeEIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxLQUFLLFFBQVEsQ0FDckQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQzlCLENBQUM7U0FDSDthQUFNLElBQUksT0FBQSxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLE1BQU0sS0FBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLElBQUksQ0FBQyxXQUFXO2lCQUNiLFlBQVksQ0FDWCxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUNsQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUNqQztpQkFDQSxTQUFTLENBQUMsQ0FBQyxRQUE2QyxFQUFFLEVBQUU7O2dCQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBRXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJLGFBQUEsSUFBSSxDQUFDLG9CQUFvQiwwQ0FBRSxRQUFRLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDO2lCQUM1RDtxQkFBTSxJQUFJLE9BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsTUFBTSxNQUFLLENBQUMsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUU5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFFcEIsSUFBSSxDQUFDLFdBQVc7aUJBQ2IsY0FBYyxDQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQ2pDO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLFFBQXVDLEVBQUUsRUFBRTs7Z0JBQ3JELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUV2QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFFckIsSUFBSSxPQUFBLElBQUksQ0FBQyxnQkFBZ0IsMENBQUUsTUFBTSxNQUFLLENBQUMsRUFBRTtvQkFDdkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDOUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLENBQUMsV0FBVzthQUNiLGlCQUFpQixFQUFFO2FBQ25CLFNBQVMsQ0FBQyxDQUFDLFFBQW1ELEVBQUUsRUFBRTs7WUFDakUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFFMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFFckIsVUFBSSxJQUFJLENBQUMsb0JBQW9CLDBDQUFFLFlBQVksRUFBRTtnQkFDM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTs7b0JBQ2QsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FDdkMsQ0FBQztvQkFFRixJQUFJLENBQUMsZ0JBQWdCLE9BQUMsSUFBSSxDQUFDLG9CQUFvQiwwQ0FBRSxVQUFVLENBQUMsQ0FBQztnQkFDL0QsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ1A7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxhQUFxQixJQUFJO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXO2FBQ2IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQzthQUNwRCxTQUFTLENBQUMsQ0FBQyxRQUFpRCxFQUFFLEVBQUU7O1lBQy9ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBRXhDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBRXJCLElBQUksVUFBVSxFQUFFO2dCQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFFaEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUVwQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO3FCQUN2QjtnQkFDSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDUDtpQkFBTSxJQUFJLE9BQUEsSUFBSSxDQUFDLGlCQUFpQiwwQ0FBRSxNQUFNLEtBQUksQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMseUJBQXlCOztRQUNqQyxJQUFJLE9BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVuQyxJQUFJLENBQUMsV0FBVztpQkFDYix5QkFBeUIsT0FDeEIsSUFBSSxDQUFDLHVCQUF1QiwwQ0FBRSxLQUFLLFFBQ25DLElBQUksQ0FBQyxxQkFBcUIsMENBQUUsS0FBSyxRQUNqQyxJQUFJLENBQUMscUJBQXFCLDBDQUFFLEtBQUssQ0FDbEM7aUJBQ0EsU0FBUyxDQUNSLENBQUMsUUFBb0QsRUFBRSxFQUFFO2dCQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBRXJDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFFcEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLENBQUMsQ0FDRixDQUFDO1NBQ0w7SUFDSCxDQUFDO0lBRVMsaUJBQWlCOztRQUN6QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUMxQyxvQkFBb0IsRUFDcEIsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDbkQsQ0FBQztRQUVGLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLENBQzFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFDakQsSUFBSSxXQUFXLE9BQ2IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksbUNBQUksRUFBRSxFQUM1QyxVQUFVLENBQUMsUUFBUSxDQUNwQixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUMxQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQy9DLElBQUksV0FBVyxPQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ2pGLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDMUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUM3QyxJQUFJLFdBQVcsYUFBQyxJQUFJLENBQUMsb0JBQW9CLDBDQUFFLFFBQVEsbUNBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDaEYsQ0FBQztZQUVGLElBQUksQ0FBQyxnQkFBZ0IsU0FBRyxJQUFJLENBQUMsb0JBQW9CLDBDQUFFLFFBQVEsQ0FBQztZQUU1RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUMxQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQy9DLElBQUksV0FBVyxPQUNiLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsRUFDMUMsVUFBVSxDQUFDLFFBQVEsQ0FDcEIsQ0FDRixDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FDMUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUM5QyxJQUFJLFdBQVcsT0FBQyxJQUFJLENBQUMsU0FBUyxtQ0FBSSxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUMzRCxDQUFDO1NBQ0g7SUFDSCxDQUFDOzs7WUF2ZUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQ0FBZ0M7Z0JBQzFDLGt1WkFBMEQ7O2FBRTNEOzs7WUFieUIsV0FBVztZQU01Qix1QkFBdUI7Ozs0QkFtQjdCLFNBQVMsU0FBQyxVQUFVOzBCQStEcEIsS0FBSyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgQmFzZU1vZGVsZWRSZXNwb25zZSwgQmFzZVJlc3BvbnNlIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgRWFDRGV2T3BzQWN0aW9uLCBFYUNFbnZpcm9ubWVudEFzQ29kZSwgRWFDU291cmNlQ29udHJvbCB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2l0SHViQnJhbmNoLCBHaXRIdWJPcmdhbml6YXRpb24sIEdpdEh1YlJlcG9zaXRvcnksIFByb2plY3RIb3N0aW5nRGV0YWlscyB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWRldm9wcy1zb3VyY2UtY29udHJvbC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rldm9wcy1zb3VyY2UtY29udHJvbC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEZXZvcHNTb3VyY2VDb250cm9sRm9ybUNvbXBvbmVudCBcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICAvLyAgRmllbGRzXG5cbiAgLy8gIFByb3BlcnRpZXNcbiAgcHVibGljIGdldCBCcmFuY2hlc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQodGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdicmFuY2hlcycpO1xuICB9XG5cblxuICBAVmlld0NoaWxkKCdicmFuY2hlcycpXG4gIHB1YmxpYyBCcmFuY2hlc0lucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBCcmFuY2hPcHRpb25zOiBHaXRIdWJCcmFuY2hbXTtcblxuICAvL09wdGlvbmFsIGlucHV0IG5vdCBiZWluZyB1c2VkIHNldHRpbmcgdG8gXG4gIC8vIEBJbnB1dCgnYnVpbGQtcGF0aCcpXG4gIHB1YmxpYyBCdWlsZFBhdGg6IHN0cmluZztcblxuICAvL09wdGlvbmFsIG5vdCBiZWluZyB1c2VkXG4gIC8vIEBJbnB1dCgnYnVpbGQtcGF0aC1kaXNhYmxlZCcpXG4gIHB1YmxpYyBCdWlsZFBhdGhEaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgZ2V0IEJ1aWxkUGF0aEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQodGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdidWlsZFBhdGgnKTtcbiAgfVxuXG4gIHB1YmxpYyBCdWlsZFBhdGhPcHRpb25zOiBzdHJpbmdbXTtcblxuICBwdWJsaWMgQ3JlYXRpbmdSZXBvc2l0b3J5OiBib29sZWFuO1xuXG5cblxuICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuRGV2T3BzQWN0aW9ucyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cCgpOiBzdHJpbmcge1xuICAgIGlmICghIXRoaXMuRGV2T3BzQWN0aW9uTG9va3VwRm9ybUNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5EZXZPcHNBY3Rpb25Mb29rdXBGb3JtQ29udHJvbC52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoISF0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5EZXZPcHNBY3Rpb25UcmlnZ2VyTG9va3Vwcykge1xuICAgICAgcmV0dXJuIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2w/LkRldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IERldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQoJ2Rldk9wc0FjdGlvbkxvb2t1cCcpO1xuICB9XG5cbiAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25zKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDRGV2T3BzQWN0aW9uIH0ge1xuICAgIHJldHVybiB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnMgfHwge307XG4gIH1cblxuICBwdWJsaWMgRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBnZXQgRWRpdGluZ1NvdXJjZUNvbnRyb2woKTogRWFDU291cmNlQ29udHJvbCB7XG4gICAgbGV0IHNjID0gdGhpcy5FbnZpcm9ubWVudD8uU291cmNlc1xuICAgICAgPyB0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzW3RoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2xMb29rdXBdXG4gICAgICA6IG51bGw7XG5cbiAgICBpZiAoc2MgPT0gbnVsbCAmJiB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sTG9va3VwKSB7XG4gICAgICBzYyA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBzYztcbiAgfVxuXG4gIHB1YmxpYyBFZGl0aW5nU291cmNlQ29udHJvbExvb2t1cDogc3RyaW5nO1xuXG4gIEBJbnB1dCgnZW52aXJvbm1lbnQnKVxuICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gIHB1YmxpYyBIb3N0aW5nRGV0YWlsczogUHJvamVjdEhvc3RpbmdEZXRhaWxzO1xuXG4gIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXQgTWFpbkJyYW5jaEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQodGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdtYWluQnJhbmNoJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IE9yZ2FuaXphdGlvbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5nZXQodGhpcy5Tb3VyY2VDb250cm9sUm9vdCArICdvcmdhbml6YXRpb24nKTtcbiAgfVxuXG4gIHB1YmxpYyBPcmdhbml6YXRpb25PcHRpb25zOiBHaXRIdWJPcmdhbml6YXRpb25bXTtcblxuICBwdWJsaWMgZ2V0IFJlcG9zaXRvcnlGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZ2V0KHRoaXMuU291cmNlQ29udHJvbFJvb3QgKyAncmVwb3NpdG9yeScpO1xuICB9XG5cbiAgcHVibGljIFJlcG9zaXRvcnlPcHRpb25zOiBHaXRIdWJSZXBvc2l0b3J5W107XG5cbiAgcHVibGljIFNlbGVjdGVkQnJhbmNoZXM6IHN0cmluZ1tdO1xuXG4gIHB1YmxpYyByZWFkb25seSBTZXBhcmF0b3JLZXlzQ29kZXMgPSBbRU5URVIsIENPTU1BXSBhcyBjb25zdDtcblxuICAvLyB0aGlzIGlucHV0IGlzIG5vdCBiZWluZyB1c2VkIGFueXdoZXJlXG4gIC8vIEBJbnB1dCgnc291cmNlLWNvbnRyb2wtcm9vdCcpXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sUm9vdDogc3RyaW5nO1xuXG4gIC8vbm90IGJlaW5nIHVzZWQgc2V0IHRvIHRydWUgYnkgZGVmYXVsdFxuICAvLyBASW5wdXQoJ3VzZS1icmFuY2hlcycpXG4gIHB1YmxpYyBVc2VCcmFuY2hlczogYm9vbGVhbjtcblxuICAvL25vdCBiZWluZyB1c2VkIHNldCB0byBmYWxzZSBieSBkZWZhdWx0XG4gIC8vIEBJbnB1dCgndXNlLWJ1aWxkLXBhdGgnKVxuICBwdWJsaWMgVXNlQnVpbGRQYXRoOiBib29sZWFuO1xuXG4gIC8vICBDb25zdHJ1Y3RvcnNcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICApIHtcblxuICAgIHRoaXMuQnVpbGRQYXRoID0gbnVsbDtcblxuICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSBuZXcgUHJvamVjdEhvc3RpbmdEZXRhaWxzKCk7XG5cbiAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgIHRoaXMuU291cmNlQ29udHJvbFJvb3QgPSAnJztcblxuICAgIHRoaXMuVXNlQnJhbmNoZXMgPSB0cnVlO1xuXG4gICAgdGhpcy5Vc2VCdWlsZFBhdGggPSBmYWxzZTtcbiAgfVxuXG4gIC8vICBMaWZlIEN5Y2xlXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lGb3JtQ29udHJvbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwRm9ybUNvbnRyb2xzKCk7XG5cbiAgICB0aGlzLlJlZnJlc2hPcmdhbml6YXRpb25zKCk7XG4gIH1cblxuICAvLyAgQVBJIE1ldGhvZHNcbiAgcHVibGljIEFkZEJyYW5jaE9wdGlvbihldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFkZEJyYW5jaE9wdGlvbihldmVudC52YWx1ZSk7XG5cbiAgICBldmVudC5pbnB1dC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgcHVibGljIEJyYW5jaE9wdGlvblNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5hZGRCcmFuY2hPcHRpb24oZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBCcmFuY2hlc0NoYW5nZWQoYnJhbmNoZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkUHJvamVjdEhvc3RpbmdEZXRhaWxzKCk7XG4gIH1cblxuICBwdWJsaWMgQnVpbGRQYXRoQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgQ3JlYXRlUmVwb3NpdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IHRydWU7XG5cbiAgICB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIENhbmNlbENyZWF0ZVJlcG9zaXRvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBEZXZPcHNBY3Rpb25Mb29rdXBDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyZURldk9wc0FjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIE1haW5CcmFuY2hDaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBPcmdhbml6YXRpb25DaGFuZ2VkKGV2ZW50OiBNYXRTZWxlY3RDaGFuZ2UpOiB2b2lkIHtcbiAgICBjb25zdCBvcmcgPSB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sO1xuXG4gICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5saXN0UmVwb3NpdG9yaWVzKCk7XG4gIH1cblxuICBwdWJsaWMgUmVmcmVzaE9yZ2FuaXphdGlvbnMoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmxpc3RPcmdhbml6YXRpb25zKCk7XG5cbiAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sPy5yZXNldCgpO1xuXG4gICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnJlc2V0KCk7XG5cbiAgICBpZiAodGhpcy5Vc2VCcmFuY2hlcykge1xuICAgICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sPy5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBSZW1vdmVCcmFuY2hPcHRpb24ob3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5pbmRleE9mKG9wdGlvbik7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0QnJhbmNoZXNDaGFuZ2VkKCk7XG4gIH1cblxuICBwdWJsaWMgUmVwb3NpdG9yeUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIGNvbnN0IHJlcG8gPSB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbDtcblxuICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wucmVzZXQoKTtcblxuICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gW107XG5cbiAgICAgIHRoaXMubGlzdEJyYW5jaGVzKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICB0aGlzLmxpc3RCdWlsZFBhdGhzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIFNhdmVSZXBvc2l0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICBjb25zdCBvcmcgPSB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgY29uc3QgcmVwb05hbWUgPSB0aGlzLlJlcG9zaXRvcnlGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgIC5DcmVhdGVSZXBvc2l0b3J5KG9yZywgcmVwb05hbWUpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogQmFzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMubGlzdFJlcG9zaXRvcmllcyhyZXBvTmFtZSk7XG5cbiAgICAgICAgICB0aGlzLkNyZWF0aW5nUmVwb3NpdG9yeSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vICBUT0RPOiAgTmVlZCB0byBzdXJmYWNlIGFuIGVycm9yIHRvIHRoZSB1c2VyLi4uXG5cbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvLyAgSGVscGVyc1xuICBwcm90ZWN0ZWQgYWRkQnJhbmNoT3B0aW9uKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB2YWx1ZSA9ICh2YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgaWYgKHZhbHVlICYmIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5pbmRleE9mKHZhbHVlKSA8IDApIHtcbiAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5wdXNoKHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLkJyYW5jaGVzSW5wdXQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG5cbiAgICB0aGlzLmVtaXRCcmFuY2hlc0NoYW5nZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVEZXZPcHNBY3Rpb24oKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLkRldk9wc0FjdGlvbkxvb2t1cEZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuRGV2T3BzQWN0aW9uTG9va3VwKTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXN0cm95Rm9ybUNvbnRyb2xzKCk6IHZvaWQge1xuICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5yZW1vdmVDb250cm9sKFxuICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdtYWluQnJhbmNoJ10uam9pbignJylcbiAgICApO1xuXG4gICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnYnJhbmNoZXMnXS5qb2luKCcnKSk7XG5cbiAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXA/LnJlbW92ZUNvbnRyb2woW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdidWlsZFBhdGgnXS5qb2luKCcnKSk7XG5cbiAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbXTtcblxuICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cD8ucmVtb3ZlQ29udHJvbChcbiAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnb3JnYW5pemF0aW9uJ10uam9pbignJylcbiAgICApO1xuXG4gICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwPy5yZW1vdmVDb250cm9sKFxuICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdyZXBvc2l0b3J5J10uam9pbignJylcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRCcmFuY2hlc0NoYW5nZWQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzPy5sZW5ndGggPiAwICYmXG4gICAgICAoIXRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlIHx8XG4gICAgICAgIHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5pbmRleE9mKHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnZhbHVlKSA8IDApXG4gICAgKSB7XG4gICAgICB0aGlzLk1haW5CcmFuY2hGb3JtQ29udHJvbC5zZXRWYWx1ZShcbiAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzLmZpbmQoXG4gICAgICAgICAgKGJyYW5jaCkgPT4gYnJhbmNoID09PSAnbWFpbicgfHwgYnJhbmNoID09PSAnbWFzdGVyJ1xuICAgICAgICApIHx8IHRoaXMuU2VsZWN0ZWRCcmFuY2hlc1swXVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcz8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgdGhpcy5CcmFuY2hlc0Zvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuU2VsZWN0ZWRCcmFuY2hlcy5qb2luKCcsJykpO1xuXG4gICAgdGhpcy5CcmFuY2hlc0NoYW5nZWQodGhpcy5TZWxlY3RlZEJyYW5jaGVzIHx8IFtdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0QnJhbmNoZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgLkxpc3RCcmFuY2hlcyhcbiAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8R2l0SHViQnJhbmNoW10+KSA9PiB7XG4gICAgICAgICAgdGhpcy5CcmFuY2hPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIGlmICh0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5CcmFuY2hlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5TZWxlY3RlZEJyYW5jaGVzID0gdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5CcmFuY2hlcztcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuQnJhbmNoT3B0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLkJyYW5jaGVzRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5CcmFuY2hPcHRpb25zWzBdLk5hbWUpO1xuXG4gICAgICAgICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSBbdGhpcy5CcmFuY2hPcHRpb25zWzBdLk5hbWVdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZW1pdEJyYW5jaGVzQ2hhbmdlZCgpO1xuXG4gICAgICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbGlzdEJ1aWxkUGF0aHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuVXNlQnVpbGRQYXRoKSB7XG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAgIC5MaXN0QnVpbGRQYXRocyhcbiAgICAgICAgICB0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8c3RyaW5nW10+KSA9PiB7XG4gICAgICAgICAgdGhpcy5CdWlsZFBhdGhPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcblxuICAgICAgICAgIGlmICh0aGlzLkJ1aWxkUGF0aE9wdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5CdWlsZFBhdGhGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLkJ1aWxkUGF0aE9wdGlvbnNbMF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGxpc3RPcmdhbml6YXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAuTGlzdE9yZ2FuaXphdGlvbnMoKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8R2l0SHViT3JnYW5pemF0aW9uW10+KSA9PiB7XG4gICAgICAgIHRoaXMuT3JnYW5pemF0aW9uT3B0aW9ucyA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5Pcmdhbml6YXRpb24pIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuT3JnYW5pemF0aW9uRm9ybUNvbnRyb2wuc2V0VmFsdWUoXG4gICAgICAgICAgICAgIHRoaXMuRWRpdGluZ1NvdXJjZUNvbnRyb2wuT3JnYW5pemF0aW9uXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0aGlzLmxpc3RSZXBvc2l0b3JpZXModGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uUmVwb3NpdG9yeSk7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxpc3RSZXBvc2l0b3JpZXMoYWN0aXZlUmVwbzogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLmFwcHNGbG93U3ZjXG4gICAgICAuTGlzdFJlcG9zaXRvcmllcyh0aGlzLk9yZ2FuaXphdGlvbkZvcm1Db250cm9sLnZhbHVlKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IEJhc2VNb2RlbGVkUmVzcG9uc2U8R2l0SHViUmVwb3NpdG9yeVtdPikgPT4ge1xuICAgICAgICB0aGlzLlJlcG9zaXRvcnlPcHRpb25zID0gcmVzcG9uc2UuTW9kZWw7XG5cbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGFjdGl2ZVJlcG8pIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuUmVwb3NpdG9yeUZvcm1Db250cm9sLnNldFZhbHVlKGFjdGl2ZVJlcG8pO1xuXG4gICAgICAgICAgICB0aGlzLmxpc3RCcmFuY2hlcygpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuVXNlQnJhbmNoZXMpIHtcbiAgICAgICAgICAgICAgdGhpcy5saXN0QnVpbGRQYXRocygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuUmVwb3NpdG9yeU9wdGlvbnM/Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgdGhpcy5DcmVhdGluZ1JlcG9zaXRvcnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkUHJvamVjdEhvc3RpbmdEZXRhaWxzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLlNlbGVjdGVkQnJhbmNoZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMuTG9hZGluZyA9IHRydWU7XG5cbiAgICAgIHRoaXMuYXBwc0Zsb3dTdmNcbiAgICAgICAgLkxvYWRQcm9qZWN0SG9zdGluZ0RldGFpbHMoXG4gICAgICAgICAgdGhpcy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsdWUsXG4gICAgICAgICAgdGhpcy5SZXBvc2l0b3J5Rm9ybUNvbnRyb2w/LnZhbHVlLFxuICAgICAgICAgIHRoaXMuTWFpbkJyYW5jaEZvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPFByb2plY3RIb3N0aW5nRGV0YWlscz4pID0+IHtcbiAgICAgICAgICAgIHRoaXMuSG9zdGluZ0RldGFpbHMgPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgdGhpcy5Ib3N0aW5nRGV0YWlscy5Mb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJlRGV2T3BzQWN0aW9uKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLkhvc3RpbmdEZXRhaWxzLkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwRm9ybUNvbnRyb2xzKCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveUZvcm1Db250cm9scygpO1xuXG4gICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnZGV2T3BzQWN0aW9uTG9va3VwJyxcbiAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLkRldk9wc0FjdGlvbkxvb2t1cCB8fCAnJywgW10pXG4gICAgKTtcblxuICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdvcmdhbml6YXRpb24nXS5qb2luKCcnKSxcbiAgICAgIG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5Pcmdhbml6YXRpb24gPz8gJycsXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ3JlcG9zaXRvcnknXS5qb2luKCcnKSxcbiAgICAgIG5ldyBGb3JtQ29udHJvbCh0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sLlJlcG9zaXRvcnkgPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgKTtcblxuICAgIGlmICh0aGlzLlVzZUJyYW5jaGVzKSB7XG4gICAgICB0aGlzLkRldk9wc1NvdXJjZUNvbnRyb2xGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgW3RoaXMuU291cmNlQ29udHJvbFJvb3QsICdicmFuY2hlcyddLmpvaW4oJycpLFxuICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5FZGl0aW5nU291cmNlQ29udHJvbD8uQnJhbmNoZXMgPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICApO1xuXG4gICAgICB0aGlzLlNlbGVjdGVkQnJhbmNoZXMgPSB0aGlzLkVkaXRpbmdTb3VyY2VDb250cm9sPy5CcmFuY2hlcztcblxuICAgICAgdGhpcy5EZXZPcHNTb3VyY2VDb250cm9sRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgIFt0aGlzLlNvdXJjZUNvbnRyb2xSb290LCAnbWFpbkJyYW5jaCddLmpvaW4oJycpLFxuICAgICAgICBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgICAgdGhpcy5FZGl0aW5nU291cmNlQ29udHJvbC5NYWluQnJhbmNoID8/ICcnLFxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5Vc2VCdWlsZFBhdGgpIHtcbiAgICAgIHRoaXMuRGV2T3BzU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICBbdGhpcy5Tb3VyY2VDb250cm9sUm9vdCwgJ2J1aWxkUGF0aCddLmpvaW4oJycpLFxuICAgICAgICBuZXcgRm9ybUNvbnRyb2wodGhpcy5CdWlsZFBhdGggPz8gJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICApO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
@@ -99,4 +99,4 @@ HostingDetailsFormGroupComponent.propDecorators = {
|
|
|
99
99
|
Organization: [{ type: Input, args: ['organization',] }],
|
|
100
100
|
ParentFormGroup: [{ type: Input, args: ['formGroup',] }]
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FwcGxpY2F0aW9ucy1mbG93L2FwcGxpY2F0aW9ucy1mbG93L3Byb2plY3RzL2NvbW1vbi9zcmMvIiwic291cmNlcyI6WyJsaWIvZWxlbWVudHMvcHJvamVjdHMvY29udHJvbHMvaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAvaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBRUwsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBYXhCLE1BQU0sT0FBTyxnQ0FBZ0M7SUE2RDNDLGdCQUFnQjtJQUNoQixZQUFzQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFwRGxELElBQVcsd0JBQXdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQVFELElBQVcsMkJBQTJCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBS0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQWMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBUUQsSUFBVyxxQkFBcUI7O1FBQzlCLG1CQUFPLElBQUksQ0FBQyxPQUFPLDBDQUFFLGNBQWMsMENBQUUsSUFBSSxDQUN2QyxDQUFD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dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRSYWRpb0NoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IEVhQ0Rldk9wc0FjdGlvbiwgRWFDQXJ0aWZhY3QgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgUHJvamVjdEhvc3RpbmdEZXRhaWxzLFxuICBQcm9qZWN0SG9zdGluZ09wdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3UtaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ob3N0aW5nLWRldGFpbHMtZm9ybS1ncm91cC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBIb3N0aW5nRGV0YWlsc0Zvcm1Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgLy8gIEZpZWxkc1xuXG4gIC8vICBQcm9wZXJ0aWVzXG4gIEBJbnB1dCgnYXJ0aWZhY3QnKVxuICBwdWJsaWMgQXJ0aWZhY3Q6IEVhQ0FydGlmYWN0O1xuXG4gIEBJbnB1dCgnYnVpbGQtcGlwZWxpbmUnKVxuICBwdWJsaWMgQnVpbGRQaXBlbGluZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgQnVpbGRQaXBlbGluZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybUdyb3VwLmdldCgnYnVpbGRQaXBlbGluZScpO1xuICB9XG5cbiAgQElucHV0KCdkZXRhaWxzJylcbiAgcHVibGljIERldGFpbHM6IFByb2plY3RIb3N0aW5nRGV0YWlscztcblxuICBASW5wdXQoJ2Rldm9wcy1hY3Rpb24nKVxuICBwdWJsaWMgRGV2T3BzQWN0aW9uOiBFYUNEZXZPcHNBY3Rpb247XG5cbiAgcHVibGljIGdldCBEZXZPcHNBY3Rpb25OYW1lRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtR3JvdXAuZ2V0KCdkZXZPcHNBY3Rpb25OYW1lJyk7XG4gIH1cblxuICBASW5wdXQoJ2Rpc2FibGVkJylcbiAgcHVibGljIERpc2FibGVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXQgRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuUGFyZW50Rm9ybUdyb3VwLmdldCgnaG9zdGluZ0RldGFpbHMnKSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IE5QTVRva2VuRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Gb3JtR3JvdXAuZ2V0KCducG1Ub2tlbicpO1xuICB9XG5cbiAgQElucHV0KCdvcmdhbml6YXRpb24nKVxuICBwdWJsaWMgT3JnYW5pemF0aW9uOiBzdHJpbmc7XG5cbiAgQElucHV0KCdmb3JtR3JvdXAnKVxuICBwdWJsaWMgUGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGdldCBTZWxlY3RlZEhvc3RpbmdPcHRpb24oKTogUHJvamVjdEhvc3RpbmdPcHRpb24ge1xuICAgIHJldHVybiB0aGlzLkRldGFpbHM/Lkhvc3RpbmdPcHRpb25zPy5maW5kKFxuICAgICAgKGhvKSA9PiBoby5Mb29rdXAgPT09IHRoaXMuQnVpbGRQaXBlbGluZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNlbGVjdGVkSG9zdGluZ09wdGlvbklucHV0Q29udHJvbFZhbHVlcygpOiB7XG4gICAgW2xvb2t1cDogc3RyaW5nXTogYW55O1xuICB9IHtcbiAgICByZXR1cm4gdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24/LklucHV0cz8ucmVkdWNlKChwcmV2LCBjdXIpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgIH07XG5cbiAgICAgIHJlc1tjdXIuTG9va3VwXSA9IHRoaXMuRm9ybUdyb3VwLmNvbnRyb2xzW2N1ci5Mb29rdXBdLnZhbHVlO1xuXG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIC8vICBDb25zdHJ1Y3RvcnNcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge31cblxuICAvLyAgTGlmZSBDeWNsZVxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLkJ1aWxkUGlwZWxpbmUgPVxuICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lIHx8IHRoaXMuRGV0YWlscz8uSG9zdGluZ09wdGlvbnNcbiAgICAgICAgPyB0aGlzLkRldGFpbHM/Lkhvc3RpbmdPcHRpb25zWzBdPy5Mb29rdXBcbiAgICAgICAgOiAnJztcblxuICAgIGlmICh0aGlzLkZvcm1Hcm91cCAhPSBudWxsKSB7XG4gICAgICB0aGlzLlBhcmVudEZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdob3N0aW5nRGV0YWlscycpO1xuICAgIH1cblxuICAgIHRoaXMuUGFyZW50Rm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnaG9zdGluZ0RldGFpbHMnLFxuICAgICAgdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIGJ1aWxkUGlwZWxpbmU6IFt0aGlzLkJ1aWxkUGlwZWxpbmUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnNldHVwQ29udHJvbHNGb3JGb3JtKCk7XG4gIH1cblxuICAvLyAgQVBJIE1ldGhvZHNcbiAgcHVibGljIEJ1aWxkUGlwZWxpbmVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuQnVpbGRQaXBlbGluZSA9IHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgdGhpcy5zZXR1cENvbnRyb2xzRm9yRm9ybSgpO1xuICB9XG5cbiAgLy8gIEhlbHBlcnNcbiAgcHJvdGVjdGVkIHNldHVwQ29udHJvbHNGb3JGb3JtKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgY3RybE5hbWUgaW4gdGhpcy5Gb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgIGlmIChjdHJsTmFtZSAhPT0gJ2J1aWxkUGlwZWxpbmUnICYmIGN0cmxOYW1lICE9PSAnZGV2T3BzQWN0aW9uJykge1xuICAgICAgICB0aGlzLkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKGN0cmxOYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLkZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2Rldk9wc0FjdGlvbk5hbWUnLFxuICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICB0aGlzLkRldk9wc0FjdGlvbj8uTmFtZSB8fCB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbj8uTmFtZSB8fCAnJyxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uPy5JbnB1dHM/LmZvckVhY2goKGlucHV0KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0b3JzID0gaW5wdXQuUmVxdWlyZWQgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXTtcblxuICAgICAgdGhpcy5Gb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgaW5wdXQuTG9va3VwLFxuICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woXG4gICAgICAgICAgdGhpcy5BcnRpZmFjdFtpbnB1dC5Mb29rdXBdIHx8IGlucHV0LkRlZmF1bHRWYWx1ZSB8fCAnJyxcbiAgICAgICAgICB2YWxpZGF0b3JzXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIC8vIGlmICh0aGlzLkRpc2FibGVkKSB7XG4gICAgICAvLyAgIHRoaXMuRm9ybUdyb3VwLmNvbnRyb2xzW2lucHV0Lkxvb2t1cF0uZGlzYWJsZSgpO1xuICAgICAgLy8gfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuQnVpbGRQaXBlbGluZUZvcm1Db250cm9sLnZhbHVlID09PSAnbnBtLXJlbGVhc2UnKSB7XG4gICAgICBpZiAoIXRoaXMuRm9ybUdyb3VwLmNvbnRyb2xzLm5wbVRva2VuKSB7XG4gICAgICAgIHRoaXMuRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgJ25wbVRva2VuJyxcbiAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woXG4gICAgICAgICAgICAnJyxcbiAgICAgICAgICAgIHRoaXMuRGlzYWJsZWQgPyBbXSA6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5EaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuRm9ybUdyb3VwLmNvbnRyb2xzLm5wbVRva2VuLmRpc2FibGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtQ29udHJvbC52YWx1ZSA9PT0gJ2dpdGh1Yi1hcnRpZmFjdHMtcmVsZWFzZSdcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLkZvcm1Hcm91cC5jb250cm9scy5ucG1Ub2tlbikge1xuICAgICAgICB0aGlzLkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCducG1Ub2tlbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FwcGxpY2F0aW9ucy1mbG93L2FwcGxpY2F0aW9ucy1mbG93L3Byb2plY3RzL2NvbW1vbi9zcmMvIiwic291cmNlcyI6WyJsaWIvZWxlbWVudHMvcHJvamVjdHMvY29udHJvbHMvaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAvaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBRUwsV0FBVyxFQUVYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBWXhCLE1BQU0sT0FBTyxnQ0FBZ0M7SUE2RDNDLGdCQUFnQjtJQUNoQixZQUFzQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFwRGxELElBQVcsd0JBQXdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQVFELElBQVcsMkJBQTJCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBS0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQWMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBUUQsSUFBVyxxQkFBcUI7O1FBQzlCLG1CQUFPLElBQUksQ0FBQyxPQUFPLDBDQUFFLGNBQWMsMENBQUUsSUFBSSxDQUN2QyxDQUFD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dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFYUNEZXZPcHNBY3Rpb24sIEVhQ0FydGlmYWN0IH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7XG4gIFByb2plY3RIb3N0aW5nRGV0YWlscyxcbiAgUHJvamVjdEhvc3RpbmdPcHRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWhvc3RpbmctZGV0YWlscy1mb3JtLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hvc3RpbmctZGV0YWlscy1mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaG9zdGluZy1kZXRhaWxzLWZvcm0tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSG9zdGluZ0RldGFpbHNGb3JtR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG4gIC8vICBGaWVsZHNcblxuICAvLyAgUHJvcGVydGllc1xuICBASW5wdXQoJ2FydGlmYWN0JylcbiAgcHVibGljIEFydGlmYWN0OiBFYUNBcnRpZmFjdDtcblxuICBASW5wdXQoJ2J1aWxkLXBpcGVsaW5lJylcbiAgcHVibGljIEJ1aWxkUGlwZWxpbmU6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IEJ1aWxkUGlwZWxpbmVGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLkZvcm1Hcm91cC5nZXQoJ2J1aWxkUGlwZWxpbmUnKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGV0YWlscycpXG4gIHB1YmxpYyBEZXRhaWxzOiBQcm9qZWN0SG9zdGluZ0RldGFpbHM7XG5cbiAgQElucHV0KCdkZXZvcHMtYWN0aW9uJylcbiAgcHVibGljIERldk9wc0FjdGlvbjogRWFDRGV2T3BzQWN0aW9uO1xuXG4gIHB1YmxpYyBnZXQgRGV2T3BzQWN0aW9uTmFtZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybUdyb3VwLmdldCgnZGV2T3BzQWN0aW9uTmFtZScpO1xuICB9XG5cbiAgQElucHV0KCdkaXNhYmxlZCcpXG4gIHB1YmxpYyBEaXNhYmxlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgZ2V0IEZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLlBhcmVudEZvcm1Hcm91cC5nZXQoJ2hvc3RpbmdEZXRhaWxzJykgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHVibGljIGdldCBOUE1Ub2tlbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuRm9ybUdyb3VwLmdldCgnbnBtVG9rZW4nKTtcbiAgfVxuXG4gIEBJbnB1dCgnb3JnYW5pemF0aW9uJylcbiAgcHVibGljIE9yZ2FuaXphdGlvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgnZm9ybUdyb3VwJylcbiAgcHVibGljIFBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBnZXQgU2VsZWN0ZWRIb3N0aW5nT3B0aW9uKCk6IFByb2plY3RIb3N0aW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5EZXRhaWxzPy5Ib3N0aW5nT3B0aW9ucz8uZmluZChcbiAgICAgIChobykgPT4gaG8uTG9va3VwID09PSB0aGlzLkJ1aWxkUGlwZWxpbmVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBTZWxlY3RlZEhvc3RpbmdPcHRpb25JbnB1dENvbnRyb2xWYWx1ZXMoKToge1xuICAgIFtsb29rdXA6IHN0cmluZ106IGFueTtcbiAgfSB7XG4gICAgcmV0dXJuIHRoaXMuU2VsZWN0ZWRIb3N0aW5nT3B0aW9uPy5JbnB1dHM/LnJlZHVjZSgocHJldiwgY3VyKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICB9O1xuXG4gICAgICByZXNbY3VyLkxvb2t1cF0gPSB0aGlzLkZvcm1Hcm91cC5jb250cm9sc1tjdXIuTG9va3VwXS52YWx1ZTtcblxuICAgICAgcmV0dXJuIHJlcztcbiAgICB9LCB7fSk7XG4gIH1cblxuICAvLyAgQ29uc3RydWN0b3JzXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgLy8gIExpZmUgQ3ljbGVcbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5CdWlsZFBpcGVsaW5lID1cbiAgICAgIHRoaXMuQnVpbGRQaXBlbGluZSB8fCB0aGlzLkRldGFpbHM/Lkhvc3RpbmdPcHRpb25zXG4gICAgICAgID8gdGhpcy5EZXRhaWxzPy5Ib3N0aW5nT3B0aW9uc1swXT8uTG9va3VwXG4gICAgICAgIDogJyc7XG5cbiAgICBpZiAodGhpcy5Gb3JtR3JvdXAgIT0gbnVsbCkge1xuICAgICAgdGhpcy5QYXJlbnRGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnaG9zdGluZ0RldGFpbHMnKTtcbiAgICB9XG5cbiAgICB0aGlzLlBhcmVudEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2hvc3RpbmdEZXRhaWxzJyxcbiAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICBidWlsZFBpcGVsaW5lOiBbdGhpcy5CdWlsZFBpcGVsaW5lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zZXR1cENvbnRyb2xzRm9yRm9ybSgpO1xuICB9XG5cbiAgLy8gIEFQSSBNZXRob2RzXG4gIHB1YmxpYyBCdWlsZFBpcGVsaW5lQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLkJ1aWxkUGlwZWxpbmUgPSB0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgIHRoaXMuc2V0dXBDb250cm9sc0ZvckZvcm0oKTtcbiAgfVxuXG4gIC8vICBIZWxwZXJzXG4gIHByb3RlY3RlZCBzZXR1cENvbnRyb2xzRm9yRm9ybSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGN0cmxOYW1lIGluIHRoaXMuRm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAoY3RybE5hbWUgIT09ICdidWlsZFBpcGVsaW5lJyAmJiBjdHJsTmFtZSAhPT0gJ2Rldk9wc0FjdGlvbicpIHtcbiAgICAgICAgdGhpcy5Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbChjdHJsTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5Gb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdkZXZPcHNBY3Rpb25OYW1lJyxcbiAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChcbiAgICAgICAgdGhpcy5EZXZPcHNBY3Rpb24/Lk5hbWUgfHwgdGhpcy5TZWxlY3RlZEhvc3RpbmdPcHRpb24/Lk5hbWUgfHwgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLlNlbGVjdGVkSG9zdGluZ09wdGlvbj8uSW5wdXRzPy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGlucHV0LlJlcXVpcmVkID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW107XG5cbiAgICAgIHRoaXMuRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgIGlucHV0Lkxvb2t1cCxcbiAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgIHRoaXMuQXJ0aWZhY3RbaW5wdXQuTG9va3VwXSB8fCBpbnB1dC5EZWZhdWx0VmFsdWUgfHwgJycsXG4gICAgICAgICAgdmFsaWRhdG9yc1xuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICAvLyBpZiAodGhpcy5EaXNhYmxlZCkge1xuICAgICAgLy8gICB0aGlzLkZvcm1Hcm91cC5jb250cm9sc1tpbnB1dC5Mb29rdXBdLmRpc2FibGUoKTtcbiAgICAgIC8vIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLkJ1aWxkUGlwZWxpbmVGb3JtQ29udHJvbC52YWx1ZSA9PT0gJ25wbS1yZWxlYXNlJykge1xuICAgICAgaWYgKCF0aGlzLkZvcm1Hcm91cC5jb250cm9scy5ucG1Ub2tlbikge1xuICAgICAgICB0aGlzLkZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICducG1Ub2tlbicsXG4gICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgJycsXG4gICAgICAgICAgICB0aGlzLkRpc2FibGVkID8gW10gOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMuRGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLkZvcm1Hcm91cC5jb250cm9scy5ucG1Ub2tlbi5kaXNhYmxlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5CdWlsZFBpcGVsaW5lRm9ybUNvbnRyb2wudmFsdWUgPT09ICdnaXRodWItYXJ0aWZhY3RzLXJlbGVhc2UnXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5Gb3JtR3JvdXAuY29udHJvbHMubnBtVG9rZW4pIHtcbiAgICAgICAgdGhpcy5Gb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnbnBtVG9rZW4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|