@lowcodeunit/applications-flow-common 1.33.102-lets-get-social-ish → 1.33.106-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 (38) hide show
  1. package/bundles/lowcodeunit-applications-flow-common.umd.js +233 -99
  2. package/bundles/lowcodeunit-applications-flow-common.umd.js.map +1 -1
  3. package/bundles/lowcodeunit-applications-flow-common.umd.min.js +1 -1
  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 +3 -7
  7. package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +13 -15
  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/lowcodeunit-applications-flow-common.js +2 -1
  16. package/fesm2015/lowcodeunit-applications-flow-common.js +188 -100
  17. package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -1
  18. package/lib/applications-flow.module.d.ts.map +1 -1
  19. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +1 -1
  20. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +16 -15
  21. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +1 -1
  22. package/lib/controls/edit-application-form/edit-application-form.component.d.ts +17 -0
  23. package/lib/controls/edit-application-form/edit-application-form.component.d.ts.map +1 -0
  24. package/lib/controls/processor-details-form/processor-details-form.component.d.ts +23 -8
  25. package/lib/controls/processor-details-form/processor-details-form.component.d.ts.map +1 -1
  26. package/lib/controls/security-toggle/security-toggle.component.d.ts +3 -1
  27. package/lib/controls/security-toggle/security-toggle.component.d.ts.map +1 -1
  28. package/lib/controls/source-control-form/source-control-form.component.d.ts +4 -5
  29. package/lib/controls/source-control-form/source-control-form.component.d.ts.map +1 -1
  30. package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts.map +1 -1
  31. package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts +1 -0
  32. package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts.map +1 -1
  33. package/lib/elements/slotted-card/slotted-card.component.d.ts +3 -3
  34. package/lib/elements/slotted-card/slotted-card.component.d.ts.map +1 -1
  35. package/lowcodeunit-applications-flow-common.d.ts +1 -0
  36. package/lowcodeunit-applications-flow-common.d.ts.map +1 -1
  37. package/lowcodeunit-applications-flow-common.metadata.json +1 -1
  38. package/package.json +1 -1
@@ -4764,18 +4764,18 @@
4764
4764
  SlottedCardComponent.decorators = [
4765
4765
  { type: i0.Component, args: [{
4766
4766
  selector: 'lcu-slotted-card',
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 *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",
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{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%}"]
4769
4769
  },] }
4770
4770
  ];
4771
4771
  SlottedCardComponent.ctorParameters = function () { return []; };
4772
4772
  SlottedCardComponent.propDecorators = {
4773
- Title: [{ type: i0.Input, args: ['title',] }],
4773
+ ActionText: [{ type: i0.Input, args: ['action-text',] }],
4774
+ ActionPath: [{ type: i0.Input, args: ['action-path',] }],
4774
4775
  Icon: [{ type: i0.Input, args: ['icon',] }],
4775
4776
  MainSlotDescription: [{ type: i0.Input, args: ['main-slot-description',] }],
4777
+ Title: [{ type: i0.Input, args: ['title',] }],
4776
4778
  SecondarySlotDescription: [{ type: i0.Input, args: ['secondary-slot-description',] }],
4777
- ActionText: [{ type: i0.Input, args: ['action-text',] }],
4778
- ActionPath: [{ type: i0.Input, args: ['action-path',] }],
4779
4779
  MainActionClicked: [{ type: i0.Output, args: ['main-action-clicked',] }]
4780
4780
  };
4781
4781
 
