@lowcodeunit/applications-flow-common 1.33.100-lets-get-social-ish → 1.33.104-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.
Files changed (42) hide show
  1. package/bundles/lowcodeunit-applications-flow-common.umd.js +367 -138
  2. package/bundles/lowcodeunit-applications-flow-common.umd.js.map +1 -1
  3. package/bundles/lowcodeunit-applications-flow-common.umd.min.js +2 -2
  4. package/bundles/lowcodeunit-applications-flow-common.umd.min.js.map +1 -1
  5. package/esm2015/lib/applications-flow.module.js +8 -4
  6. package/esm2015/lib/controls/build-pipeline-form/build-pipeline-form.component.js +107 -30
  7. package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +27 -31
  8. package/esm2015/lib/controls/edit-application-form/edit-application-form.component.js +60 -0
  9. package/esm2015/lib/controls/processor-details-form/processor-details-form.component.js +89 -46
  10. package/esm2015/lib/controls/security-toggle/security-toggle.component.js +14 -24
  11. package/esm2015/lib/controls/source-control-form/source-control-form.component.js +8 -6
  12. package/esm2015/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.js +2 -2
  13. package/esm2015/lib/dialogs/source-control-dialog/source-control-dialog.component.js +2 -2
  14. package/esm2015/lib/elements/slotted-card/slotted-card.component.js +6 -6
  15. package/esm2015/lib/services/applications-flow.service.js +6 -1
  16. package/esm2015/lowcodeunit-applications-flow-common.js +2 -1
  17. package/fesm2015/lowcodeunit-applications-flow-common.js +309 -139
  18. package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -1
  19. package/lib/applications-flow.module.d.ts.map +1 -1
  20. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +12 -2
  21. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +1 -1
  22. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +9 -9
  23. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +1 -1
  24. package/lib/controls/edit-application-form/edit-application-form.component.d.ts +17 -0
  25. package/lib/controls/edit-application-form/edit-application-form.component.d.ts.map +1 -0
  26. package/lib/controls/processor-details-form/processor-details-form.component.d.ts +23 -8
  27. package/lib/controls/processor-details-form/processor-details-form.component.d.ts.map +1 -1
  28. package/lib/controls/security-toggle/security-toggle.component.d.ts +3 -1
  29. package/lib/controls/security-toggle/security-toggle.component.d.ts.map +1 -1
  30. package/lib/controls/source-control-form/source-control-form.component.d.ts +4 -5
  31. package/lib/controls/source-control-form/source-control-form.component.d.ts.map +1 -1
  32. package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts +1 -0
  33. package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts.map +1 -1
  34. package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts.map +1 -1
  35. package/lib/elements/slotted-card/slotted-card.component.d.ts +3 -3
  36. package/lib/elements/slotted-card/slotted-card.component.d.ts.map +1 -1
  37. package/lib/services/applications-flow.service.d.ts +1 -0
  38. package/lib/services/applications-flow.service.d.ts.map +1 -1
  39. package/lowcodeunit-applications-flow-common.d.ts +1 -0
  40. package/lowcodeunit-applications-flow-common.d.ts.map +1 -1
  41. package/lowcodeunit-applications-flow-common.metadata.json +1 -1
  42. package/package.json +1 -1
@@ -576,6 +576,11 @@
576
576
  headers: this.loadHeaders(),
577
577
  });
578
578
  };
