@lowcodeunit/applications-flow-common 1.33.95-lets-get-social-ish → 1.33.100-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 (78) hide show
  1. package/bundles/lowcodeunit-applications-flow-common.umd.js +869 -223
  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 +12 -6
  6. package/esm2015/lib/controls/build-pipeline-form/build-pipeline-form.component.js +149 -5
  7. package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +409 -6
  8. package/esm2015/lib/controls/processor-details-form/processor-details-form.component.js +2 -2
  9. package/esm2015/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.js +22 -0
  10. package/esm2015/lib/dialogs/source-control-dialog/source-control-dialog.component.js +22 -0
  11. package/esm2015/lib/elements/base-form/base-form.component.js +5 -5
  12. package/esm2015/lib/elements/projects/controls/builds/builds.component.js +4 -9
  13. package/esm2015/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.js +6 -6
  14. package/esm2015/lib/elements/projects/controls/forms/source-control/source-control.component.js +3 -6
  15. package/esm2015/lib/elements/projects/controls/header/header.component.js +7 -7
  16. package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +2 -1
  17. package/esm2015/lib/elements/projects/controls/project-items/project-items.component.js +7 -7
  18. package/esm2015/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.js +2 -2
  19. package/esm2015/lib/elements/projects/controls/tabs/devops/devops.component.js +7 -7
  20. package/esm2015/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.js +7 -7
  21. package/esm2015/lib/elements/projects/controls/tabs/domains/domains.component.js +6 -6
  22. package/esm2015/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.js +6 -6
  23. package/esm2015/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.js +6 -6
  24. package/esm2015/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.js +6 -6
  25. package/esm2015/lib/elements/projects/projects.component.js +10 -13
  26. package/esm2015/lib/elements/slotted-card/slotted-card.component.js +6 -4
  27. package/esm2015/lib/services/eac.service.js +41 -17
  28. package/esm2015/lowcodeunit-applications-flow-common.js +32 -31
  29. package/fesm2015/lowcodeunit-applications-flow-common.js +697 -173
  30. package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -1
  31. package/lib/applications-flow.module.d.ts.map +1 -1
  32. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +30 -1
  33. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +1 -1
  34. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +72 -3
  35. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +1 -1
  36. package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts +15 -0
  37. package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts.map +1 -0
  38. package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts +14 -0
  39. package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts.map +1 -0
  40. package/lib/elements/base-form/base-form.component.d.ts +3 -3
  41. package/lib/elements/base-form/base-form.component.d.ts.map +1 -1
  42. package/lib/elements/projects/controls/builds/builds.component.d.ts +1 -3
  43. package/lib/elements/projects/controls/builds/builds.component.d.ts.map +1 -1
  44. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts +3 -3
  45. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts.map +1 -1
  46. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts +1 -3
  47. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts.map +1 -1
  48. package/lib/elements/projects/controls/header/header.component.d.ts +3 -3
  49. package/lib/elements/projects/controls/header/header.component.d.ts.map +1 -1
  50. package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +1 -1
  51. package/lib/elements/projects/controls/project-items/project-items.component.d.ts +3 -3
  52. package/lib/elements/projects/controls/project-items/project-items.component.d.ts.map +1 -1
  53. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts +1 -1
  54. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts.map +1 -1
  55. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts +3 -3
  56. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts.map +1 -1
  57. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts +3 -3
  58. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts.map +1 -1
  59. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +3 -3
  60. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts.map +1 -1
  61. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts +3 -3
  62. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts.map +1 -1
  63. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts +3 -3
  64. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts.map +1 -1
  65. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts +3 -3
  66. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts.map +1 -1
  67. package/lib/elements/projects/projects.component.d.ts +1 -3
  68. package/lib/elements/projects/projects.component.d.ts.map +1 -1
  69. package/lib/elements/slotted-card/slotted-card.component.d.ts.map +1 -1
  70. package/lib/services/eac.service.d.ts +31 -7
  71. package/lib/services/eac.service.d.ts.map +1 -1
  72. package/lowcodeunit-applications-flow-common.d.ts +31 -30
  73. package/lowcodeunit-applications-flow-common.d.ts.map +1 -1
  74. package/lowcodeunit-applications-flow-common.metadata.json +1 -1
  75. package/package.json +1 -1
  76. package/esm2015/lib/services/applications-flow-events.service.js +0 -83
  77. package/lib/services/applications-flow-events.service.d.ts +0 -58
  78. package/lib/services/applications-flow-events.service.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ɵɵdefineInjectable, Injectable, ɵɵinject, INJECTOR, Injector, EventEmitter, Component, Input, Output, ViewChild, ComponentFactoryResolver, ViewContainerRef, ChangeDetectorRef, NgModule } from '@angular/core';
1
+ import { ɵɵdefineInjectable, Injectable, ɵɵinject, INJECTOR, Injector, Component, Input, EventEmitter, Output, ViewChild, ComponentFactoryResolver, ViewContainerRef, ChangeDetectorRef, Inject, NgModule } from '@angular/core';
2
2
  import { Subject, Observable } from 'rxjs';
3
3
  import { __awaiter } from 'tslib';
4
4
  import { HttpClient, HttpBackend } from '@angular/common/http';
@@ -11,6 +11,7 @@ import { map, debounceTime, switchMap } from 'rxjs/operators';
11
11
  import { BreakpointObserver } from '@angular/cdk/layout';
12
12
  import { MatTooltipModule } from '@angular/material/tooltip';
13
13
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
14
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
14
15
 