@@ -5047,6 +5047,7 @@
5047
5047
  var SecurityToggleComponent = /** @class */ (function () {
5048
5048
  function SecurityToggleComponent(formBldr) {
5049
5049
  this.formBldr = formBldr;
5050
+ this.SaveFormEvent = new i0.EventEmitter;
5050
5051
  }
5051
5052
  Object.defineProperty(SecurityToggleComponent.prototype, "IsPrivateFormControl", {
5052
5053
  get: function () {
@@ -5056,34 +5057,26 @@
5056
5057
  enumerable: false,
5057
5058
  configurable: true
5058
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
+ });
5059
5068
  SecurityToggleComponent.prototype.ngOnInit = function () {
5060
5069
  this.setupSecurityFormGroup();
5061
5070
  };
5062
5071
  SecurityToggleComponent.prototype.SecuritySubmit = function () {
5063
- 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);
5064
5075
  };
5065
5076
  SecurityToggleComponent.prototype.setupSecurityFormGroup = function () {
5066
5077
  var _a, _b;
5067
5078
  this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
5068
- if (this.EditingApplication != null) {
5069
- // this.SecurityFormGroup = this.formBldr.group({
5070
- // name: [this.EditingApplication.Application?.Name, Validators.required],
5071
- // description: [
5072
- // this.EditingApplication.Application?.Description,
5073
- // Validators.required,
5074
- // ],
5075
- // route: [
5076
- // this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||
5077
- // '/',
5078
- // Validators.required,
5079
- // ],
5080
- // // priority: [
5081
- // // this.EditingApplication.Application?.Priority || 10000,
5082
- // // Validators.required,
5083
- // // ],
5084
- // procType: [this.ProcessorType, [Validators.required]],
5085
- // });
5086
- }
5079
+ this.SecurityFormGroup = this.formBldr.group({});
5087
5080
  this.setupSecurityForm();
5088
5081
  };
5089
5082
  SecurityToggleComponent.prototype.setupSecurityForm = function () {
@@ -5096,7 +5089,7 @@
5096
5089
  SecurityToggleComponent.decorators = [
5097
5090
  { type: i0.Component, args: [{
5098
5091
  selector: 'lcu-security-toggle',
5099
- 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",
5100
5093
  styles: ["::ng-deep .mat-tooltip{color:#000!important}"]
5101
5094
  },] }
5102
5095
  ];
@@ -5104,15 +5097,25 @@
5104
5097
  { type: forms.FormBuilder }
5105
5098
  ]; };
5106
5099
  SecurityToggleComponent.propDecorators = {
5107
- EditingApplication: [{ type: i0.Input, args: ['editing-application',] }]
5100
+ EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
5101
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }]
5108
5102
  };
5109
5103
 