579
+ ApplicationsFlowService.prototype.NewLoadProjectHostingDetails = function () {
580
+ return this.http.get(this.apiRoot + "/api/lowcodeunit/manage/projects/hosting/details", {
581
+ headers: this.loadHeaders(),
582
+ });
583
+ };
579
584
  ApplicationsFlowService.prototype.SaveEnterpriseAsCode = function (eac) {
580
585
  return this.http.post(this.apiRoot + "/api/lowcodeunit/manage/eac", eac, {
581
586
  headers: this.loadHeaders(),
@@ -4759,18 +4764,18 @@
4759
4764
  SlottedCardComponent.decorators = [
4760
4765
  { type: i0.Component, args: [{
4761
4766
  selector: 'lcu-slotted-card',
4762
- template: "<mat-card class=\"col-info-card\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title class=\"card-title\">{{ Title }}</mat-card-title>\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n </mat-card-header>\n \n <mat-card-content>\n\n <div class=\"slot-main-container\">\n\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n \n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n\n <div class=\"header-description\">{{ SecondarySlotDescription }}</div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n \n </div>\n \n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a mat-button *ngIf=\"ActionPath\" class=\"slotted-card-action-btn\" [href]=\"ActionPath\">{{ ActionText }}</a>\n <a mat-button *ngIf=\"!ActionPath\" class=\"slotted-card-action-btn\" (click)=\"MainActionClickEvent()\">{{ ActionText }}</a>\n </mat-card-actions>\n\n </mat-card>\n\n\n",
4763
- styles: [".col-info-card{border:2px solid #d3d3d3;margin:20px;padding:0}.header-icon{margin-right:10px}.card-title{font-size:30px;margin-bottom:0}.header-description{background-color:#d3d3d3;margin-left:-2px;padding:10px}mat-card-actions{margin-bottom:0!important;margin-left:-1px!important;margin-right:0!important}.slotted-card-action-btn{border-radius:0 0 2px 2px;border-top:1px solid #d3d3d3;width:100%}"]
4767
+ template: "<mat-card class=\"col-info-card\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title class=\"card-title\">{{ Title }}</mat-card-title>\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n </mat-card-header>\n \n <mat-card-content>\n\n <div class=\"slot-main-container\">\n\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n \n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n\n <div class=\"header-description\">{{ SecondarySlotDescription }}</div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n \n </div>\n \n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a mat-button \n *ngIf=\"ActionPath\" \n class=\"slotted-card-action-btn\" \n [href]=\"ActionPath\" \n color=\"primary\">{{ ActionText }}\n </a>\n\n <a mat-button \n *ngIf=\"!ActionPath\" \n class=\"slotted-card-action-btn\" \n (click)=\"MainActionClickEvent()\" \n color=\"primary\">\n {{ ActionText }}\n </a>\n\n </mat-card-actions>\n\n </mat-card>\n\n\n",
4768
+ styles: [".col-info-card{border:2px solid #d3d3d3;margin:20px;padding:0}.header-icon{margin-right:10px}.card-title{font-size:30px;margin-bottom:0}.header-description{background-color:#d3d3d3;margin-left:-2px;padding:10px}mat-card-actions{margin-bottom:0!important;margin-left:-1px!important;margin-right:0!important}.slotted-card-action-btn{width:100%}"]
4764
4769
  },] }
4765
4770
  ];
4766
4771
  SlottedCardComponent.ctorParameters = function () { return []; };
4767
4772
  SlottedCardComponent.propDecorators = {
4768
- Title: [{ type: i0.Input, args: ['title',] }],
4773
+ ActionText: [{ type: i0.Input, args: ['action-text',] }],
4774
+ ActionPath: [{ type: i0.Input, args: ['action-path',] }],
4769
4775
  Icon: [{ type: i0.Input, args: ['icon',] }],
4770
4776
  MainSlotDescription: [{ type: i0.Input, args: ['main-slot-description',] }],
4777
+ Title: [{ type: i0.Input, args: ['title',] }],
4771
4778
  SecondarySlotDescription: [{ type: i0.Input, args: ['secondary-slot-description',] }],
4772
- ActionText: [{ type: i0.Input, args: ['action-text',] }],
4773
- ActionPath: [{ type: i0.Input, args: ['action-path',] }],
4774
4779
  MainActionClicked: [{ type: i0.Output, args: ['main-action-clicked',] }]
4775
4780
  };
4776
4781
 
@@ -5042,6 +5047,7 @@
5042
5047
  var SecurityToggleComponent = /** @class */ (function () {
5043
5048
  function SecurityToggleComponent(formBldr) {
5044
5049
  this.formBldr = formBldr;
5050
+ this.SaveFormEvent = new i0.EventEmitter;
5045
5051
  }
5046
5052
  Object.defineProperty(SecurityToggleComponent.prototype, "IsPrivateFormControl", {
5047
5053
  get: function () {
@@ -5051,34 +5057,26 @@
5051
5057
  enumerable: false,
5052
5058
  configurable: true
5053
5059
  });
5060
+ Object.defineProperty(SecurityToggleComponent.prototype, "IsTriggerSignInFormControl", {
5061
+ get: function () {
5062
+ var _a;
5063
+ return (_a = this.SecurityFormGroup) === null || _a === void 0 ? void 0 : _a.controls.isTriggerSignIn;
5064
+ },
5065
+ enumerable: false,
5066
+ configurable: true
5067
+ });
5054
5068
  SecurityToggleComponent.prototype.ngOnInit = function () {
5055
5069
  this.setupSecurityFormGroup();
5056
5070
  };
5057
5071
  SecurityToggleComponent.prototype.SecuritySubmit = function () {
5058
- console.log("submitting values");
5072
+ //save the security settings
5073
+ console.log("submitting security values: ", this.SecurityFormGroup.value);
5074
+ this.SaveFormEvent.emit(this.SecurityFormGroup.value);
5059
5075
  };
5060
5076
  SecurityToggleComponent.prototype.setupSecurityFormGroup = function () {
5061
5077
  var _a, _b;
5062
5078
  this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
5063
- if (this.EditingApplication != null) {
5064
- // this.SecurityFormGroup = this.formBldr.group({
5065
- // name: [this.EditingApplication.Application?.Name, Validators.required],
5066
- // description: [
5067
- // this.EditingApplication.Application?.Description,
5068
- // Validators.required,
5069
- // ],
5070
- // route: [
5071
- // this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||
5072
- // '/',
5073
- // Validators.required,
5074
- // ],
5075
- // // priority: [
5076
- // // this.EditingApplication.Application?.Priority || 10000,
5077
- // // Validators.required,
5078
- // // ],
5079
- // procType: [this.ProcessorType, [Validators.required]],
5080
- // });
5081
- }
5079
+ this.SecurityFormGroup = this.formBldr.group({});
5082
5080
  this.setupSecurityForm();
5083
5081
  };
5084
5082
  SecurityToggleComponent.prototype.setupSecurityForm = function () {
@@ -5091,7 +5089,7 @@
5091
5089
  SecurityToggleComponent.decorators = [
5092
5090
  { type: i0.Component, args: [{
5093
5091
  selector: 'lcu-security-toggle',
5094
- template: "<form class=\"security-form\" [formGroup]=\"SecurityFormGroup\" (ngSubmit)=\"SecuritySubmit()\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n \n <mat-card-actions>\n <!-- [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save Security Settings</button>\n </mat-card-actions>\n </mat-card>\n</form>\n",
5092
+ template: "<form class=\"security-form\" [formGroup]=\"SecurityFormGroup\" (ngSubmit)=\"SecuritySubmit()\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n\n </mat-card-actions>\n \n </mat-card>\n</form>\n",
5095
5093
  styles: ["::ng-deep .mat-tooltip{color:#000!important}"]
5096
5094
  },] }
5097
5095
  ];
@@ -5099,15 +5097,25 @@
5099
5097
  { type: forms.FormBuilder }
5100
5098
  ]; };
5101
5099
  SecurityToggleComponent.propDecorators = {
5102
- EditingApplication: [{ type: i0.Input, args: ['editing-application',] }]
5100
+ EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
5101
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }]
5103
5102
  };
5104
5103
 
5105
5104
  var ProcessorDetailsFormComponent = /** @class */ (function () {
5106
- function ProcessorDetailsFormComponent(formBldr) {
5105
+ function ProcessorDetailsFormComponent(formBldr, eacSvc) {
5107
5106
  this.formBldr = formBldr;
5108
- // this.EditingApplicationLookup = null;
5107
+ this.eacSvc = eacSvc;
5109
5108
  this.redirectTooltip = '';
5109
+ this.SaveFormEvent = new i0.EventEmitter;
5110
5110
  }
5111
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "APIRootFormControl", {
5112
+ get: function () {
5113
+ var _a;
5114
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.apiRoot;
5115
+ },
5116
+ enumerable: false,
5117
+ configurable: true
5118
+ });
5111
5119
  Object.defineProperty(ProcessorDetailsFormComponent.prototype, "BuildFormControl", {
5112
5120
  get: function () {
5113
5121
  var _a;
@@ -5124,6 +5132,14 @@
5124
5132
  enumerable: false,
5125
5133
  configurable: true
5126
5134
  });
5135
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "ClientSecretFormControl", {
5136
+ get: function () {
5137
+ var _a;
5138
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.clientSecret;
5139
+ },
5140
+ enumerable: false,
5141
+ configurable: true
5142
+ });
5127
5143
  Object.defineProperty(ProcessorDetailsFormComponent.prototype, "DefaultFileFormControl", {
5128
5144
  get: function () {
5129
5145
  var _a;
@@ -5132,6 +5148,17 @@
5132
5148
  enumerable: false,
5133
5149
  configurable: true
5134
5150
  });
5151
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "DefaultSourceControl", {
5152
+ get: function () {
5153
+ var _a, _b, _c, _d;
5154
+ return {
5155
+ Organization: (_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.Organization,
5156
+ Repository: (_d = (_c = this.EditingApplication) === null || _c === void 0 ? void 0 : _c.LowCodeUnit) === null || _d === void 0 ? void 0 : _d.Repository,
5157
+ };
5158
+ },
5159
+ enumerable: false,
5160
+ configurable: true
5161
+ });
5135
5162
  Object.defineProperty(ProcessorDetailsFormComponent.prototype, "InboundPathFormControl", {
5136
5163
  get: function () {
5137
5164
  var _a;
@@ -5140,10 +5167,34 @@
5140
5167
  enumerable: false,
5141
5168
  configurable: true
5142
5169
  });
5143
- Object.defineProperty(ProcessorDetailsFormComponent.prototype, "TokenLookupFormControl", {
5170
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "MethodsFormControl", {
5144
5171
  get: function () {
5145
5172
  var _a;
5146
- return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.tokenLookup;
5173
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.methods;
5174
+ },
5175
+ enumerable: false,
5176
+ configurable: true
5177
+ });
5178
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PackageFormControl", {
5179
+ get: function () {
5180
+ var _a;
5181
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.package;
5182
+ },
5183
+ enumerable: false,
5184
+ configurable: true
5185
+ });
5186
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PermanentFormControl", {
5187
+ get: function () {
5188
+ var _a;
5189
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.permanent;
5190
+ },
5191
+ enumerable: false,
5192
+ configurable: true
5193
+ });
5194
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PreserveMethodFormControl", {
5195
+ get: function () {
5196
+ var _a;
5197
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.preserveMethod;
5147
5198
  },
5148
5199
  enumerable: false,
5149
5200
  configurable: true
@@ -5180,24 +5231,40 @@
5180
5231
  enumerable: false,
5181
5232
  configurable: true
5182
5233
  });
5183
- Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PermanentFormControl", {
5234
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "TokenLookupFormControl", {
5184
5235
  get: function () {
5185
5236
  var _a;
5186
- return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.permanent;
5237
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.tokenLookup;
5187
5238
  },
5188
5239
  enumerable: false,
5189
5240
  configurable: true
5190
5241
  });
5191
- Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PreserveMethodFormControl", {
5242
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "VersionFormControl", {
5192
5243
  get: function () {
5193
5244
  var _a;
5194
- return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.preserveMethod;
5245
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.version;
5246
+ },
5247
+ enumerable: false,
5248
+ configurable: true
5249
+ });
5250
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "ZipFileFormControl", {
5251
+ get: function () {
5252
+ var _a;
5253
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.zipFile;
5195
5254
  },
5196
5255
  enumerable: false,
5197
5256
  configurable: true
5198
5257
  });