15
16
  /**
16
17
  * Model for form values
@@ -627,87 +628,6 @@ ApplicationsFlowStateContext.ctorParameters = () => [
627
628
  { type: Injector }
628
629
  ];
629
630
 
630
- class SaveApplicationAsCodeEventRequest {
631
- }
632
- class SaveDFSModifierEventRequest {
633
- }
634
- class SaveEnvironmentAsCodeEventRequest {
635
- }
636
- class SaveProjectAsCodeEventRequest {
637
- }
638
- class ApplicationsFlowEventsService {
639
- // Constructors
640
- constructor() {
641
- this.DeleteApplicationEvent = new EventEmitter();
642
- this.DeleteDevOpsActionEvent = new EventEmitter();
643
- this.DeleteProjectEvent = new EventEmitter();
644
- this.DeleteSourceControlEvent = new EventEmitter();
645
- this.EnsureUserEnterpriseEvent = new EventEmitter();
646
- this.LoadEnterpriseAsCodeEvent = new EventEmitter();
647
- this.SaveApplicationAsCodeEvent = new EventEmitter();
648
- this.SaveDFSModifierEvent = new EventEmitter();
649
- this.SaveEnterpriseAsCodeEvent = new EventEmitter();
650
- this.SaveEnvironmentAsCodeEvent = new EventEmitter();
651
- this.SaveProjectAsCodeEvent = new EventEmitter();
652
- this.SetCreatingProjectEvent = new EventEmitter();
653
- this.SetEditProjectSettingsEvent = new EventEmitter();
654
- this.UnpackLowCodeUnitEvent = new EventEmitter();
655
- }
656
- // API Methods
657
- DeleteApplication(appLookup) {
658
- this.DeleteApplicationEvent.emit(appLookup);
659
- }
660
- DeleteDevOpsAction(doaLookup) {
661
- this.DeleteDevOpsActionEvent.emit(doaLookup);
662
- }
663
- DeleteProject(projectLookup) {
664
- this.DeleteProjectEvent.emit(projectLookup);
665
- }
666
- DeleteSourceControl(scLookup) {
667
- this.DeleteSourceControlEvent.emit(scLookup);
668
- }
669
- EnsureUserEnterprise() {
670
- this.EnsureUserEnterpriseEvent.emit();
671
- }
672
- // public ListProjects(withLoading: boolean): void {
673
- // this.ListProjectsEvent.emit(withLoading);
674
- // }
675
- LoadEnterpriseAsCode() {
676
- this.LoadEnterpriseAsCodeEvent.emit();
677
- }
678
- SaveApplicationAsCode(req) {
679
- this.SaveApplicationAsCodeEvent.emit(req);
680
- }
681
- SaveDFSModifier(req) {
682
- this.SaveDFSModifierEvent.emit(req);
683
- }
684
- SaveEnterpriseAsCode(eac) {
685
- this.SaveEnterpriseAsCodeEvent.emit(eac);
686
- }
687
- SaveEnvironmentAsCode(req) {
688
- this.SaveEnvironmentAsCodeEvent.emit(req);
689
- }
690
- SaveProjectAsCode(req) {
691
- this.SaveProjectAsCodeEvent.emit(req);
692
- }
693
- SetCreatingProject(creatingProject) {
694
- this.SetCreatingProjectEvent.emit(creatingProject);
695
- }
696
- SetEditProjectSettings(projectLookup) {
697
- this.SetEditProjectSettingsEvent.emit(projectLookup);
698
- }
699
- UnpackLowCodeUnit(req) {
700
- this.UnpackLowCodeUnitEvent.emit(req);
701
- }
702
- }
703
- ApplicationsFlowEventsService.ɵprov = ɵɵdefineInjectable({ factory: function ApplicationsFlowEventsService_Factory() { return new ApplicationsFlowEventsService(); }, token: ApplicationsFlowEventsService, providedIn: "root" });
704
- ApplicationsFlowEventsService.decorators = [
705
- { type: Injectable, args: [{
706
- providedIn: 'root',
707
- },] }
708
- ];
709
- ApplicationsFlowEventsService.ctorParameters = () => [];
710
-
711
631
  class ApplicationsFlowState {
712
632
  constructor() {
713
633
  this.GitHub = {};
@@ -780,15 +700,24 @@ class ProjectHostingOptionInput {
780
700
  // public Repository?: string;
781
701
  // }
782
702
 
703
+ class SaveApplicationAsCodeEventRequest {
704
+ }
705
+ class SaveDFSModifierEventRequest {
706
+ }
707
+ class SaveEnvironmentAsCodeEventRequest {
708
+ }
709
+ class SaveProjectAsCodeEventRequest {
710
+ }
783
711
  class EaCService {
784
712
  // Constructors
785
- constructor(appsFlowEventsSvc, projectService) {
786
- this.appsFlowEventsSvc = appsFlowEventsSvc;
713
+ constructor(projectService) {
787
714
  this.projectService = projectService;
788
715
  this.State = new ApplicationsFlowState();
789
- this.setServices();
790
716
  }
791
717
  // API Methods
718
+ get CreatingProject() {
719
+ return this.projectService.CreatingProject;
720
+ }
792
721
  DeleteApplication(appLookup, appName) {
793
722
  return __awaiter(this, void 0, void 0, function* () {
794
723
  if (confirm(`Are you sure you want to delete application '${appName}'?`)) {
@@ -820,11 +749,29 @@ class EaCService {
820
749
  // this.appsFlowEventsSvc.EnsureUserEnterpriseEvent.subscribe(async () => {
821
750
  // await this.projectService.EnsureUserEnterprise(this.State);
822
751
  // });
823
- EnsureUserEnterprise(appLookup, appName) {
752
+ EnsureUserEnterprise() {
824
753
  return __awaiter(this, void 0, void 0, function* () {
825
754
  yield this.projectService.EnsureUserEnterprise(this.State);
826
755
  });
827
756
  }
757
+ GetActiveEnterprise() {
758
+ return __awaiter(this, void 0, void 0, function* () {
759
+ yield this.projectService.GetActiveEnterprise(this.State);
760
+ });
761
+ }
762
+ get EditingProjectLookup() {
763
+ return this.projectService.EditingProjectLookup;
764
+ }
765
+ HasValidConnection() {
766
+ return __awaiter(this, void 0, void 0, function* () {
767
+ yield this.projectService.HasValidConnection(this.State);
768
+ });
769
+ }
770
+ ListEnterprises() {
771
+ return __awaiter(this, void 0, void 0, function* () {
772
+ yield this.projectService.ListEnterprises(this.State);
773
+ });
774
+ }
828
775
  LoadEnterpriseAsCode() {
829
776
  return __awaiter(this, void 0, void 0, function* () {
830
777
  yield this.projectService.LoadEnterpriseAsCode(this.State);
@@ -835,7 +782,7 @@ class EaCService {
835
782
  yield this.handleSaveApplication(req);
836
783
  });
837
784
  }
838
- SaveDFSModifierEvent(req) {
785
+ SaveDFSModifier(req) {
839
786
  return __awaiter(this, void 0, void 0, function* () {
840
787
  yield this.handleSaveDFSModifier(req);
841
788
  });
@@ -855,6 +802,11 @@ class EaCService {
855
802
  yield this.handleSaveProject(req.ProjectLookup, req.Project);
856
803
  });
857
804
  }
805
+ SetActiveEnterprise(eventValue) {
806
+ return __awaiter(this, void 0, void 0, function* () {
807
+ this.projectService.SetActiveEnterprise(this.State, eventValue);
808
+ });
809
+ }
858
810
  SetCreatingProject(creatingProject) {
859
811
  return __awaiter(this, void 0, void 0, function* () {
860
812
  this.projectService.SetCreatingProject(creatingProject);
@@ -872,11 +824,6 @@ class EaCService {
872
824
  }
873
825
  });
874
826
  }
875
- setServices() {
876
- // this.appsFlowEventsSvc.ListProjectsEvent.subscribe((withLoading) => {
877
- // this.projectService.ListProjects(this.State, withLoading);
878
- // });
879
- }
880
827
  // Helpers
881
828
  handleSaveApplication(req) {
882
829
  var _a;
@@ -950,18 +897,17 @@ class EaCService {
950
897
  };
951
898
  saveEaC.Projects[projectLookup] = project;
952
899
  yield this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);
953
- this.appsFlowEventsSvc.SetEditProjectSettings(projectLookup);
900
+ this.SetEditProjectSettings(projectLookup);
954
901
  });
955
902
  }
956
903
  }
957
- EaCService.ɵprov = ɵɵdefineInjectable({ factory: function EaCService_Factory() { return new EaCService(ɵɵinject(ApplicationsFlowEventsService), ɵɵinject(ProjectService)); }, token: EaCService, providedIn: "root" });
904
+ EaCService.ɵprov = ɵɵdefineInjectable({ factory: function EaCService_Factory() { return new EaCService(ɵɵinject(ProjectService)); }, token: EaCService, providedIn: "root" });
958
905
  EaCService.decorators = [
959
906
  { type: Injectable, args: [{
960
907
  providedIn: 'root',
961
908
  },] }
962
909
  ];
963
910
  EaCService.ctorParameters = () => [
964
- { type: ApplicationsFlowEventsService },
965
911
  { type: ProjectService }
966
912
  ];
967
913
 
@@ -972,11 +918,10 @@ class ApplicationsFlowProjectsContext extends LCUElementContext {
972
918
  const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT = 'applications-flow-projects-element';
973
919
  class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
974
920
  // Constructors
975
- constructor(injector, appsFlowSvc, projectService, eacSvc) {
921
+ constructor(injector, appsFlowSvc, eacSvc) {
976
922
  super(injector);
977
923
  this.injector = injector;
978
924
  this.appsFlowSvc = appsFlowSvc;
979
- this.projectService = projectService;
980
925
  this.eacSvc = eacSvc;
981
926
  }
982
927
  // Properties
@@ -991,14 +936,14 @@ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
991
936
  return envLookups[0];
992
937
  }
993
938
  get CreatingProject() {
994
- return this.projectService.CreatingProject;
939
+ return this.eacSvc.CreatingProject;
995
940
  }
996
941
  get EditingProject() {
997
942
  var _a, _b, _c, _d;
998
943
  return ((_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Projects) ? (_d = (_c = this.State) === null || _c === void 0 ? void 0 : _c.EaC) === null || _d === void 0 ? void 0 : _d.Projects[this.EditingProjectLookup] : null;
999
944
  }
1000
945
  get EditingProjectLookup() {
1001
- return this.projectService.EditingProjectLookup;
946
+ return this.eacSvc.EditingProjectLookup;
1002
947
  }
1003
948
  get ProjectLookups() {
1004
949
  var _a, _b;
@@ -1017,7 +962,7 @@ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
1017
962
  // API Methods
1018
963
  ActiveEnterpriseChanged(event) {
1019
964
  return __awaiter(this, void 0, void 0, function* () {
1020
- yield this.projectService.SetActiveEnterprise(this.State, event.value);
965
+ yield this.eacSvc.SetActiveEnterprise(event.value);
1021
966
  });
1022
967
  }
1023
968
  ConfigureDevOpsAction(devOpsActionLookup) {
@@ -1026,7 +971,7 @@ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
1026
971
  .ConfigureDevOpsAction(devOpsActionLookup)
1027
972
  .subscribe((response) => {
1028
973
  if (response.Status.Code === 0) {
1029
- this.projectService.LoadEnterpriseAsCode(this.State);
974
+ this.eacSvc.LoadEnterpriseAsCode();
1030
975
  }
1031
976
  else {
1032
977
  this.State.Loading = false;
@@ -1038,11 +983,11 @@ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
1038
983
  var _a;
1039
984
  return __awaiter(this, void 0, void 0, function* () {
1040
985
  this.State.Loading = true;
1041
- yield this.projectService.HasValidConnection(this.State);
1042
- yield this.projectService.EnsureUserEnterprise(this.State);
1043
- yield this.projectService.ListEnterprises(this.State);
986
+ yield this.eacSvc.HasValidConnection();
987
+ yield this.eacSvc.EnsureUserEnterprise();
988
+ yield this.eacSvc.ListEnterprises();
1044
989
  if (((_a = this.State.Enterprises) === null || _a === void 0 ? void 0 : _a.length) > 0) {
1045
- yield this.projectService.GetActiveEnterprise(this.State);
990
+ yield this.eacSvc.GetActiveEnterprise();
1046
991
  }
1047
992
  });
1048
993
  }
@@ -1057,7 +1002,6 @@ ApplicationsFlowProjectsElementComponent.decorators = [
1057
1002
  ApplicationsFlowProjectsElementComponent.ctorParameters = () => [
1058
1003
  { type: Injector },
1059
1004
  { type: ApplicationsFlowService },
1060
- { type: ProjectService },
1061
1005
  { type: EaCService }
1062
1006
  ];
1063
1007
 
@@ -1094,6 +1038,7 @@ class HostingDetailsFormGroupComponent {
1094
1038
  ngOnChanges() { }
1095
1039
  ngOnInit() {
1096
1040
  var _a, _b, _c;
1041
+ console.log("made it to hosting details");
1097
1042
  this.BuildPipeline =
1098
1043
  this.BuildPipeline || ((_a = this.Details) === null || _a === void 0 ? void 0 : _a.HostingOptions)
1099
1044
  ? (_c = (_b = this.Details) === null || _b === void 0 ? void 0 : _b.HostingOptions[0]) === null || _c === void 0 ? void 0 : _c.Lookup : '';
@@ -1163,10 +1108,9 @@ HostingDetailsFormGroupComponent.propDecorators = {
1163
1108
 
1164
1109
  class SourceControlFormControlsComponent {
1165
1110
  // Constructors
1166
- constructor(formBuilder, appsFlowSvc, appsFlowEventsSvc) {
1111
+ constructor(formBuilder, appsFlowSvc) {
1167
1112
  this.formBuilder = formBuilder;
1168
1113
  this.appsFlowSvc = appsFlowSvc;
1169
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1170
1114
  this.SeparatorKeysCodes = [ENTER, COMMA];
1171
1115
  this.BranchesChanged = new EventEmitter();
1172
1116
  this.SelectedBranches = [];
@@ -1403,8 +1347,7 @@ SourceControlFormControlsComponent.decorators = [
1403
1347
  ];
1404
1348
  SourceControlFormControlsComponent.ctorParameters = () => [
1405
1349
  { type: FormBuilder },
1406
- { type: ApplicationsFlowService },
1407
- { type: ApplicationsFlowEventsService }
1350
+ { type: ApplicationsFlowService }
1408
1351
  ];
1409
1352
  SourceControlFormControlsComponent.propDecorators = {
1410
1353
  BranchesChanged: [{ type: Output, args: ['branches-changed',] }],
@@ -1423,10 +1366,10 @@ SourceControlFormControlsComponent.propDecorators = {
1423
1366
 
1424
1367
  class CreateProjectWizardComponent {
1425
1368
  // Constructors
1426
- constructor(formBuilder, appsFlowSvc, appsFlowEventsSvc) {
1369
+ constructor(formBuilder, appsFlowSvc, eacSvc) {
1427
1370
  this.formBuilder = formBuilder;
1428
1371
  this.appsFlowSvc = appsFlowSvc;
1429
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1372
+ this.eacSvc = eacSvc;
1430
1373
  this.HostingDetails = new ProjectHostingDetails();
1431
1374
  }
1432
1375
  // Fields
@@ -1465,7 +1408,7 @@ class CreateProjectWizardComponent {
1465
1408
  }
1466
1409
  // API Methods
1467
1410
  Cancel() {
1468
- this.appsFlowEventsSvc.SetCreatingProject(false);
1411
+ this.eacSvc.SetCreatingProject(false);
1469
1412
  }
1470
1413
  ConfigureRepository() {
1471
1414
  this.loadProjectHostingDetails();
@@ -1553,7 +1496,7 @@ CreateProjectWizardComponent.decorators = [
1553
1496
  CreateProjectWizardComponent.ctorParameters = () => [
1554
1497
  { type: FormBuilder },
1555
1498
  { type: ApplicationsFlowService },
1556
- { type: ApplicationsFlowEventsService }
1499
+ { type: EaCService }
1557
1500
  ];
1558
1501
  CreateProjectWizardComponent.propDecorators = {
1559
1502
  SourceControl: [{ type: ViewChild, args: [SourceControlFormControlsComponent,] }],
@@ -1629,10 +1572,10 @@ DynamicTabsComponent.propDecorators = {
1629
1572
 
1630
1573
  class HeaderComponent {
1631
1574
  // Constructors
1632
- constructor(formBuilder, lcuSettings, appsFlowEventsSvc) {
1575
+ constructor(formBuilder, lcuSettings, eacSvc) {
1633
1576
  this.formBuilder = formBuilder;
1634
1577
  this.lcuSettings = lcuSettings;
1635
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1578
+ this.eacSvc = eacSvc;
1636
1579
  }
1637
1580
  get HasProjects() {
1638
1581
  return this.ProjectLookups && this.ProjectLookups.length > 0;
@@ -1671,13 +1614,13 @@ class HeaderComponent {
1671
1614
  TrustedProviderLookups: ['ADB2C'],
1672
1615
  },
1673
1616
  };
1674
- this.appsFlowEventsSvc.SaveProjectAsCode({
1617
+ this.eacSvc.SaveProjectAsCode({
1675
1618
  ProjectLookup: Guid.CreateRaw(),
1676
1619
  Project: proj,
1677
1620
  });
1678
1621
  }
1679
1622
  EnableCreatingProject() {
1680
- this.appsFlowEventsSvc.SetCreatingProject(true);
1623
+ this.eacSvc.SetCreatingProject(true);
1681
1624
  }
1682
1625
  }
1683
1626
  HeaderComponent.decorators = [
@@ -1690,7 +1633,7 @@ HeaderComponent.decorators = [
1690
1633
  HeaderComponent.ctorParameters = () => [
1691
1634
  { type: FormBuilder },
1692
1635
  { type: LCUServiceSettings },
1693
- { type: ApplicationsFlowEventsService }
1636
+ { type: EaCService }
1694
1637
  ];
1695
1638
  HeaderComponent.propDecorators = {
1696
1639
  CreatingProject: [{ type: Input, args: ['creating-project',] }],
@@ -1705,9 +1648,9 @@ class CardFormConfigModel {
1705
1648
  }
1706
1649
 
1707
1650
  class DomainsComponent {
1708
- constructor(formsService, appsFlowEventsSvc) {
1651
+ constructor(formsService, eacSvc) {
1709
1652
  this.formsService = formsService;
1710
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1653
+ this.eacSvc = eacSvc;
1711
1654
  }
1712
1655
  /**
1713
1656
  * Access form control for root directory
@@ -1805,7 +1748,7 @@ class DomainsComponent {
1805
1748
  * Save changes
1806
1749
  */