5110
5104
  var ProcessorDetailsFormComponent = /** @class */ (function () {
5111
- function ProcessorDetailsFormComponent(formBldr) {
5105
+ function ProcessorDetailsFormComponent(formBldr, eacSvc) {
5112
5106
  this.formBldr = formBldr;
5113
- // this.EditingApplicationLookup = null;
5107
+ this.eacSvc = eacSvc;
5114
5108
  this.redirectTooltip = '';
5109
+ this.SaveFormEvent = new i0.EventEmitter;
5115
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
+ });
5116
5119
  Object.defineProperty(ProcessorDetailsFormComponent.prototype, "BuildFormControl", {
5117
5120
  get: function () {
5118
5121
  var _a;
@@ -5129,6 +5132,14 @@
5129
5132
  enumerable: false,
5130
5133
  configurable: true
5131
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
+ });
5132
5143
  Object.defineProperty(ProcessorDetailsFormComponent.prototype, "DefaultFileFormControl", {
5133
5144
  get: function () {
5134
5145
  var _a;
@@ -5137,6 +5148,17 @@
5137
5148
  enumerable: false,
5138
5149
  configurable: true
5139
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
+ });
5140
5162
  Object.defineProperty(ProcessorDetailsFormComponent.prototype, "InboundPathFormControl", {
5141
5163
  get: function () {
5142
5164
  var _a;
@@ -5145,10 +5167,34 @@
5145
5167
  enumerable: false,
5146
5168
  configurable: true
5147
5169
  });
5148
- Object.defineProperty(ProcessorDetailsFormComponent.prototype, "TokenLookupFormControl", {
5170
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "MethodsFormControl", {
5149
5171
  get: function () {
5150
5172
  var _a;
5151
- 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;
5152
5198
  },
5153
5199
  enumerable: false,
5154
5200
  configurable: true
@@ -5185,24 +5231,40 @@
5185
5231
  enumerable: false,
5186
5232
  configurable: true
5187
5233
  });
5188
- Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PermanentFormControl", {
5234
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "TokenLookupFormControl", {
5189
5235
  get: function () {
5190
5236
  var _a;
5191
- 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;
5192
5238
  },
5193
5239
  enumerable: false,
5194
5240
  configurable: true
5195
5241
  });
5196
- Object.defineProperty(ProcessorDetailsFormComponent.prototype, "PreserveMethodFormControl", {
5242
+ Object.defineProperty(ProcessorDetailsFormComponent.prototype, "VersionFormControl", {
5197
5243
  get: function () {
5198
5244
  var _a;
5199
- 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;
5200
5254
  },
5201
5255
  enumerable: false,
5202
5256
  configurable: true
5203
5257
  });
5204
5258
  ProcessorDetailsFormComponent.prototype.ngOnInit = function () {
5205
- 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());
5206
5268
  };
5207
5269
  ProcessorDetailsFormComponent.prototype.DetermineTooltipText = function () {
5208
5270
  var permanentValue = this.PermanentFormControl.value;
@@ -5220,7 +5282,13 @@
5220
5282
  this.redirectTooltip = '308 – Permanent and Preserve';
5221
5283
  }
5222
5284
  };
5285
+ ProcessorDetailsFormComponent.prototype.SetEditingApplication = function (appLookup) {
5286
+ this.EditingApplicationLookup = appLookup;
5287
+ this.setupProcessorDetailsForm();
5288
+ };
5223
5289
  ProcessorDetailsFormComponent.prototype.SubmitProcessorDetails = function () {
5290
+ console.log("submitting proc details: ", this.ProcessorDetailsFormGroup.value);
5291
+ this.SaveFormEvent.emit(this.ProcessorDetailsFormGroup.value);
5224
5292
  };
5225
5293
  ProcessorDetailsFormComponent.prototype.ProcessorTypeChanged = function (event) {
5226
5294
  this.ProcessorType = event.value;
@@ -5286,26 +5354,15 @@
5286
5354
  }
5287
5355
  };
5288
5356
  ProcessorDetailsFormComponent.prototype.setupProcessorDetailsForm = function () {
5289
- var _a, _b, _c, _d, _e;
5357
+ var _a, _b;
5290
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);
5291
5360
  if (this.EditingApplication != null) {
5292
5361
  this.ProcessorDetailsFormGroup = this.formBldr.group({
5293
- name: [(_c = this.EditingApplication.Application) === null || _c === void 0 ? void 0 : _c.Name, forms.Validators.required],
5294
- description: [
5295
- (_d = this.EditingApplication.Application) === null || _d === void 0 ? void 0 : _d.Description,
5296
- forms.Validators.required,
5297
- ],
5298
- route: [
5299
- ((_e = this.EditingApplication.LookupConfig) === null || _e === void 0 ? void 0 : _e.PathRegex.replace('.*', '')) ||
5300
- '/',
5301
- forms.Validators.required,
5302
- ],
5303
- // priority: [
5304
- // this.EditingApplication.Application?.Priority || 10000,
5305
- // Validators.required,
5306
- // ],
5307
- procType: [this.ProcessorType, [forms.Validators.required]],
5362
+ procType: [this.ProcessorType, [forms.Validators.required]]
5308
5363
  });
5364
+ this.setupDfsForm();
5365
+ this.setupLcuTypeSubForm();
5309
5366
  }
5310
5367
  };
5311
5368
  ProcessorDetailsFormComponent.prototype.setupLCUGitHubForm = function () {
@@ -5316,22 +5373,22 @@
5316
5373
  var _a;
5317
5374
  this.ProcessorDetailsFormGroup.addControl('applicationId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ApplicationID) || '', [forms.Validators.required]));
5318
5375
  };
5319
- ProcessorDetailsFormComponent.prototype.setupLCUNPMForm = function () {
5320
- // this.ApplicationFormGroup.addControl(
5321
- // 'package',
5322
- // this.formBldr.control(
5323
- // this.EditingApplication.LowCodeUnit?.Package || '',
5324
- // [Validators.required]
5325
- // )
5326
- // );
5327
- // this.ApplicationFormGroup.addControl(
5328
- // 'version',
5329
- // this.formBldr.control(
5330
- // this.EditingApplication.LowCodeUnit?.Version || '',
5331
- // [Validators.required]
5332
- // )
5333
- // );
5334
- };
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
+ // }
5335
5392
  ProcessorDetailsFormComponent.prototype.setupLCUSPAForm = function () {
5336
5393
  var _a;
5337
5394
  this.ProcessorDetailsFormGroup.addControl('spaRoot', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SPARoot) || '', [forms.Validators.required]));
@@ -5404,20 +5461,26 @@
5404
5461
  ProcessorDetailsFormComponent.decorators = [
5405
5462
  { type: i0.Component, args: [{
5406
5463
  selector: 'lcu-processor-details-form',
5407
- 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",
5408
5465
  styles: [""]
5409
5466
  },] }
5410
5467
  ];
5411
5468
  ProcessorDetailsFormComponent.ctorParameters = function () { return [
5412
- { type: forms.FormBuilder }
5469
+ { type: forms.FormBuilder },
5470
+ { type: EaCService }
5413
5471
  ]; };
5414
5472
  ProcessorDetailsFormComponent.propDecorators = {
5415
- 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,] }]
5416
5478
  };