5199
5258
  ProcessorDetailsFormComponent.prototype.ngOnInit = function () {
5200
- this.setupProcessorDetailsForm();
5259
+ if (!this.EditingApplication) {
5260
+ this.CreateNewApplication();
5261
+ }
5262
+ else {
5263
+ this.setupProcessorDetailsForm();
5264
+ }
5265
+ };
5266
+ ProcessorDetailsFormComponent.prototype.CreateNewApplication = function () {
5267
+ this.SetEditingApplication(i2.Guid.CreateRaw());
5201
5268
  };
5202
5269
  ProcessorDetailsFormComponent.prototype.DetermineTooltipText = function () {
5203
5270
  var permanentValue = this.PermanentFormControl.value;
@@ -5215,7 +5282,13 @@
5215
5282
  this.redirectTooltip = '308 – Permanent and Preserve';
5216
5283
  }
5217
5284
  };
5285
+ ProcessorDetailsFormComponent.prototype.SetEditingApplication = function (appLookup) {
5286
+ this.EditingApplicationLookup = appLookup;
5287
+ this.setupProcessorDetailsForm();
5288
+ };
5218
5289
  ProcessorDetailsFormComponent.prototype.SubmitProcessorDetails = function () {
5290
+ console.log("submitting proc details: ", this.ProcessorDetailsFormGroup.value);
5291
+ this.SaveFormEvent.emit(this.ProcessorDetailsFormGroup.value);
5219
5292
  };
5220
5293
  ProcessorDetailsFormComponent.prototype.ProcessorTypeChanged = function (event) {
5221
5294
  this.ProcessorType = event.value;
@@ -5281,26 +5354,15 @@
5281
5354
  }
5282
5355
  };
5283
5356
  ProcessorDetailsFormComponent.prototype.setupProcessorDetailsForm = function () {
5284
- var _a, _b, _c, _d, _e;
5357
+ var _a, _b;
5285
5358
  this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
5359
+ console.log("EDITING APP = ", this.EditingApplication);
5286
5360
  if (this.EditingApplication != null) {
5287
5361
  this.ProcessorDetailsFormGroup = this.formBldr.group({
5288
- name: [(_c = this.EditingApplication.Application) === null || _c === void 0 ? void 0 : _c.Name, forms.Validators.required],
5289
- description: [
5290
- (_d = this.EditingApplication.Application) === null || _d === void 0 ? void 0 : _d.Description,
5291
- forms.Validators.required,
5292
- ],
5293
- route: [
5294
- ((_e = this.EditingApplication.LookupConfig) === null || _e === void 0 ? void 0 : _e.PathRegex.replace('.*', '')) ||
5295
- '/',
5296
- forms.Validators.required,
5297
- ],
5298
- // priority: [
5299
- // this.EditingApplication.Application?.Priority || 10000,
5300
- // Validators.required,
5301
- // ],
5302
- procType: [this.ProcessorType, [forms.Validators.required]],
5362
+ procType: [this.ProcessorType, [forms.Validators.required]]
5303
5363
  });
5364
+ this.setupDfsForm();
5365
+ this.setupLcuTypeSubForm();
5304
5366
  }
5305
5367
  };
5306
5368
  ProcessorDetailsFormComponent.prototype.setupLCUGitHubForm = function () {
@@ -5311,22 +5373,22 @@
5311
5373
  var _a;
5312
5374
  this.ProcessorDetailsFormGroup.addControl('applicationId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ApplicationID) || '', [forms.Validators.required]));
5313
5375
  };
5314
- ProcessorDetailsFormComponent.prototype.setupLCUNPMForm = function () {
5315
- // this.ApplicationFormGroup.addControl(
5316
- // 'package',
5317
- // this.formBldr.control(
5318
- // this.EditingApplication.LowCodeUnit?.Package || '',
5319
- // [Validators.required]
5320
- // )
5321
- // );
5322
- // this.ApplicationFormGroup.addControl(
5323
- // 'version',
5324
- // this.formBldr.control(
5325
- // this.EditingApplication.LowCodeUnit?.Version || '',
5326
- // [Validators.required]
5327
- // )
5328
- // );
5329
- };
5376
+ // protected setupLCUNPMForm(): void {
5377
+ // this.ApplicationFormGroup.addControl(
5378
+ // 'package',
5379
+ // this.formBldr.control(
5380
+ // this.EditingApplication.LowCodeUnit?.Package || '',
5381
+ // [Validators.required]
5382
+ // )
5383
+ // );
5384
+ // this.ApplicationFormGroup.addControl(
5385
+ // 'version',
5386
+ // this.formBldr.control(
5387
+ // this.EditingApplication.LowCodeUnit?.Version || '',
5388
+ // [Validators.required]
5389
+ // )
5390
+ // );
5391
+ // }
5330
5392
  ProcessorDetailsFormComponent.prototype.setupLCUSPAForm = function () {
5331
5393
  var _a;
5332
5394
  this.ProcessorDetailsFormGroup.addControl('spaRoot', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SPARoot) || '', [forms.Validators.required]));
@@ -5399,20 +5461,26 @@
5399
5461
  ProcessorDetailsFormComponent.decorators = [
5400
5462
  { type: i0.Component, args: [{
5401
5463
  selector: 'lcu-processor-details-form',
5402
- template: "<form class=\"processor-details-form\" [formGroup]=\"ProcessorDetailsFormGroup\" (ngSubmit)=\"SubmitProcessorDetails()\">\n<mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ProcessorDetailsFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls?.RepositoryFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 \u2013 Not Permanent and Not Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"307 \u2013 Not Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"308 \u2013 Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n \n\n <!-- <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Values used to control the redirect type. Permanent and Not Preserve = 301; Not Permanent and Not Preserve = 302; Permanent and Preserve = 308; Not Permanent and Not Preserve = 307;\"\n >\n info_outline\n </mat-icon> -->\n </div>\n </div>\n </div>\n </mat-card-content>\n <mat-card-actions>\n <!-- [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save</button>\n </mat-card-actions>\n</mat-card>\n</form>\n \n",
5464
+ template: "<form class=\"processor-details-form\" [formGroup]=\"ProcessorDetailsFormGroup\" (ngSubmit)=\"SubmitProcessorDetails()\">\n<mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ProcessorDetailsFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls?.RepositoryFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 \u2013 Not Permanent and Not Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"307 \u2013 Not Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"308 \u2013 Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n \n\n <!-- <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Values used to control the redirect type. Permanent and Not Preserve = 301; Not Permanent and Not Preserve = 302; Permanent and Preserve = 308; Not Permanent and Not Preserve = 307;\"\n >\n info_outline\n </mat-icon> -->\n </div>\n </div>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!ProcessorDetailsFormGroup.valid || !ProcessorDetailsFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Processor Details\n </button>\n\n </mat-card-actions>\n</mat-card>\n</form>\n \n",
5403
5465
  styles: [""]
5404
5466
  },] }
5405
5467
  ];
5406
5468
  ProcessorDetailsFormComponent.ctorParameters = function () { return [
5407
- { type: forms.FormBuilder }
5469
+ { type: forms.FormBuilder },
5470
+ { type: EaCService }
5408
5471
  ]; };