1807
1750
  save() {
1808
- this.appsFlowEventsSvc.SaveProjectAsCode({
1751
+ this.eacSvc.SaveProjectAsCode({
1809
1752
  ProjectLookup: this.ProjectLookup,
1810
1753
  Project: Object.assign(Object.assign({}, this.Project), {
1811
1754
  // Hosts: [...this.Project.Hosts, this.Domain.value],
@@ -1826,7 +1769,7 @@ DomainsComponent.decorators = [
1826
1769
  ];
1827
1770
  DomainsComponent.ctorParameters = () => [
1828
1771
  { type: FormsService },
1829
- { type: ApplicationsFlowEventsService }
1772
+ { type: EaCService }
1830
1773
  ];
1831
1774
  DomainsComponent.propDecorators = {
1832
1775
  Data: [{ type: Input, args: ['data',] }]
@@ -2466,10 +2409,10 @@ AppsFlowComponent.propDecorators = {
2466
2409
 
2467
2410
  class DevOpsComponent {
2468
2411
  // Constructors
2469
- constructor(formBldr, appsFlowSvc, appsFlowEventsSvc) {
2412
+ constructor(formBldr, appsFlowSvc, eacSvc) {
2470
2413
  this.formBldr = formBldr;
2471
2414
  this.appsFlowSvc = appsFlowSvc;
2472
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2415
+ this.eacSvc = eacSvc;
2473
2416
  this.EditingSourceControlLookup = null;
2474
2417
  this.HostingDetails = new ProjectHostingDetails();
2475
2418
  }
@@ -2543,7 +2486,7 @@ class DevOpsComponent {
2543
2486
  }
2544
2487
  DeleteSourceControl(scLookup) {
2545
2488
  if (confirm(`Are you sure you want to delete source control '${scLookup}'?`)) {
2546
- this.appsFlowEventsSvc.DeleteSourceControl(scLookup);
2489
+ this.eacSvc.DeleteSourceControl(scLookup);
2547
2490
  }
2548
2491
  }
2549
2492
  DevOpsActionLookupChanged(event) {
@@ -2597,7 +2540,7 @@ class DevOpsComponent {
2597
2540
  source = Object.assign(Object.assign({}, source), { Type: 'GitHub', Name: this.EditingSourceControlLookup, DevOpsActionTriggerLookups: [devOpsActionLookup], Organization: this.SourceControlFormControls.OrganizationFormControl.value, Repository: this.SourceControlFormControls.RepositoryFormControl.value });
2598
2541
  const scLookup = `github://${source.Organization}/${source.Repository}`;
2599
2542
  saveEnvReq.Environment.Sources[scLookup] = source;
2600
- this.appsFlowEventsSvc.SaveEnvironmentAsCode(saveEnvReq);
2543
+ this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);
2601
2544
  }
2602
2545
  SetEditingSourceControl(scLookup) {
2603
2546
  this.EditingSourceControlLookup = scLookup;
@@ -2650,7 +2593,7 @@ DevOpsComponent.decorators = [
2650
2593
  DevOpsComponent.ctorParameters = () => [
2651
2594
  { type: FormBuilder },
2652
2595
  { type: ApplicationsFlowService },
2653
- { type: ApplicationsFlowEventsService }
2596
+ { type: EaCService }
2654
2597
  ];
2655
2598
  DevOpsComponent.propDecorators = {
2656
2599
  Data: [{ type: Input, args: ['data',] }],
@@ -2660,10 +2603,10 @@ DevOpsComponent.propDecorators = {
2660
2603
 
2661
2604
  class DFSModifiersComponent {
2662
2605
  // Constructors
2663
- constructor(formBldr, appsFlowSvc, appsFlowEventsSvc) {
2606
+ constructor(formBldr, appsFlowSvc, eacSvc) {
2664
2607
  this.formBldr = formBldr;
2665
2608
  this.appsFlowSvc = appsFlowSvc;
2666
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2609
+ this.eacSvc = eacSvc;
2667
2610
  this.EditingModifierLookup = null;
2668
2611
  }
2669
2612
  get DetailsFormControl() {
@@ -2737,7 +2680,7 @@ class DFSModifiersComponent {
2737
2680
  }
2738
2681
  DeleteModifier(modifierLookup, modifierName) {
2739
2682
  if (confirm(`Are you sure you want to delete modifier '${modifierName}'?`)) {
2740
- this.appsFlowEventsSvc.DeleteSourceControl(modifierLookup);
2683
+ this.eacSvc.DeleteSourceControl(modifierLookup);
2741
2684
  }
2742
2685
  }
2743
2686
  SaveModifier(projectLookup = null) {
@@ -2760,7 +2703,7 @@ class DFSModifiersComponent {
2760
2703
  break;
2761
2704
  }
2762
2705
  saveMdfrReq.Modifier.Details = JSON.stringify(details);
2763
- this.appsFlowEventsSvc.SaveDFSModifier(saveMdfrReq);
2706
+ this.eacSvc.SaveDFSModifier(saveMdfrReq);
2764
2707
  }
2765
2708
  SetEditingModifier(modifierLookup) {
2766
2709
  this.EditingModifierLookup = modifierLookup;
@@ -2825,7 +2768,7 @@ DFSModifiersComponent.decorators = [
2825
2768
  DFSModifiersComponent.ctorParameters = () => [
2826
2769
  { type: FormBuilder },
2827
2770
  { type: ApplicationsFlowService },
2828
- { type: ApplicationsFlowEventsService }
2771
+ { type: EaCService }
2829
2772
  ];
2830
2773
  DFSModifiersComponent.propDecorators = {
2831
2774
  Data: [{ type: Input, args: ['data',] }]
@@ -2917,8 +2860,8 @@ ProjectTabsComponent.propDecorators = {
2917
2860
 
2918
2861
  class ProjectItemsComponent {
2919
2862
  // Constructors
2920
- constructor(appsFlowEventsSvc) {
2921
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2863
+ constructor(eacSvc) {
2864
+ this.eacSvc = eacSvc;
2922
2865
  }
2923
2866
  // Fields
2924
2867
  // Properties
@@ -2931,7 +2874,7 @@ class ProjectItemsComponent {
2931
2874
  // API Methods
2932
2875
  DeleteProject(projectLookup, projectName) {
2933
2876
  if (confirm(`Are you sure you want to delete project '${projectName}'?`)) {
2934
- this.appsFlowEventsSvc.DeleteProject(projectLookup);
2877
+ this.eacSvc.DeleteProject(projectLookup);
2935
2878
  }
2936
2879
  }
2937
2880
  GetPrimaryHost(project) {
@@ -2944,7 +2887,7 @@ class ProjectItemsComponent {
2944
2887
  * Event to edit project settings
2945
2888
  */
2946
2889
  ProjectSettings(projectLookup) {
2947
- this.appsFlowEventsSvc.SetEditProjectSettings(projectLookup);
2890
+ this.eacSvc.SetEditProjectSettings(projectLookup);
2948
2891
  }
2949
2892
  }
2950
2893
  ProjectItemsComponent.decorators = [
@@ -2955,7 +2898,7 @@ ProjectItemsComponent.decorators = [
2955
2898
  },] }
2956
2899
  ];
2957
2900
  ProjectItemsComponent.ctorParameters = () => [
2958
- { type: ApplicationsFlowEventsService }
2901
+ { type: EaCService }
2959
2902
  ];
2960
2903
  ProjectItemsComponent.propDecorators = {
2961
2904
  Projects: [{ type: Input, args: ['projects',] }],
@@ -2963,9 +2906,7 @@ ProjectItemsComponent.propDecorators = {
2963
2906
  };
2964
2907
 
2965
2908
  class BuildsComponent {
2966
- constructor(appsFlowEventsSvc) {
2967
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2968
- }
2909
+ constructor() { }
2969
2910
  ngOnInit() { }
2970
2911
  ngOnDestroy() {
2971
2912
  }
@@ -2984,9 +2925,7 @@ BuildsComponent.decorators = [
2984
2925
  styles: ["@import url(\"https://fonts.googleapis.com/icon?family=Material+Icons\");@import url(\"https://fonts.googleapis.com/css?family=Encode+Sans+Condensed:400,900&display=swap\");@import url(\"https://fonts.googleapis.com/css?family=Open+Sans:300,400,700&display=swap\");.disable-autofill-background-default input:-webkit-autofill,.disable-autofill-background-default input:-webkit-autofill:focus,.disable-autofill-background-default input:-webkit-autofill:hover,.disable-autofill-background-default select:-webkit-autofill,.disable-autofill-background-default select:-webkit-autofill:focus,.disable-autofill-background-default select:-webkit-autofill:hover,.disable-autofill-background-default textarea:-webkit-autofill,.disable-autofill-background-default textarea:-webkit-autofill:focus,.disable-autofill-background-default textarea:-webkit-autofill:hover{-webkit-transition:background-color 5000s!important;transition:background-color 5000s!important}.list-item-disabled{cursor:not-allowed!important;filter:alpha(opacity=50);opacity:.5}.filler{display:inline-block!important;flex:1 1 auto}.sticky{position:-webkit-sticky;position:sticky;top:0;z-index:750}.inline{display:inline-block}.contents,.page-element{display:contents}.mat-spinner{margin:auto}.mat-full-width{width:100%}.spread{margin:2rem}.spread-thin{margin:1rem}.overlay{position:-webkit-sticky!important;position:sticky!important}.overlay.top{top:0}.overlay.bottom{bottom:0}.margin-0{margin:0!important}.margin-top-0,.margin-y-0{margin-top:0!important}.margin-right-0,.margin-x-0{margin-right:0!important}.margin-bottom-0,.margin-y-0{margin-bottom:0!important}.margin-left-0,.margin-x-0{margin-left:0!important}.margin-1{margin:.25rem!important}.margin-top-1,.margin-y-1{margin-top:.25rem!important}.margin-right-1,.margin-x-1{margin-right:.25rem!important}.margin-bottom-1,.margin-y-1{margin-bottom:.25rem!important}.margin-left-1,.margin-x-1{margin-left:.25rem!important}.margin-2{margin:.5rem!important}.margin-top-2,.margin-y-2{margin-top:.5rem!important}.margin-right-2,.margin-x-2{margin-right:.5rem!important}.margin-bottom-2,.margin-y-2{margin-bottom:.5rem!important}.margin-left-2,.margin-x-2{margin-left:.5rem!important}.margin-3{margin:1rem!important}.margin-top-3,.margin-y-3{margin-top:1rem!important}.margin-top-bottom-3{margin:1rem 0!important}.margin-right-3,.margin-x-3{margin-right:1rem!important}.margin-bottom-3,.margin-y-3{margin-bottom:1rem!important}.margin-left-3,.margin-x-3{margin-left:1rem!important}.margin-4{margin:2rem!important}.margin-top-4,.margin-y-4{margin-top:2rem!important}.margin-right-4,.margin-x-4{margin-right:2rem!important}.margin-bottom-4,.margin-y-4{margin-bottom:2rem!important}.margin-left-4,.margin-x-4{margin-left:2rem!important}.margin-right-5,.margin-x-5{margin-right:4rem!important}.margin-bottom-5,.margin-y-5{margin-bottom:4rem!important}.margin-left-5,.margin-x-5{margin-left:4rem!important}.margin-5{margin:4rem!important}.margin-top-5,.margin-y-5{margin-top:4rem!important}.margin-right-6,.margin-x-6{margin-right:4.5rem!important}.margin-bottom-6,.margin-y-6{margin-bottom:4.5rem!important}.margin-left-6,.margin-x-6{margin-left:4.5rem!important}.margin-7{margin:6rem!important}.margin-top-7,.margin-y-7{margin-top:6rem!important}.margin-right-7,.margin-x-7{margin-right:6rem!important}.margin-bottom-7,.margin-y-7{margin-bottom:6rem!important}.margin-left-7,.margin-x-7{margin-left:6rem!important}.margin-8{margin:7.5rem!important}.margin-top-8,.margin-y-8{margin-top:7.5rem!important}.margin-right-8,.margin-x-8{margin-right:7.5rem!important}.margin-bottom-8,.margin-y-8{margin-bottom:7.5rem!important}.margin-left-8,.margin-x-8{margin-left:7.5rem!important}.margin-9{margin:9rem!important}.margin-top-9,.margin-y-9{margin-top:9rem!important}.margin-right-9,.margin-x-9{margin-right:9rem!important}.margin-bottom-9,.margin-y-9{margin-bottom:9rem!important}.margin-left-9,.margin-x-9{margin-left:9rem!important}.padding-0{padding:0!important}.padding-top-0,.padding-y-0{padding-top:0!important}.padding-right-0,.padding-x-0{padding-right:0!important}.padding-bottom-0,.padding-y-0{padding-bottom:0!important}.padding-left-0,.padding-x-0{padding-left:0!important}.padding-1{padding:.25rem!important}.padding-top-1,.padding-y-1{padding-top:.25rem!important}.padding-right-1,.padding-x-1{padding-right:.25rem!important}.padding-bottom-1,.padding-y-1{padding-bottom:.25rem!important}.padding-left-1,.padding-x-1{padding-left:.25rem!important}.padding-2{padding:.5rem!important}.padding-top-2,.padding-y-2{padding-top:.5rem!important}.padding-right-2,.padding-x-2{padding-right:.5rem!important}.padding-bottom-2,.padding-y-2{padding-bottom:.5rem!important}.padding-left-2,.padding-x-2{padding-left:.5rem!important}.padding-3{padding:1rem!important}.padding-top-3,.padding-y-3{padding-top:1rem!important}.padding-right-3,.padding-x-3{padding-right:1rem!important}.padding-bottom-3,.padding-y-3{padding-bottom:1rem!important}.padding-left-3,.padding-x-3{padding-left:1rem!important}.padding-4{padding:2rem!important}.padding-top-4,.padding-y-4{padding-top:2rem!important}.padding-right-4,.padding-x-4{padding-right:2rem!important}.padding-bottom-4,.padding-y-4{padding-bottom:2rem!important}.padding-left-4,.padding-x-4{padding-left:2rem!important}.padding-5{padding:4rem!important}.padding-top-5,.padding-y-5{padding-top:4rem!important}.padding-right-5,.padding-x-5{padding-right:4rem!important}.padding-bottom-5,.padding-y-5{padding-bottom:4rem!important}.padding-left-5,.padding-x-5{padding-left:4rem!important}.margin-n1{margin:-.25rem!important}.margin-top-n1,.margin-y-n1{margin-top:-.25rem!important}.margin-right-n1,.margin-x-n1{margin-right:-.25rem!important}.margin-bottom-n1,.margin-y-n1{margin-bottom:-.25rem!important}.margin-left-n1,.margin-x-n1{margin-left:-.25rem!important}.margin-n2{margin:-.5rem!important}.margin-top-n2,.margin-y-n2{margin-top:-.5rem!important}.margin-right-n2,.margin-x-n2{margin-right:-.5rem!important}.margin-bottom-n2,.margin-y-n2{margin-bottom:-.5rem!important}.margin-left-n2,.margin-x-n2{margin-left:-.5rem!important}.margin-n3{margin:-1rem!important}.margin-top-n3,.margin-y-n3{margin-top:-1rem!important}.margin-right-n3,.margin-x-n3{margin-right:-1rem!important}.margin-bottom-n3,.margin-y-n3{margin-bottom:-1rem!important}.margin-left-n3,.margin-x-n3{margin-left:-1rem!important}.margin-n4{margin:-2rem!important}.margin-top-n4,.margin-y-n4{margin-top:-2rem!important}.margin-right-n4,.margin-x-n4{margin-right:-2rem!important}.margin-bottom-n4,.margin-y-n4{margin-bottom:-2rem!important}.margin-left-n4,.margin-x-n4{margin-left:-2rem!important}.margin-n5{margin:-4rem!important}.margin-top-n5,.margin-y-n5{margin-top:-4rem!important}.margin-right-n5,.margin-x-n5{margin-right:-4rem!important}.margin-bottom-n5,.margin-y-n5{margin-bottom:-4rem!important}.margin-left-n5,.margin-x-n5{margin-left:-4rem!important}.margin-auto{margin:auto!important}.margin-top-auto,.margin-y-auto{margin-top:auto!important}.margin-right-auto,.margin-x-auto{margin-right:auto!important}.margin-bottom-auto,.margin-y-auto{margin-bottom:auto!important}.margin-left-auto,.margin-x-auto{margin-left:auto!important}@media (min-width:576px){.margin-sm-0{margin:0!important}.margin-top-sm-0,.margin-y-sm-0{margin-top:0!important}.margin-right-sm-0,.margin-x-sm-0{margin-right:0!important}.margin-bottom-sm-0,.margin-y-sm-0{margin-bottom:0!important}.margin-left-sm-0,.margin-x-sm-0{margin-left:0!important}.margin-sm-1{margin:.25rem!important}.margin-top-sm-1,.margin-y-sm-1{margin-top:.25rem!important}.margin-right-sm-1,.margin-x-sm-1{margin-right:.25rem!important}.margin-bottom-sm-1,.margin-y-sm-1{margin-bottom:.25rem!important}.margin-left-sm-1,.margin-x-sm-1{margin-left:.25rem!important}.margin-sm-2{margin:.5rem!important}.margin-top-sm-2,.margin-y-sm-2{margin-top:.5rem!important}.margin-right-sm-2,.margin-x-sm-2{margin-right:.5rem!important}.margin-bottom-sm-2,.margin-y-sm-2{margin-bottom:.5rem!important}.margin-left-sm-2,.margin-x-sm-2{margin-left:.5rem!important}.margin-sm-3{margin:1rem!important}.margin-top-sm-3,.margin-y-sm-3{margin-top:1rem!important}.margin-right-sm-3,.margin-x-sm-3{margin-right:1rem!important}.margin-bottom-sm-3,.margin-y-sm-3{margin-bottom:1rem!important}.margin-left-sm-3,.margin-x-sm-3{margin-left:1rem!important}.margin-sm-4{margin:2rem!important}.margin-top-sm-4,.margin-y-sm-4{margin-top:2rem!important}.margin-right-sm-4,.margin-x-sm-4{margin-right:2rem!important}.margin-bottom-sm-4,.margin-y-sm-4{margin-bottom:2rem!important}.margin-left-sm-4,.margin-x-sm-4{margin-left:2rem!important}.margin-sm-5{margin:4rem!important}.margin-top-sm-5,.margin-y-sm-5{margin-top:4rem!important}.margin-right-sm-5,.margin-x-sm-5{margin-right:4rem!important}.margin-bottom-sm-5,.margin-y-sm-5{margin-bottom:4rem!important}.margin-left-sm-5,.margin-x-sm-5{margin-left:4rem!important}.padding-sm-0{padding:0!important}.padding-top-sm-0,.padding-y-sm-0{padding-top:0!important}.padding-right-sm-0,.padding-x-sm-0{padding-right:0!important}.padding-bottom-sm-0,.padding-y-sm-0{padding-bottom:0!important}.padding-left-sm-0,.padding-x-sm-0{padding-left:0!important}.padding-sm-1{padding:.25rem!important}.padding-top-sm-1,.padding-y-sm-1{padding-top:.25rem!important}.padding-right-sm-1,.padding-x-sm-1{padding-right:.25rem!important}.padding-bottom-sm-1,.padding-y-sm-1{padding-bottom:.25rem!important}.padding-left-sm-1,.padding-x-sm-1{padding-left:.25rem!important}.padding-sm-2{padding:.5rem!important}.padding-top-sm-2,.padding-y-sm-2{padding-top:.5rem!important}.padding-right-sm-2,.padding-x-sm-2{padding-right:.5rem!important}.padding-bottom-sm-2,.padding-y-sm-2{padding-bottom:.5rem!important}.padding-left-sm-2,.padding-x-sm-2{padding-left:.5rem!important}.padding-sm-3{padding:1rem!important}.padding-top-sm-3,.padding-y-sm-3{padding-top:1rem!important}.padding-right-sm-3,.padding-x-sm-3{padding-right:1rem!important}.padding-bottom-sm-3,.padding-y-sm-3{padding-bottom:1rem!important}.padding-left-sm-3,.padding-x-sm-3{padding-left:1rem!important}.padding-sm-4{padding:2rem!important}.padding-top-sm-4,.padding-y-sm-4{padding-top:2rem!important}.padding-right-sm-4,.padding-x-sm-4{padding-right:2rem!important}.padding-bottom-sm-4,.padding-y-sm-4{padding-bottom:2rem!important}.padding-left-sm-4,.padding-x-sm-4{padding-left:2rem!important}.padding-sm-5{padding:4rem!important}.padding-top-sm-5,.padding-y-sm-5{padding-top:4rem!important}.padding-right-sm-5,.padding-x-sm-5{padding-right:4rem!important}.padding-bottom-sm-5,.padding-y-sm-5{padding-bottom:4rem!important}.padding-left-sm-5,.padding-x-sm-5{padding-left:4rem!important}.margin-sm-n1{margin:-.25rem!important}.margin-top-sm-n1,.margin-y-sm-n1{margin-top:-.25rem!important}.margin-right-sm-n1,.margin-x-sm-n1{margin-right:-.25rem!important}.margin-bottom-sm-n1,.margin-y-sm-n1{margin-bottom:-.25rem!important}.margin-left-sm-n1,.margin-x-sm-n1{margin-left:-.25rem!important}.margin-sm-n2{margin:-.5rem!important}.margin-top-sm-n2,.margin-y-sm-n2{margin-top:-.5rem!important}.margin-right-sm-n2,.margin-x-sm-n2{margin-right:-.5rem!important}.margin-bottom-sm-n2,.margin-y-sm-n2{margin-bottom:-.5rem!important}.margin-left-sm-n2,.margin-x-sm-n2{margin-left:-.5rem!important}.margin-sm-n3{margin:-1rem!important}.margin-top-sm-n3,.margin-y-sm-n3{margin-top:-1rem!important}.margin-right-sm-n3,.margin-x-sm-n3{margin-right:-1rem!important}.margin-bottom-sm-n3,.margin-y-sm-n3{margin-bottom:-1rem!important}.margin-left-sm-n3,.margin-x-sm-n3{margin-left:-1rem!important}.margin-sm-n4{margin:-2rem!important}.margin-top-sm-n4,.margin-y-sm-n4{margin-top:-2rem!important}.margin-right-sm-n4,.margin-x-sm-n4{margin-right:-2rem!important}.margin-bottom-sm-n4,.margin-y-sm-n4{margin-bottom:-2rem!important}.margin-left-sm-n4,.margin-x-sm-n4{margin-left:-2rem!important}.margin-sm-n5{margin:-4rem!important}.margin-top-sm-n5,.margin-y-sm-n5{margin-top:-4rem!important}.margin-right-sm-n5,.margin-x-sm-n5{margin-right:-4rem!important}.margin-bottom-sm-n5,.margin-y-sm-n5{margin-bottom:-4rem!important}.margin-left-sm-n5,.margin-x-sm-n5{margin-left:-4rem!important}.margin-sm-auto{margin:auto!important}.margin-top-sm-auto,.margin-y-sm-auto{margin-top:auto!important}.margin-right-sm-auto,.margin-x-sm-auto{margin-right:auto!important}.margin-bottom-sm-auto,.margin-y-sm-auto{margin-bottom:auto!important}.margin-left-sm-auto,.margin-x-sm-auto{margin-left:auto!important}}@media (min-width:768px){.margin-md-0{margin:0!important}.margin-top-md-0,.margin-y-md-0{margin-top:0!important}.margin-right-md-0,.margin-x-md-0{margin-right:0!important}.margin-bottom-md-0,.margin-y-md-0{margin-bottom:0!important}.margin-left-md-0,.margin-x-md-0{margin-left:0!important}.margin-md-1{margin:.25rem!important}.margin-top-md-1,.margin-y-md-1{margin-top:.25rem!important}.margin-right-md-1,.margin-x-md-1{margin-right:.25rem!important}.margin-bottom-md-1,.margin-y-md-1{margin-bottom:.25rem!important}.margin-left-md-1,.margin-x-md-1{margin-left:.25rem!important}.margin-md-2{margin:.5rem!important}.margin-top-md-2,.margin-y-md-2{margin-top:.5rem!important}.margin-right-md-2,.margin-x-md-2{margin-right:.5rem!important}.margin-bottom-md-2,.margin-y-md-2{margin-bottom:.5rem!important}.margin-left-md-2,.margin-x-md-2{margin-left:.5rem!important}.margin-md-3{margin:1rem!important}.margin-top-md-3,.margin-y-md-3{margin-top:1rem!important}.margin-right-md-3,.margin-x-md-3{margin-right:1rem!important}.margin-bottom-md-3,.margin-y-md-3{margin-bottom:1rem!important}.margin-left-md-3,.margin-x-md-3{margin-left:1rem!important}.margin-md-4{margin:2rem!important}.margin-top-md-4,.margin-y-md-4{margin-top:2rem!important}.margin-right-md-4,.margin-x-md-4{margin-right:2rem!important}.margin-bottom-md-4,.margin-y-md-4{margin-bottom:2rem!important}.margin-left-md-4,.margin-x-md-4{margin-left:2rem!important}.margin-md-5{margin:4rem!important}.margin-top-md-5,.margin-y-md-5{margin-top:4rem!important}.margin-right-md-5,.margin-x-md-5{margin-right:4rem!important}.margin-bottom-md-5,.margin-y-md-5{margin-bottom:4rem!important}.margin-left-md-5,.margin-x-md-5{margin-left:4rem!important}.padding-md-0{padding:0!important}.padding-top-md-0,.padding-y-md-0{padding-top:0!important}.padding-right-md-0,.padding-x-md-0{padding-right:0!important}.padding-bottom-md-0,.padding-y-md-0{padding-bottom:0!important}.padding-left-md-0,.padding-x-md-0{padding-left:0!important}.padding-md-1{padding:.25rem!important}.padding-top-md-1,.padding-y-md-1{padding-top:.25rem!important}.padding-right-md-1,.padding-x-md-1{padding-right:.25rem!important}.padding-bottom-md-1,.padding-y-md-1{padding-bottom:.25rem!important}.padding-left-md-1,.padding-x-md-1{padding-left:.25rem!important}.padding-md-2{padding:.5rem!important}.padding-top-md-2,.padding-y-md-2{padding-top:.5rem!important}.padding-right-md-2,.padding-x-md-2{padding-right:.5rem!important}.padding-bottom-md-2,.padding-y-md-2{padding-bottom:.5rem!important}.padding-left-md-2,.padding-x-md-2{padding-left:.5rem!important}.padding-md-3{padding:1rem!important}.padding-top-md-3,.padding-y-md-3{padding-top:1rem!important}.padding-right-md-3,.padding-x-md-3{padding-right:1rem!important}.padding-bottom-md-3,.padding-y-md-3{padding-bottom:1rem!important}.padding-left-md-3,.padding-x-md-3{padding-left:1rem!important}.padding-md-4{padding:2rem!important}.padding-top-md-4,.padding-y-md-4{padding-top:2rem!important}.padding-right-md-4,.padding-x-md-4{padding-right:2rem!important}.padding-bottom-md-4,.padding-y-md-4{padding-bottom:2rem!important}.padding-left-md-4,.padding-x-md-4{padding-left:2rem!important}.padding-md-5{padding:4rem!important}.padding-top-md-5,.padding-y-md-5{padding-top:4rem!important}.padding-right-md-5,.padding-x-md-5{padding-right:4rem!important}.padding-bottom-md-5,.padding-y-md-5{padding-bottom:4rem!important}.padding-left-md-5,.padding-x-md-5{padding-left:4rem!important}.margin-md-n1{margin:-.25rem!important}.margin-top-md-n1,.margin-y-md-n1{margin-top:-.25rem!important}.margin-right-md-n1,.margin-x-md-n1{margin-right:-.25rem!important}.margin-bottom-md-n1,.margin-y-md-n1{margin-bottom:-.25rem!important}.margin-left-md-n1,.margin-x-md-n1{margin-left:-.25rem!important}.margin-md-n2{margin:-.5rem!important}.margin-top-md-n2,.margin-y-md-n2{margin-top:-.5rem!important}.margin-right-md-n2,.margin-x-md-n2{margin-right:-.5rem!important}.margin-bottom-md-n2,.margin-y-md-n2{margin-bottom:-.5rem!important}.margin-left-md-n2,.margin-x-md-n2{margin-left:-.5rem!important}.margin-md-n3{margin:-1rem!important}.margin-top-md-n3,.margin-y-md-n3{margin-top:-1rem!important}.margin-right-md-n3,.margin-x-md-n3{margin-right:-1rem!important}.margin-bottom-md-n3,.margin-y-md-n3{margin-bottom:-1rem!important}.margin-left-md-n3,.margin-x-md-n3{margin-left:-1rem!important}.margin-md-n4{margin:-2rem!important}.margin-top-md-n4,.margin-y-md-n4{margin-top:-2rem!important}.margin-right-md-n4,.margin-x-md-n4{margin-right:-2rem!important}.margin-bottom-md-n4,.margin-y-md-n4{margin-bottom:-2rem!important}.margin-left-md-n4,.margin-x-md-n4{margin-left:-2rem!important}.margin-md-n5{margin:-4rem!important}.margin-top-md-n5,.margin-y-md-n5{margin-top:-4rem!important}.margin-right-md-n5,.margin-x-md-n5{margin-right:-4rem!important}.margin-bottom-md-n5,.margin-y-md-n5{margin-bottom:-4rem!important}.margin-left-md-n5,.margin-x-md-n5{margin-left:-4rem!important}.margin-md-auto{margin:auto!important}.margin-top-md-auto,.margin-y-md-auto{margin-top:auto!important}.margin-right-md-auto,.margin-x-md-auto{margin-right:auto!important}.margin-bottom-md-auto,.margin-y-md-auto{margin-bottom:auto!important}.margin-left-md-auto,.margin-x-md-auto{margin-left:auto!important}}@media (min-width:992px){.margin-lg-0{margin:0!important}.margin-top-lg-0,.margin-y-lg-0{margin-top:0!important}.margin-right-lg-0,.margin-x-lg-0{margin-right:0!important}.margin-bottom-lg-0,.margin-y-lg-0{margin-bottom:0!important}.margin-left-lg-0,.margin-x-lg-0{margin-left:0!important}.margin-lg-1{margin:.25rem!important}.margin-top-lg-1,.margin-y-lg-1{margin-top:.25rem!important}.margin-right-lg-1,.margin-x-lg-1{margin-right:.25rem!important}.margin-bottom-lg-1,.margin-y-lg-1{margin-bottom:.25rem!important}.margin-left-lg-1,.margin-x-lg-1{margin-left:.25rem!important}.margin-lg-2{margin:.5rem!important}.margin-top-lg-2,.margin-y-lg-2{margin-top:.5rem!important}.margin-right-lg-2,.margin-x-lg-2{margin-right:.5rem!important}.margin-bottom-lg-2,.margin-y-lg-2{margin-bottom:.5rem!important}.margin-left-lg-2,.margin-x-lg-2{margin-left:.5rem!important}.margin-lg-3{margin:1rem!important}.margin-top-lg-3,.margin-y-lg-3{margin-top:1rem!important}.margin-right-lg-3,.margin-x-lg-3{margin-right:1rem!important}.margin-bottom-lg-3,.margin-y-lg-3{margin-bottom:1rem!important}.margin-left-lg-3,.margin-x-lg-3{margin-left:1rem!important}.margin-lg-4{margin:2rem!important}.margin-top-lg-4,.margin-y-lg-4{margin-top:2rem!important}.margin-right-lg-4,.margin-x-lg-4{margin-right:2rem!important}.margin-bottom-lg-4,.margin-y-lg-4{margin-bottom:2rem!important}.margin-left-lg-4,.margin-x-lg-4{margin-left:2rem!important}.margin-lg-5{margin:4rem!important}.margin-top-lg-5,.margin-y-lg-5{margin-top:4rem!important}.margin-right-lg-5,.margin-x-lg-5{margin-right:4rem!important}.margin-bottom-lg-5,.margin-y-lg-5{margin-bottom:4rem!important}.margin-left-lg-5,.margin-x-lg-5{margin-left:4rem!important}.padding-lg-0{padding:0!important}.padding-top-lg-0,.padding-y-lg-0{padding-top:0!important}.padding-right-lg-0,.padding-x-lg-0{padding-right:0!important}.padding-bottom-lg-0,.padding-y-lg-0{padding-bottom:0!important}.padding-left-lg-0,.padding-x-lg-0{padding-left:0!important}.padding-lg-1{padding:.25rem!important}.padding-top-lg-1,.padding-y-lg-1{padding-top:.25rem!important}.padding-right-lg-1,.padding-x-lg-1{padding-right:.25rem!important}.padding-bottom-lg-1,.padding-y-lg-1{padding-bottom:.25rem!important}.padding-left-lg-1,.padding-x-lg-1{padding-left:.25rem!important}.padding-lg-2{padding:.5rem!important}.padding-top-lg-2,.padding-y-lg-2{padding-top:.5rem!important}.padding-right-lg-2,.padding-x-lg-2{padding-right:.5rem!important}.padding-bottom-lg-2,.padding-y-lg-2{padding-bottom:.5rem!important}.padding-left-lg-2,.padding-x-lg-2{padding-left:.5rem!important}.padding-lg-3{padding:1rem!important}.padding-top-lg-3,.padding-y-lg-3{padding-top:1rem!important}.padding-right-lg-3,.padding-x-lg-3{padding-right:1rem!important}.padding-bottom-lg-3,.padding-y-lg-3{padding-bottom:1rem!important}.padding-left-lg-3,.padding-x-lg-3{padding-left:1rem!important}.padding-lg-4{padding:2rem!important}.padding-top-lg-4,.padding-y-lg-4{padding-top:2rem!important}.padding-right-lg-4,.padding-x-lg-4{padding-right:2rem!important}.padding-bottom-lg-4,.padding-y-lg-4{padding-bottom:2rem!important}.padding-left-lg-4,.padding-x-lg-4{padding-left:2rem!important}.padding-lg-5{padding:4rem!important}.padding-top-lg-5,.padding-y-lg-5{padding-top:4rem!important}.padding-right-lg-5,.padding-x-lg-5{padding-right:4rem!important}.padding-bottom-lg-5,.padding-y-lg-5{padding-bottom:4rem!important}.padding-left-lg-5,.padding-x-lg-5{padding-left:4rem!important}.margin-lg-n1{margin:-.25rem!important}.margin-top-lg-n1,.margin-y-lg-n1{margin-top:-.25rem!important}.margin-right-lg-n1,.margin-x-lg-n1{margin-right:-.25rem!important}.margin-bottom-lg-n1,.margin-y-lg-n1{margin-bottom:-.25rem!important}.margin-left-lg-n1,.margin-x-lg-n1{margin-left:-.25rem!important}.margin-lg-n2{margin:-.5rem!important}.margin-top-lg-n2,.margin-y-lg-n2{margin-top:-.5rem!important}.margin-right-lg-n2,.margin-x-lg-n2{margin-right:-.5rem!important}.margin-bottom-lg-n2,.margin-y-lg-n2{margin-bottom:-.5rem!important}.margin-left-lg-n2,.margin-x-lg-n2{margin-left:-.5rem!important}.margin-lg-n3{margin:-1rem!important}.margin-top-lg-n3,.margin-y-lg-n3{margin-top:-1rem!important}.margin-right-lg-n3,.margin-x-lg-n3{margin-right:-1rem!important}.margin-bottom-lg-n3,.margin-y-lg-n3{margin-bottom:-1rem!important}.margin-left-lg-n3,.margin-x-lg-n3{margin-left:-1rem!important}.margin-lg-n4{margin:-2rem!important}.margin-top-lg-n4,.margin-y-lg-n4{margin-top:-2rem!important}.margin-right-lg-n4,.margin-x-lg-n4{margin-right:-2rem!important}.margin-bottom-lg-n4,.margin-y-lg-n4{margin-bottom:-2rem!important}.margin-left-lg-n4,.margin-x-lg-n4{margin-left:-2rem!important}.margin-lg-n5{margin:-4rem!important}.margin-top-lg-n5,.margin-y-lg-n5{margin-top:-4rem!important}.margin-right-lg-n5,.margin-x-lg-n5{margin-right:-4rem!important}.margin-bottom-lg-n5,.margin-y-lg-n5{margin-bottom:-4rem!important}.margin-left-lg-n5,.margin-x-lg-n5{margin-left:-4rem!important}.margin-lg-auto{margin:auto!important}.margin-top-lg-auto,.margin-y-lg-auto{margin-top:auto!important}.margin-right-lg-auto,.margin-x-lg-auto{margin-right:auto!important}.margin-bottom-lg-auto,.margin-y-lg-auto{margin-bottom:auto!important}.margin-left-lg-auto,.margin-x-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.margin-xl-0{margin:0!important}.margin-top-xl-0,.margin-y-xl-0{margin-top:0!important}.margin-right-xl-0,.margin-x-xl-0{margin-right:0!important}.margin-bottom-xl-0,.margin-y-xl-0{margin-bottom:0!important}.margin-left-xl-0,.margin-x-xl-0{margin-left:0!important}.margin-xl-1{margin:.25rem!important}.margin-top-xl-1,.margin-y-xl-1{margin-top:.25rem!important}.margin-right-xl-1,.margin-x-xl-1{margin-right:.25rem!important}.margin-bottom-xl-1,.margin-y-xl-1{margin-bottom:.25rem!important}.margin-left-xl-1,.margin-x-xl-1{margin-left:.25rem!important}.margin-xl-2{margin:.5rem!important}.margin-top-xl-2,.margin-y-xl-2{margin-top:.5rem!important}.margin-right-xl-2,.margin-x-xl-2{margin-right:.5rem!important}.margin-bottom-xl-2,.margin-y-xl-2{margin-bottom:.5rem!important}.margin-left-xl-2,.margin-x-xl-2{margin-left:.5rem!important}.margin-xl-3{margin:1rem!important}.margin-top-xl-3,.margin-y-xl-3{margin-top:1rem!important}.margin-right-xl-3,.margin-x-xl-3{margin-right:1rem!important}.margin-bottom-xl-3,.margin-y-xl-3{margin-bottom:1rem!important}.margin-left-xl-3,.margin-x-xl-3{margin-left:1rem!important}.margin-xl-4{margin:2rem!important}.margin-top-xl-4,.margin-y-xl-4{margin-top:2rem!important}.margin-right-xl-4,.margin-x-xl-4{margin-right:2rem!important}.margin-bottom-xl-4,.margin-y-xl-4{margin-bottom:2rem!important}.margin-left-xl-4,.margin-x-xl-4{margin-left:2rem!important}.margin-xl-5{margin:4rem!important}.margin-top-xl-5,.margin-y-xl-5{margin-top:4rem!important}.margin-right-xl-5,.margin-x-xl-5{margin-right:4rem!important}.margin-bottom-xl-5,.margin-y-xl-5{margin-bottom:4rem!important}.margin-left-xl-5,.margin-x-xl-5{margin-left:4rem!important}.padding-xl-0{padding:0!important}.padding-top-xl-0,.padding-y-xl-0{padding-top:0!important}.padding-right-xl-0,.padding-x-xl-0{padding-right:0!important}.padding-bottom-xl-0,.padding-y-xl-0{padding-bottom:0!important}.padding-left-xl-0,.padding-x-xl-0{padding-left:0!important}.padding-xl-1{padding:.25rem!important}.padding-top-xl-1,.padding-y-xl-1{padding-top:.25rem!important}.padding-right-xl-1,.padding-x-xl-1{padding-right:.25rem!important}.padding-bottom-xl-1,.padding-y-xl-1{padding-bottom:.25rem!important}.padding-left-xl-1,.padding-x-xl-1{padding-left:.25rem!important}.padding-xl-2{padding:.5rem!important}.padding-top-xl-2,.padding-y-xl-2{padding-top:.5rem!important}.padding-right-xl-2,.padding-x-xl-2{padding-right:.5rem!important}.padding-bottom-xl-2,.padding-y-xl-2{padding-bottom:.5rem!important}.padding-left-xl-2,.padding-x-xl-2{padding-left:.5rem!important}.padding-xl-3{padding:1rem!important}.padding-top-xl-3,.padding-y-xl-3{padding-top:1rem!important}.padding-right-xl-3,.padding-x-xl-3{padding-right:1rem!important}.padding-bottom-xl-3,.padding-y-xl-3{padding-bottom:1rem!important}.padding-left-xl-3,.padding-x-xl-3{padding-left:1rem!important}.padding-xl-4{padding:2rem!important}.padding-top-xl-4,.padding-y-xl-4{padding-top:2rem!important}.padding-right-xl-4,.padding-x-xl-4{padding-right:2rem!important}.padding-bottom-xl-4,.padding-y-xl-4{padding-bottom:2rem!important}.padding-left-xl-4,.padding-x-xl-4{padding-left:2rem!important}.padding-xl-5{padding:4rem!important}.padding-top-xl-5,.padding-y-xl-5{padding-top:4rem!important}.padding-right-xl-5,.padding-x-xl-5{padding-right:4rem!important}.padding-bottom-xl-5,.padding-y-xl-5{padding-bottom:4rem!important}.padding-left-xl-5,.padding-x-xl-5{padding-left:4rem!important}.margin-xl-n1{margin:-.25rem!important}.margin-top-xl-n1,.margin-y-xl-n1{margin-top:-.25rem!important}.margin-right-xl-n1,.margin-x-xl-n1{margin-right:-.25rem!important}.margin-bottom-xl-n1,.margin-y-xl-n1{margin-bottom:-.25rem!important}.margin-left-xl-n1,.margin-x-xl-n1{margin-left:-.25rem!important}.margin-xl-n2{margin:-.5rem!important}.margin-top-xl-n2,.margin-y-xl-n2{margin-top:-.5rem!important}.margin-right-xl-n2,.margin-x-xl-n2{margin-right:-.5rem!important}.margin-bottom-xl-n2,.margin-y-xl-n2{margin-bottom:-.5rem!important}.margin-left-xl-n2,.margin-x-xl-n2{margin-left:-.5rem!important}.margin-xl-n3{margin:-1rem!important}.margin-top-xl-n3,.margin-y-xl-n3{margin-top:-1rem!important}.margin-right-xl-n3,.margin-x-xl-n3{margin-right:-1rem!important}.margin-bottom-xl-n3,.margin-y-xl-n3{margin-bottom:-1rem!important}.margin-left-xl-n3,.margin-x-xl-n3{margin-left:-1rem!important}.margin-xl-n4{margin:-2rem!important}.margin-top-xl-n4,.margin-y-xl-n4{margin-top:-2rem!important}.margin-right-xl-n4,.margin-x-xl-n4{margin-right:-2rem!important}.margin-bottom-xl-n4,.margin-y-xl-n4{margin-bottom:-2rem!important}.margin-left-xl-n4,.margin-x-xl-n4{margin-left:-2rem!important}.margin-xl-n5{margin:-4rem!important}.margin-top-xl-n5,.margin-y-xl-n5{margin-top:-4rem!important}.margin-right-xl-n5,.margin-x-xl-n5{margin-right:-4rem!important}.margin-bottom-xl-n5,.margin-y-xl-n5{margin-bottom:-4rem!important}.margin-left-xl-n5,.margin-x-xl-n5{margin-left:-4rem!important}.margin-xl-auto{margin:auto!important}.margin-top-xl-auto,.margin-y-xl-auto{margin-top:auto!important}.margin-right-xl-auto,.margin-x-xl-auto{margin-right:auto!important}.margin-bottom-xl-auto,.margin-y-xl-auto{margin-bottom:auto!important}.margin-left-xl-auto,.margin-x-xl-auto{margin-left:auto!important}}.h1{font-size:2em}.h2{font-size:1.5em}.h3{font-size:1.17em}.h4{font-size:1em}.h5{font-size:.83em}.h6{font-size:.67em}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-context-menu{cursor:context-menu}.cursor-col-resize{cursor:col-resize}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:-webkit-grab;cursor:grab}.cursor-grabbing{cursor:-webkit-grabbing;cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.mat-tooltip{font-size:15px!important}body,html{height:100%}body{font-family:opens sans regular,sans-serif;margin:0;padding:0}iframe{border:none}.mat-badge-content{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:600}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body-1 p,.mat-body p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button,.mat-stroked-button{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-content,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-remove.mat-icon,.mat-chip .mat-chip-trailing-icon.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field{font-family:Roboto,Helvetica Neue,sans-serif;font-size:inherit;font-weight:400;letter-spacing:normal;line-height:1.125}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{border-top:.84375em solid transparent;padding:.5em 0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{padding-top:.84375em;top:-.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.79167em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{-ms-transform:translateY(-1.28125em) scale(.75);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{-ms-transform:translateY(-1.28124em) scale(.75);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{-ms-transform:translateY(-1.28123em) scale(.75);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.66667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{margin-top:-.5em;top:1.09375em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{margin-top:-.25em;top:1.84375em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content,.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-size:12px;font-weight:500}.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group,.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-bottom:6px;padding-top:6px}.mat-tooltip-handset{font-size:14px;padding-bottom:8px;padding-top:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{font-family:inherit;font-size:inherit;font-weight:500;line-height:1}.mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-nested-tree-node,.mat-tree-node{font-size:14px;font-weight:400}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{border-radius:50%;pointer-events:none;position:absolute;transform:scale(0);transition:opacity,transform 0ms cubic-bezier(0,0,.2,1)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{-moz-appearance:none;-webkit-appearance:none;border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.cdk-global-overlay-wrapper,.cdk-overlay-container{height:100%;left:0;pointer-events:none;top:0;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper,.cdk-overlay-pane{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{box-sizing:border-box;max-height:100%;max-width:100%;pointer-events:auto}.cdk-overlay-backdrop{-webkit-tap-highlight-color:transparent;bottom:0;left:0;opacity:0;pointer-events:auto;position:absolute;right:0;top:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1);z-index:1000}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{display:flex;flex-direction:column;min-height:1px;min-width:1px;position:absolute;z-index:1000}.cdk-global-scrollblock{overflow-y:scroll;position:fixed;width:100%}@-webkit-keyframes cdk-text-field-autofill-start{\n /*!*/}@keyframes cdk-text-field-autofill-start{\n /*!*/}@-webkit-keyframes cdk-text-field-autofill-end{\n /*!*/}@keyframes cdk-text-field-autofill-end{\n /*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation:cdk-text-field-autofill-start 0s 1ms;animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation:cdk-text-field-autofill-end 0s 1ms;animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{box-sizing:content-box!important;height:auto!important;overflow:hidden!important;padding:2px 0!important}textarea.cdk-textarea-autosize-measuring-firefox{box-sizing:content-box!important;height:0!important;padding:2px 0!important}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.header,.title{font-family:Encode Sans Condensed,sans-serif;font-weight:900}.paragraph-title,.tagline{font-family:Open Sans,sans-serif;font-weight:400}.paragraph-title-bold .tagLine-bold{font-family:Open Sans,sans-serif;font-weight:700}.plain-text,.remarks{font-family:Open Sans,sans-serif;font-weight:300}.plain-text-bold{font-family:Open Sans,sans-serif;font-weight:700}.flex-column{flex-direction:column}.flex-column,.flex-row{box-sizing:border-box;display:flex}.flex-row{flex-direction:row}.flex-row-center{align-items:center;justify-content:center}.mat-button-large{font-size:18px;font-weight:700;line-height:48px;padding:0 24px!important}.mat-round{border-radius:.5em}:root{--background:#050505;--cyan-accent:rgba(132,255,255,0.75);--green-accent:#00e676;--initial-accent:#9cd8d7;--initial-dark-background:#222;--initial-dark-text:hsla(0,0%,100%,0.87);--initial-light-background:#f2f2f2;--initial-light-background:#fff;--initial-light-text:rgba(0,0,0,0.87);--initial-primary:#4a918e;--initial-warn:#ef4351;--orange-accent:#ff9800;--pink-accent:#e91e63;--purple-accent:#9c27b0;--success:#00e676;--yellow-accent:#fdd835}body{background-color:var(--initial-dark-background)}::ng-deep .mat-tooltip{font-size:16px!important}:host .valid-control{color:var(--green-accent)}:host .invalid-control{color:var(--theme-warn-500)}:host .actions .item:not(:last-child){margin-right:0}:host .project-thumbnail img{height:50px;width:auto}:host .active{background-color:var(--theme-accent-400)}:host .active,:host .inactive{transition:background-color 1s linear}:host .inactive{background-color:rgba(242,245,169,0)}:host .expansion-panel{margin-bottom:10px;width:100%}:host .expansion-container{max-height:300px;overflow-y:auto}:host .divider-fill-vert{background-color:var(--theme-accent-500);bottom:10%;min-height:100%;min-width:5px;top:10%}:host .divider-fill-hor{background-color:var(--theme-accent-500);height:5px;width:100%}:host .form-disabled{background-color:#797979;border-radius:4px;opacity:.5}::ng-deep input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-text-fill-color:hsla(0,0%,100%,.8705882352941177);-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}@media (max-width:768px){.spread{margin:1em!important}}@media (max-width:480px){.spread{margin:.5em!important}}.spinner-logo{display:none!important}.success{color:var(--success)}.error{color:var(--theme-warn-500)}.icon-bg{border-radius:50%;padding:3px}.name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:150px}"]
2985
2926
  },] }
2986
2927
  ];
2987
- BuildsComponent.ctorParameters = () => [
2988
- { type: ApplicationsFlowEventsService }
2989
- ];
2928
+ BuildsComponent.ctorParameters = () => [];
2990
2929
  BuildsComponent.propDecorators = {
2991
2930
  Projects: [{ type: Input, args: ['projects',] }]
2992
2931
  };
@@ -3027,9 +2966,9 @@ FormCardComponent.propDecorators = {
3027
2966
  };
3028
2967
 
3029
2968
  class ProjectNameComponent {
3030
- constructor(formsService, appsFlowEventsSvc) {
2969
+ constructor(formsService, eacSvc) {
3031
2970
  this.formsService = formsService;
3032
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2971
+ this.eacSvc = eacSvc;
3033
2972
  }
3034
2973
  /**
3035
2974
  * Access form control for description
@@ -3099,7 +3038,7 @@ class ProjectNameComponent {
3099
3038
  * Save form
3100
3039
  */
3101
3040
  save() {
3102
- this.appsFlowEventsSvc.SaveProjectAsCode({
3041
+ this.eacSvc.SaveProjectAsCode({
3103
3042
  ProjectLookup: this.ProjectLookup,
3104
3043
  Project: Object.assign(Object.assign({}, this.Project), { Project: Object.assign(Object.assign({}, (this.Project || {})), { Description: this.Description.value, Name: this.Name.value }) }),
3105
3044
  });
@@ -3143,7 +3082,7 @@ ProjectNameComponent.decorators = [
3143
3082
  ];
3144
3083
  ProjectNameComponent.ctorParameters = () => [
3145
3084
  { type: FormsService },
3146
- { type: ApplicationsFlowEventsService }
3085
+ { type: EaCService }
3147
3086
  ];
3148
3087
  ProjectNameComponent.propDecorators = {
3149
3088
  Project: [{ type: Input, args: ['project',] }],
@@ -3151,9 +3090,9 @@ ProjectNameComponent.propDecorators = {
3151
3090
  };
3152
3091
 
3153
3092
  class RootDirectoryComponent {
3154
- constructor(formsService, appsFlowEventsSvc) {
3093
+ constructor(formsService, eacSvc) {
3155
3094
  this.formsService = formsService;
3156
- this.appsFlowEventsSvc = appsFlowEventsSvc;
3095
+ this.eacSvc = eacSvc;
3157
3096
  }
3158
3097
  /**
3159
3098
  * Access form control for root directory
@@ -3218,7 +3157,7 @@ class RootDirectoryComponent {
3218
3157
  * Save form
3219
3158
  */
3220
3159
  save() {
3221
- this.appsFlowEventsSvc.SaveProjectAsCode({
3160
+ this.eacSvc.SaveProjectAsCode({
3222
3161
  ProjectLookup: this.ProjectLookup,
3223
3162
  Project: Object.assign({}, this.Project),
3224
3163
  });
@@ -3251,7 +3190,7 @@ RootDirectoryComponent.decorators = [
3251
3190
  ];
3252
3191
  RootDirectoryComponent.ctorParameters = () => [
3253
3192
  { type: FormsService },
3254
- { type: ApplicationsFlowEventsService }
3193
+ { type: EaCService }
3255
3194
  ];
3256
3195
  RootDirectoryComponent.propDecorators = {
3257
3196
  Project: [{ type: Input, args: ['project',] }],
@@ -3259,9 +3198,9 @@ RootDirectoryComponent.propDecorators = {
3259
3198
  };
3260
3199
 
3261
3200
  class BaseFormComponent {
3262
- constructor(formsService, appsFlowEventsSvc) {
3201
+ constructor(formsService, eac) {
3263
3202
  this.formsService = formsService;
3264
- this.appsFlowEventsSvc = appsFlowEventsSvc;
3203
+ this.eac = eac;
3265
3204
  }
3266
3205
  ngOnInit() {
3267
3206
  this.setupForm();
@@ -3313,7 +3252,7 @@ BaseFormComponent.decorators = [
3313
3252
  ];
3314
3253
  BaseFormComponent.ctorParameters = () => [
3315
3254
  { type: FormsService },
3316
- { type: ApplicationsFlowEventsService }
3255
+ { type: EaCService }
3317
3256
  ];
3318
3257
 
3319
3258
  class BaseFormConfigModel {
@@ -3323,10 +3262,10 @@ class BaseFormConfigModel {
3323
3262
  }
3324
3263
 
3325
3264
  class BaseFormTestComponent extends BaseFormComponent {
3326
- constructor(formsService, appsFlowEventsSvc) {
3327
- super(formsService, appsFlowEventsSvc);
3265
+ constructor(formsService, eacSvc) {
3266
+ super(formsService, eacSvc);
3328
3267
  this.formsService = formsService;
3329
- this.appsFlowEventsSvc = appsFlowEventsSvc;
3268
+ this.eacSvc = eacSvc;
3330
3269
  }
3331
3270
  /**
3332
3271
  * Access form control for description
@@ -3398,7 +3337,7 @@ BaseFormTestComponent.decorators = [
3398
3337
  ];
3399
3338
  BaseFormTestComponent.ctorParameters = () => [
3400
3339
  { type: FormsService },
3401
- { type: ApplicationsFlowEventsService }
3340
+ { type: EaCService }
3402
3341
  ];
3403
3342
 
3404
3343
  class GitAuthComponent {
@@ -3616,7 +3555,9 @@ ColumnInfoCardComponent.propDecorators = {
3616
3555
  };
3617
3556
 
3618
3557
  class SlottedCardComponent {
3619
- constructor() { }
3558
+ constructor() {
3559
+ this.MainActionClicked = new EventEmitter;
3560
+ }
3620
3561
  ngOnInit() {
3621
3562
  }
3622
3563
  MainActionClickEvent() {
@@ -3626,7 +3567,7 @@ class SlottedCardComponent {
3626
3567
  SlottedCardComponent.decorators = [
3627
3568
  { type: Component, args: [{
3628
3569
  selector: 'lcu-slotted-card',
3629
- 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 class=\"slotted-card-action-btn\" [href]=\"ActionPath\">{{ ActionText }}</a>\n </mat-card-actions>\n\n </mat-card>\n\n\n",
3570
+ 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",
3630
3571
  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%}"]
3631
3572
  },] }
3632
3573
  ];
@@ -4206,7 +4147,7 @@ class ProcessorDetailsFormComponent {
4206
4147
  ProcessorDetailsFormComponent.decorators = [
4207
4148
  { type: Component, args: [{
4208
4149
  selector: 'lcu-processor-details-form',
4209
- 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 Security Settings</button>\n </mat-card-actions>\n</mat-card>\n</form>\n \n",
4150
+ 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",
4210
4151
  styles: [""]
4211
4152
  },] }
4212
4153
  ];
@@ -4274,32 +4215,610 @@ SourceControlFormComponent.propDecorators = {
4274
4215
  };
4275
4216
 
4276
4217
  class BuildPipelineFormComponent {
4277
- constructor() { }
4218
+ constructor(formBuilder, appsFlowSvc) {
4219
+ this.formBuilder = formBuilder;
4220
+ this.appsFlowSvc = appsFlowSvc;
4221
+ this.HostingDetails = new ProjectHostingDetails();
4222
+ }
4223
+ // @Input('main-branch')
4224
+ // public MainBranch: string;
4225
+ // @Input('organization')
4226
+ // public Organization: string;
4227
+ // @Input('repository')
4228
+ // public Repository: string;
4229
+ get Artifact() {
4230
+ var _a, _b, _c;
4231
+ console.log("ARTIFACT: ", (_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Artifacts[this.ArtifactLookup]);
4232
+ return ((_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Artifacts) && this.ArtifactLookup
4233
+ ? ((_c = this.Environment) === null || _c === void 0 ? void 0 : _c.Artifacts[this.ArtifactLookup]) || {}
4234
+ : {};
4235
+ }
4236
+ get ArtifactLookup() {
4237
+ var _a, _b;
4238
+ const artLookup = ((_a = this.DevOpsAction) === null || _a === void 0 ? void 0 : _a.ArtifactLookups) ? (_b = this.DevOpsAction) === null || _b === void 0 ? void 0 : _b.ArtifactLookups[0] : null;
4239
+ return artLookup;
4240
+ }
4241
+ get BuildPipelineFormControl() {
4242
+ var _a;
4243
+ return (_a = this.BuildPipelineFormGroup) === null || _a === void 0 ? void 0 : _a.controls.buildPipeline;
4244
+ }
4245
+ get DevOpsAction() {
4246
+ return this.Environment.DevOpsActions && this.DevOpsActionLookup
4247
+ ? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}
4248
+ : {};
4249
+ }
4250
+ get DevOpsActions() {
4251
+ return this.Environment.DevOpsActions || {};
4252
+ }
4253
+ get EditingSourceControl() {
4254
+ var _a, _b;
4255
+ let sc = ((_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Sources) ? (_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Sources[this.EditingSourceControlLookup] : null;
4256
+ if (sc == null && this.EditingSourceControlLookup) {
4257
+ sc = {};
4258
+ }
4259
+ return sc;
4260
+ }
4261
+ // (ho) => ho.Lookup === this.BuildPipeline
4262
+ get SelectedHostingOption() {
4263
+ var _a, _b;
4264
+ return (_b = (_a = this.HostingDetails) === null || _a === void 0 ? void 0 : _a.HostingOptions) === null || _b === void 0 ? void 0 : _b.find((ho) => ho.Lookup === this.BuildPipeline);
4265
+ }
4266
+ get SourceControlLookups() {
4267
+ return Object.keys(this.SourceControls || {});
4268
+ }
4269
+ get SourceControls() {
4270
+ return this.Environment.Sources || {};
4271
+ }
4278
4272
  ngOnInit() {
4273
+ var _a, _b, _c;
4274
+ this.BuildPipelineFormGroup = this.formBuilder.group({});
4275
+ this.loadProjectHostingDetails();
4276
+ console.log("ARTIFACT: ", this.Artifact);
4277
+ // this.BuildPipeline ||
4278
+ // github-artifacts-release is this.HostingDetails?.HostingOptions[0]?.Lookup
4279
+ this.BuildPipeline =
4280
+ ((_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 : '';
4281
+ console.log("Build Pipeline HERE= ", this.BuildPipeline);
4282
+ if (this.BuildPipelineFormGroup != null) {
4283
+ this.BuildPipelineFormGroup.removeControl('hostingDetails');
4284
+ }
4285
+ this.BuildPipelineFormGroup.addControl('hostingDetails', this.formBuilder.group({
4286
+ buildPipeline: [this.BuildPipeline, [Validators.required]],
4287
+ }));
4288
+ this.setupControlsForForm();
4289
+ }
4290
+ //API METHODS
4291
+ BuildPipelineChanged() {
4292
+ var _a, _b;
4293
+ console.log("build pipeline value: ", (_a = this.BuildPipelineFormControl) === null || _a === void 0 ? void 0 : _a.value);
4294
+ this.BuildPipeline = (_b = this.BuildPipelineFormControl) === null || _b === void 0 ? void 0 : _b.value;
4295
+ this.setupControlsForForm();
4296
+ }
4297
+ // Helpers
4298
+ setupControlsForForm() {
4299
+ //for (const ctrlName in this.BuildPipelineFormGroup.controls) {
4300
+ //devOpsAction doesn't exist
4301
+ //removes hosting details
4302
+ // if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {
4303
+ // console.log("removing control: ", ctrlName)
4304
+ // this.BuildPipelineFormGroup.removeControl(ctrlName);
4305
+ // }
4306
+ //}
4307
+ var _a, _b, _c, _d, _e, _f;
4308
+ 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) || '', [Validators.required]));
4309
+ (_d = (_c = this.SelectedHostingOption) === null || _c === void 0 ? void 0 : _c.Inputs) === null || _d === void 0 ? void 0 : _d.forEach((input) => {
4310
+ const validators = input.Required ? [Validators.required] : [];
4311
+ this.BuildPipelineFormGroup.addControl(input.Lookup, this.formBuilder.control(this.Artifact[input.Lookup] || input.DefaultValue || '', validators));
4312
+ // if (this.Disabled) {
4313
+ // this.FormGroup.controls[input.Lookup].disable();
4314
+ // }
4315
+ });
4316
+ debugger;
4317
+ if (((_e = this.BuildPipelineFormControl) === null || _e === void 0 ? void 0 : _e.value) === 'npm-release') {
4318
+ debugger;
4319
+ if (!this.BuildPipelineFormGroup.controls.npmToken) {
4320
+ this.BuildPipelineFormGroup.addControl('npmToken', this.formBuilder.control('', this.Disabled ? [] : [Validators.required]));
4321
+ if (this.Disabled) {
4322
+ this.BuildPipelineFormGroup.controls.npmToken.disable();
4323
+ }
4324
+ }
4325
+ }
4326
+ else if (((_f = this.BuildPipelineFormControl) === null || _f === void 0 ? void 0 : _f.value) === 'github-artifacts-release') {
4327
+ if (this.BuildPipelineFormGroup.controls.npmToken) {
4328
+ this.BuildPipelineFormGroup.removeControl('npmToken');
4329
+ }
4330
+ }
4331
+ }
4332
+ loadProjectHostingDetails() {
4333
+ // this.HostingDetails.Loading = true;
4334
+ // this.Organization,
4335
+ // this.Repository,
4336
+ // this.MainBranch
4337
+ // 'powhound4',
4338
+ // "RedwoodCrystals",
4339
+ // "master"
4340
+ this.appsFlowSvc
4341
+ .LoadProjectHostingDetails('powhound4', "RedwoodCrystals", "master")
4342
+ .subscribe((response) => {
4343
+ this.HostingDetails = response.Model;
4344
+ console.log("response: ", response);
4345
+ this.HostingDetails.Loading = false;
4346
+ }, (err) => {
4347
+ this.HostingDetails.Loading = false;
4348
+ console.log("hosting details LOADING EERR: ", this.HostingDetails);
4349
+ console.log("ERR: ", err);
4350
+ });
4351
+ console.log("HOSTING DETAILS: ", this.HostingDetails);
4279
4352
  }
4280
4353
  }
4281
4354
  BuildPipelineFormComponent.decorators = [
4282
4355
  { type: Component, args: [{
4283
4356
  selector: 'lcu-build-pipeline-form',
4284
- template: "<p>build-pipeline-form works!</p>\n",
4357
+ 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",
4285
4358
  styles: [""]
4286
4359
  },] }
4287
4360
  ];
4288
- BuildPipelineFormComponent.ctorParameters = () => [];
4361
+ BuildPipelineFormComponent.ctorParameters = () => [
4362
+ { type: FormBuilder },
4363
+ { type: ApplicationsFlowService }
4364
+ ];
4365
+ BuildPipelineFormComponent.propDecorators = {
4366
+ BuildPipeline: [{ type: Input, args: ['build-pipeline',] }],
4367
+ DevOpsActionLookup: [{ type: Input, args: ['devops-action-lookup',] }],
4368
+ Disabled: [{ type: Input, args: ['disabled',] }],
4369
+ Environment: [{ type: Input, args: ['environment',] }]
4370
+ };
4289
4371
 
4290
4372
  class DevopsSourceControlFormComponent {
4291
- constructor() { }
4373
+ // Constructors
4374
+ constructor(formBuilder, appsFlowSvc, eacSvc) {
4375
+ this.formBuilder = formBuilder;
4376
+ this.appsFlowSvc = appsFlowSvc;
4377
+ this.eacSvc = eacSvc;
4378
+ this.SeparatorKeysCodes = [ENTER, COMMA];
4379
+ this.BuildPath = null;
4380
+ // this.EditingSourceControlLookup = null;
4381
+ this.HostingDetails = new ProjectHostingDetails();
4382
+ this.SelectedBranches = [];
4383
+ this.SourceControlRoot = '';
4384
+ this.UseBranches = true;
4385
+ this.UseBuildPath = false;
4386
+ }
4387
+ // Fields
4388
+ // Properties
4389
+ get BranchesFormControl() {
4390
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'branches');
4391
+ }
4392
+ get BuildPathFormControl() {
4393
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'buildPath');
4394
+ }
4395
+ get DevOpsActionLookups() {
4396
+ return Object.keys(this.DevOpsActions || {});
4397
+ }
4398
+ get DevOpsActionLookup() {
4399
+ var _a, _b, _c;
4400
+ if (!!((_a = this.DevOpsActionLookupFormControl) === null || _a === void 0 ? void 0 : _a.value)) {
4401
+ return this.DevOpsActionLookupFormControl.value;
4402
+ }
4403
+ if (!!((_b = this.EditingSourceControl) === null || _b === void 0 ? void 0 : _b.DevOpsActionTriggerLookups)) {
4404
+ return (_c = this.EditingSourceControl) === null || _c === void 0 ? void 0 : _c.DevOpsActionTriggerLookups[0];
4405
+ }
4406
+ else {
4407
+ return null;
4408
+ }
4409
+ }
4410
+ get DevOpsActionLookupFormControl() {
4411
+ return this.DevOpsSourceControlFormGroup.get('devOpsActionLookup');
4412
+ }
4413
+ get DevOpsActions() {
4414
+ return this.Environment.DevOpsActions || {};
4415
+ }
4416
+ get EditingSourceControl() {
4417
+ var _a, _b;
4418
+ let sc = ((_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Sources) ? (_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Sources[this.EditingSourceControlLookup] : null;
4419
+ if (sc == null && this.EditingSourceControlLookup) {
4420
+ sc = {};
4421
+ }
4422
+ return sc;
4423
+ }
4424
+ get MainBranchFormControl() {
4425
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'mainBranch');
4426
+ }
4427
+ get OrganizationFormControl() {
4428
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'organization');
4429
+ }
4430
+ get RepositoryFormControl() {
4431
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'repository');
4432
+ }
4433
+ // Life Cycle
4434
+ ngAfterViewInit() { }
4435
+ ngOnDestroy() {
4436
+ this.destroyFormControls();
4437
+ }
4292
4438
  ngOnInit() {
4439
+ console.log("org: ", this.EditingSourceControl);
4440
+ console.log("lookup: ", this.EditingSourceControlLookup);
4441
+ if (this.EditingSourceControlLookup === null) {
4442
+ this.CreateNewSourceControl();
4443
+ }
4444
+ console.log("org: ", this.EditingSourceControl);
4445
+ if (this.EditingSourceControl != null) {
4446
+ this.DevOpsSourceControlFormGroup = this.formBuilder.group({});
4447
+ this.setupFormControls();
4448
+ }
4449
+ this.RefreshOrganizations();
4450
+ }
4451
+ // API Methods
4452
+ AddBranchOption(event) {
4453
+ this.addBranchOption(event.value);
4454
+ event.input.value = '';
4455
+ }
4456
+ BranchOptionSelected(event) {
4457
+ this.addBranchOption(event.option.value);
4458
+ }
4459
+ BranchesChanged(branches) {
4460
+ this.loadProjectHostingDetails();
4461
+ }
4462
+ BuildPathChanged(event) {
4463
+ }
4464
+ CreateNewSourceControl() {
4465
+ this.SetEditingSourceControl(Guid.CreateRaw());
4466
+ }
4467
+ CreateRepository() {
4468
+ this.CreatingRepository = true;
4469
+ this.RepositoryFormControl.reset();
4470
+ }
4471
+ CancelCreateRepository() {
4472
+ this.CreatingRepository = false;
4473
+ }
4474
+ DevOpsActionLookupChanged(event) {
4475
+ this.configureDevOpsAction();
4476
+ }
4477
+ MainBranchChanged(event) {
4478
+ this.emitBranchesChanged();
4479
+ }
4480
+ OrganizationChanged(event) {
4481
+ const org = this.OrganizationFormControl;
4482
+ this.RepositoryFormControl.reset();
4483
+ if (this.UseBranches) {
4484
+ this.BranchesFormControl.reset();
4485
+ this.SelectedBranches = [];
4486
+ }
4487
+ this.listRepositories();
4488
+ }
4489
+ RefreshOrganizations() {
4490
+ var _a, _b, _c;
4491
+ // this.Loading = true;
4492
+ this.listOrganizations();
4493
+ (_a = this.OrganizationFormControl) === null || _a === void 0 ? void 0 : _a.reset();
4494
+ (_b = this.RepositoryFormControl) === null || _b === void 0 ? void 0 : _b.reset();
4495
+ if (this.UseBranches) {
4496
+ (_c = this.BranchesFormControl) === null || _c === void 0 ? void 0 : _c.reset();
4497
+ }
4498
+ }
4499
+ RemoveBranchOption(option) {
4500
+ const index = this.SelectedBranches.indexOf(option);
4501
+ if (index >= 0) {
4502
+ this.SelectedBranches.splice(index, 1);
4503
+ }
4504
+ this.emitBranchesChanged();
4505
+ }
4506
+ RepositoryChanged(event) {
4507
+ const repo = this.RepositoryFormControl;
4508
+ if (this.UseBranches) {
4509
+ this.BranchesFormControl.reset();
4510
+ this.SelectedBranches = [];
4511
+ this.listBranches();
4512
+ }
4513
+ if (!this.UseBranches) {
4514
+ this.listBuildPaths();
4515
+ }
4516
+ }
4517
+ SaveRepository() {
4518
+ this.Loading = true;
4519
+ const org = this.OrganizationFormControl.value;
4520
+ const repoName = this.RepositoryFormControl.value;
4521
+ this.appsFlowSvc
4522
+ .CreateRepository(org, repoName)
4523
+ .subscribe((response) => {
4524
+ if (response.Status.Code === 0) {
4525
+ this.listRepositories(repoName);
4526
+ this.CreatingRepository = false;
4527
+ }
4528
+ else {
4529
+ // TODO: Need to surface an error to the user...
4530
+ this.Loading = false;
4531
+ }
4532
+ });
4533
+ }
4534
+ SetEditingSourceControl(scLookup) {
4535
+ this.EditingSourceControlLookup = scLookup;
4536
+ }
4537
+ SubmitSourceControl() {
4538
+ console.log("source control submitted");
4539
+ }
4540
+ // public SaveSourceControl(): void {
4541
+ // const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {
4542
+ // Environment: {
4543
+ // ...this.Environment,
4544
+ // Artifacts: this.Environment.Artifacts || {},
4545
+ // DevOpsActions: this.Environment.DevOpsActions || {},
4546
+ // Secrets: this.Environment.Secrets || {},
4547
+ // Sources: this.Environment.Sources || {},
4548
+ // },
4549
+ // EnvironmentLookup: this.EnvironmentLookup,
4550
+ // EnterpriseDataTokens: {},
4551
+ // };
4552
+ // let artifactLookup: string;
4553
+ // // let artifact: EaCArtifact = {
4554
+ // // ...this.Artifact,
4555
+ // // ...this.HostingDetailsFormControls
4556
+ // // .SelectedHostingOptionInputControlValues,
4557
+ // // };
4558
+ // if (!this.ArtifactLookup) {
4559
+ // artifactLookup = Guid.CreateRaw();
4560
+ // artifact = {
4561
+ // ...artifact,
4562
+ // Type: this.HostingDetailsFormControls.SelectedHostingOption
4563
+ // .ArtifactType,
4564
+ // Name: this.HostingDetailsFormControls.SelectedHostingOption.Name,
4565
+ // NPMRegistry: 'https://registry.npmjs.org/',
4566
+ // };
4567
+ // } else {
4568
+ // artifactLookup = this.ArtifactLookup;
4569
+ // }
4570
+ // saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;
4571
+ // let devOpsActionLookup: string;
4572
+ // if (!this.DevOpsActionLookup) {
4573
+ // devOpsActionLookup = Guid.CreateRaw();
4574
+ // // const doa: EaCDevOpsAction = {
4575
+ // // ...this.DevOpsAction,
4576
+ // // ArtifactLookups: [artifactLookup],
4577
+ // // Name: this.HostingDetailsFormControls.DevOpsActionNameFormControl.value,
4578
+ // // Path: this.HostingDetailsFormControls.SelectedHostingOption.Path,
4579
+ // // Templates:
4580
+ // // this.HostingDetailsFormControls.SelectedHostingOption.Templates,
4581
+ // // };
4582
+ // if (this.HostingDetailsFormControls.NPMTokenFormControl?.value) {
4583
+ // const secretLookup = 'npm-access-token';
4584
+ // doa.SecretLookups = [secretLookup];
4585
+ // saveEnvReq.Environment.Secrets[secretLookup] = {
4586
+ // Name: 'NPM Access Token',
4587
+ // DataTokenLookup: secretLookup,
4588
+ // KnownAs: 'NPM_TOKEN',
4589
+ // };
4590
+ // saveEnvReq.EnterpriseDataTokens[secretLookup] = {
4591
+ // Name: saveEnvReq.Environment.Secrets[secretLookup].Name,
4592
+ // Description: saveEnvReq.Environment.Secrets[secretLookup].Name,
4593
+ // Value: this.NPMTokenFormControl.value,
4594
+ // };
4595
+ // }
4596
+ // saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;
4597
+ // } else {
4598
+ // devOpsActionLookup = this.DevOpsActionLookupFormControl.value;
4599
+ // const doa: EaCDevOpsAction = {
4600
+ // ...this.DevOpsAction,
4601
+ // Name: this.HostingDetailsFormControls.DevOpsActionNameFormControl.value,
4602
+ // };
4603
+ // saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;
4604
+ // }
4605
+ // let source: EaCSourceControl = {
4606
+ // ...this.EditingSourceControl,
4607
+ // Branches: this.SelectedBranches,
4608
+ // MainBranch: this.MainBranchFormControl.value,
4609
+ // };
4610
+ // source = {
4611
+ // ...source,
4612
+ // Type: 'GitHub',
4613
+ // Name: this.EditingSourceControlLookup,
4614
+ // DevOpsActionTriggerLookups: [devOpsActionLookup],
4615
+ // Organization:
4616
+ // this.OrganizationFormControl.value,
4617
+ // Repository: this.RepositoryFormControl.value,
4618
+ // };
4619
+ // const scLookup = `github://${source.Organization}/${source.Repository}`;
4620
+ // saveEnvReq.Environment.Sources[scLookup] = source;
4621
+ // this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);
4622
+ // }
4623
+ // Helpers
4624
+ addBranchOption(value) {
4625
+ value = (value || '').trim();
4626
+ if (value && this.SelectedBranches.indexOf(value) < 0) {
4627
+ this.SelectedBranches.push(value);
4628
+ }
4629
+ this.BranchesInput.nativeElement.blur();
4630
+ this.emitBranchesChanged();
4631
+ }
4632
+ configureDevOpsAction() {
4633
+ setTimeout(() => {
4634
+ this.DevOpsActionLookupFormControl.setValue(this.DevOpsActionLookup);
4635
+ }, 0);
4636
+ }
4637
+ destroyFormControls() {
4638
+ var _a, _b, _c, _d;
4639
+ this.DevOpsSourceControlFormGroup.removeControl([this.SourceControlRoot, 'mainBranch'].join(''));
4640
+ (_a = this.DevOpsSourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.removeControl([this.SourceControlRoot, 'branches'].join(''));
4641
+ (_b = this.DevOpsSourceControlFormGroup) === null || _b === void 0 ? void 0 : _b.removeControl([this.SourceControlRoot, 'buildPath'].join(''));
4642
+ this.SelectedBranches = [];
4643
+ (_c = this.DevOpsSourceControlFormGroup) === null || _c === void 0 ? void 0 : _c.removeControl([this.SourceControlRoot, 'organization'].join(''));
4644
+ (_d = this.DevOpsSourceControlFormGroup) === null || _d === void 0 ? void 0 : _d.removeControl([this.SourceControlRoot, 'repository'].join(''));
4645
+ }
4646
+ emitBranchesChanged() {
4647
+ var _a, _b;
4648
+ if (((_a = this.SelectedBranches) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
4649
+ (!this.MainBranchFormControl.value ||
4650
+ this.SelectedBranches.indexOf(this.MainBranchFormControl.value) < 0)) {
4651
+ this.MainBranchFormControl.setValue(this.SelectedBranches.find((branch) => branch === 'main' || branch === 'master') || this.SelectedBranches[0]);
4652
+ }
4653
+ else if (((_b = this.SelectedBranches) === null || _b === void 0 ? void 0 : _b.length) <= 0) {
4654
+ this.MainBranchFormControl.reset();
4655
+ }
4656
+ this.BranchesFormControl.setValue(this.SelectedBranches.join(','));
4657
+ this.BranchesChanged(this.SelectedBranches || []);
4658
+ }
4659
+ listBranches() {
4660
+ if (this.UseBranches) {
4661
+ this.Loading = true;
4662
+ this.appsFlowSvc
4663
+ .ListBranches(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
4664
+ .subscribe((response) => {
4665
+ var _a, _b, _c;
4666
+ this.BranchOptions = response.Model;
4667
+ this.Loading = false;
4668
+ if (((_b = (_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Branches) === null || _b === void 0 ? void 0 : _b.length) > 0) {
4669
+ this.SelectedBranches = this.EditingSourceControl.Branches;
4670
+ }
4671
+ else if (((_c = this.BranchOptions) === null || _c === void 0 ? void 0 : _c.length) === 1) {
4672
+ this.BranchesFormControl.setValue(this.BranchOptions[0].Name);
4673
+ this.SelectedBranches = [this.BranchOptions[0].Name];
4674
+ }
4675
+ this.emitBranchesChanged();
4676
+ this.listBuildPaths();
4677
+ });
4678
+ }
4679
+ }
4680
+ listBuildPaths() {
4681
+ if (this.UseBuildPath) {
4682
+ this.Loading = true;
4683
+ this.appsFlowSvc
4684
+ .ListBuildPaths(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
4685
+ .subscribe((response) => {
4686
+ var _a;
4687
+ this.BuildPathOptions = response.Model;
4688
+ this.Loading = false;
4689
+ if (((_a = this.BuildPathOptions) === null || _a === void 0 ? void 0 : _a.length) === 1) {
4690
+ this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);
4691
+ }
4692
+ });
4693
+ }
4694
+ }
4695
+ listOrganizations() {
4696
+ this.Loading = true;
4697
+ this.appsFlowSvc
4698
+ .ListOrganizations()
4699
+ .subscribe((response) => {
4700
+ var _a;
4701
+ this.OrganizationOptions = response.Model;
4702
+ this.Loading = false;
4703
+ if ((_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Organization) {
4704
+ setTimeout(() => {
4705
+ var _a;
4706
+ this.OrganizationFormControl.setValue(this.EditingSourceControl.Organization);
4707
+ this.listRepositories((_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Repository);
4708
+ }, 0);
4709
+ }
4710
+ });
4711
+ }
4712
+ listRepositories(activeRepo = null) {
4713
+ this.Loading = true;
4714
+ this.appsFlowSvc
4715
+ .ListRepositories(this.OrganizationFormControl.value)
4716
+ .subscribe((response) => {
4717
+ var _a;
4718
+ this.RepositoryOptions = response.Model;
4719
+ this.Loading = false;
4720
+ if (activeRepo) {
4721
+ setTimeout(() => {
4722
+ this.RepositoryFormControl.setValue(activeRepo);
4723
+ this.listBranches();
4724
+ if (!this.UseBranches) {
4725
+ this.listBuildPaths();
4726
+ }
4727
+ }, 0);
4728
+ }
4729
+ else if (((_a = this.RepositoryOptions) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
4730
+ this.CreatingRepository = true;
4731
+ }
4732
+ });
4733
+ }
4734
+ loadProjectHostingDetails() {
4735
+ var _a, _b, _c, _d;
4736
+ if (((_a = this.SelectedBranches) === null || _a === void 0 ? void 0 : _a.length) > 0) {
4737
+ this.HostingDetails.Loading = true;
4738
+ this.appsFlowSvc
4739
+ .LoadProjectHostingDetails((_b = this.OrganizationFormControl) === null || _b === void 0 ? void 0 : _b.value, (_c = this.RepositoryFormControl) === null || _c === void 0 ? void 0 : _c.value, (_d = this.MainBranchFormControl) === null || _d === void 0 ? void 0 : _d.value)
4740
+ .subscribe((response) => {
4741
+ this.HostingDetails = response.Model;
4742
+ this.HostingDetails.Loading = false;
4743
+ this.configureDevOpsAction();
4744
+ }, (err) => {
4745
+ this.HostingDetails.Loading = false;
4746
+ });
4747
+ }
4748
+ }
4749
+ setupFormControls() {
4750
+ // this.destroyFormControls();
4751
+ var _a, _b, _c, _d, _e, _f, _g;
4752
+ this.DevOpsSourceControlFormGroup.addControl('devOpsActionLookup', new FormControl(this.DevOpsActionLookup || '', []));
4753
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'organization'].join(''), new FormControl((_a = this.EditingSourceControl.Organization) !== null && _a !== void 0 ? _a : '', Validators.required));
4754
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'repository'].join(''), new FormControl((_b = this.EditingSourceControl.Repository) !== null && _b !== void 0 ? _b : '', Validators.required));
4755
+ if (this.UseBranches) {
4756
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'branches'].join(''), new FormControl((_d = (_c = this.EditingSourceControl) === null || _c === void 0 ? void 0 : _c.Branches) !== null && _d !== void 0 ? _d : '', Validators.required));
4757
+ this.SelectedBranches = (_e = this.EditingSourceControl) === null || _e === void 0 ? void 0 : _e.Branches;
4758
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'mainBranch'].join(''), new FormControl((_f = this.EditingSourceControl.MainBranch) !== null && _f !== void 0 ? _f : '', Validators.required));
4759
+ }
4760
+ if (this.UseBuildPath) {
4761
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'buildPath'].join(''), new FormControl((_g = this.BuildPath) !== null && _g !== void 0 ? _g : '', Validators.required));
4762
+ }
4293
4763
  }
4294
4764
  }
4295
4765
  DevopsSourceControlFormComponent.decorators = [
4296
4766
  { type: Component, args: [{
4297
4767
  selector: 'lcu-devops-source-control-form',
4298
- template: "<p>devops-source-control-form works!</p>\n",
4768
+ 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>",
4769
+ styles: [".form-card,.sc-card{width:100%}"]
4770
+ },] }
4771
+ ];
4772
+ DevopsSourceControlFormComponent.ctorParameters = () => [
4773
+ { type: FormBuilder },
4774
+ { type: ApplicationsFlowService },
4775
+ { type: EaCService }
4776
+ ];
4777
+ DevopsSourceControlFormComponent.propDecorators = {
4778
+ BranchesInput: [{ type: ViewChild, args: ['branches',] }],
4779
+ EditingSourceControlLookup: [{ type: Input, args: ['editing-source-control-lookup',] }],
4780
+ Environment: [{ type: Input, args: ['environment',] }]
4781
+ };
4782
+
4783
+ class SourceControlDialogComponent {
4784
+ constructor(dialogRef, data) {
4785
+ this.dialogRef = dialogRef;
4786
+ this.data = data;
4787
+ }
4788
+ ngOnInit() {
4789
+ }
4790
+ }
4791
+ SourceControlDialogComponent.decorators = [
4792
+ { type: Component, args: [{
4793
+ selector: 'lcu-source-control-dialog',
4794
+ 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>",
4299
4795
  styles: [""]
4300
4796
  },] }
4301
4797
  ];
4302
- DevopsSourceControlFormComponent.ctorParameters = () => [];
4798
+ SourceControlDialogComponent.ctorParameters = () => [
4799
+ { type: MatDialogRef },
4800
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
4801
+ ];
4802
+
4803
+ class BuildPipelineDialogComponent {
4804
+ constructor(dialogRef, data) {
4805
+ this.dialogRef = dialogRef;
4806
+ this.data = data;
4807
+ }
4808
+ ngOnInit() {
4809
+ }
4810
+ }
4811
+ BuildPipelineDialogComponent.decorators = [
4812
+ { type: Component, args: [{
4813
+ selector: 'lcu-build-pipeline-dialog',
4814
+ 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",
4815
+ styles: [""]
4816
+ },] }
4817
+ ];
4818
+ BuildPipelineDialogComponent.ctorParameters = () => [
4819
+ { type: MatDialogRef },
4820
+ { type: undefined, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
4821
+ ];
4303
4822
 
4304
4823
  class ApplicationsFlowModule {
4305
4824
  static forRoot() {
@@ -4311,7 +4830,6 @@ class ApplicationsFlowModule {
4311
4830
  ProjectService,
4312
4831
  NPMService,
4313
4832
  FormsService,
4314
- ApplicationsFlowEventsService,
4315
4833
  EaCService
4316
4834
  ],
4317
4835
  };
@@ -4356,7 +4874,9 @@ ApplicationsFlowModule.decorators = [
4356
4874
  ProcessorDetailsFormComponent,
4357
4875
  SourceControlFormComponent,
4358
4876
  BuildPipelineFormComponent,
4359
- DevopsSourceControlFormComponent
4877
+ DevopsSourceControlFormComponent,
4878
+ SourceControlDialogComponent,
4879
+ BuildPipelineDialogComponent
4360
4880
  ],
4361
4881
  imports: [
4362
4882
  FathymSharedModule,
@@ -4406,7 +4926,9 @@ ApplicationsFlowModule.decorators = [
4406
4926
  ProcessorDetailsFormComponent,
4407
4927
  SourceControlFormComponent,
4408
4928
  BuildPipelineFormComponent,
4409
- DevopsSourceControlFormComponent
4929
+ DevopsSourceControlFormComponent,
4930
+ SourceControlDialogComponent,
4931
+ BuildPipelineDialogComponent
4410
4932
  ],
4411
4933
  entryComponents: [
4412
4934
  ApplicationsFlowProjectsElementComponent,
@@ -4443,7 +4965,9 @@ ApplicationsFlowModule.decorators = [
4443
4965
  ProcessorDetailsFormComponent,
4444
4966
  SourceControlFormComponent,
4445
4967
  BuildPipelineFormComponent,
4446
- DevopsSourceControlFormComponent
4968
+ DevopsSourceControlFormComponent,
4969
+ SourceControlDialogComponent,
4970
+ BuildPipelineDialogComponent
4447
4971
  ],
4448
4972
  },] }
4449
4973
  ];
@@ -4476,5 +5000,5 @@ class FormModel {
4476
5000
  * Generated bundle index. Do not edit.
4477
5001
  */
4478
5002
 
4479
- export { ActionsModel, ApplicationsFlowModule, ApplicationsFlowProjectsContext, ApplicationsFlowProjectsElementComponent, ApplicationsFlowProjectsElementState, ApplicationsFlowService, ApplicationsFlowState, ApplicationsFlowStateContext, BaseFormConfigModel, CardFormConfigModel, CreateProjectWizardComponent, DevSettingsPresetModel, DomainModel, DynamicTabsModel, EaCService, FormActionsModel, FormModel, FormValuesModel, FormsService, GitAuthComponent, GitHubBranch, GitHubOrganization, GitHubRepository, GitHubSetupState, GitHubWorkflowRun, HostingDetailsFormGroupComponent, NPMService, ProjectActionsModel, ProjectHostingDetails, ProjectHostingOption, ProjectHostingOptionInput, ProjectNameComponent, ProjectService, RootDirectoryComponent, SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT, SourceControlFormControlsComponent, ThreeColumnComponent, UnpackLowCodeUnitRequest, ApplicationsFlowEventsService as ɵa, DynamicTabsComponent as ɵb, ProcessorDetailsFormComponent as ɵba, SourceControlFormComponent as ɵbb, BuildPipelineFormComponent as ɵbc, DevopsSourceControlFormComponent as ɵbd, HeaderComponent as ɵc, ProjectTabsComponent as ɵd, GeneralComponent as ɵe, DomainsComponent as ɵf, ProjectItemsComponent as ɵg, BuildsComponent as ɵh, RecentActivitiesComponent as ɵi, FormCardComponent as ɵj, BaseFormComponent as ɵk, BaseFormTestComponent as ɵl, AppsFlowComponent as ɵm, DevOpsComponent as ɵn, DFSModifiersComponent as ɵo, NpmPackageSelectComponent as ɵp, ColumnInfoCardComponent as ɵq, SlottedCardComponent as ɵr, ProjectInfoCardComponent as ɵs, AnalyticsCardComponent as ɵt, FeedCardSmComponent as ɵu, GhControlComponent as ɵv, MainFeedCardComponent as ɵw, TwoColumnHeaderComponent as ɵx, CardCarouselComponent as ɵy, SecurityToggleComponent as ɵz };
5003
+ export { ActionsModel, ApplicationsFlowModule, ApplicationsFlowProjectsContext, ApplicationsFlowProjectsElementComponent, ApplicationsFlowProjectsElementState, ApplicationsFlowService, ApplicationsFlowState, ApplicationsFlowStateContext, BaseFormConfigModel, CardFormConfigModel, CreateProjectWizardComponent, DevSettingsPresetModel, DomainModel, DynamicTabsModel, EaCService, FormActionsModel, FormModel, FormValuesModel, FormsService, GitAuthComponent, GitHubBranch, GitHubOrganization, GitHubRepository, GitHubSetupState, GitHubWorkflowRun, HostingDetailsFormGroupComponent, NPMService, ProjectActionsModel, ProjectHostingDetails, ProjectHostingOption, ProjectHostingOptionInput, ProjectNameComponent, ProjectService, RootDirectoryComponent, SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT, SaveApplicationAsCodeEventRequest, SaveDFSModifierEventRequest, SaveEnvironmentAsCodeEventRequest, SaveProjectAsCodeEventRequest, SourceControlFormControlsComponent, ThreeColumnComponent, UnpackLowCodeUnitRequest, DynamicTabsComponent as ɵa, HeaderComponent as ɵb, SourceControlFormComponent as ɵba, BuildPipelineFormComponent as ɵbb, DevopsSourceControlFormComponent as ɵbc, SourceControlDialogComponent as ɵbd, BuildPipelineDialogComponent as ɵbe, ProjectTabsComponent as ɵc, GeneralComponent as ɵd, DomainsComponent as ɵe, ProjectItemsComponent as ɵf, BuildsComponent as ɵg, RecentActivitiesComponent as ɵh, FormCardComponent as ɵi, BaseFormComponent as ɵj, BaseFormTestComponent as ɵk, AppsFlowComponent as ɵl, DevOpsComponent as ɵm, DFSModifiersComponent as ɵn, NpmPackageSelectComponent as ɵo, ColumnInfoCardComponent as ɵp, SlottedCardComponent as ɵq, ProjectInfoCardComponent as ɵr, AnalyticsCardComponent as ɵs, FeedCardSmComponent as ɵt, GhControlComponent as ɵu, MainFeedCardComponent as ɵv, TwoColumnHeaderComponent as ɵw, CardCarouselComponent as ɵx, SecurityToggleComponent as ɵy, ProcessorDetailsFormComponent as ɵz };
4480
5004
  //# sourceMappingURL=lowcodeunit-applications-flow-common.js.map