5417
5479
 
5418
5480
  var SourceControlFormComponent = /** @class */ (function () {
5419
5481
  function SourceControlFormComponent(formBldr) {
5420
5482
  this.formBldr = formBldr;
5483
+ this.SaveFormEvent = new i0.EventEmitter;
5421
5484
  }
5422
5485
  Object.defineProperty(SourceControlFormComponent.prototype, "HasBuildFormControl", {
5423
5486
  get: function () {
@@ -5444,7 +5507,6 @@
5444
5507
  });
5445
5508
  Object.defineProperty(SourceControlFormComponent.prototype, "SourceControls", {
5446
5509
  get: function () {
5447
- console.log("Environment: ", this.Environment);
5448
5510
  return this.Environment.Sources || {};
5449
5511
  },
5450
5512
  enumerable: false,
@@ -5458,11 +5520,14 @@
5458
5520
  console.log("sourceControlLookupChanged: ", event);
5459
5521
  };
5460
5522
  SourceControlFormComponent.prototype.SubmitSourceControl = function () {
5523
+ console.log("submitting source control: ", this.SourceControlFormGroup.value);
5524
+ this.SaveFormEvent.emit(this.SourceControlFormGroup.value);
5461
5525
  };
5462
5526
  //HELPER
5463
5527
  SourceControlFormComponent.prototype.setupSourceControlForm = function () {
5464
5528
  var _a, _b;
5465
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({});
5466
5531
  this.setupBuildForm();
5467
5532
  };
5468
5533
  SourceControlFormComponent.prototype.setupBuildForm = function () {
@@ -5475,7 +5540,7 @@
5475
5540
  SourceControlFormComponent.decorators = [
5476
5541
  { type: i0.Component, args: [{
5477
5542
  selector: 'lcu-source-control-form',
5478
- 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",
5479
5544
  styles: [""]
5480
5545
  },] }
5481
5546
  ];
@@ -5485,7 +5550,7 @@
5485
5550
  SourceControlFormComponent.propDecorators = {
5486
5551
  EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
5487
5552
  Environment: [{ type: i0.Input, args: ['environment',] }],
5488
- SourceControlFormControls: [{ type: i0.ViewChild, args: [SourceControlFormControlsComponent,] }]
5553
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }]
5489
5554
  };
5490
5555
 
5491
5556
  var BuildPipelineFormComponent = /** @class */ (function () {
@@ -5610,9 +5675,6 @@
5610
5675
  });
5611
5676
  BuildPipelineFormComponent.prototype.ngOnInit = function () {
5612
5677
  this.BuildPipelineFormGroup = this.formBuilder.group({});
5613
- console.log("ARTIFACT: ", this.Artifact);
5614
- // this.BuildPipeline ||
5615
- // github-artifacts-release is this.HostingDetails?.HostingOptions[0]?.Lookup
5616
5678
  if (this.BuildPipelineFormGroup != null) {
5617
5679
  this.BuildPipelineFormGroup.removeControl('hostingDetails');
5618
5680
  }
@@ -5620,7 +5682,6 @@
5620
5682
  buildPipeline: [this.BuildPipeline, [forms.Validators.required]],
5621
5683
  }));
5622
5684
  this.loadProjectHostingDetails();
5623
- // this.setupControlsForForm();
5624
5685
  };
5625
5686
  //API METHODS
5626
5687
  BuildPipelineFormComponent.prototype.BuildPipelineChanged = function () {
@@ -5630,6 +5691,7 @@
5630
5691
  this.setupControlsForForm();
5631
5692
  };
