@lowcodeunit/applications-flow-common 1.33.92-lets-get-social-ish → 1.33.98-lets-get-social-ish

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/bundles/lowcodeunit-applications-flow-common.umd.js +1157 -564
  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/lcu.api.js +2 -1
  6. package/esm2015/lib/applications-flow.module.js +18 -6
  7. package/esm2015/lib/controls/build-pipeline-form/build-pipeline-form.component.js +79 -0
  8. package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +311 -0
  9. package/esm2015/lib/controls/processor-details-form/processor-details-form.component.js +56 -53
  10. package/esm2015/lib/controls/security-toggle/security-toggle.component.js +19 -19
  11. package/esm2015/lib/controls/source-control-form/source-control-form.component.js +59 -0
  12. package/esm2015/lib/elements/analytics-card/analytics-card.component.js +1 -1
  13. package/esm2015/lib/elements/base-form/base-form.component.js +5 -5
  14. package/esm2015/lib/elements/feed-card-sm/feed-card-sm.component.js +1 -1
  15. package/esm2015/lib/elements/gh-control/gh-control.component.js +1 -1
  16. package/esm2015/lib/elements/main-feed-card/main-feed-card.component.js +1 -1
  17. package/esm2015/lib/elements/project-info-card/project-info-card.component.js +1 -1
  18. package/esm2015/lib/elements/projects/controls/builds/builds.component.js +4 -9
  19. package/esm2015/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.js +6 -6
  20. package/esm2015/lib/elements/projects/controls/forms/source-control/source-control.component.js +3 -6
  21. package/esm2015/lib/elements/projects/controls/header/header.component.js +7 -7
  22. package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +1 -1
  23. package/esm2015/lib/elements/projects/controls/project-items/project-items.component.js +7 -7
  24. package/esm2015/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.js +8 -10
  25. package/esm2015/lib/elements/projects/controls/tabs/devops/devops.component.js +7 -7
  26. package/esm2015/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.js +7 -7
  27. package/esm2015/lib/elements/projects/controls/tabs/domains/domains.component.js +6 -6
  28. package/esm2015/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.js +6 -6
  29. package/esm2015/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.js +6 -6
  30. package/esm2015/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.js +6 -6
  31. package/esm2015/lib/elements/projects/projects.component.js +16 -143
  32. package/esm2015/lib/elements/slotted-card/slotted-card.component.js +4 -3
  33. package/esm2015/lib/services/eac.service.js +217 -0
  34. package/esm2015/lowcodeunit-applications-flow-common.js +30 -28
  35. package/fesm2015/lowcodeunit-applications-flow-common.js +762 -315
  36. package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -1
  37. package/lcu.api.d.ts +1 -0
  38. package/lcu.api.d.ts.map +1 -1
  39. package/lib/applications-flow.module.d.ts.map +1 -1
  40. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +32 -0
  41. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +1 -0
  42. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +70 -0
  43. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +1 -0
  44. package/lib/controls/processor-details-form/processor-details-form.component.d.ts +3 -2
  45. package/lib/controls/processor-details-form/processor-details-form.component.d.ts.map +1 -1
  46. package/lib/controls/source-control-form/source-control-form.component.d.ts +26 -0
  47. package/lib/controls/source-control-form/source-control-form.component.d.ts.map +1 -0
  48. package/lib/elements/base-form/base-form.component.d.ts +3 -3
  49. package/lib/elements/base-form/base-form.component.d.ts.map +1 -1
  50. package/lib/elements/projects/controls/builds/builds.component.d.ts +1 -3
  51. package/lib/elements/projects/controls/builds/builds.component.d.ts.map +1 -1
  52. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts +3 -3
  53. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts.map +1 -1
  54. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts +1 -3
  55. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts.map +1 -1
  56. package/lib/elements/projects/controls/header/header.component.d.ts +3 -3
  57. package/lib/elements/projects/controls/header/header.component.d.ts.map +1 -1
  58. package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +1 -1
  59. package/lib/elements/projects/controls/project-items/project-items.component.d.ts +3 -3
  60. package/lib/elements/projects/controls/project-items/project-items.component.d.ts.map +1 -1
  61. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts +3 -3
  62. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts.map +1 -1
  63. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts +3 -3
  64. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts.map +1 -1
  65. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts +3 -3
  66. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts.map +1 -1
  67. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +3 -3
  68. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts.map +1 -1
  69. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts +3 -3
  70. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts.map +1 -1
  71. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts +3 -3
  72. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts.map +1 -1
  73. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts +3 -3
  74. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts.map +1 -1
  75. package/lib/elements/projects/projects.component.d.ts +4 -11
  76. package/lib/elements/projects/projects.component.d.ts.map +1 -1
  77. package/lib/elements/slotted-card/slotted-card.component.d.ts +1 -0
  78. package/lib/elements/slotted-card/slotted-card.component.d.ts.map +1 -1
  79. package/lib/services/eac.service.d.ts +54 -0
  80. package/lib/services/eac.service.d.ts.map +1 -0
  81. package/lowcodeunit-applications-flow-common.d.ts +29 -27
  82. package/lowcodeunit-applications-flow-common.d.ts.map +1 -1
  83. package/lowcodeunit-applications-flow-common.metadata.json +1 -1
  84. package/package.json +1 -1
  85. package/esm2015/lib/services/applications-flow-events.service.js +0 -83
  86. package/lib/services/applications-flow-events.service.d.ts +0 -58
  87. 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, 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';
@@ -707,159 +707,123 @@ class SaveEnvironmentAsCodeEventRequest {
707
707
  }
708
708
  class SaveProjectAsCodeEventRequest {
709
709
  }