5409
5472
  ProcessorDetailsFormComponent.propDecorators = {
5410
- EditingApplication: [{ type: i0.Input, args: ['editing-application',] }]
5473
+ EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
5474
+ EditingApplicationLookup: [{ type: i0.Input, args: ['editing-application-lookup',] }],
5475
+ ProjectLookup: [{ type: i0.Input, args: ['project-lookup',] }],
5476
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }],
5477
+ SourceControlFormControls: [{ type: i0.ViewChild, args: [SourceControlFormControlsComponent,] }]
5411
5478
  };
5412
5479
 
5413
5480
  var SourceControlFormComponent = /** @class */ (function () {
5414
5481
  function SourceControlFormComponent(formBldr) {
5415
5482
  this.formBldr = formBldr;
5483
+ this.SaveFormEvent = new i0.EventEmitter;
5416
5484
  }
5417
5485
  Object.defineProperty(SourceControlFormComponent.prototype, "HasBuildFormControl", {
5418
5486
  get: function () {
@@ -5439,7 +5507,6 @@
5439
5507
  });
5440
5508
  Object.defineProperty(SourceControlFormComponent.prototype, "SourceControls", {
5441
5509
  get: function () {
5442
- console.log("Environment: ", this.Environment);
5443
5510
  return this.Environment.Sources || {};
5444
5511
  },
5445
5512
  enumerable: false,
@@ -5453,11 +5520,14 @@
5453
5520
  console.log("sourceControlLookupChanged: ", event);
5454
5521
  };
5455
5522
  SourceControlFormComponent.prototype.SubmitSourceControl = function () {
5523
+ console.log("submitting source control: ", this.SourceControlFormGroup.value);
5524
+ this.SaveFormEvent.emit(this.SourceControlFormGroup.value);
5456
5525
  };
5457
5526
  //HELPER
5458
5527
  SourceControlFormComponent.prototype.setupSourceControlForm = function () {
5459
5528
  var _a, _b;
5460
5529
  this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
5530
+ this.SourceControlFormGroup = this.formBldr.group({});
5461
5531
  this.setupBuildForm();
5462
5532
  };
5463
5533
  SourceControlFormComponent.prototype.setupBuildForm = function () {
@@ -5470,7 +5540,7 @@
5470
5540
  SourceControlFormComponent.decorators = [
5471
5541
  { type: i0.Component, args: [{
5472
5542
  selector: 'lcu-source-control-form',
5473
- template: "<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\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 <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions>\n <!-- [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save</button>\n </mat-card-actions>\n </mat-card>\n</form>\n",
5543
+ template: "<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\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 <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n",
5474
5544
  styles: [""]
5475
5545
  },] }
5476
5546
  ];
@@ -5480,11 +5550,12 @@
5480
5550
  SourceControlFormComponent.propDecorators = {
5481
5551
  EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
5482
5552
  Environment: [{ type: i0.Input, args: ['environment',] }],
5483
- SourceControlFormControls: [{ type: i0.ViewChild, args: [SourceControlFormControlsComponent,] }]
5553
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }]
5484
5554
  };
5485
5555
 
5486
5556
  var BuildPipelineFormComponent = /** @class */ (function () {
5487
- function BuildPipelineFormComponent(formBuilder, appsFlowSvc) {
5557
+ function BuildPipelineFormComponent(eacSvc, formBuilder, appsFlowSvc) {
5558
+ this.eacSvc = eacSvc;
5488
5559
  this.formBuilder = formBuilder;
5489
5560
  this.appsFlowSvc = appsFlowSvc;
5490
5561
  this.HostingDetails = new ProjectHostingDetails();
@@ -5539,6 +5610,13 @@
5539
5610
  enumerable: false,
5540
5611
  configurable: true
5541
5612
  });
5613
+ Object.defineProperty(BuildPipelineFormComponent.prototype, "DevOpsActionNameFormControl", {
5614
+ get: function () {
5615
+ return this.BuildPipelineFormGroup.get('devOpsActionName');
5616
+ },
5617
+ enumerable: false,
5618
+ configurable: true
5619
+ });
5542
5620
  Object.defineProperty(BuildPipelineFormComponent.prototype, "EditingSourceControl", {
5543
5621
  get: function () {
5544
5622
  var _a, _b;
@@ -5551,6 +5629,13 @@
5551
5629
  enumerable: false,
5552
5630
  configurable: true
5553
5631
  });
5632
+ Object.defineProperty(BuildPipelineFormComponent.prototype, "NPMTokenFormControl", {
5633
+ get: function () {
5634
+ return this.BuildPipelineFormGroup.get('npmToken');
5635
+ },
5636
+ enumerable: false,
5637
+ configurable: true
5638
+ });
5554
5639
  Object.defineProperty(BuildPipelineFormComponent.prototype, "SelectedHostingOption", {
5555
5640
  // (ho) => ho.Lookup === this.BuildPipeline
5556
5641
  get: function () {
@@ -5561,6 +5646,19 @@
5561
5646
  enumerable: false,
5562
5647
  configurable: true
5563
5648
  });
5649
+ Object.defineProperty(BuildPipelineFormComponent.prototype, "SelectedHostingOptionInputControlValues", {
5650
+ get: function () {
5651
+ var _this = this;
5652
+ var _a, _b;
5653
+ return (_b = (_a = this.SelectedHostingOption) === null || _a === void 0 ? void 0 : _a.Inputs) === null || _b === void 0 ? void 0 : _b.reduce(function (prev, cur) {
5654
+ var res = Object.assign({}, prev);
5655
+ res[cur.Lookup] = _this.BuildPipelineFormGroup.controls[cur.Lookup].value;
5656
+ return res;
5657
+ }, {});
5658
+ },
5659
+ enumerable: false,
5660
+ configurable: true
5661
+ });
5564
5662
  Object.defineProperty(BuildPipelineFormComponent.prototype, "SourceControlLookups", {
5565
5663
  get: function () {
5566
5664
  return Object.keys(this.SourceControls || {});
@@ -5576,22 +5674,14 @@
5576
5674
  configurable: true
5577
5675
  });
5578
5676
  BuildPipelineFormComponent.prototype.ngOnInit = function () {
5579
- var _a, _b, _c;
5580
5677
  this.BuildPipelineFormGroup = this.formBuilder.group({});
5581
- this.loadProjectHostingDetails();
5582
- console.log("ARTIFACT: ", this.Artifact);
5583
- // this.BuildPipeline ||
5584
- // github-artifacts-release is this.HostingDetails?.HostingOptions[0]?.Lookup
5585
- this.BuildPipeline =
5586
- ((_a = this.HostingDetails) === null || _a === void 0 ? void 0 : _a.HostingOptions) ? (_c = (_b = this.HostingDetails) === null || _b === void 0 ? void 0 : _b.HostingOptions[0]) === null || _c === void 0 ? void 0 : _c.Lookup : '';
5587
- console.log("Build Pipeline HERE= ", this.BuildPipeline);
5588
5678
  if (this.BuildPipelineFormGroup != null) {
5589
5679
  this.BuildPipelineFormGroup.removeControl('hostingDetails');
5590
5680
  }
5591
5681
  this.BuildPipelineFormGroup.addControl('hostingDetails', this.formBuilder.group({
5592
5682
  buildPipeline: [this.BuildPipeline, [forms.Validators.required]],
5593
5683
  }));
5594
- this.setupControlsForForm();
5684
+ this.loadProjectHostingDetails();
5595
5685
  };
5596
5686
  //API METHODS
5597
5687
  BuildPipelineFormComponent.prototype.BuildPipelineChanged = function () {
@@ -5600,18 +5690,82 @@
5600
5690
  this.BuildPipeline = (_b = this.BuildPipelineFormControl) === null || _b === void 0 ? void 0 : _b.value;
5601
5691
  this.setupControlsForForm();
5602
5692
  };
5693
+ BuildPipelineFormComponent.prototype.SubmitBuildPipeline = function () {
5694
+ console.log("submitting build pipeline: ", this.BuildPipelineFormGroup.value);
5695
+ };
5696
+ BuildPipelineFormComponent.prototype.SaveEnvironment = function () {
5697
+ var _a;
5698
+ var saveEnvReq = {
5699
+ Environment: Object.assign(Object.assign({}, this.Environment), { Artifacts: this.Environment.Artifacts || {}, DevOpsActions: this.Environment.DevOpsActions || {}, Secrets: this.Environment.Secrets || {}, Sources: this.Environment.Sources || {} }),
5700
+ EnvironmentLookup: this.EnvironmentLookup,
5701
+ EnterpriseDataTokens: {},
5702
+ };
5703
+ var artifactLookup;
5704
+ var artifact = Object.assign(Object.assign({}, this.Artifact), this.SelectedHostingOptionInputControlValues);
5705
+ if (!this.ArtifactLookup) {
5706
+ artifactLookup = i2.Guid.CreateRaw();
5707
+ artifact = Object.assign(Object.assign({}, artifact), { Type: this.SelectedHostingOption
5708
+ .ArtifactType, Name: this.SelectedHostingOption.Name, NPMRegistry: 'https://registry.npmjs.org/' });
5709
+ }
5710
+ else {
5711
+ artifactLookup = this.ArtifactLookup;
5712
+ }
5713
+ saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;
5714
+ var devOpsActionLookup;
5715
+ if (!this.DevOpsActionLookup) {
5716
+ devOpsActionLookup = i2.Guid.CreateRaw();
5717
+ var doa = Object.assign(Object.assign({}, this.DevOpsAction), { ArtifactLookups: [artifactLookup], Name: this.DevOpsActionNameFormControl.value, Path: this.SelectedHostingOption.Path, Templates: this.SelectedHostingOption.Templates });
5718
+ if ((_a = this.NPMTokenFormControl) === null || _a === void 0 ? void 0 : _a.value) {
5719
+ var secretLookup = 'npm-access-token';
5720
+ doa.SecretLookups = [secretLookup];
5721
+ saveEnvReq.Environment.Secrets[secretLookup] = {
5722
+ Name: 'NPM Access Token',
5723
+ DataTokenLookup: secretLookup,
5724
+ KnownAs: 'NPM_TOKEN',
5725
+ };
5726
+ saveEnvReq.EnterpriseDataTokens[secretLookup] = {
5727
+ Name: saveEnvReq.Environment.Secrets[secretLookup].Name,
5728
+ Description: saveEnvReq.Environment.Secrets[secretLookup].Name,
5729
+ Value: this.NPMTokenFormControl.value,
5730
+ };
5731
+ }
5732
+ saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;
5733
+ }
5734
+ else {
5735
+ devOpsActionLookup = this.DevOpsActionLookup;
5736
+ var doa = Object.assign(Object.assign({}, this.DevOpsAction), { Name: this.DevOpsActionNameFormControl.value });
5737
+ saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;
5738
+ }
5739
+ // let source: EaCSourceControl = {
5740
+ // ...this.EditingSourceControl,
5741
+ // Branches: this.SourceControlFormControls.SelectedBranches,
5742
+ // MainBranch: this.SourceControlFormControls.MainBranchFormControl.value,
5743
+ // };
5744
+ // source = {
5745
+ // ...source,
5746
+ // Type: 'GitHub',
5747
+ // Name: this.EditingSourceControlLookup,
5748
+ // DevOpsActionTriggerLookups: [devOpsActionLookup],
5749
+ // Organization:
5750
+ // this.SourceControlFormControls.OrganizationFormControl.value,
5751
+ // Repository: this.SourceControlFormControls.RepositoryFormControl.value,
5752
+ // };
5753
+ // const scLookup = `github://${source.Organization}/${source.Repository}`;
5754
+ // saveEnvReq.Environment.Sources[scLookup] = source;
5755
+ this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);
5756
+ };
5603
5757
  // Helpers
5604
5758
  BuildPipelineFormComponent.prototype.setupControlsForForm = function () {
5605
5759
  var _this = this;
5606
- //for (const ctrlName in this.BuildPipelineFormGroup.controls) {
5607
- //devOpsAction doesn't exist
5608
- //removes hosting details
5609
- // if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {
5610
- // console.log("removing control: ", ctrlName)
5611
- // this.BuildPipelineFormGroup.removeControl(ctrlName);
5612
- // }
5613
- //}
5614
5760
  var _a, _b, _c, _d, _e, _f;
5761
+ for (var ctrlName in this.BuildPipelineFormGroup.controls) {
5762
+ //devOpsAction doesn't exist
5763
+ //removes hosting details
5764
+ if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {
5765
+ console.log("removing control: ", ctrlName);
5766
+ this.BuildPipelineFormGroup.removeControl(ctrlName);
5767
+ }
5768
+ }
5615
5769
  this.BuildPipelineFormGroup.addControl('devOpsActionName', this.formBuilder.control(((_a = this.DevOpsAction) === null || _a === void 0 ? void 0 : _a.Name) || ((_b = this.SelectedHostingOption) === null || _b === void 0 ? void 0 : _b.Name) || '', [forms.Validators.required]));
5616
5770
  (_d = (_c = this.SelectedHostingOption) === null || _c === void 0 ? void 0 : _c.Inputs) === null || _d === void 0 ? void 0 : _d.forEach(function (input) {
5617
5771
  var validators = input.Required ? [forms.Validators.required] : [];
@@ -5620,9 +5774,7 @@
5620
5774
  // this.FormGroup.controls[input.Lookup].disable();
5621
5775
  // }
5622
5776
  });
5623
- debugger;
5624
5777
  if (((_e = this.BuildPipelineFormControl) === null || _e === void 0 ? void 0 : _e.value) === 'npm-release') {
5625
- debugger;
5626
5778
  if (!this.BuildPipelineFormGroup.controls.npmToken) {
5627
5779
  this.BuildPipelineFormGroup.addControl('npmToken', this.formBuilder.control('', this.Disabled ? [] : [forms.Validators.required]));
5628
5780
  if (this.Disabled) {
@@ -5638,23 +5790,27 @@
5638
5790
  };
5639
5791
  BuildPipelineFormComponent.prototype.loadProjectHostingDetails = function () {
5640
5792
  var _this = this;
5641
- // this.HostingDetails.Loading = true;
5793
+ this.HostingDetails.Loading = true;
5642
5794
  // this.Organization,
5643
5795
  // this.Repository,
5644
5796
  // this.MainBranch
5645
- // 'powhound4',
5646
- // "RedwoodCrystals",
5647
- // "master"
5797
+ // "powhound4",
5798
+ // "RedwoodCrystals",
5799
+ // "master"
5648
5800
  this.appsFlowSvc
5649
- .LoadProjectHostingDetails('powhound4', "RedwoodCrystals", "master")
5801
+ .NewLoadProjectHostingDetails()
5650
5802
  .subscribe(function (response) {
5803
+ var _a, _b, _c;
5651
5804
  _this.HostingDetails = response.Model;
5652
5805
  console.log("response: ", response);
5653
5806
  _this.HostingDetails.Loading = false;
5807
+ _this.BuildPipeline =
5808
+ ((_a = _this.HostingDetails) === null || _a === void 0 ? void 0 : _a.HostingOptions) ? (_c = (_b = _this.HostingDetails) === null || _b === void 0 ? void 0 : _b.HostingOptions[0]) === null || _c === void 0 ? void 0 : _c.Lookup : '';
5809
+ console.log("Build Pipeline HERE= ", _this.BuildPipeline);
5810
+ _this.setupControlsForForm();
5654
5811
  }, function (err) {
5655
- _this.HostingDetails.Loading = false;
5656
- console.log("hosting details LOADING EERR: ", _this.HostingDetails);
5657
5812
  console.log("ERR: ", err);
5813
+ _this.HostingDetails.Loading = false;
5658
5814
  });
5659
5815
  console.log("HOSTING DETAILS: ", this.HostingDetails);
5660
5816
  };
@@ -5663,11 +5819,12 @@
5663
5819
  BuildPipelineFormComponent.decorators = [
5664
5820
  { type: i0.Component, args: [{
5665
5821
  selector: 'lcu-build-pipeline-form',
5666
- template: "<form class=\"form-card\" [formGroup]=\"BuildPipelineFormGroup\">\n <!-- *ngIf=\"EditingSourceControl?.Branches?.length > 0\" -->\n <mat-card\n class=\"spread\" \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\n <div *ngIf=\"!HostingDetails?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions; let i = index\"\n >\n <mat-option [value]=\"hostOption?.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-hint>\n <ng-container *ngFor=\"let hostOption of HostingDetails?.HostingOptions\">\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n \n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n \n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n \n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n \n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n \n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc;\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access Token (PAT) with publish access to the organization used for your NPM packages. \n Learn how to create and view access tokens \n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n </div>\n \n <div *ngIf=\"HostingDetails?.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\">Loading hosting details</h4>\n </div>\n </div>\n </div>\n </ng-container>\n </mat-card-content>\n </mat-card>\n</form>\n",
5822
+ template: "<form class=\"form-card\" [formGroup]=\"BuildPipelineFormGroup\" (ngSubmit)=\"SubmitBuildPipeline()\">\n <!-- *ngIf=\"EditingSourceControl?.Branches?.length > 0\" -->\n <mat-card\n class=\"spread\" \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\n <div *ngIf=\"!HostingDetails?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions; let i = index\"\n >\n <mat-option [value]=\"hostOption?.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-hint>\n <ng-container *ngFor=\"let hostOption of HostingDetails?.HostingOptions\">\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n \n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n \n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n \n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n \n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n \n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc;\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access Token (PAT) with publish access to the organization used for your NPM packages. \n Learn how to create and view access tokens \n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n </div>\n \n <div *ngIf=\"HostingDetails?.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\">Loading hosting details</h4>\n </div>\n </div>\n </div>\n </ng-container>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!BuildPipelineFormGroup.valid || !BuildPipelineFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Build Pipeline\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n",
5667
5823
  styles: [""]
5668
5824
  },] }
5669
5825
  ];
5670
5826
  BuildPipelineFormComponent.ctorParameters = function () { return [
5827
+ { type: EaCService },
5671
5828
  { type: forms.FormBuilder },
5672
5829
  { type: ApplicationsFlowService }
5673
5830
  ]; };
@@ -5675,18 +5832,18 @@
5675
5832
  BuildPipeline: [{ type: i0.Input, args: ['build-pipeline',] }],
5676
5833
  DevOpsActionLookup: [{ type: i0.Input, args: ['devops-action-lookup',] }],
5677
5834
  Disabled: [{ type: i0.Input, args: ['disabled',] }],
5678
- Environment: [{ type: i0.Input, args: ['environment',] }]
5835
+ Environment: [{ type: i0.Input, args: ['environment',] }],
5836
+ EnvironmentLookup: [{ type: i0.Input, args: ['environment-lookup',] }]
5679
5837
  };
5680
5838
 
5681
5839
  var DevopsSourceControlFormComponent = /** @class */ (function () {
5682
5840
  // Constructors
5683
- function DevopsSourceControlFormComponent(formBuilder, appsFlowSvc, eacSvc) {
5684
- this.formBuilder = formBuilder;
5841
+ function DevopsSourceControlFormComponent(appsFlowSvc, eacSvc, formBuilder) {
5685
5842
  this.appsFlowSvc = appsFlowSvc;
5686
5843
  this.eacSvc = eacSvc;
5844
+ this.formBuilder = formBuilder;
5687
5845
  this.SeparatorKeysCodes = [keycodes.ENTER, keycodes.COMMA];
5688
5846
  this.BuildPath = null;
5689
- // this.EditingSourceControlLookup = null;
5690
5847
  this.HostingDetails = new ProjectHostingDetails();
5691
5848
  this.SelectedBranches = [];
5692
5849
  this.SourceControlRoot = '';
@@ -5694,7 +5851,6 @@
5694
5851
  this.UseBuildPath = false;
5695
5852
  }
5696
5853
  Object.defineProperty(DevopsSourceControlFormComponent.prototype, "BranchesFormControl", {
5697
- // Fields
5698
5854
  // Properties
5699
5855
  get: function () {
5700
5856
  return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'branches');
@@ -5785,12 +5941,9 @@
5785
5941
  this.destroyFormControls();
5786
5942
  };
5787
5943
  DevopsSourceControlFormComponent.prototype.ngOnInit = function () {
5788
- console.log("org: ", this.EditingSourceControl);
5789
- console.log("lookup: ", this.EditingSourceControlLookup);
5790
5944
  if (this.EditingSourceControlLookup === null) {
5791
5945
  this.CreateNewSourceControl();
5792
5946
  }
5793
- console.log("org: ", this.EditingSourceControl);
5794
5947
  if (this.EditingSourceControl != null) {
5795
5948
  this.DevOpsSourceControlFormGroup = this.formBuilder.group({});
5796
5949
  this.setupFormControls();
@@ -5809,6 +5962,7 @@
5809
5962
  this.loadProjectHostingDetails();
5810
5963
  };
5811
5964
  DevopsSourceControlFormComponent.prototype.BuildPathChanged = function (event) {
5965
+ //do something??
5812
5966
  };
5813
5967
  DevopsSourceControlFormComponent.prototype.CreateNewSourceControl = function () {
5814
5968
  this.SetEditingSourceControl(i2.Guid.CreateRaw());
@@ -5885,7 +6039,7 @@
5885
6039
  this.EditingSourceControlLookup = scLookup;
5886
6040
  };
5887
6041
  DevopsSourceControlFormComponent.prototype.SubmitSourceControl = function () {
5888
- console.log("source control submitted");
6042
+ console.log("source control submitted: ", this.DevOpsSourceControlFormGroup.value);
5889
6043
  };
5890
6044
  // public SaveSourceControl(): void {
5891
6045
  // const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {
@@ -5900,23 +6054,23 @@
5900
6054
  // EnterpriseDataTokens: {},
5901
6055
  // };
5902
6056
  // let artifactLookup: string;
5903
- // // let artifact: EaCArtifact = {
5904
- // // ...this.Artifact,
5905
- // // ...this.HostingDetailsFormControls
5906
- // // .SelectedHostingOptionInputControlValues,
5907
- // // };
5908
- // if (!this.ArtifactLookup) {
5909
- // artifactLookup = Guid.CreateRaw();
5910
- // artifact = {
5911
- // ...artifact,
5912
- // Type: this.HostingDetailsFormControls.SelectedHostingOption
5913
- // .ArtifactType,
5914
- // Name: this.HostingDetailsFormControls.SelectedHostingOption.Name,
5915
- // NPMRegistry: 'https://registry.npmjs.org/',
5916
- // };
5917
- // } else {
5918
- // artifactLookup = this.ArtifactLookup;
5919
- // }
6057
+ // let artifact: EaCArtifact = {
6058
+ // ...this.Artifact,
6059
+ // ...this.HostingDetailsFormControls
6060
+ // .SelectedHostingOptionInputControlValues,
6061
+ // };
6062
+ // // if (!this.ArtifactLookup) {
6063
+ // // artifactLookup = Guid.CreateRaw();
6064
+ // // artifact = {
6065
+ // // ...artifact,
6066
+ // // Type: this.HostingDetailsFormControls.SelectedHostingOption
6067
+ // // .ArtifactType,
6068
+ // // Name: this.HostingDetailsFormControls.SelectedHostingOption.Name,
6069
+ // // NPMRegistry: 'https://registry.npmjs.org/',
6070
+ // // };
6071
+ // // } else {
6072
+ // // artifactLookup = this.ArtifactLookup;
6073
+ // // }
5920
6074
  // saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;
5921
6075
  // let devOpsActionLookup: string;
5922
6076
  // if (!this.DevOpsActionLookup) {
@@ -6123,19 +6277,19 @@
6123
6277
  DevopsSourceControlFormComponent.decorators = [
6124
6278
  { type: i0.Component, args: [{
6125
6279
  selector: 'lcu-devops-source-control-form',
6126
- template: "<form class=\"form-card\" [formGroup]=\"DevOpsSourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n <mat-card class=\"spread\" class=\"sc-card\">\n <mat-card-header>\n <mat-card-title> Source Control </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon matSuffix matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\">\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"card\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select formControlName=\"devOpsActionLookup\" placeholder=\"DevOps Action\"\n [disabled]=\"HostingDetails?.Loading\" (selectionChange)=\"DevOpsActionLookupChanged($event)\">\n <ng-container *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\">\n <mat-option [value]=\"devOpsActionLookup\" *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\">\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 class=\"mat-full-width with-hint\" *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-icon class=\"org-icon\" matPrefix>corporate_fare</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'organization'\" placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\" [disabled]=\"Loading || HostingDetails?.Loading\" required>\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 matSuffix href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\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 href=\"https://github.com/account/organizations/new\" target=\"_blank\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \">\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'repository'\" [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \" [disabled]=\"\n !OrganizationFormControl?.valid || Loading || HostingDetails?.Loading\n \" (selectionChange)=\"RepositoryChanged($event)\" *ngIf=\"!CreatingRepository\" required>\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 matInput placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\" *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || HostingDetails?.Loading\" required />\n\n <mat-icon matSuffix (click)=\"CreateRepository()\" [fxHide]=\"Loading || HostingDetails?.Loading\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\">\n add_circle\n </mat-icon>\n\n <button mat-button type=\"button\" (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon matSuffix color=\"primary\">\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" (click)=\"CancelCreateRepository()\" *ngIf=\"CreatingRepository\">\n\n <mat-icon matSuffix>\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\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 (optionSelected)=\"BranchOptionSelected($event)\" #branchOptions=\"matAutocomplete\">\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 [removable]=\"true\" (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\">\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input matInput placeholder=\"New Branch...\" [formControlName]=\"SourceControlRoot + 'branches'\" #branches\n [matAutocomplete]=\"branchOptions\" [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\" [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\" [disabled]=\"Loading || HostingDetails?.Loading\"\n required />\n </mat-chip-list>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width with-hint\" [fxShow]=\"SelectedBranches?.length > 1\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'mainBranch'\" placeholder=\"Main Branch\"\n [disabled]=\"Loading || HostingDetails?.Loading\" (selectionChange)=\"MainBranchChanged($event)\" required>\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 matSuffix mat-icon-button href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\n <mat-icon matTooltip=\"Re-authorize Organizations\" 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 href=\"https://github.com/account/organizations/new\" target=\"_blank\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\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 [formControlName]=\"SourceControlRoot + 'buildPath'\" placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\" (selectionChange)=\"BuildPathChanged($event)\" required>\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 class=\"mat-title\" *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \">\n Loading repositories\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\">\n Loading branches\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \">\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n <!-- </div> -->\n\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n <!-- [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\">Save</button>\n </mat-card-actions>\n </mat-card>\n</form>",
6280
+ template: "<form class=\"form-card\" [formGroup]=\"DevOpsSourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n <mat-card class=\"spread\" class=\"sc-card\">\n <mat-card-header>\n <mat-card-title> Source Control </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon matSuffix matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\">\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"card\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select formControlName=\"devOpsActionLookup\" placeholder=\"DevOps Action\"\n [disabled]=\"HostingDetails?.Loading\" (selectionChange)=\"DevOpsActionLookupChanged($event)\">\n <ng-container *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\">\n <mat-option [value]=\"devOpsActionLookup\" *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\">\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 class=\"mat-full-width with-hint\" *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-icon class=\"org-icon\" matPrefix>corporate_fare</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'organization'\" placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\" [disabled]=\"Loading || HostingDetails?.Loading\" required>\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 matSuffix href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\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 href=\"https://github.com/account/organizations/new\" target=\"_blank\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \">\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'repository'\" [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \" [disabled]=\"\n !OrganizationFormControl?.valid || Loading || HostingDetails?.Loading\n \" (selectionChange)=\"RepositoryChanged($event)\" *ngIf=\"!CreatingRepository\" required>\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 matInput placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\" *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || HostingDetails?.Loading\" required />\n\n <mat-icon matSuffix (click)=\"CreateRepository()\" [fxHide]=\"Loading || HostingDetails?.Loading\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\">\n add_circle\n </mat-icon>\n\n <button mat-button type=\"button\" (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon matSuffix color=\"primary\">\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" (click)=\"CancelCreateRepository()\" *ngIf=\"CreatingRepository\">\n\n <mat-icon matSuffix>\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\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 (optionSelected)=\"BranchOptionSelected($event)\" #branchOptions=\"matAutocomplete\">\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 [removable]=\"true\" (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\">\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input matInput placeholder=\"New Branch...\" [formControlName]=\"SourceControlRoot + 'branches'\" #branches\n [matAutocomplete]=\"branchOptions\" [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\" [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\" [disabled]=\"Loading || HostingDetails?.Loading\"\n required />\n </mat-chip-list>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width with-hint\" [fxShow]=\"SelectedBranches?.length > 1\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'mainBranch'\" placeholder=\"Main Branch\"\n [disabled]=\"Loading || HostingDetails?.Loading\" (selectionChange)=\"MainBranchChanged($event)\" required>\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 matSuffix mat-icon-button href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\n <mat-icon matTooltip=\"Re-authorize Organizations\" 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 href=\"https://github.com/account/organizations/new\" target=\"_blank\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\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 [formControlName]=\"SourceControlRoot + 'buildPath'\" placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\" (selectionChange)=\"BuildPathChanged($event)\" required>\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 class=\"mat-title\" *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \">\n Loading repositories\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\">\n Loading branches\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \">\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n <!-- </div> -->\n\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!DevOpsSourceControlFormGroup.valid || !DevOpsSourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Source Control\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>",
6127
6281
  styles: [".form-card,.sc-card{width:100%}"]
6128
6282
  },] }
6129
6283
  ];
6130
6284
  DevopsSourceControlFormComponent.ctorParameters = function () { return [
6131
- { type: forms.FormBuilder },
6132
6285
  { type: ApplicationsFlowService },
6133
- { type: EaCService }
6286
+ { type: EaCService },
6287
+ { type: forms.FormBuilder }
6134
6288
  ]; };
6135
6289
  DevopsSourceControlFormComponent.propDecorators = {
6136
- BranchesInput: [{ type: i0.ViewChild, args: ['branches',] }],
6137
6290
  EditingSourceControlLookup: [{ type: i0.Input, args: ['editing-source-control-lookup',] }],
6138
- Environment: [{ type: i0.Input, args: ['environment',] }]
6291
+ Environment: [{ type: i0.Input, args: ['environment',] }],
6292
+ BranchesInput: [{ type: i0.ViewChild, args: ['branches',] }]
6139
6293
  };
6140
6294
 
6141
6295
  var SourceControlDialogComponent = /** @class */ (function () {
@@ -6150,7 +6304,7 @@
6150
6304
  SourceControlDialogComponent.decorators = [
6151
6305
  { type: i0.Component, args: [{
6152
6306
  selector: 'lcu-source-control-dialog',
6153
- template: "\n<div fxLayoutAlign=\"center center\">\n<lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [editing-source-control-lookup]=\"data.scLookup\">\n</lcu-devops-source-control-form>\n</div>",
6307
+ template: "\n<div fxLayoutAlign=\"center center\">\n <lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [editing-source-control-lookup]=\"data.scLookup\">\n </lcu-devops-source-control-form>\n</div>",
6154
6308
  styles: [""]
6155
6309
  },] }
6156
6310
  ];
@@ -6171,7 +6325,7 @@
6171
6325
  BuildPipelineDialogComponent.decorators = [
6172
6326
  { type: i0.Component, args: [{
6173
6327
  selector: 'lcu-build-pipeline-dialog',
6174
- template: "<lcu-build-pipeline-form\n[build-pipeline]=\"data.buildPipeline\"\n[devops-action-lookup]=\"data.devopsActionLookup\"\n[environment]=\"data.environment\"\n>\n\n</lcu-build-pipeline-form>\n",
6328
+ template: "<lcu-build-pipeline-form \n [build-pipeline]=\"data.buildPipeline\" \n [devops-action-lookup]=\"data.devopsActionLookup\"\n [environment]=\"data.environment\" \n [environment-lookup]=\"data.environmentLookup\">\n\n</lcu-build-pipeline-form>",
6175
6329
  styles: [""]
6176
6330
  },] }
6177
6331
  ];
@@ -6180,6 +6334,77 @@
6180
6334
  { type: undefined, decorators: [{ type: i0.Inject, args: [dialog.MAT_DIALOG_DATA,] }] }
6181
6335
  ]; };
6182
6336
 
6337
+ var EditApplicationFormComponent = /** @class */ (function () {
6338
+ function EditApplicationFormComponent(formBldr) {
6339
+ this.formBldr = formBldr;
6340
+ this.SaveFormEvent = new i0.EventEmitter;
6341
+ }
6342
+ Object.defineProperty(EditApplicationFormComponent.prototype, "DescriptionFormControl", {
6343
+ get: function () {
6344
+ var _a;
6345
+ return (_a = this.ApplicationFormGroup) === null || _a === void 0 ? void 0 : _a.controls.description;
6346
+ },
6347
+ enumerable: false,
6348
+ configurable: true
6349
+ });
6350
+ Object.defineProperty(EditApplicationFormComponent.prototype, "NameFormControl", {
6351
+ get: function () {
6352
+ var _a;
6353
+ return (_a = this.ApplicationFormGroup) === null || _a === void 0 ? void 0 : _a.controls.name;
6354
+ },
6355
+ enumerable: false,
6356
+ configurable: true
6357
+ });
6358
+ Object.defineProperty(EditApplicationFormComponent.prototype, "RouteFormControl", {
6359
+ get: function () {
6360
+ var _a;
6361
+ return (_a = this.ApplicationFormGroup) === null || _a === void 0 ? void 0 : _a.controls.route;
6362
+ },
6363
+ enumerable: false,
6364
+ configurable: true
6365
+ });
6366
+ EditApplicationFormComponent.prototype.ngOnInit = function () {
6367
+ this.setupApplicationForm();
6368
+ };
6369
+ EditApplicationFormComponent.prototype.SubmitApplicationControl = function () {
6370
+ console.log("application form: ", this.ApplicationFormGroup.value);
6371
+ this.SaveFormEvent.emit(this.ApplicationFormGroup.value);
6372
+ };
6373
+ //HELPERS
6374
+ EditApplicationFormComponent.prototype.setupApplicationForm = function () {
6375
+ var _a, _b, _c;
6376
+ if (this.EditingApplication != null) {
6377
+ this.ApplicationFormGroup = this.formBldr.group({
6378
+ name: [(_a = this.EditingApplication.Application) === null || _a === void 0 ? void 0 : _a.Name, forms.Validators.required],
6379
+ description: [
6380
+ (_b = this.EditingApplication.Application) === null || _b === void 0 ? void 0 : _b.Description,
6381
+ forms.Validators.required,
6382
+ ],
6383
+ route: [
6384
+ ((_c = this.EditingApplication.LookupConfig) === null || _c === void 0 ? void 0 : _c.PathRegex.replace('.*', '')) ||
6385
+ '/',
6386
+ forms.Validators.required,
6387
+ ],
6388
+ });
6389
+ }
6390
+ };
6391
+ return EditApplicationFormComponent;
6392
+ }());
6393
+ EditApplicationFormComponent.decorators = [
6394
+ { type: i0.Component, args: [{
6395
+ selector: 'lcu-edit-application-form',
6396
+ template: "<form class=\"form-card\" [formGroup]=\"ApplicationFormGroup\" (ngSubmit)=\"SubmitApplicationControl()\" >\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title>\n <ng-container *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!ApplicationFormGroup.valid || !ApplicationFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Source Control\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n",
6397
+ styles: [""]
6398
+ },] }
6399
+ ];
6400
+ EditApplicationFormComponent.ctorParameters = function () { return [
6401
+ { type: forms.FormBuilder }
6402
+ ]; };
6403
+ EditApplicationFormComponent.propDecorators = {
6404
+ EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
6405
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }]
6406
+ };
6407
+
6183
6408
  var ApplicationsFlowModule = /** @class */ (function () {
6184
6409
  function ApplicationsFlowModule() {
6185
6410
  }
@@ -6239,7 +6464,8 @@
6239
6464
  BuildPipelineFormComponent,
6240
6465
  DevopsSourceControlFormComponent,
6241
6466
  SourceControlDialogComponent,
6242
- BuildPipelineDialogComponent
6467
+ BuildPipelineDialogComponent,
6468
+ EditApplicationFormComponent
6243
6469
  ],
6244
6470
  imports: [
6245
6471
  i2.FathymSharedModule,
@@ -6291,7 +6517,8 @@
6291
6517
  BuildPipelineFormComponent,
6292
6518
  DevopsSourceControlFormComponent,
6293
6519
  SourceControlDialogComponent,
6294
- BuildPipelineDialogComponent
6520
+ BuildPipelineDialogComponent,
6521
+ EditApplicationFormComponent
6295
6522
  ],
6296
6523
  entryComponents: [
6297
6524
  ApplicationsFlowProjectsElementComponent,
@@ -6330,7 +6557,8 @@
6330
6557
  BuildPipelineFormComponent,
6331
6558
  DevopsSourceControlFormComponent,
6332
6559
  SourceControlDialogComponent,
6333
- BuildPipelineDialogComponent
6560
+ BuildPipelineDialogComponent,
6561
+ EditApplicationFormComponent
6334
6562
  ],
6335
6563
  },] }
6336
6564
  ];
@@ -6426,6 +6654,7 @@
6426
6654
  exports.ɵbc = DevopsSourceControlFormComponent;
6427
6655
  exports.ɵbd = SourceControlDialogComponent;
6428
6656
  exports.ɵbe = BuildPipelineDialogComponent;
6657
+ exports.ɵbf = EditApplicationFormComponent;
6429
6658
  exports.ɵc = ProjectTabsComponent;
6430
6659
  exports.ɵd = GeneralComponent;
6431
6660
  exports.ɵe = DomainsComponent;