5632
5693
  BuildPipelineFormComponent.prototype.SubmitBuildPipeline = function () {
5694
+ console.log("submitting build pipeline: ", this.BuildPipelineFormGroup.value);
5633
5695
  };
5634
5696
  BuildPipelineFormComponent.prototype.SaveEnvironment = function () {
5635
5697
  var _a;
@@ -5747,7 +5809,6 @@
5747
5809
  console.log("Build Pipeline HERE= ", _this.BuildPipeline);
5748
5810
  _this.setupControlsForForm();
5749
5811
  }, function (err) {
5750
- console.log("hosting details LOADING EERR: ", _this.HostingDetails);
5751
5812
  console.log("ERR: ", err);
5752
5813
  _this.HostingDetails.Loading = false;
5753
5814
  });
@@ -5758,7 +5819,7 @@
5758
5819
  BuildPipelineFormComponent.decorators = [
5759
5820
  { type: i0.Component, args: [{
5760
5821
  selector: 'lcu-build-pipeline-form',
5761
- 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 <!-- [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\">Save</button>\n </mat-card-actions>\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",
5762
5823
  styles: [""]
5763
5824
  },] }
5764
5825
  ];
@@ -5777,13 +5838,12 @@
5777
5838
 
5778
5839
  var DevopsSourceControlFormComponent = /** @class */ (function () {
5779
5840
  // Constructors
5780
- function DevopsSourceControlFormComponent(formBuilder, appsFlowSvc, eacSvc) {
5781
- this.formBuilder = formBuilder;
5841
+ function DevopsSourceControlFormComponent(appsFlowSvc, eacSvc, formBuilder) {
5782
5842
  this.appsFlowSvc = appsFlowSvc;
5783
5843
  this.eacSvc = eacSvc;
5844
+ this.formBuilder = formBuilder;
5784
5845
  this.SeparatorKeysCodes = [keycodes.ENTER, keycodes.COMMA];
5785
5846
  this.BuildPath = null;
5786
- // this.EditingSourceControlLookup = null;
5787
5847
  this.HostingDetails = new ProjectHostingDetails();
5788
5848
  this.SelectedBranches = [];
5789
5849
  this.SourceControlRoot = '';
@@ -5791,7 +5851,6 @@
5791
5851
  this.UseBuildPath = false;
5792
5852
  }
5793
5853
  Object.defineProperty(DevopsSourceControlFormComponent.prototype, "BranchesFormControl", {
5794
- // Fields
5795
5854
  // Properties
5796
5855
  get: function () {
5797
5856
  return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'branches');
@@ -5882,12 +5941,9 @@
5882
5941
  this.destroyFormControls();
5883
5942
  };
5884
5943
  DevopsSourceControlFormComponent.prototype.ngOnInit = function () {
5885
- console.log("org: ", this.EditingSourceControl);
5886
- console.log("lookup: ", this.EditingSourceControlLookup);
5887
5944
  if (this.EditingSourceControlLookup === null) {
5888
5945
  this.CreateNewSourceControl();
5889
5946
  }
5890
- console.log("org: ", this.EditingSourceControl);
5891
5947
  if (this.EditingSourceControl != null) {
5892
5948
  this.DevOpsSourceControlFormGroup = this.formBuilder.group({});
5893
5949
  this.setupFormControls();
@@ -5906,6 +5962,7 @@
5906
5962
  this.loadProjectHostingDetails();
5907
5963
  };
5908
5964
  DevopsSourceControlFormComponent.prototype.BuildPathChanged = function (event) {
5965
+ //do something??
5909
5966
  };
5910
5967
  DevopsSourceControlFormComponent.prototype.CreateNewSourceControl = function () {
5911
5968
  this.SetEditingSourceControl(i2.Guid.CreateRaw());
@@ -5982,10 +6039,11 @@
5982
6039
  this.EditingSourceControlLookup = scLookup;
5983
6040
  };
5984
6041
  DevopsSourceControlFormComponent.prototype.SubmitSourceControl = function () {
5985
- console.log("source control submitted");
6042
+ console.log("source control submitted: ", this.DevOpsSourceControlFormGroup.value);
5986
6043
  };
5987
6044
  // public SaveSourceControl(): void {
5988
- // const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {
6045
+ // const saveEnvReq: SaveEnvironmentAsCodeEventRequest = this.Environment;
6046
+ // {
5989
6047
  // Environment: {
5990
6048
  // ...this.Environment,
5991
6049
  // Artifacts: this.Environment.Artifacts || {},
@@ -6220,19 +6278,20 @@
6220
6278
  DevopsSourceControlFormComponent.decorators = [
6221
6279
  { type: i0.Component, args: [{
6222
6280
  selector: 'lcu-devops-source-control-form',
6223
- 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>",
6281
+ 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>",
6224
6282
  styles: [".form-card,.sc-card{width:100%}"]
6225
6283
  },] }
6226
6284
  ];
6227
6285
  DevopsSourceControlFormComponent.ctorParameters = function () { return [
6228
- { type: forms.FormBuilder },
6229
6286
  { type: ApplicationsFlowService },
6230
- { type: EaCService }
6287
+ { type: EaCService },
6288
+ { type: forms.FormBuilder }
6231
6289
  ]; };
6232
6290
  DevopsSourceControlFormComponent.propDecorators = {
6233
- BranchesInput: [{ type: i0.ViewChild, args: ['branches',] }],
6234
6291
  EditingSourceControlLookup: [{ type: i0.Input, args: ['editing-source-control-lookup',] }],
6235
- Environment: [{ type: i0.Input, args: ['environment',] }]
6292
+ Environment: [{ type: i0.Input, args: ['environment',] }],
6293
+ EnvironmentLookup: [{ type: i0.Input, args: ['environment-lookup',] }],
6294
+ BranchesInput: [{ type: i0.ViewChild, args: ['branches',] }]
6236
6295
  };
6237
6296
 
6238
6297
  var SourceControlDialogComponent = /** @class */ (function () {
@@ -6247,7 +6306,7 @@
6247
6306
  SourceControlDialogComponent.decorators = [
6248
6307
  { type: i0.Component, args: [{
6249
6308
  selector: 'lcu-source-control-dialog',
6250
- 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>",
6309
+ template: "\n<div fxLayoutAlign=\"center center\">\n <lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n [editing-source-control-lookup]=\"data.scLookup\">\n </lcu-devops-source-control-form>\n</div>",
6251
6310
  styles: [""]
6252
6311
  },] }
6253
6312
  ];
@@ -6268,7 +6327,7 @@
6268
6327
  BuildPipelineDialogComponent.decorators = [
6269
6328
  { type: i0.Component, args: [{
6270
6329
  selector: 'lcu-build-pipeline-dialog',
6271
- 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\n</lcu-build-pipeline-form>\n",
6330
+ 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>",
6272
6331
  styles: [""]
6273
6332
  },] }
6274
6333
  ];
@@ -6277,6 +6336,77 @@
6277
6336
  { type: undefined, decorators: [{ type: i0.Inject, args: [dialog.MAT_DIALOG_DATA,] }] }
6278
6337
  ]; };
6279
6338
 
6339
+ var EditApplicationFormComponent = /** @class */ (function () {
6340
+ function EditApplicationFormComponent(formBldr) {
6341
+ this.formBldr = formBldr;
6342
+ this.SaveFormEvent = new i0.EventEmitter;
6343
+ }
6344
+ Object.defineProperty(EditApplicationFormComponent.prototype, "DescriptionFormControl", {
6345
+ get: function () {
6346
+ var _a;
6347
+ return (_a = this.ApplicationFormGroup) === null || _a === void 0 ? void 0 : _a.controls.description;
6348
+ },
6349
+ enumerable: false,
6350
+ configurable: true
6351
+ });
6352
+ Object.defineProperty(EditApplicationFormComponent.prototype, "NameFormControl", {
6353
+ get: function () {
6354
+ var _a;
6355
+ return (_a = this.ApplicationFormGroup) === null || _a === void 0 ? void 0 : _a.controls.name;
6356
+ },
6357
+ enumerable: false,
6358
+ configurable: true
6359
+ });
6360
+ Object.defineProperty(EditApplicationFormComponent.prototype, "RouteFormControl", {
6361
+ get: function () {
6362
+ var _a;
6363
+ return (_a = this.ApplicationFormGroup) === null || _a === void 0 ? void 0 : _a.controls.route;
6364
+ },
6365
+ enumerable: false,
6366
+ configurable: true
6367
+ });
6368
+ EditApplicationFormComponent.prototype.ngOnInit = function () {
6369
+ this.setupApplicationForm();
6370
+ };
6371
+ EditApplicationFormComponent.prototype.SubmitApplicationControl = function () {
6372
+ console.log("application form: ", this.ApplicationFormGroup.value);
6373
+ this.SaveFormEvent.emit(this.ApplicationFormGroup.value);
6374
+ };
6375
+ //HELPERS
6376
+ EditApplicationFormComponent.prototype.setupApplicationForm = function () {
6377
+ var _a, _b, _c;
6378
+ if (this.EditingApplication != null) {
6379
+ this.ApplicationFormGroup = this.formBldr.group({
6380
+ name: [(_a = this.EditingApplication.Application) === null || _a === void 0 ? void 0 : _a.Name, forms.Validators.required],
6381
+ description: [
6382
+ (_b = this.EditingApplication.Application) === null || _b === void 0 ? void 0 : _b.Description,
6383
+ forms.Validators.required,
6384
+ ],
6385
+ route: [
6386
+ ((_c = this.EditingApplication.LookupConfig) === null || _c === void 0 ? void 0 : _c.PathRegex.replace('.*', '')) ||
6387
+ '/',
6388
+ forms.Validators.required,
6389
+ ],
6390
+ });
6391
+ }
6392
+ };
6393
+ return EditApplicationFormComponent;
6394
+ }());
6395
+ EditApplicationFormComponent.decorators = [
6396
+ { type: i0.Component, args: [{
6397
+ selector: 'lcu-edit-application-form',
6398
+ 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\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n",
6399
+ styles: [""]
6400
+ },] }
6401
+ ];
6402
+ EditApplicationFormComponent.ctorParameters = function () { return [
6403
+ { type: forms.FormBuilder }
6404
+ ]; };
6405
+ EditApplicationFormComponent.propDecorators = {
6406
+ EditingApplication: [{ type: i0.Input, args: ['editing-application',] }],
6407
+ SaveFormEvent: [{ type: i0.Output, args: ['save-form-event',] }]
6408
+ };
6409
+
6280
6410
  var ApplicationsFlowModule = /** @class */ (function () {
6281
6411
  function ApplicationsFlowModule() {
6282
6412
  }
@@ -6336,7 +6466,8 @@
6336
6466
  BuildPipelineFormComponent,
6337
6467
  DevopsSourceControlFormComponent,
6338
6468
  SourceControlDialogComponent,
6339
- BuildPipelineDialogComponent
6469
+ BuildPipelineDialogComponent,
6470
+ EditApplicationFormComponent
6340
6471
  ],
6341
6472
  imports: [
6342
6473
  i2.FathymSharedModule,
@@ -6388,7 +6519,8 @@
6388
6519
  BuildPipelineFormComponent,
6389
6520
  DevopsSourceControlFormComponent,
6390
6521
  SourceControlDialogComponent,
6391
- BuildPipelineDialogComponent
6522
+ BuildPipelineDialogComponent,
6523
+ EditApplicationFormComponent
6392
6524
  ],
6393
6525
  entryComponents: [
6394
6526
  ApplicationsFlowProjectsElementComponent,
@@ -6427,7 +6559,8 @@
6427
6559
  BuildPipelineFormComponent,
6428
6560
  DevopsSourceControlFormComponent,
6429
6561
  SourceControlDialogComponent,
6430
- BuildPipelineDialogComponent
6562
+ BuildPipelineDialogComponent,
6563
+ EditApplicationFormComponent
6431
6564
  ],
6432
6565
  },] }
6433
6566
  ];
@@ -6523,6 +6656,7 @@
6523
6656
  exports.ɵbc = DevopsSourceControlFormComponent;
6524
6657
  exports.ɵbd = SourceControlDialogComponent;
6525
6658
  exports.ɵbe = BuildPipelineDialogComponent;
6659
+ exports.ɵbf = EditApplicationFormComponent;
6526
6660
  exports.ɵc = ProjectTabsComponent;
6527
6661
  exports.ɵd = GeneralComponent;
6528
6662
  exports.ɵe = DomainsComponent;