710
- class ApplicationsFlowEventsService {
711
- // Constructors
712
- constructor() {
713
- this.DeleteApplicationEvent = new EventEmitter();
714
- this.DeleteDevOpsActionEvent = new EventEmitter();
715
- this.DeleteProjectEvent = new EventEmitter();
716
- this.DeleteSourceControlEvent = new EventEmitter();
717
- this.EnsureUserEnterpriseEvent = new EventEmitter();
718
- this.LoadEnterpriseAsCodeEvent = new EventEmitter();
719
- this.SaveApplicationAsCodeEvent = new EventEmitter();
720
- this.SaveDFSModifierEvent = new EventEmitter();
721
- this.SaveEnterpriseAsCodeEvent = new EventEmitter();
722
- this.SaveEnvironmentAsCodeEvent = new EventEmitter();
723
- this.SaveProjectAsCodeEvent = new EventEmitter();
724
- this.SetCreatingProjectEvent = new EventEmitter();
725
- this.SetEditProjectSettingsEvent = new EventEmitter();
726
- this.UnpackLowCodeUnitEvent = new EventEmitter();
710
+ class EaCService {
711
+ // Constructors
712
+ constructor(projectService) {
713
+ this.projectService = projectService;
714
+ this.State = new ApplicationsFlowState();
727
715
  }
728
- // API Methods
729
- DeleteApplication(appLookup) {
730
- this.DeleteApplicationEvent.emit(appLookup);
716
+ // API Methods
717
+ get CreatingProject() {
718
+ return this.projectService.CreatingProject;
719
+ }
720
+ DeleteApplication(appLookup, appName) {
721
+ return __awaiter(this, void 0, void 0, function* () {
722
+ if (confirm(`Are you sure you want to delete application '${appName}'?`)) {
723
+ yield this.projectService.DeleteApplication(this.State, appLookup);
724
+ }
725
+ });
731
726
  }
732
727
  DeleteDevOpsAction(doaLookup) {
733
- this.DeleteDevOpsActionEvent.emit(doaLookup);
728
+ return __awaiter(this, void 0, void 0, function* () {
729
+ if (confirm(`Are you sure you want to delete DevOps action '${doaLookup}'?`)) {
730
+ yield this.projectService.DeleteDevOpsAction(this.State, doaLookup);
731
+ }
732
+ });
734
733
  }
735
734
  DeleteProject(projectLookup) {
736
- this.DeleteProjectEvent.emit(projectLookup);
735
+ return __awaiter(this, void 0, void 0, function* () {
736
+ if (confirm(`Are you sure you want to delete Project '${projectLookup}'?`)) {
737
+ yield this.projectService.DeleteProject(this.State, projectLookup);
738
+ }
739
+ });
737
740
  }
738
741
  DeleteSourceControl(scLookup) {
739
- this.DeleteSourceControlEvent.emit(scLookup);
742
+ return __awaiter(this, void 0, void 0, function* () {
743
+ if (confirm(`Are you sure you want to delete Source Control '${scLookup}'?`)) {
744
+ yield this.projectService.DeleteSourceControl(this.State, scLookup);
745
+ }
746
+ });
740
747
  }
748
+ // this.appsFlowEventsSvc.EnsureUserEnterpriseEvent.subscribe(async () => {
749
+ // await this.projectService.EnsureUserEnterprise(this.State);
750
+ // });
741
751
  EnsureUserEnterprise() {
742
- this.EnsureUserEnterpriseEvent.emit();
752
+ return __awaiter(this, void 0, void 0, function* () {
753
+ yield this.projectService.EnsureUserEnterprise(this.State);
754
+ });
755
+ }
756
+ GetActiveEnterprise() {
757
+ return __awaiter(this, void 0, void 0, function* () {
758
+ yield this.projectService.GetActiveEnterprise(this.State);
759
+ });
760
+ }
761
+ get EditingProjectLookup() {
762
+ return this.projectService.EditingProjectLookup;
763
+ }
764
+ HasValidConnection() {
765
+ return __awaiter(this, void 0, void 0, function* () {
766
+ yield this.projectService.HasValidConnection(this.State);
767
+ });
768
+ }
769
+ ListEnterprises() {
770
+ return __awaiter(this, void 0, void 0, function* () {
771
+ yield this.projectService.ListEnterprises(this.State);
772
+ });
743
773
  }
744
- // public ListProjects(withLoading: boolean): void {
745
- // this.ListProjectsEvent.emit(withLoading);
746
- // }
747
774
  LoadEnterpriseAsCode() {
748
- this.LoadEnterpriseAsCodeEvent.emit();
775
+ return __awaiter(this, void 0, void 0, function* () {
776
+ yield this.projectService.LoadEnterpriseAsCode(this.State);
777
+ });
749
778
  }
750
779
  SaveApplicationAsCode(req) {
751
- this.SaveApplicationAsCodeEvent.emit(req);
780
+ return __awaiter(this, void 0, void 0, function* () {
781
+ yield this.handleSaveApplication(req);
782
+ });
752
783
  }
753
784
  SaveDFSModifier(req) {
754
- this.SaveDFSModifierEvent.emit(req);
785
+ return __awaiter(this, void 0, void 0, function* () {
786
+ yield this.handleSaveDFSModifier(req);
787
+ });
755
788
  }
756
789
  SaveEnterpriseAsCode(eac) {
757
- this.SaveEnterpriseAsCodeEvent.emit(eac);
790
+ return __awaiter(this, void 0, void 0, function* () {
791
+ yield this.projectService.SaveEnterpriseAsCode(this.State, eac);
792
+ });
758
793
  }
759
794
  SaveEnvironmentAsCode(req) {
760
- this.SaveEnvironmentAsCodeEvent.emit(req);
795
+ return __awaiter(this, void 0, void 0, function* () {
796
+ yield this.handleSaveEnvironment(req);
797
+ });
761
798
  }
762
799
  SaveProjectAsCode(req) {
763
- this.SaveProjectAsCodeEvent.emit(req);
764
- }
765
- SetCreatingProject(creatingProject) {
766
- this.SetCreatingProjectEvent.emit(creatingProject);
767
- }
768
- SetEditProjectSettings(projectLookup) {
769
- this.SetEditProjectSettingsEvent.emit(projectLookup);
770
- }
771
- UnpackLowCodeUnit(req) {
772
- this.UnpackLowCodeUnitEvent.emit(req);
773
- }
774
- }
775
- ApplicationsFlowEventsService.ɵprov = ɵɵdefineInjectable({ factory: function ApplicationsFlowEventsService_Factory() { return new ApplicationsFlowEventsService(); }, token: ApplicationsFlowEventsService, providedIn: "root" });
776
- ApplicationsFlowEventsService.decorators = [
777
- { type: Injectable, args: [{
778
- providedIn: 'root',
779
- },] }
780
- ];
781
- ApplicationsFlowEventsService.ctorParameters = () => [];
782
-
783
- class ApplicationsFlowProjectsElementState {
784
- }
785
- class ApplicationsFlowProjectsContext extends LCUElementContext {
786
- }
787
- const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT = 'applications-flow-projects-element';
788
- class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
789
- // Constructors
790
- constructor(injector, appsFlowSvc, projectService, appsFlowEventsSvc) {
791
- super(injector);
792
- this.injector = injector;
793
- this.appsFlowSvc = appsFlowSvc;
794
- this.projectService = projectService;
795
- this.appsFlowEventsSvc = appsFlowEventsSvc;
796
- this.State = new ApplicationsFlowState();
797
- this.setServices();
798
- }
799
- // Properties
800
- get ActiveEnvironment() {
801
- var _a, _b;
802
- return (_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Environments[this.ActiveEnvironmentLookup];
803
- }
804
- get ActiveEnvironmentLookup() {
805
- var _a, _b;
806
- // TODO: Eventually support multiple environments
807
- const envLookups = Object.keys(((_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Environments) || {});
808
- return envLookups[0];
809
- }
810
- get CreatingProject() {
811
- return this.projectService.CreatingProject;
812
- }
813
- get EditingProject() {
814
- var _a, _b, _c, _d;
815
- 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;
816
- }
817
- get EditingProjectLookup() {
818
- return this.projectService.EditingProjectLookup;
819
- }
820
- get ProjectLookups() {
821
- var _a, _b;
822
- return Object.keys(((_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Projects) || {});
800
+ return __awaiter(this, void 0, void 0, function* () {
801
+ yield this.handleSaveProject(req.ProjectLookup, req.Project);
802
+ });
823
803
  }
824
- // Life Cycle
825
- ngOnDestroy() { }
826
- ngOnInit() {
827
- super.ngOnInit();
828
- this.handleStateChange().then((eac) => { });
829
- // this.setupProjectMonitor();
804
+ SetActiveEnterprise(eventValue) {
805
+ return __awaiter(this, void 0, void 0, function* () {
806
+ this.projectService.SetActiveEnterprise(this.State, eventValue);
807
+ });
830
808
  }
831
- // API Methods
832
- ActiveEnterpriseChanged(event) {
809
+ SetCreatingProject(creatingProject) {
833
810
  return __awaiter(this, void 0, void 0, function* () {
834
- yield this.projectService.SetActiveEnterprise(this.State, event.value);
811
+ this.projectService.SetCreatingProject(creatingProject);
835
812
  });
836
813
  }
837
- ConfigureDevOpsAction(devOpsActionLookup) {
838
- this.State.Loading = true;
839
- this.appsFlowSvc
840
- .ConfigureDevOpsAction(devOpsActionLookup)
841
- .subscribe((response) => {
842
- if (response.Status.Code === 0) {
843
- this.projectService.LoadEnterpriseAsCode(this.State);
844
- }
845
- else {
846
- this.State.Loading = false;
847
- }
814
+ SetEditProjectSettings(projectLookup) {
815
+ return __awaiter(this, void 0, void 0, function* () {
816
+ yield this.projectService.SetEditProjectSettings(this.State, projectLookup);
848
817
  });
849
818
  }
850
- // Helpers
851
- handleStateChange() {
852
- var _a;
819
+ UnpackLowCodeUnit(req) {
853
820
  return __awaiter(this, void 0, void 0, function* () {
854
- this.State.Loading = true;
855
- yield this.projectService.HasValidConnection(this.State);
856
- yield this.projectService.EnsureUserEnterprise(this.State);
857
- yield this.projectService.ListEnterprises(this.State);
858
- if (((_a = this.State.Enterprises) === null || _a === void 0 ? void 0 : _a.length) > 0) {
859
- yield this.projectService.GetActiveEnterprise(this.State);
821
+ if (confirm(`Are you sure you want to unpack application '${req.ApplicationName}' with version '${req.Version}'?`)) {
822
+ yield this.projectService.UnpackLowCodeUnit(this.State, req);
860
823
  }
861
824
  });
862
825
  }
826
+ // Helpers
863
827
  handleSaveApplication(req) {
864
828
  var _a;
865
829
  return __awaiter(this, void 0, void 0, function* () {
@@ -920,7 +884,7 @@ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
920
884
  var _a;
921
885
  return __awaiter(this, void 0, void 0, function* () {
922
886
  const projHosts = {};
923
- (_a = project === null || project === void 0 ? void 0 : project.Hosts) === null || _a === void 0 ? void 0 : _a.forEach(host => {
887
+ (_a = project === null || project === void 0 ? void 0 : project.Hosts) === null || _a === void 0 ? void 0 : _a.forEach((host) => {
924
888
  projHosts[host] = this.State.EaC.Hosts[host];
925
889
  });
926
890
  const saveEaC = {
@@ -932,57 +896,99 @@ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
932
896
  };
933
897
  saveEaC.Projects[projectLookup] = project;
934
898
  yield this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);
935
- this.appsFlowEventsSvc.SetEditProjectSettings(projectLookup);
899
+ this.SetEditProjectSettings(projectLookup);
936
900
  });
937
901
  }
938
- setServices() {
939
- this.appsFlowEventsSvc.DeleteApplicationEvent.subscribe((appLookup) => __awaiter(this, void 0, void 0, function* () {
940
- yield this.projectService.DeleteApplication(this.State, appLookup);
941
- }));
942
- this.appsFlowEventsSvc.DeleteDevOpsActionEvent.subscribe((doaLookup) => __awaiter(this, void 0, void 0, function* () {
943
- yield this.projectService.DeleteDevOpsAction(this.State, doaLookup);
944
- }));
945
- this.appsFlowEventsSvc.DeleteProjectEvent.subscribe((projectLookup) => __awaiter(this, void 0, void 0, function* () {
946
- yield this.projectService.DeleteProject(this.State, projectLookup);
947
- }));
948
- this.appsFlowEventsSvc.DeleteSourceControlEvent.subscribe((scLookup) => __awaiter(this, void 0, void 0, function* () {
949
- yield this.projectService.DeleteSourceControl(this.State, scLookup);
950
- }));
951
- this.appsFlowEventsSvc.EnsureUserEnterpriseEvent.subscribe(() => __awaiter(this, void 0, void 0, function* () {
952
- yield this.projectService.EnsureUserEnterprise(this.State);
953
- }));
954
- // this.appsFlowEventsSvc.ListProjectsEvent.subscribe((withLoading) => {
955
- // this.projectService.ListProjects(this.State, withLoading);
956
- // });
957
- this.appsFlowEventsSvc.LoadEnterpriseAsCodeEvent.subscribe(() => __awaiter(this, void 0, void 0, function* () {
958
- yield this.projectService.LoadEnterpriseAsCode(this.State);
959
- }));
960
- this.appsFlowEventsSvc.SaveEnterpriseAsCodeEvent.subscribe((eac) => __awaiter(this, void 0, void 0, function* () {
961
- yield this.projectService.SaveEnterpriseAsCode(this.State, eac);
962
- }));
963
- this.appsFlowEventsSvc.SaveApplicationAsCodeEvent.subscribe((req) => __awaiter(this, void 0, void 0, function* () {
964
- yield this.handleSaveApplication(req);
965
- }));
966
- this.appsFlowEventsSvc.SaveDFSModifierEvent.subscribe((req) => __awaiter(this, void 0, void 0, function* () {
967
- yield this.handleSaveDFSModifier(req);
968
- }));
969
- this.appsFlowEventsSvc.SaveEnvironmentAsCodeEvent.subscribe((req) => __awaiter(this, void 0, void 0, function* () {
970
- yield this.handleSaveEnvironment(req);
971
- }));
972
- this.appsFlowEventsSvc.SaveProjectAsCodeEvent.subscribe((req) => __awaiter(this, void 0, void 0, function* () {
973
- yield this.handleSaveProject(req.ProjectLookup, req.Project);
974
- }));
975
- this.appsFlowEventsSvc.SetCreatingProjectEvent.subscribe((creatingProject) => {
976
- this.projectService.SetCreatingProject(creatingProject);
902
+ }
903
+ EaCService.ɵprov = ɵɵdefineInjectable({ factory: function EaCService_Factory() { return new EaCService(ɵɵinject(ProjectService)); }, token: EaCService, providedIn: "root" });
904
+ EaCService.decorators = [
905
+ { type: Injectable, args: [{
906
+ providedIn: 'root',
907
+ },] }
908
+ ];
909
+ EaCService.ctorParameters = () => [
910
+ { type: ProjectService }
911
+ ];
912
+
913
+ class ApplicationsFlowProjectsElementState {
914
+ }
915
+ class ApplicationsFlowProjectsContext extends LCUElementContext {
916
+ }
917
+ const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT = 'applications-flow-projects-element';
918
+ class ApplicationsFlowProjectsElementComponent extends LcuElementComponent {
919
+ // Constructors
920
+ constructor(injector, appsFlowSvc, eacSvc) {
921
+ super(injector);
922
+ this.injector = injector;
923
+ this.appsFlowSvc = appsFlowSvc;
924
+ this.eacSvc = eacSvc;
925
+ }
926
+ // Properties
927
+ get ActiveEnvironment() {
928
+ var _a, _b;
929
+ return (_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Environments[this.ActiveEnvironmentLookup];
930
+ }
931
+ get ActiveEnvironmentLookup() {
932
+ var _a, _b;
933
+ // TODO: Eventually support multiple environments
934
+ const envLookups = Object.keys(((_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Environments) || {});
935
+ return envLookups[0];
936
+ }
937
+ get CreatingProject() {
938
+ return this.eacSvc.CreatingProject;
939
+ }
940
+ get EditingProject() {
941
+ var _a, _b, _c, _d;
942
+ 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;
943
+ }
944
+ get EditingProjectLookup() {
945
+ return this.eacSvc.EditingProjectLookup;
946
+ }
947
+ get ProjectLookups() {
948
+ var _a, _b;
949
+ return Object.keys(((_b = (_a = this.State) === null || _a === void 0 ? void 0 : _a.EaC) === null || _b === void 0 ? void 0 : _b.Projects) || {});
950
+ }
951
+ get State() {
952
+ return this.eacSvc.State;
953
+ }
954
+ // Life Cycle
955
+ ngOnDestroy() { }
956
+ ngOnInit() {
957
+ super.ngOnInit();
958
+ this.handleStateChange().then((eac) => { });
959
+ // this.setupProjectMonitor();
960
+ }
961
+ // API Methods
962
+ ActiveEnterpriseChanged(event) {
963
+ return __awaiter(this, void 0, void 0, function* () {
964
+ yield this.eacSvc.SetActiveEnterprise(event.value);
977
965
  });
978
- this.appsFlowEventsSvc.SetEditProjectSettingsEvent.subscribe((projectLookup) => __awaiter(this, void 0, void 0, function* () {
979
- yield this.projectService.SetEditProjectSettings(this.State, projectLookup);
980
- }));
981
- this.appsFlowEventsSvc.UnpackLowCodeUnitEvent.subscribe((req) => __awaiter(this, void 0, void 0, function* () {
982
- if (confirm(`Are you sure you want to unpack application '${req.ApplicationName}' with version '${req.Version}'?`)) {
983
- yield this.projectService.UnpackLowCodeUnit(this.State, req);
966
+ }
967
+ ConfigureDevOpsAction(devOpsActionLookup) {
968
+ this.State.Loading = true;
969
+ this.appsFlowSvc
970
+ .ConfigureDevOpsAction(devOpsActionLookup)
971
+ .subscribe((response) => {
972
+ if (response.Status.Code === 0) {
973
+ this.eacSvc.LoadEnterpriseAsCode();
984
974
  }
985
- }));
975
+ else {
976
+ this.State.Loading = false;
977
+ }
978
+ });
979
+ }
980
+ // Helpers
981
+ handleStateChange() {
982
+ var _a;
983
+ return __awaiter(this, void 0, void 0, function* () {
984
+ this.State.Loading = true;
985
+ yield this.eacSvc.HasValidConnection();
986
+ yield this.eacSvc.EnsureUserEnterprise();
987
+ yield this.eacSvc.ListEnterprises();
988
+ if (((_a = this.State.Enterprises) === null || _a === void 0 ? void 0 : _a.length) > 0) {
989
+ yield this.eacSvc.GetActiveEnterprise();
990
+ }
991
+ });
986
992
  }
987
993
  }
988
994
  ApplicationsFlowProjectsElementComponent.decorators = [
@@ -995,8 +1001,7 @@ ApplicationsFlowProjectsElementComponent.decorators = [
995
1001
  ApplicationsFlowProjectsElementComponent.ctorParameters = () => [
996
1002
  { type: Injector },
997
1003
  { type: ApplicationsFlowService },
998
- { type: ProjectService },
999
- { type: ApplicationsFlowEventsService }
1004
+ { type: EaCService }
1000
1005
  ];
1001
1006
 
1002
1007
  class HostingDetailsFormGroupComponent {
@@ -1101,10 +1106,9 @@ HostingDetailsFormGroupComponent.propDecorators = {
1101
1106
 
1102
1107
  class SourceControlFormControlsComponent {
1103
1108
  // Constructors
1104
- constructor(formBuilder, appsFlowSvc, appsFlowEventsSvc) {
1109
+ constructor(formBuilder, appsFlowSvc) {
1105
1110
  this.formBuilder = formBuilder;
1106
1111
  this.appsFlowSvc = appsFlowSvc;
1107
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1108
1112
  this.SeparatorKeysCodes = [ENTER, COMMA];
1109
1113
  this.BranchesChanged = new EventEmitter();
1110
1114
  this.SelectedBranches = [];
@@ -1341,8 +1345,7 @@ SourceControlFormControlsComponent.decorators = [
1341
1345
  ];
1342
1346
  SourceControlFormControlsComponent.ctorParameters = () => [
1343
1347
  { type: FormBuilder },
1344
- { type: ApplicationsFlowService },
1345
- { type: ApplicationsFlowEventsService }
1348
+ { type: ApplicationsFlowService }
1346
1349
  ];
1347
1350
  SourceControlFormControlsComponent.propDecorators = {
1348
1351
  BranchesChanged: [{ type: Output, args: ['branches-changed',] }],
@@ -1361,10 +1364,10 @@ SourceControlFormControlsComponent.propDecorators = {
1361
1364
 
1362
1365
  class CreateProjectWizardComponent {
1363
1366
  // Constructors
1364
- constructor(formBuilder, appsFlowSvc, appsFlowEventsSvc) {
1367
+ constructor(formBuilder, appsFlowSvc, eacSvc) {
1365
1368
  this.formBuilder = formBuilder;
1366
1369
  this.appsFlowSvc = appsFlowSvc;
1367
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1370
+ this.eacSvc = eacSvc;
1368
1371
  this.HostingDetails = new ProjectHostingDetails();
1369
1372
  }
1370
1373
  // Fields
@@ -1403,7 +1406,7 @@ class CreateProjectWizardComponent {
1403
1406
  }
1404
1407
  // API Methods
1405
1408
  Cancel() {
1406
- this.appsFlowEventsSvc.SetCreatingProject(false);
1409
+ this.eacSvc.SetCreatingProject(false);
1407
1410
  }
1408
1411
  ConfigureRepository() {
1409
1412
  this.loadProjectHostingDetails();
@@ -1491,7 +1494,7 @@ CreateProjectWizardComponent.decorators = [
1491
1494
  CreateProjectWizardComponent.ctorParameters = () => [
1492
1495
  { type: FormBuilder },
1493
1496
  { type: ApplicationsFlowService },
1494
- { type: ApplicationsFlowEventsService }
1497
+ { type: EaCService }
1495
1498
  ];
1496
1499
  CreateProjectWizardComponent.propDecorators = {
1497
1500
  SourceControl: [{ type: ViewChild, args: [SourceControlFormControlsComponent,] }],
@@ -1567,10 +1570,10 @@ DynamicTabsComponent.propDecorators = {
1567
1570
 
1568
1571
  class HeaderComponent {
1569
1572
  // Constructors
1570
- constructor(formBuilder, lcuSettings, appsFlowEventsSvc) {
1573
+ constructor(formBuilder, lcuSettings, eacSvc) {
1571
1574
  this.formBuilder = formBuilder;
1572
1575
  this.lcuSettings = lcuSettings;
1573
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1576
+ this.eacSvc = eacSvc;
1574
1577
  }
1575
1578
  get HasProjects() {
1576
1579
  return this.ProjectLookups && this.ProjectLookups.length > 0;
@@ -1609,13 +1612,13 @@ class HeaderComponent {
1609
1612
  TrustedProviderLookups: ['ADB2C'],
1610
1613
  },
1611
1614
  };
1612
- this.appsFlowEventsSvc.SaveProjectAsCode({
1615
+ this.eacSvc.SaveProjectAsCode({
1613
1616
  ProjectLookup: Guid.CreateRaw(),
1614
1617
  Project: proj,
1615
1618
  });
1616
1619
  }
1617
1620
  EnableCreatingProject() {
1618
- this.appsFlowEventsSvc.SetCreatingProject(true);
1621
+ this.eacSvc.SetCreatingProject(true);
1619
1622
  }
1620
1623
  }
1621
1624
  HeaderComponent.decorators = [
@@ -1628,7 +1631,7 @@ HeaderComponent.decorators = [
1628
1631
  HeaderComponent.ctorParameters = () => [
1629
1632
  { type: FormBuilder },
1630
1633
  { type: LCUServiceSettings },
1631
- { type: ApplicationsFlowEventsService }
1634
+ { type: EaCService }
1632
1635
  ];
1633
1636
  HeaderComponent.propDecorators = {
1634
1637
  CreatingProject: [{ type: Input, args: ['creating-project',] }],
@@ -1643,9 +1646,9 @@ class CardFormConfigModel {
1643
1646
  }
1644
1647
 
1645
1648
  class DomainsComponent {
1646
- constructor(formsService, appsFlowEventsSvc) {
1649
+ constructor(formsService, eacSvc) {
1647
1650
  this.formsService = formsService;
1648
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1651
+ this.eacSvc = eacSvc;
1649
1652
  }
1650
1653
  /**
1651
1654
  * Access form control for root directory
@@ -1743,7 +1746,7 @@ class DomainsComponent {
1743
1746
  * Save changes
1744
1747
  */
1745
1748
  save() {
1746
- this.appsFlowEventsSvc.SaveProjectAsCode({
1749
+ this.eacSvc.SaveProjectAsCode({
1747
1750
  ProjectLookup: this.ProjectLookup,
1748
1751
  Project: Object.assign(Object.assign({}, this.Project), {
1749
1752
  // Hosts: [...this.Project.Hosts, this.Domain.value],
@@ -1764,7 +1767,7 @@ DomainsComponent.decorators = [
1764
1767
  ];
1765
1768
  DomainsComponent.ctorParameters = () => [
1766
1769
  { type: FormsService },
1767
- { type: ApplicationsFlowEventsService }
1770
+ { type: EaCService }
1768
1771
  ];
1769
1772
  DomainsComponent.propDecorators = {
1770
1773
  Data: [{ type: Input, args: ['data',] }]
@@ -1820,10 +1823,10 @@ GeneralComponent.propDecorators = {
1820
1823
 
1821
1824
  class AppsFlowComponent {
1822
1825
  // Constructors
1823
- constructor(formBldr, appsFlowSvc, appsFlowEventsSvc) {
1826
+ constructor(formBldr, appsFlowSvc, eacSvc) {
1824
1827
  this.formBldr = formBldr;
1825
1828
  this.appsFlowSvc = appsFlowSvc;
1826
- this.appsFlowEventsSvc = appsFlowEventsSvc;
1829
+ this.eacSvc = eacSvc;
1827
1830
  this.EditingApplicationLookup = null;
1828
1831
  this.redirectTooltip = '';
1829
1832
  // this.IsPermanent = false;
@@ -2036,9 +2039,7 @@ class AppsFlowComponent {
2036
2039
  this.SetEditingApplication(Guid.CreateRaw());
2037
2040
  }
2038
2041
  DeleteApplication(appLookup, appName) {
2039
- if (confirm(`Are you sure you want to delete application '${appName}'?`)) {
2040
- this.appsFlowEventsSvc.DeleteApplication(appLookup);
2041
- }
2042
+ this.eacSvc.DeleteApplication(appLookup, appName);
2042
2043
  }
2043
2044
  LCUTypeChanged(event) {
2044
2045
  this.LCUType = event.value;
@@ -2177,7 +2178,7 @@ class AppsFlowComponent {
2177
2178
  else if (app) {
2178
2179
  app.SourceControlLookup = null;
2179
2180
  }
2180
- this.appsFlowEventsSvc.SaveApplicationAsCode(saveAppReq);
2181
+ this.eacSvc.SaveApplicationAsCode(saveAppReq);
2181
2182
  }
2182
2183
  SetEditingApplication(appLookup) {
2183
2184
  this.EditingApplicationLookup = appLookup;
@@ -2197,7 +2198,7 @@ class AppsFlowComponent {
2197
2198
  }
2198
2199
  Unpack(appLookup, app) {
2199
2200
  var _a, _b, _c;
2200
- this.appsFlowEventsSvc.UnpackLowCodeUnit({
2201
+ this.eacSvc.UnpackLowCodeUnit({
2201
2202
  ApplicationLookup: appLookup,
2202
2203
  ApplicationName: (_a = app.Application) === null || _a === void 0 ? void 0 : _a.Name,
2203
2204
  Version: ((_b = app.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.Version) || ((_c = app.LowCodeUnit) === null || _c === void 0 ? void 0 : _c.Build),
@@ -2397,7 +2398,7 @@ AppsFlowComponent.decorators = [
2397
2398
  AppsFlowComponent.ctorParameters = () => [
2398
2399
  { type: FormBuilder },
2399
2400
  { type: ApplicationsFlowService },
2400
- { type: ApplicationsFlowEventsService }
2401
+ { type: EaCService }
2401
2402
  ];
2402
2403
  AppsFlowComponent.propDecorators = {
2403
2404
  Data: [{ type: Input, args: ['data',] }],
@@ -2406,10 +2407,10 @@ AppsFlowComponent.propDecorators = {
2406
2407
 
2407
2408
  class DevOpsComponent {
2408
2409
  // Constructors
2409
- constructor(formBldr, appsFlowSvc, appsFlowEventsSvc) {
2410
+ constructor(formBldr, appsFlowSvc, eacSvc) {
2410
2411
  this.formBldr = formBldr;
2411
2412
  this.appsFlowSvc = appsFlowSvc;
2412
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2413
+ this.eacSvc = eacSvc;
2413
2414
  this.EditingSourceControlLookup = null;
2414
2415
  this.HostingDetails = new ProjectHostingDetails();
2415
2416
  }
@@ -2483,7 +2484,7 @@ class DevOpsComponent {
2483
2484
  }
2484
2485
  DeleteSourceControl(scLookup) {
2485
2486
  if (confirm(`Are you sure you want to delete source control '${scLookup}'?`)) {
2486
- this.appsFlowEventsSvc.DeleteSourceControl(scLookup);
2487
+ this.eacSvc.DeleteSourceControl(scLookup);
2487
2488
  }
2488
2489
  }
2489
2490
  DevOpsActionLookupChanged(event) {
@@ -2537,7 +2538,7 @@ class DevOpsComponent {
2537
2538
  source = Object.assign(Object.assign({}, source), { Type: 'GitHub', Name: this.EditingSourceControlLookup, DevOpsActionTriggerLookups: [devOpsActionLookup], Organization: this.SourceControlFormControls.OrganizationFormControl.value, Repository: this.SourceControlFormControls.RepositoryFormControl.value });
2538
2539
  const scLookup = `github://${source.Organization}/${source.Repository}`;
2539
2540
  saveEnvReq.Environment.Sources[scLookup] = source;
2540
- this.appsFlowEventsSvc.SaveEnvironmentAsCode(saveEnvReq);
2541
+ this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);
2541
2542
  }
2542
2543
  SetEditingSourceControl(scLookup) {
2543
2544
  this.EditingSourceControlLookup = scLookup;
@@ -2590,7 +2591,7 @@ DevOpsComponent.decorators = [
2590
2591
  DevOpsComponent.ctorParameters = () => [
2591
2592
  { type: FormBuilder },
2592
2593
  { type: ApplicationsFlowService },
2593
- { type: ApplicationsFlowEventsService }
2594
+ { type: EaCService }
2594
2595
  ];
2595
2596
  DevOpsComponent.propDecorators = {
2596
2597
  Data: [{ type: Input, args: ['data',] }],
@@ -2600,10 +2601,10 @@ DevOpsComponent.propDecorators = {
2600
2601
 
2601
2602
  class DFSModifiersComponent {
2602
2603
  // Constructors
2603
- constructor(formBldr, appsFlowSvc, appsFlowEventsSvc) {
2604
+ constructor(formBldr, appsFlowSvc, eacSvc) {
2604
2605
  this.formBldr = formBldr;
2605
2606
  this.appsFlowSvc = appsFlowSvc;
2606
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2607
+ this.eacSvc = eacSvc;
2607
2608
  this.EditingModifierLookup = null;
2608
2609
  }
2609
2610
  get DetailsFormControl() {
@@ -2677,7 +2678,7 @@ class DFSModifiersComponent {
2677
2678
  }
2678
2679
  DeleteModifier(modifierLookup, modifierName) {
2679
2680
  if (confirm(`Are you sure you want to delete modifier '${modifierName}'?`)) {
2680
- this.appsFlowEventsSvc.DeleteSourceControl(modifierLookup);
2681
+ this.eacSvc.DeleteSourceControl(modifierLookup);
2681
2682
  }
2682
2683
  }
2683
2684
  SaveModifier(projectLookup = null) {
@@ -2700,7 +2701,7 @@ class DFSModifiersComponent {
2700
2701
  break;
2701
2702
  }
2702
2703
  saveMdfrReq.Modifier.Details = JSON.stringify(details);
2703
- this.appsFlowEventsSvc.SaveDFSModifier(saveMdfrReq);
2704
+ this.eacSvc.SaveDFSModifier(saveMdfrReq);
2704
2705
  }
2705
2706
  SetEditingModifier(modifierLookup) {
2706
2707
  this.EditingModifierLookup = modifierLookup;
@@ -2765,7 +2766,7 @@ DFSModifiersComponent.decorators = [
2765
2766
  DFSModifiersComponent.ctorParameters = () => [
2766
2767
  { type: FormBuilder },
2767
2768
  { type: ApplicationsFlowService },
2768
- { type: ApplicationsFlowEventsService }
2769
+ { type: EaCService }
2769
2770
  ];
2770
2771
  DFSModifiersComponent.propDecorators = {
2771
2772
  Data: [{ type: Input, args: ['data',] }]
@@ -2857,8 +2858,8 @@ ProjectTabsComponent.propDecorators = {
2857
2858
 
2858
2859
  class ProjectItemsComponent {
2859
2860
  // Constructors
2860
- constructor(appsFlowEventsSvc) {
2861
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2861
+ constructor(eacSvc) {
2862
+ this.eacSvc = eacSvc;
2862
2863
  }
2863
2864
  // Fields
2864
2865
  // Properties
@@ -2871,7 +2872,7 @@ class ProjectItemsComponent {
2871
2872
  // API Methods
2872
2873
  DeleteProject(projectLookup, projectName) {
2873
2874
  if (confirm(`Are you sure you want to delete project '${projectName}'?`)) {
2874
- this.appsFlowEventsSvc.DeleteProject(projectLookup);
2875
+ this.eacSvc.DeleteProject(projectLookup);
2875
2876
  }
2876
2877
  }
2877
2878
  GetPrimaryHost(project) {
@@ -2884,7 +2885,7 @@ class ProjectItemsComponent {
2884
2885
  * Event to edit project settings
2885
2886
  */
2886
2887
  ProjectSettings(projectLookup) {
2887
- this.appsFlowEventsSvc.SetEditProjectSettings(projectLookup);
2888
+ this.eacSvc.SetEditProjectSettings(projectLookup);
2888
2889
  }
2889
2890
  }
2890
2891
  ProjectItemsComponent.decorators = [
@@ -2895,7 +2896,7 @@ ProjectItemsComponent.decorators = [
2895
2896
  },] }
2896
2897
  ];
2897
2898
  ProjectItemsComponent.ctorParameters = () => [
2898
- { type: ApplicationsFlowEventsService }
2899
+ { type: EaCService }
2899
2900
  ];
2900
2901
  ProjectItemsComponent.propDecorators = {
2901
2902
  Projects: [{ type: Input, args: ['projects',] }],
@@ -2903,9 +2904,7 @@ ProjectItemsComponent.propDecorators = {
2903
2904
  };
2904
2905
 
2905
2906
  class BuildsComponent {
2906
- constructor(appsFlowEventsSvc) {
2907
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2908
- }
2907
+ constructor() { }
2909
2908
  ngOnInit() { }
2910
2909
  ngOnDestroy() {
2911
2910
  }
@@ -2924,9 +2923,7 @@ BuildsComponent.decorators = [
2924
2923
  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}"]
2925
2924
  },] }
2926
2925
  ];
2927
- BuildsComponent.ctorParameters = () => [
2928
- { type: ApplicationsFlowEventsService }
2929
- ];
2926
+ BuildsComponent.ctorParameters = () => [];
2930
2927
  BuildsComponent.propDecorators = {
2931
2928
  Projects: [{ type: Input, args: ['projects',] }]
2932
2929
  };
@@ -2967,9 +2964,9 @@ FormCardComponent.propDecorators = {
2967
2964
  };
2968
2965
 
2969
2966
  class ProjectNameComponent {
2970
- constructor(formsService, appsFlowEventsSvc) {
2967
+ constructor(formsService, eacSvc) {
2971
2968
  this.formsService = formsService;
2972
- this.appsFlowEventsSvc = appsFlowEventsSvc;
2969
+ this.eacSvc = eacSvc;
2973
2970
  }
2974
2971
  /**
2975
2972
  * Access form control for description
@@ -3039,7 +3036,7 @@ class ProjectNameComponent {
3039
3036
  * Save form
3040
3037
  */
3041
3038
  save() {
3042
- this.appsFlowEventsSvc.SaveProjectAsCode({
3039
+ this.eacSvc.SaveProjectAsCode({
3043
3040
  ProjectLookup: this.ProjectLookup,
3044
3041
  Project: Object.assign(Object.assign({}, this.Project), { Project: Object.assign(Object.assign({}, (this.Project || {})), { Description: this.Description.value, Name: this.Name.value }) }),
3045
3042
  });
@@ -3083,7 +3080,7 @@ ProjectNameComponent.decorators = [
3083
3080
  ];
3084
3081
  ProjectNameComponent.ctorParameters = () => [
3085
3082
  { type: FormsService },
3086
- { type: ApplicationsFlowEventsService }
3083
+ { type: EaCService }
3087
3084
  ];
3088
3085
  ProjectNameComponent.propDecorators = {
3089
3086
  Project: [{ type: Input, args: ['project',] }],
@@ -3091,9 +3088,9 @@ ProjectNameComponent.propDecorators = {
3091
3088
  };
3092
3089
 
3093
3090
  class RootDirectoryComponent {
3094
- constructor(formsService, appsFlowEventsSvc) {
3091
+ constructor(formsService, eacSvc) {
3095
3092
  this.formsService = formsService;
3096
- this.appsFlowEventsSvc = appsFlowEventsSvc;
3093
+ this.eacSvc = eacSvc;
3097
3094
  }
3098
3095
  /**
3099
3096
  * Access form control for root directory
@@ -3158,7 +3155,7 @@ class RootDirectoryComponent {
3158
3155
  * Save form
3159
3156
  */
3160
3157
  save() {
3161
- this.appsFlowEventsSvc.SaveProjectAsCode({
3158
+ this.eacSvc.SaveProjectAsCode({
3162
3159
  ProjectLookup: this.ProjectLookup,
3163
3160
  Project: Object.assign({}, this.Project),
3164
3161
  });
@@ -3191,7 +3188,7 @@ RootDirectoryComponent.decorators = [
3191
3188
  ];
3192
3189
  RootDirectoryComponent.ctorParameters = () => [
3193
3190
  { type: FormsService },
3194
- { type: ApplicationsFlowEventsService }
3191
+ { type: EaCService }
3195
3192
  ];
3196
3193
  RootDirectoryComponent.propDecorators = {
3197
3194
  Project: [{ type: Input, args: ['project',] }],
@@ -3199,9 +3196,9 @@ RootDirectoryComponent.propDecorators = {
3199
3196
  };
3200
3197
 
3201
3198
  class BaseFormComponent {
3202
- constructor(formsService, appsFlowEventsSvc) {
3199
+ constructor(formsService, eac) {
3203
3200
  this.formsService = formsService;
3204
- this.appsFlowEventsSvc = appsFlowEventsSvc;
3201
+ this.eac = eac;
3205
3202
  }
3206
3203
  ngOnInit() {
3207
3204
  this.setupForm();
@@ -3253,7 +3250,7 @@ BaseFormComponent.decorators = [
3253
3250
  ];
3254
3251
  BaseFormComponent.ctorParameters = () => [
3255
3252
  { type: FormsService },
3256
- { type: ApplicationsFlowEventsService }
3253
+ { type: EaCService }
3257
3254
  ];
3258
3255
 
3259
3256
  class BaseFormConfigModel {
@@ -3263,10 +3260,10 @@ class BaseFormConfigModel {
3263
3260
  }
3264
3261
 
3265
3262
  class BaseFormTestComponent extends BaseFormComponent {
3266
- constructor(formsService, appsFlowEventsSvc) {
3267
- super(formsService, appsFlowEventsSvc);
3263
+ constructor(formsService, eacSvc) {
3264
+ super(formsService, eacSvc);
3268
3265
  this.formsService = formsService;
3269
- this.appsFlowEventsSvc = appsFlowEventsSvc;
3266
+ this.eacSvc = eacSvc;
3270
3267
  }
3271
3268
  /**
3272
3269
  * Access form control for description
@@ -3338,7 +3335,7 @@ BaseFormTestComponent.decorators = [
3338
3335
  ];
3339
3336
  BaseFormTestComponent.ctorParameters = () => [
3340
3337
  { type: FormsService },
3341
- { type: ApplicationsFlowEventsService }
3338
+ { type: EaCService }
3342
3339
  ];
3343
3340
 
3344
3341
  class GitAuthComponent {
@@ -3566,8 +3563,8 @@ class SlottedCardComponent {
3566
3563
  SlottedCardComponent.decorators = [
3567
3564
  { type: Component, args: [{
3568
3565
  selector: 'lcu-slotted-card',
3569
- 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 <button mat-button class=\"slotted-card-action-btn\" click=\"MainActionClickEvent()\">{{ ActionText }}</button>\n </mat-card-actions>\n\n </mat-card>\n\n\n",
3570
- styles: [".col-info-card{background-color:#fff;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%}"]
3566
+ 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",
3567
+ 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%}"]
3571
3568
  },] }
3572
3569
  ];
3573
3570
  SlottedCardComponent.ctorParameters = () => [];
@@ -3577,6 +3574,7 @@ SlottedCardComponent.propDecorators = {
3577
3574
  MainSlotDescription: [{ type: Input, args: ['main-slot-description',] }],
3578
3575
  SecondarySlotDescription: [{ type: Input, args: ['secondary-slot-description',] }],
3579
3576
  ActionText: [{ type: Input, args: ['action-text',] }],
3577
+ ActionPath: [{ type: Input, args: ['action-path',] }],
3580
3578
  MainActionClicked: [{ type: Output, args: ['main-action-clicked',] }]
3581
3579
  };
3582
3580
 
@@ -3598,7 +3596,7 @@ ProjectInfoCardComponent.decorators = [
3598
3596
  { type: Component, args: [{
3599
3597
  selector: 'lcu-project-info-card',
3600
3598
  template: "<mat-card class=\"project-info-card\">\n\n <div class=\"header-img-container\" fxLayout=\"row\" >\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon class=\"temp-icon\">flutter_dash</mat-icon>\n </div>\n </div>\n\n <div class=\"icon-btn-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" >\n <button mat-icon-button id=\"left-icon\" (click)=\"LeftIconClicked()\">\n <mat-icon>settings</mat-icon>\n </button>\n <button mat-icon-button id=\"right-icon\" (click)=\"RightIconClicked()\">\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header class=\"project-card-header\" fxLayoutAlign=\"center center\">\n\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">{{Name}}</mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">{{Description}}</mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <a class=\"host-anchor\" *ngIf=\"Subtext\" [href]=\"Subtext\" target=\"_blank\">{{Subtext}}</a>\n </mat-card-subtitle>\n\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div class=\"stats-container\">\n <ng-content select=\"[stats]\"></ng-content>\n </div>\n\n <div class=\"promo-container\">\n <ng-content select=\"[promo]\"></ng-content>\n </div>\n\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n \n </mat-card-actions>\n </mat-card>\n \n",
3601
- styles: [".project-info-card{background-color:#fff;border:2px solid #d3d3d3;margin:20px;padding:0}.round-project-img{background-color:#dfeff2;border:2px solid #fff;border-radius:40px;height:75px;margin-top:20px;text-align:center;width:75px}.temp-icon{font-size:50px;height:50px;width:50px}.icon-btn-container{margin:5px}.project-card-header{margin-top:50px;text-align:center}.host-anchor{color:#4a918e;text-decoration:none}.header-img-container{background-color:#a4bab3;border-radius:2px 2px 0 0;height:60px;justify-content:center;margin-right:-.5px;margin-top:-.5px!important}.project-card-name{font-size:30px;font-weight:600}.card-content-container{margin-bottom:0!important}.stats-container{border-bottom:1px solid #d3d3d3;border-top:1px solid #d3d3d3}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.actions-container{padding:0!important}.info-card-btn{border-radius:0 0 2px 2px;border-top:1px solid #d3d3d3;width:100%}"]
3599
+ styles: [".project-info-card{border:2px solid #d3d3d3;margin:20px;padding:0}.round-project-img{background-color:#dfeff2;border:2px solid #fff;border-radius:40px;height:75px;margin-top:20px;text-align:center;width:75px}.temp-icon{font-size:50px;height:50px;width:50px}.icon-btn-container{margin:5px}.project-card-header{margin-top:50px;text-align:center}.host-anchor{color:#4a918e;text-decoration:none}.header-img-container{background-color:#a4bab3;border-radius:2px 2px 0 0;height:60px;justify-content:center;margin-right:-.5px;margin-top:-.5px!important}.project-card-name{font-size:30px;font-weight:600}.card-content-container{margin-bottom:0!important}.stats-container{border-bottom:1px solid #d3d3d3;border-top:1px solid #d3d3d3}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.actions-container{padding:0!important}.info-card-btn{border-radius:0 0 2px 2px;border-top:1px solid #d3d3d3;width:100%}"]
3602
3600
  },] }
3603
3601
  ];
3604
3602
  ProjectInfoCardComponent.ctorParameters = () => [];
@@ -3621,7 +3619,7 @@ AnalyticsCardComponent.decorators = [
3621
3619
  { type: Component, args: [{
3622
3620
  selector: 'lcu-analytics-card',
3623
3621
  template: "<mat-card class=\"analytics-card\">\n <mat-card-header>\n <mat-card-title *ngIf=\"Title\">{{Title}}</mat-card-title>\n <mat-card-subtitle *ngIf=\"Subtext\">{{Subtext}}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <!-- <ng-container *ngFor=\"let atics of analytics \"> -->\n \n <div class=\"analytic-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div class=\"percent-change increase\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ .16 | percent}}</div>\n </div>\n\n <!-- <div class=\"percent-change decrease\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_down</mat-icon>\n <div>16</div>\n </div> -->\n </div>\n\n <!-- </ng-container> -->\n </mat-card-content>\n <!-- <mat-card-actions>\n <button mat-button>LIKE</button>\n <button mat-button>SHARE</button>\n </mat-card-actions> -->\n </mat-card>\n",
3624
- styles: [".analytics-card{background-color:#fff;border:2px solid #d3d3d3;margin:20px;padding:10px}.increase{color:green}.decrease{color:red}"]
3622
+ styles: [".analytics-card{border:2px solid #d3d3d3;margin:20px;padding:10px}.increase{color:green}.decrease{color:red}"]
3625
3623
  },] }
3626
3624
  ];
3627
3625
  AnalyticsCardComponent.ctorParameters = () => [];
@@ -3650,7 +3648,7 @@ FeedCardSmComponent.decorators = [
3650
3648
  { type: Component, args: [{
3651
3649
  selector: 'lcu-feed-card-sm',
3652
3650
  template: "<mat-card class=\"social-card\">\n <div class=\"feed-card-container\" fxLayout=\"row\">\n <mat-icon *ngIf=\"Icon\" [style.color]=\"IconColor\">{{Icon}}</mat-icon>\n <div class=\"feed-card-main-content\">\n <mat-card-title *ngIf=\"Title\">{{Title}}</mat-card-title>\n <div *ngIf=\"Subtext\">{{Subtext}}</div>\n <div *ngIf=\"Description\">{{Description}}</div>\n <ng-content select=\"[more-details]\"></ng-content>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"end\">\n <ng-content select=\"[actions]\"></ng-content>\n </mat-card-actions>\n </mat-card>\n",
3653
- styles: [".social-card{background-color:#fff;border:2px solid #d3d3d3;margin:20px;padding:15px 5px}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.main-slot-container{padding:10px}.slot-header{align-items:center}.slot-content{width:100%}.slot-name{font-size:22px;font-weight:600;padding-left:5px}.slot-description{font-size:12px;margin-right:10px}.slot-action-anchor{color:#000;font-size:10px;text-decoration:none}.action-icon{font-size:25px;height:25px;width:25px}.gold-icon{color:#d4af37}.upgrade-text{cursor:pointer;font-weight:700;margin-left:10px}"]
3651
+ styles: [".social-card{border:2px solid #d3d3d3;margin:20px;padding:15px 5px}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.main-slot-container{padding:10px}.slot-header{align-items:center}.slot-content{width:100%}.slot-name{font-size:22px;font-weight:600;padding-left:5px}.slot-description{font-size:12px;margin-right:10px}.slot-action-anchor{color:#000;font-size:10px;text-decoration:none}.action-icon{font-size:25px;height:25px;width:25px}.gold-icon{color:#d4af37}.upgrade-text{cursor:pointer;font-weight:700;margin-left:10px}"]
3654
3652
  },] }
3655
3653
  ];
3656
3654
  FeedCardSmComponent.ctorParameters = () => [];
@@ -3727,7 +3725,7 @@ GhControlComponent.decorators = [
3727
3725
  { type: Component, args: [{
3728
3726
  selector: 'lcu-gh-control',
3729
3727
  template: "<mat-card class=\"social-card\">\n <div class=\"gh-card-container\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\">error_outline</mat-icon>\n <div fxFlex=\"70%\"class=\"gh-card-main-content\">\n <mat-form-field appearance=\"fill\" class=\"gh-input\">\n <mat-label>{{InputLabel}}</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"value\">\n <!-- <button *ngIf=\"value\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"value=''\">\n <mat-icon>close</mat-icon>\n </button> -->\n </mat-form-field>\n </div>\n <button fxFlex=\"15%\" mat-button (click)=\"Submit()\" id=\"submit-btn\">Submit</button>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <button mat-button (click)=\"CreatePullRequest()\" id=\"pr-btn\">Pull Request</button>\n <button mat-button (click)=\"OpenIssue()\" id=\"oi-btn\">Open Issue</button>\n <button mat-button (click)=\"CreateFeatureBranch()\" id=\"fb-btn\">Feature Branch</button>\n <button mat-icon-button (click)=\"OpenMoreInfo()\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n </mat-card-actions>\n </mat-card>",
3730
- styles: [".social-card{background-color:#fff;border:2px solid #d3d3d3;margin:20px;padding:15px 5px}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.main-slot-container{padding:10px}.slot-header{align-items:center}.slot-content{width:100%}.slot-name{font-size:22px;font-weight:600;padding-left:5px}.slot-description{font-size:12px;margin-right:10px}.slot-action-anchor{color:#000;font-size:10px;text-decoration:none}.action-icon{font-size:25px;height:25px;width:25px}.gold-icon{color:#d4af37}.upgrade-text{cursor:pointer;font-weight:700;margin-left:10px}.gh-icon{font-size:60px;height:60px;text-align:center;width:60px}.gh-input{width:90%}.selected{border:1px solid green}::ng-deep .mat-form-field-flex{border:1px solid;border-radius:30px!important}::ng-deep .mat-form-field-wrapper{padding-bottom:0!important}"]
3728
+ styles: [".social-card{border:2px solid #d3d3d3;margin:20px;padding:15px 5px}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.main-slot-container{padding:10px}.slot-header{align-items:center}.slot-content{width:100%}.slot-name{font-size:22px;font-weight:600;padding-left:5px}.slot-description{font-size:12px;margin-right:10px}.slot-action-anchor{color:#000;font-size:10px;text-decoration:none}.action-icon{font-size:25px;height:25px;width:25px}.gold-icon{color:#d4af37}.upgrade-text{cursor:pointer;font-weight:700;margin-left:10px}.gh-icon{font-size:60px;height:60px;text-align:center;width:60px}.gh-input{width:90%}.selected{border:1px solid green}::ng-deep .mat-form-field-flex{border:1px solid;border-radius:30px!important}::ng-deep .mat-form-field-wrapper{padding-bottom:0!important}"]
3731
3729
  },] }
3732
3730
  ];
3733
3731
  GhControlComponent.ctorParameters = () => [];
@@ -3744,7 +3742,7 @@ MainFeedCardComponent.decorators = [
3744
3742
  { type: Component, args: [{
3745
3743
  selector: 'lcu-main-feed-card',
3746
3744
  template: "<mat-card class=\"social-card\">\n <mat-card-header fxLayout=\"row\">\n <div *ngIf=\"Avatar\" mat-card-avatar class=\"example-header-image\" [style.backgroundImage]=\"Avatar\" fxFlex=\"10%\"></div>\n <div class=\"header-main-content-container\" fxFlex=\"80%\">\n <mat-card-title *ngIf=\"Title\">{{Title}}</mat-card-title>\n <div *ngIf=\"Subtext\">{{Subtext}}</div>\n <div *ngIf=\"TimeAgo\">{{TimeAgo}}</div>\n </div>\n <div fxFlex=\"10%\">\n <button mat-icon-button (click)=\"MoreClicked()\" >\n <mat-icon>more_horiz</mat-icon>\n </button>\n </div>\n\n </mat-card-header>\n \n <div class=\"feed-card-container\" fxLayout=\"row\">\n <div class=\"feed-card-main-content\">\n <ng-content select=\"[tabs]\"></ng-content>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <ng-content select=\"[actions]\"></ng-content>\n \n\n </mat-card-actions>\n </mat-card>\n",
3747
- styles: [".social-card{background-color:#fff;border:2px solid #d3d3d3;margin:20px;padding:15px 5px}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.main-slot-container{padding:10px}.slot-header{align-items:center}.slot-content{width:100%}.slot-name{font-size:22px;font-weight:600;padding-left:5px}.slot-description{font-size:12px;margin-right:10px}.slot-action-anchor{color:#000;font-size:10px;text-decoration:none}.action-icon{font-size:25px;height:25px;width:25px}.gold-icon{color:#d4af37}.upgrade-text{cursor:pointer;font-weight:700;margin-left:10px}.example-header-image{background-size:cover}"]
3745
+ styles: [".social-card{border:2px solid #d3d3d3;margin:20px;padding:15px 5px}mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}.main-slot-container{padding:10px}.slot-header{align-items:center}.slot-content{width:100%}.slot-name{font-size:22px;font-weight:600;padding-left:5px}.slot-description{font-size:12px;margin-right:10px}.slot-action-anchor{color:#000;font-size:10px;text-decoration:none}.action-icon{font-size:25px;height:25px;width:25px}.gold-icon{color:#d4af37}.upgrade-text{cursor:pointer;font-weight:700;margin-left:10px}.example-header-image{background-size:cover}"]
3748
3746
  },] }
3749
3747
  ];
3750
3748
  MainFeedCardComponent.ctorParameters = () => [];
@@ -3850,26 +3848,26 @@ class SecurityToggleComponent {
3850
3848
  console.log("submitting values");
3851
3849
  }
3852
3850
  setupSecurityFormGroup() {
3853
- var _a, _b, _c, _d, _e;
3851
+ var _a, _b;
3854
3852
  this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
3855
3853
  if (this.EditingApplication != null) {
3856
- this.SecurityFormGroup = this.formBldr.group({
3857
- name: [(_c = this.EditingApplication.Application) === null || _c === void 0 ? void 0 : _c.Name, Validators.required],
3858
- description: [
3859
- (_d = this.EditingApplication.Application) === null || _d === void 0 ? void 0 : _d.Description,
3860
- Validators.required,
3861
- ],
3862
- route: [
3863
- ((_e = this.EditingApplication.LookupConfig) === null || _e === void 0 ? void 0 : _e.PathRegex.replace('.*', '')) ||
3864
- '/',
3865
- Validators.required,
3866
- ],
3867
- // priority: [
3868
- // this.EditingApplication.Application?.Priority || 10000,
3869
- // Validators.required,
3870
- // ],
3871
- procType: [this.ProcessorType, [Validators.required]],
3872
- });
3854
+ // this.SecurityFormGroup = this.formBldr.group({
3855
+ // name: [this.EditingApplication.Application?.Name, Validators.required],
3856
+ // description: [
3857
+ // this.EditingApplication.Application?.Description,
3858
+ // Validators.required,
3859
+ // ],
3860
+ // route: [
3861
+ // this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||
3862
+ // '/',
3863
+ // Validators.required,
3864
+ // ],
3865
+ // // priority: [
3866
+ // // this.EditingApplication.Application?.Priority || 10000,
3867
+ // // Validators.required,
3868
+ // // ],
3869
+ // procType: [this.ProcessorType, [Validators.required]],
3870
+ // });
3873
3871
  }
3874
3872
  this.setupSecurityForm();
3875
3873
  }
@@ -3901,49 +3899,50 @@ class ProcessorDetailsFormComponent {
3901
3899
  }
3902
3900
  get BuildFormControl() {
3903
3901
  var _a;
3904
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.build;
3902
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.build;
3905
3903
  }
3906
3904
  get ClientIDFormControl() {
3907
3905
  var _a;
3908
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.clientId;
3906
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.clientId;
3909
3907
  }
3910
3908
  get DefaultFileFormControl() {
3911
3909
  var _a;
3912
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.defaultFile;
3910
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.defaultFile;
3913
3911
  }
3914
3912
  get InboundPathFormControl() {
3915
3913
  var _a;
3916
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.inboundPath;
3914
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.inboundPath;
3917
3915
  }
3918
3916
  get TokenLookupFormControl() {
3919
3917
  var _a;
3920
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.tokenLookup;
3918
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.tokenLookup;
3921
3919
  }
3922
3920
  get RedirectFormControl() {
3923
3921
  var _a;
3924
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.redirect;
3922
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.redirect;
3925
3923
  }
3926
3924
  get ScopesFormControl() {
3927
3925
  var _a;
3928
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.scopes;
3926
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.scopes;
3929
3927
  }
3930
3928
  get SecurityFormControl() {
3931
3929
  var _a;
3932
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.security;
3930
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.security;
3933
3931
  }
3934
3932
  get SPARootFormControl() {
3935
3933
  var _a;
3936
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.spaRoot;
3934
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.spaRoot;
3937
3935
  }
3938
3936
  get PermanentFormControl() {
3939
3937
  var _a;
3940
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.permanent;
3938
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.permanent;
3941
3939
  }
3942
3940
  get PreserveMethodFormControl() {
3943
3941
  var _a;
3944
- return (_a = this.ProsessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.preserveMethod;
3942
+ return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.preserveMethod;
3945
3943
  }
3946
3944
  ngOnInit() {
3945
+ this.setupProcessorDetailsForm();
3947
3946
  }
3948
3947
  DetermineTooltipText() {
3949
3948
  let permanentValue = this.PermanentFormControl.value;
@@ -3961,6 +3960,8 @@ class ProcessorDetailsFormComponent {
3961
3960
  this.redirectTooltip = '308 – Permanent and Preserve';
3962
3961
  }
3963
3962
  }
3963
+ SubmitProcessorDetails() {
3964
+ }
3964
3965
  ProcessorTypeChanged(event) {
3965
3966
  this.ProcessorType = event.value;
3966
3967
  this.setupProcessorTypeSubForm();
@@ -3971,27 +3972,27 @@ class ProcessorDetailsFormComponent {
3971
3972
  }
3972
3973
  //HELPERS
3973
3974
  cleanupLcuTypeSubForm() {
3974
- this.ProsessorDetailsFormGroup.removeControl('methods');
3975
- this.ProsessorDetailsFormGroup.removeControl('apiRoot');
3976
- this.ProsessorDetailsFormGroup.removeControl('security');
3977
- this.ProsessorDetailsFormGroup.removeControl('spaRoot');
3978
- this.ProsessorDetailsFormGroup.removeControl('applicationId');
3979
- this.ProsessorDetailsFormGroup.removeControl('build');
3980
- this.ProsessorDetailsFormGroup.removeControl('clientId');
3981
- this.ProsessorDetailsFormGroup.removeControl('clientSecret');
3982
- this.ProsessorDetailsFormGroup.removeControl('zipFile');
3975
+ this.ProcessorDetailsFormGroup.removeControl('methods');
3976
+ this.ProcessorDetailsFormGroup.removeControl('apiRoot');
3977
+ this.ProcessorDetailsFormGroup.removeControl('security');
3978
+ this.ProcessorDetailsFormGroup.removeControl('spaRoot');
3979
+ this.ProcessorDetailsFormGroup.removeControl('applicationId');
3980
+ this.ProcessorDetailsFormGroup.removeControl('build');
3981
+ this.ProcessorDetailsFormGroup.removeControl('clientId');
3982
+ this.ProcessorDetailsFormGroup.removeControl('clientSecret');
3983
+ this.ProcessorDetailsFormGroup.removeControl('zipFile');
3983
3984
  }
3984
3985
  cleanupProcessorTypeSubForm() {
3985
- this.ProsessorDetailsFormGroup.removeControl('defaultFile');
3986
+ this.ProcessorDetailsFormGroup.removeControl('defaultFile');
3986
3987
  // this.ApplicationFormGroup.removeControl('dfsLcuType');
3987
3988
  // this.ApplicationFormGroup.removeControl('oauthLcuType');
3988
- this.ProsessorDetailsFormGroup.removeControl('scopes');
3989
- this.ProsessorDetailsFormGroup.removeControl('tokenLookup');
3990
- this.ProsessorDetailsFormGroup.removeControl('inboundPath');
3991
- this.ProsessorDetailsFormGroup.removeControl('proxyLcuType');
3992
- this.ProsessorDetailsFormGroup.removeControl('redirect');
3993
- this.ProsessorDetailsFormGroup.removeControl('permanent');
3994
- this.ProsessorDetailsFormGroup.removeControl('preserveMethod');
3989
+ this.ProcessorDetailsFormGroup.removeControl('scopes');
3990
+ this.ProcessorDetailsFormGroup.removeControl('tokenLookup');
3991
+ this.ProcessorDetailsFormGroup.removeControl('inboundPath');
3992
+ this.ProcessorDetailsFormGroup.removeControl('proxyLcuType');
3993
+ this.ProcessorDetailsFormGroup.removeControl('redirect');
3994
+ this.ProcessorDetailsFormGroup.removeControl('permanent');
3995
+ this.ProcessorDetailsFormGroup.removeControl('preserveMethod');
3995
3996
  this.cleanupLcuTypeSubForm();
3996
3997
  }
3997
3998
  setupLcuTypeSubForm() {
@@ -4012,9 +4013,9 @@ class ProcessorDetailsFormComponent {
4012
4013
  case 'GitHubOAuth':
4013
4014
  this.setupLCUGitHubOAuthForm();
4014
4015
  break;
4015
- case 'NPM':
4016
- this.setupLCUNPMForm();
4017
- break;
4016
+ // case 'NPM':
4017
+ // this.setupLCUNPMForm();
4018
+ // break;
4018
4019
  case 'SPA':
4019
4020
  this.setupLCUSPAForm();
4020
4021
  break;
@@ -4024,11 +4025,11 @@ class ProcessorDetailsFormComponent {
4024
4025
  }
4025
4026
  }
4026
4027
  }
4027
- setupApplicationForm() {
4028
+ setupProcessorDetailsForm() {
4028
4029
  var _a, _b, _c, _d, _e;
4029
4030
  this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
4030
4031
  if (this.EditingApplication != null) {
4031
- this.ProsessorDetailsFormGroup = this.formBldr.group({
4032
+ this.ProcessorDetailsFormGroup = this.formBldr.group({
4032
4033
  name: [(_c = this.EditingApplication.Application) === null || _c === void 0 ? void 0 : _c.Name, Validators.required],
4033
4034
  description: [
4034
4035
  (_d = this.EditingApplication.Application) === null || _d === void 0 ? void 0 : _d.Description,
@@ -4049,11 +4050,11 @@ class ProcessorDetailsFormComponent {
4049
4050
  }
4050
4051
  setupLCUGitHubForm() {
4051
4052
  var _a;
4052
- this.ProsessorDetailsFormGroup.addControl('build', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Build) || 'latest', [Validators.required]));
4053
+ this.ProcessorDetailsFormGroup.addControl('build', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Build) || 'latest', [Validators.required]));
4053
4054
  }
4054
4055
  setupLCUApplicationPointerForm() {
4055
4056
  var _a;
4056
- this.ProsessorDetailsFormGroup.addControl('applicationId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ApplicationID) || '', [Validators.required]));
4057
+ this.ProcessorDetailsFormGroup.addControl('applicationId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ApplicationID) || '', [Validators.required]));
4057
4058
  }
4058
4059
  setupLCUNPMForm() {
4059
4060
  // this.ApplicationFormGroup.addControl(
@@ -4073,50 +4074,50 @@ class ProcessorDetailsFormComponent {
4073
4074
  }
4074
4075
  setupLCUSPAForm() {
4075
4076
  var _a;
4076
- this.ProsessorDetailsFormGroup.addControl('spaRoot', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SPARoot) || '', [Validators.required]));
4077
+ this.ProcessorDetailsFormGroup.addControl('spaRoot', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SPARoot) || '', [Validators.required]));
4077
4078
  }
4078
4079
  setupLCUAPIForm() {
4079
4080
  var _a, _b, _c, _d;
4080
- this.ProsessorDetailsFormGroup.addControl('methods', this.formBldr.control(((_b = (_a = this.EditingApplication.LookupConfig) === null || _a === void 0 ? void 0 : _a.AllowedMethods) === null || _b === void 0 ? void 0 : _b.join(' ')) || '', []));
4081
- this.ProsessorDetailsFormGroup.addControl('apiRoot', this.formBldr.control(((_c = this.EditingApplication.LowCodeUnit) === null || _c === void 0 ? void 0 : _c.APIRoot) || '', [Validators.required]));
4082
- this.ProsessorDetailsFormGroup.addControl('security', this.formBldr.control(((_d = this.EditingApplication.LowCodeUnit) === null || _d === void 0 ? void 0 : _d.Security) || '', [Validators.required]));
4081
+ this.ProcessorDetailsFormGroup.addControl('methods', this.formBldr.control(((_b = (_a = this.EditingApplication.LookupConfig) === null || _a === void 0 ? void 0 : _a.AllowedMethods) === null || _b === void 0 ? void 0 : _b.join(' ')) || '', []));
4082
+ this.ProcessorDetailsFormGroup.addControl('apiRoot', this.formBldr.control(((_c = this.EditingApplication.LowCodeUnit) === null || _c === void 0 ? void 0 : _c.APIRoot) || '', [Validators.required]));
4083
+ this.ProcessorDetailsFormGroup.addControl('security', this.formBldr.control(((_d = this.EditingApplication.LowCodeUnit) === null || _d === void 0 ? void 0 : _d.Security) || '', [Validators.required]));
4083
4084
  }
4084
4085
  setupLCUGitHubOAuthForm() {
4085
4086
  var _a, _b;
4086
- this.ProsessorDetailsFormGroup.addControl('clientId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ClientID) || '', [Validators.required]));
4087
- this.ProsessorDetailsFormGroup.addControl('clientSecret', this.formBldr.control(((_b = this.EditingApplication.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.ClientSecret) || '', [Validators.required]));
4087
+ this.ProcessorDetailsFormGroup.addControl('clientId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ClientID) || '', [Validators.required]));
4088
+ this.ProcessorDetailsFormGroup.addControl('clientSecret', this.formBldr.control(((_b = this.EditingApplication.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.ClientSecret) || '', [Validators.required]));
4088
4089
  }
4089
4090
  setupProxyForm() {
4090
4091
  var _a, _b;
4091
4092
  this.LCUType = ((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Type) || '';
4092
- this.ProsessorDetailsFormGroup.addControl('inboundPath', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.InboundPath) || '', [Validators.required]));
4093
- this.ProsessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
4093
+ this.ProcessorDetailsFormGroup.addControl('inboundPath', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.InboundPath) || '', [Validators.required]));
4094
+ this.ProcessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
4094
4095
  }
4095
4096
  setupRedirectForm() {
4096
4097
  var _a, _b, _c;
4097
- this.ProsessorDetailsFormGroup.addControl('redirect', this.formBldr.control(((_a = this.EditingApplication.Processor) === null || _a === void 0 ? void 0 : _a.Redirect) || '', [
4098
+ this.ProcessorDetailsFormGroup.addControl('redirect', this.formBldr.control(((_a = this.EditingApplication.Processor) === null || _a === void 0 ? void 0 : _a.Redirect) || '', [
4098
4099
  Validators.required,
4099
4100
  ]));
4100
- this.ProsessorDetailsFormGroup.addControl('permanent', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.Permanent) || false, []));
4101
- this.ProsessorDetailsFormGroup.addControl('preserveMethod', this.formBldr.control(((_c = this.EditingApplication.Processor) === null || _c === void 0 ? void 0 : _c.PreserveMethod) || false, []));
4101
+ this.ProcessorDetailsFormGroup.addControl('permanent', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.Permanent) || false, []));
4102
+ this.ProcessorDetailsFormGroup.addControl('preserveMethod', this.formBldr.control(((_c = this.EditingApplication.Processor) === null || _c === void 0 ? void 0 : _c.PreserveMethod) || false, []));
4102
4103
  this.DetermineTooltipText();
4103
4104
  }
4104
4105
  setupOAuthForm() {
4105
4106
  var _a, _b, _c, _d;
4106
4107
  this.LCUType = ((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Type) || '';
4107
- this.ProsessorDetailsFormGroup.addControl('scopes', this.formBldr.control(((_c = (_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.Scopes) === null || _c === void 0 ? void 0 : _c.Join(' ')) || '', [Validators.required]));
4108
- this.ProsessorDetailsFormGroup.addControl('tokenLookup', this.formBldr.control(((_d = this.EditingApplication.Processor) === null || _d === void 0 ? void 0 : _d.TokenLookup) || '', [Validators.required]));
4109
- this.ProsessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
4108
+ this.ProcessorDetailsFormGroup.addControl('scopes', this.formBldr.control(((_c = (_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.Scopes) === null || _c === void 0 ? void 0 : _c.Join(' ')) || '', [Validators.required]));
4109
+ this.ProcessorDetailsFormGroup.addControl('tokenLookup', this.formBldr.control(((_d = this.EditingApplication.Processor) === null || _d === void 0 ? void 0 : _d.TokenLookup) || '', [Validators.required]));
4110
+ this.ProcessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
4110
4111
  }
4111
4112
  setupLCUZipForm() {
4112
4113
  var _a;
4113
- this.ProsessorDetailsFormGroup.addControl('zipFile', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ZipFile) || '', [Validators.required]));
4114
+ this.ProcessorDetailsFormGroup.addControl('zipFile', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ZipFile) || '', [Validators.required]));
4114
4115
  }
4115
4116
  setupDfsForm() {
4116
4117
  var _a, _b;
4117
4118
  this.LCUType = ((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Type) || '';
4118
- this.ProsessorDetailsFormGroup.addControl('defaultFile', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.DefaultFile) || 'index.html', [Validators.required]));
4119
- this.ProsessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
4119
+ this.ProcessorDetailsFormGroup.addControl('defaultFile', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.DefaultFile) || 'index.html', [Validators.required]));
4120
+ this.ProcessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
4120
4121
  }
4121
4122
  setupProcessorTypeSubForm() {
4122
4123
  this.cleanupProcessorTypeSubForm();
@@ -4153,6 +4154,443 @@ ProcessorDetailsFormComponent.propDecorators = {
4153
4154
  EditingApplication: [{ type: Input, args: ['editing-application',] }]
4154
4155
  };
4155
4156
 
4157
+ class SourceControlFormComponent {
4158
+ constructor(formBldr) {
4159
+ this.formBldr = formBldr;
4160
+ }
4161
+ get HasBuildFormControl() {
4162
+ var _a;
4163
+ return (_a = this.SourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.controls.hasBuild;
4164
+ }
4165
+ get SourceControlLookupFormControl() {
4166
+ var _a;
4167
+ return (_a = this.SourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.controls.sourceControlLookup;
4168
+ }
4169
+ get SourceControlLookups() {
4170
+ return Object.keys(this.SourceControls || {});
4171
+ }
4172
+ get SourceControls() {
4173
+ console.log("Environment: ", this.Environment);
4174
+ return this.Environment.Sources || {};
4175
+ }
4176
+ ngOnInit() {
4177
+ this.setupSourceControlForm();
4178
+ }
4179
+ SourceControlLookupChanged(event) {
4180
+ // TODO: Anything to do here on change?
4181
+ console.log("sourceControlLookupChanged: ", event);
4182
+ }
4183
+ SubmitSourceControl() {
4184
+ }
4185
+ //HELPER
4186
+ setupSourceControlForm() {
4187
+ var _a, _b;
4188
+ this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
4189
+ this.setupBuildForm();
4190
+ }
4191
+ setupBuildForm() {
4192
+ var _a, _b;
4193
+ this.SourceControlFormGroup.addControl('hasBuild', this.formBldr.control(!!((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SourceControlLookup) || false, [Validators.required]));
4194
+ this.SourceControlFormGroup.addControl('sourceControlLookup', this.formBldr.control(((_b = this.EditingApplication.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.SourceControlLookup) || '', []));
4195
+ }
4196
+ }
4197
+ SourceControlFormComponent.decorators = [
4198
+ { type: Component, args: [{
4199
+ selector: 'lcu-source-control-form',
4200
+ template: "<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions>\n <!-- [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save</button>\n </mat-card-actions>\n </mat-card>\n</form>\n",
4201
+ styles: [""]
4202
+ },] }
4203
+ ];
4204
+ SourceControlFormComponent.ctorParameters = () => [
4205
+ { type: FormBuilder }
4206
+ ];
4207
+ SourceControlFormComponent.propDecorators = {
4208
+ EditingApplication: [{ type: Input, args: ['editing-application',] }],
4209
+ Environment: [{ type: Input, args: ['environment',] }],
4210
+ SourceControlFormControls: [{ type: ViewChild, args: [SourceControlFormControlsComponent,] }]
4211
+ };
4212
+
4213
+ class BuildPipelineFormComponent {
4214
+ constructor(formBldr, appsFlowSvc) {
4215
+ this.formBldr = formBldr;
4216
+ this.appsFlowSvc = appsFlowSvc;
4217
+ this.HostingDetails = new ProjectHostingDetails();
4218
+ }
4219
+ //PROPERTIES
4220
+ get Artifact() {
4221
+ var _a, _b;
4222
+ return ((_a = this.Environment) === null || _a === void 0 ? void 0 : _a.Artifacts) && this.ArtifactLookup
4223
+ ? ((_b = this.Environment) === null || _b === void 0 ? void 0 : _b.Artifacts[this.ArtifactLookup]) || {}
4224
+ : {};
4225
+ }
4226
+ get ArtifactLookup() {
4227
+ var _a, _b;
4228
+ 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;
4229
+ return artLookup;
4230
+ }
4231
+ get DevOpsAction() {
4232
+ return this.Environment.DevOpsActions && this.DevOpsActionLookup
4233
+ ? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}
4234
+ : {};
4235
+ }
4236
+ get DevOpsActions() {
4237
+ return this.Environment.DevOpsActions || {};
4238
+ }
4239
+ get EditingSourceControl() {
4240
+ var _a, _b;
4241
+ 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;
4242
+ if (sc == null && this.EditingSourceControlLookup) {
4243
+ sc = {};
4244
+ }
4245
+ return sc;
4246
+ }
4247
+ get SourceControlLookups() {
4248
+ return Object.keys(this.SourceControls || {});
4249
+ }
4250
+ get SourceControls() {
4251
+ return this.Environment.Sources || {};
4252
+ }
4253
+ ngOnInit() {
4254
+ }
4255
+ //API METHODS
4256
+ //HELPERS
4257
+ loadProjectHostingDetails() {
4258
+ this.HostingDetails.Loading = true;
4259
+ this.appsFlowSvc
4260
+ .LoadProjectHostingDetails(this.Organization, this.Repository, this.MainBranch)
4261
+ .subscribe((response) => {
4262
+ this.HostingDetails = response.Model;
4263
+ this.HostingDetails.Loading = false;
4264
+ }, (err) => {
4265
+ this.HostingDetails.Loading = false;
4266
+ });
4267
+ }
4268
+ }
4269
+ BuildPipelineFormComponent.decorators = [
4270
+ { type: Component, args: [{
4271
+ selector: 'lcu-build-pipeline-form',
4272
+ template: "<div class=\"form-card\" fxFlex=\"35%\" fxFlex.lt-md=\"100%\">\n <mat-card\n class=\"spread\"\n *ngIf=\"EditingSourceControl?.Branches?.length > 0\"\n >\n <mat-card-header>\n <mat-card-title> Build Pipeline </mat-card-title>\n\n <mat-hint>\n Changes made here are reflected for all sources using this\n DevOpsAction\n </mat-hint>\n </mat-card-header>\n\n <mat-card-content>\n\n <ng-container>\n <lcu-hosting-details-form-group\n [artifact]=\"Artifact\"\n [devops-action]=\"DevOpsActions[DevOpsActionLookup]\"\n [details]=\"HostingDetails\"\n [formGroup]=\"DevOpsFormGroup\"\n [organization]=\"Organization\"\n [disabled]=\"HostingDetails?.Loading\"\n ></lcu-hosting-details-form-group>\n </ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n",
4273
+ styles: [""]
4274
+ },] }
4275
+ ];
4276
+ BuildPipelineFormComponent.ctorParameters = () => [
4277
+ { type: FormBuilder },
4278
+ { type: ApplicationsFlowService }
4279
+ ];
4280
+ BuildPipelineFormComponent.propDecorators = {
4281
+ DevOpsActionLookup: [{ type: Input, args: ['devops-action-lookup',] }],
4282
+ Environment: [{ type: Input, args: ['environment',] }],
4283
+ MainBranch: [{ type: Input, args: ['main-branch',] }],
4284
+ Organization: [{ type: Input, args: ['organization',] }],
4285
+ Repository: [{ type: Input, args: ['repository',] }]
4286
+ };
4287
+
4288
+ class DevopsSourceControlFormComponent {
4289
+ // Constructors
4290
+ constructor(formBuilder, appsFlowSvc) {
4291
+ this.formBuilder = formBuilder;
4292
+ this.appsFlowSvc = appsFlowSvc;
4293
+ this.SeparatorKeysCodes = [ENTER, COMMA];
4294
+ this.BuildPath = null;
4295
+ this.HostingDetails = new ProjectHostingDetails();
4296
+ this.SelectedBranches = [];
4297
+ this.SourceControlRoot = '';
4298
+ this.UseBranches = true;
4299
+ this.UseBuildPath = false;
4300
+ }
4301
+ // Fields
4302
+ // Properties
4303
+ get BranchesFormControl() {
4304
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'branches');
4305
+ }
4306
+ get BuildPathFormControl() {
4307
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'buildPath');
4308
+ }
4309
+ get DevOpsActionLookups() {
4310
+ return Object.keys(this.DevOpsActions || {});
4311
+ }
4312
+ get DevOpsActionLookup() {
4313
+ var _a, _b, _c;
4314
+ if (!!((_a = this.DevOpsActionLookupFormControl) === null || _a === void 0 ? void 0 : _a.value)) {
4315
+ return this.DevOpsActionLookupFormControl.value;
4316
+ }
4317
+ if (!!((_b = this.EditingSourceControl) === null || _b === void 0 ? void 0 : _b.DevOpsActionTriggerLookups)) {
4318
+ return (_c = this.EditingSourceControl) === null || _c === void 0 ? void 0 : _c.DevOpsActionTriggerLookups[0];
4319
+ }
4320
+ else {
4321
+ return null;
4322
+ }
4323
+ }
4324
+ get DevOpsActionLookupFormControl() {
4325
+ return this.DevOpsSourceControlFormGroup.get('devOpsActionLookup');
4326
+ }
4327
+ get DevOpsActions() {
4328
+ return this.Environment.DevOpsActions || {};
4329
+ }
4330
+ get EditingSourceControl() {
4331
+ var _a, _b;
4332
+ 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;
4333
+ if (sc == null && this.EditingSourceControlLookup) {
4334
+ sc = {};
4335
+ }
4336
+ return sc;
4337
+ }
4338
+ get MainBranchFormControl() {
4339
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'mainBranch');
4340
+ }
4341
+ get OrganizationFormControl() {
4342
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'organization');
4343
+ }
4344
+ get RepositoryFormControl() {
4345
+ return this.DevOpsSourceControlFormGroup.get(this.SourceControlRoot + 'repository');
4346
+ }
4347
+ // Life Cycle
4348
+ ngAfterViewInit() { }
4349
+ ngOnDestroy() {
4350
+ this.destroyFormControls();
4351
+ }
4352
+ ngOnInit() {
4353
+ this.setupFormControls();
4354
+ this.RefreshOrganizations();
4355
+ }
4356
+ // API Methods
4357
+ AddBranchOption(event) {
4358
+ this.addBranchOption(event.value);
4359
+ event.input.value = '';
4360
+ }
4361
+ BranchOptionSelected(event) {
4362
+ this.addBranchOption(event.option.value);
4363
+ }
4364
+ BranchesChanged(branches) {
4365
+ this.loadProjectHostingDetails();
4366
+ }
4367
+ BuildPathChanged(event) {
4368
+ }
4369
+ CreateRepository() {
4370
+ this.CreatingRepository = true;
4371
+ this.RepositoryFormControl.reset();
4372
+ }
4373
+ CancelCreateRepository() {
4374
+ this.CreatingRepository = false;
4375
+ }
4376
+ DevOpsActionLookupChanged(event) {
4377
+ this.configureDevOpsAction();
4378
+ }
4379
+ MainBranchChanged(event) {
4380
+ this.emitBranchesChanged();
4381
+ }
4382
+ OrganizationChanged(event) {
4383
+ const org = this.OrganizationFormControl;
4384
+ this.RepositoryFormControl.reset();
4385
+ if (this.UseBranches) {
4386
+ this.BranchesFormControl.reset();
4387
+ this.SelectedBranches = [];
4388
+ }
4389
+ this.listRepositories();
4390
+ }
4391
+ RefreshOrganizations() {
4392
+ var _a, _b, _c;
4393
+ // this.Loading = true;
4394
+ this.listOrganizations();
4395
+ (_a = this.OrganizationFormControl) === null || _a === void 0 ? void 0 : _a.reset();
4396
+ (_b = this.RepositoryFormControl) === null || _b === void 0 ? void 0 : _b.reset();
4397
+ if (this.UseBranches) {
4398
+ (_c = this.BranchesFormControl) === null || _c === void 0 ? void 0 : _c.reset();
4399
+ }
4400
+ }
4401
+ RemoveBranchOption(option) {
4402
+ const index = this.SelectedBranches.indexOf(option);
4403
+ if (index >= 0) {
4404
+ this.SelectedBranches.splice(index, 1);
4405
+ }
4406
+ this.emitBranchesChanged();
4407
+ }
4408
+ RepositoryChanged(event) {
4409
+ const repo = this.RepositoryFormControl;
4410
+ if (this.UseBranches) {
4411
+ this.BranchesFormControl.reset();
4412
+ this.SelectedBranches = [];
4413
+ this.listBranches();
4414
+ }
4415
+ if (!this.UseBranches) {
4416
+ this.listBuildPaths();
4417
+ }
4418
+ }
4419
+ SaveRepository() {
4420
+ this.Loading = true;
4421
+ const org = this.OrganizationFormControl.value;
4422
+ const repoName = this.RepositoryFormControl.value;
4423
+ this.appsFlowSvc
4424
+ .CreateRepository(org, repoName)
4425
+ .subscribe((response) => {
4426
+ if (response.Status.Code === 0) {
4427
+ this.listRepositories(repoName);
4428
+ this.CreatingRepository = false;
4429
+ }
4430
+ else {
4431
+ // TODO: Need to surface an error to the user...
4432
+ this.Loading = false;
4433
+ }
4434
+ });
4435
+ }
4436
+ // Helpers
4437
+ addBranchOption(value) {
4438
+ value = (value || '').trim();
4439
+ if (value && this.SelectedBranches.indexOf(value) < 0) {
4440
+ this.SelectedBranches.push(value);
4441
+ }
4442
+ this.BranchesInput.nativeElement.blur();
4443
+ this.emitBranchesChanged();
4444
+ }
4445
+ configureDevOpsAction() {
4446
+ setTimeout(() => {
4447
+ this.DevOpsActionLookupFormControl.setValue(this.DevOpsActionLookup);
4448
+ }, 0);
4449
+ }
4450
+ destroyFormControls() {
4451
+ var _a, _b, _c, _d;
4452
+ this.DevOpsSourceControlFormGroup.removeControl([this.SourceControlRoot, 'mainBranch'].join(''));
4453
+ (_a = this.DevOpsSourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.removeControl([this.SourceControlRoot, 'branches'].join(''));
4454
+ (_b = this.DevOpsSourceControlFormGroup) === null || _b === void 0 ? void 0 : _b.removeControl([this.SourceControlRoot, 'buildPath'].join(''));
4455
+ this.SelectedBranches = [];
4456
+ (_c = this.DevOpsSourceControlFormGroup) === null || _c === void 0 ? void 0 : _c.removeControl([this.SourceControlRoot, 'organization'].join(''));
4457
+ (_d = this.DevOpsSourceControlFormGroup) === null || _d === void 0 ? void 0 : _d.removeControl([this.SourceControlRoot, 'repository'].join(''));
4458
+ }
4459
+ emitBranchesChanged() {
4460
+ var _a, _b;
4461
+ if (((_a = this.SelectedBranches) === null || _a === void 0 ? void 0 : _a.length) > 0 &&
4462
+ (!this.MainBranchFormControl.value ||
4463
+ this.SelectedBranches.indexOf(this.MainBranchFormControl.value) < 0)) {
4464
+ this.MainBranchFormControl.setValue(this.SelectedBranches.find((branch) => branch === 'main' || branch === 'master') || this.SelectedBranches[0]);
4465
+ }
4466
+ else if (((_b = this.SelectedBranches) === null || _b === void 0 ? void 0 : _b.length) <= 0) {
4467
+ this.MainBranchFormControl.reset();
4468
+ }
4469
+ this.BranchesFormControl.setValue(this.SelectedBranches.join(','));
4470
+ this.BranchesChanged(this.SelectedBranches || []);
4471
+ }
4472
+ listBranches() {
4473
+ if (this.UseBranches) {
4474
+ this.Loading = true;
4475
+ this.appsFlowSvc
4476
+ .ListBranches(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
4477
+ .subscribe((response) => {
4478
+ var _a, _b, _c;
4479
+ this.BranchOptions = response.Model;
4480
+ this.Loading = false;
4481
+ if (((_b = (_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Branches) === null || _b === void 0 ? void 0 : _b.length) > 0) {
4482
+ this.SelectedBranches = this.EditingSourceControl.Branches;
4483
+ }
4484
+ else if (((_c = this.BranchOptions) === null || _c === void 0 ? void 0 : _c.length) === 1) {
4485
+ this.BranchesFormControl.setValue(this.BranchOptions[0].Name);
4486
+ this.SelectedBranches = [this.BranchOptions[0].Name];
4487
+ }
4488
+ this.emitBranchesChanged();
4489
+ this.listBuildPaths();
4490
+ });
4491
+ }
4492
+ }
4493
+ listBuildPaths() {
4494
+ if (this.UseBuildPath) {
4495
+ this.Loading = true;
4496
+ this.appsFlowSvc
4497
+ .ListBuildPaths(this.OrganizationFormControl.value, this.RepositoryFormControl.value)
4498
+ .subscribe((response) => {
4499
+ var _a;
4500
+ this.BuildPathOptions = response.Model;
4501
+ this.Loading = false;
4502
+ if (((_a = this.BuildPathOptions) === null || _a === void 0 ? void 0 : _a.length) === 1) {
4503
+ this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);
4504
+ }
4505
+ });
4506
+ }
4507
+ }
4508
+ listOrganizations() {
4509
+ this.Loading = true;
4510
+ this.appsFlowSvc
4511
+ .ListOrganizations()
4512
+ .subscribe((response) => {
4513
+ var _a;
4514
+ this.OrganizationOptions = response.Model;
4515
+ this.Loading = false;
4516
+ if ((_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Organization) {
4517
+ setTimeout(() => {
4518
+ var _a;
4519
+ this.OrganizationFormControl.setValue(this.EditingSourceControl.Organization);
4520
+ this.listRepositories((_a = this.EditingSourceControl) === null || _a === void 0 ? void 0 : _a.Repository);
4521
+ }, 0);
4522
+ }
4523
+ });
4524
+ }
4525
+ listRepositories(activeRepo = null) {
4526
+ this.Loading = true;
4527
+ this.appsFlowSvc
4528
+ .ListRepositories(this.OrganizationFormControl.value)
4529
+ .subscribe((response) => {
4530
+ var _a;
4531
+ this.RepositoryOptions = response.Model;
4532
+ this.Loading = false;
4533
+ if (activeRepo) {
4534
+ setTimeout(() => {
4535
+ this.RepositoryFormControl.setValue(activeRepo);
4536
+ this.listBranches();
4537
+ if (!this.UseBranches) {
4538
+ this.listBuildPaths();
4539
+ }
4540
+ }, 0);
4541
+ }
4542
+ else if (((_a = this.RepositoryOptions) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
4543
+ this.CreatingRepository = true;
4544
+ }
4545
+ });
4546
+ }
4547
+ loadProjectHostingDetails() {
4548
+ var _a, _b, _c, _d;
4549
+ if (((_a = this.SelectedBranches) === null || _a === void 0 ? void 0 : _a.length) > 0) {
4550
+ this.HostingDetails.Loading = true;
4551
+ this.appsFlowSvc
4552
+ .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)
4553
+ .subscribe((response) => {
4554
+ this.HostingDetails = response.Model;
4555
+ this.HostingDetails.Loading = false;
4556
+ this.configureDevOpsAction();
4557
+ }, (err) => {
4558
+ this.HostingDetails.Loading = false;
4559
+ });
4560
+ }
4561
+ }
4562
+ setupFormControls() {
4563
+ var _a, _b, _c, _d, _e, _f, _g;
4564
+ this.destroyFormControls();
4565
+ this.DevOpsSourceControlFormGroup.addControl('devOpsActionLookup', new FormControl(this.DevOpsActionLookup || '', []));
4566
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'organization'].join(''), new FormControl((_a = this.EditingSourceControl.Organization) !== null && _a !== void 0 ? _a : '', Validators.required));
4567
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'repository'].join(''), new FormControl((_b = this.EditingSourceControl.Repository) !== null && _b !== void 0 ? _b : '', Validators.required));
4568
+ if (this.UseBranches) {
4569
+ 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));
4570
+ this.SelectedBranches = (_e = this.EditingSourceControl) === null || _e === void 0 ? void 0 : _e.Branches;
4571
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'mainBranch'].join(''), new FormControl((_f = this.EditingSourceControl.MainBranch) !== null && _f !== void 0 ? _f : '', Validators.required));
4572
+ }
4573
+ if (this.UseBuildPath) {
4574
+ this.DevOpsSourceControlFormGroup.addControl([this.SourceControlRoot, 'buildPath'].join(''), new FormControl((_g = this.BuildPath) !== null && _g !== void 0 ? _g : '', Validators.required));
4575
+ }
4576
+ }
4577
+ }
4578
+ DevopsSourceControlFormComponent.decorators = [
4579
+ { type: Component, args: [{
4580
+ selector: 'lcu-devops-source-control-form',
4581
+ template: "<div class=\"form-card\" fxFlex=\"35%\" fxFlex.lt-md=\"100%\">\n <mat-card class=\"spread\">\n <mat-card-header>\n <mat-card-title> Source Control </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div [formGroup]=\"DevOpsSourceControlFormGroup\">\n <div class=\"card\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"devOpsActionLookup\"\n placeholder=\"DevOps Action\"\n [disabled]=\"HostingDetails?.Loading\"\n (selectionChange)=\"DevOpsActionLookupChanged($event)\"\n >\n <ng-container\n *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\"\n >\n <mat-option\n [value]=\"devOpsActionLookup\"\n *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\"\n >\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n \n <mat-option value=\"\">-- Create New --</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"card\" *ngIf=\"OrganizationFormControl?.valid || !Loading\">\n <mat-form-field\n class=\"mat-full-width with-hint\"\n *ngIf=\"OrganizationOptions?.length > 0\"\n >\n <mat-icon class=\"org-icon\" matPrefix>corporate_fare</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'organization'\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n [disabled]=\"Loading || HostingDetails?.Loading\"\n required\n >\n <ng-container *ngFor=\"let orgOpt of OrganizationOptions\">\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-icon matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\"> refresh </mat-icon>\n \n <a\n matSuffix\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n \n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n \n <div\n class=\"card\"\n *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'repository'\"\n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \"\n [disabled]=\"\n !OrganizationFormControl?.valid || Loading || HostingDetails?.Loading\n \"\n (selectionChange)=\"RepositoryChanged($event)\"\n *ngIf=\"!CreatingRepository\"\n required\n >\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <input\n matInput\n placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\"\n *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || HostingDetails?.Loading\"\n required\n />\n \n <mat-icon\n matSuffix\n (click)=\"CreateRepository()\"\n [fxHide]=\"Loading || HostingDetails?.Loading\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\"\n >\n add_circle\n </mat-icon>\n \n <button mat-button type=\"button\" \n (click)=\"SaveRepository()\" \n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n \n <mat-icon\n matSuffix\n color=\"primary\"\n >\n save\n </mat-icon>\n </button>\n \n <button mat-button type=\"button\" \n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\">\n \n <mat-icon\n matSuffix\n \n >\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n \n <div\n class=\"card\"\n *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n \n <mat-label>Selected Branches</mat-label>\n \n <mat-autocomplete\n (optionSelected)=\"BranchOptionSelected($event)\"\n #branchOptions=\"matAutocomplete\"\n >\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n \n <mat-chip-list #selectedBranches>\n <mat-chip\n [removable]=\"true\"\n (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\"\n >\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n \n <input\n matInput\n placeholder=\"New Branch...\"\n [formControlName]=\"SourceControlRoot + 'branches'\"\n #branches\n [matAutocomplete]=\"branchOptions\"\n [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\"\n [disabled]=\"Loading || HostingDetails?.Loading\"\n required\n />\n </mat-chip-list>\n </mat-form-field>\n \n <mat-form-field\n class=\"mat-full-width with-hint\"\n [fxShow]=\"SelectedBranches?.length > 1\"\n >\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'mainBranch'\"\n placeholder=\"Main Branch\"\n [disabled]=\"Loading || HostingDetails?.Loading\"\n (selectionChange)=\"MainBranchChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let branch of SelectedBranches\">\n <mat-option [value]=\"branch\">\n {{ branch }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-icon matSuffix (click)=\"RefreshOrganizations()\"> refresh </mat-icon>\n \n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n \n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"> launch </mat-icon>\n </a>\n \n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n \n <div\n class=\"card\"\n *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \"\n >\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n \n <mat-select\n [formControlName]=\"SourceControlRoot + 'buildPath'\"\n placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\"\n (selectionChange)=\"BuildPathChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n \n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n \n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n \n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n \n <h4\n class=\"mat-title\"\n *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\"\n >\n Loading branches\n </h4>\n \n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n </div>\n \n </mat-card-content>\n </mat-card>\n </div>\n",
4582
+ styles: [""]
4583
+ },] }
4584
+ ];
4585
+ DevopsSourceControlFormComponent.ctorParameters = () => [
4586
+ { type: FormBuilder },
4587
+ { type: ApplicationsFlowService }
4588
+ ];
4589
+ DevopsSourceControlFormComponent.propDecorators = {
4590
+ BranchesInput: [{ type: ViewChild, args: ['branches',] }],
4591
+ Environment: [{ type: Input, args: ['environment',] }]
4592
+ };
4593
+
4156
4594
  class ApplicationsFlowModule {
4157
4595
  static forRoot() {
4158
4596
  return {
@@ -4163,7 +4601,7 @@ class ApplicationsFlowModule {
4163
4601
  ProjectService,
4164
4602
  NPMService,
4165
4603
  FormsService,
4166
- ApplicationsFlowEventsService,
4604
+ EaCService
4167
4605
  ],
4168
4606
  };
4169
4607
  }
@@ -4204,7 +4642,10 @@ ApplicationsFlowModule.decorators = [
4204
4642
  TwoColumnHeaderComponent,
4205
4643
  CardCarouselComponent,
4206
4644
  SecurityToggleComponent,
4207
- ProcessorDetailsFormComponent
4645
+ ProcessorDetailsFormComponent,
4646
+ SourceControlFormComponent,
4647
+ BuildPipelineFormComponent,
4648
+ DevopsSourceControlFormComponent
4208
4649
  ],
4209
4650
  imports: [
4210
4651
  FathymSharedModule,
@@ -4251,7 +4692,10 @@ ApplicationsFlowModule.decorators = [
4251
4692
  TwoColumnHeaderComponent,
4252
4693
  CardCarouselComponent,
4253
4694
  SecurityToggleComponent,
4254
- ProcessorDetailsFormComponent
4695
+ ProcessorDetailsFormComponent,
4696
+ SourceControlFormComponent,
4697
+ BuildPipelineFormComponent,
4698
+ DevopsSourceControlFormComponent
4255
4699
  ],
4256
4700
  entryComponents: [
4257
4701
  ApplicationsFlowProjectsElementComponent,
@@ -4285,7 +4729,10 @@ ApplicationsFlowModule.decorators = [
4285
4729
  TwoColumnHeaderComponent,
4286
4730
  CardCarouselComponent,
4287
4731
  SecurityToggleComponent,
4288
- ProcessorDetailsFormComponent
4732
+ ProcessorDetailsFormComponent,
4733
+ SourceControlFormComponent,
4734
+ BuildPipelineFormComponent,
4735
+ DevopsSourceControlFormComponent
4289
4736
  ],
4290
4737
  },] }
4291
4738
  ];
@@ -4318,5 +4765,5 @@ class FormModel {
4318
4765
  * Generated bundle index. Do not edit.
4319
4766
  */
4320
4767
 
4321
- export { ActionsModel, ApplicationsFlowModule, ApplicationsFlowProjectsContext, ApplicationsFlowProjectsElementComponent, ApplicationsFlowProjectsElementState, ApplicationsFlowService, ApplicationsFlowState, ApplicationsFlowStateContext, BaseFormConfigModel, CardFormConfigModel, CreateProjectWizardComponent, DevSettingsPresetModel, DomainModel, DynamicTabsModel, 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, 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 };
4768
+ 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, 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 };
4322
4769
  //# sourceMappingURL=lowcodeunit-applications-flow-common.js.map