@lowcodeunit/applications-flow-common 1.36.105-merge → 1.36.108-merge

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.
@@ -1 +1 @@
1
- {"version":3,"file":"lowcodeunit-applications-flow-common.mjs","sources":["../../../projects/common/src/lib/models/form.values.model.ts","../../../projects/common/src/lib/services/forms.service.ts","../../../projects/common/src/lib/services/applications-flow.service.ts","../../../projects/common/src/lib/services/project.service.ts","../../../projects/common/src/lib/state/applications-flow-state.context.ts","../../../projects/common/src/lib/state/applications-flow.state.ts","../../../projects/common/src/lib/services/eac.service.ts","../../../projects/common/src/lib/elements/projects/controls/project-items/project-items.component.ts","../../../projects/common/src/lib/elements/projects/controls/project-items/project-items.component.html","../../../projects/common/src/lib/elements/projects/controls/header/header.component.ts","../../../projects/common/src/lib/elements/projects/controls/header/header.component.html","../../../projects/common/src/lib/models/card-form-config.model.ts","../../../projects/common/src/lib/elements/form-card/form-card.component.ts","../../../projects/common/src/lib/elements/form-card/form-card.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/domains/domains.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/domains/domains.component.html","../../../projects/common/src/lib/models/dynamic-tabs.model.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/general.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/general.component.html","../../../projects/common/src/lib/elements/projects/controls/forms/source-control/source-control.component.ts","../../../projects/common/src/lib/elements/projects/controls/forms/source-control/source-control.component.html","../../../projects/common/src/lib/services/npm.service.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.html","../../../projects/common/src/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.ts","../../../projects/common/src/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/devops/devops.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/devops/devops.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.html","../../../projects/common/src/lib/elements/dynamic-tabs/dynamic-tabs.component.ts","../../../projects/common/src/lib/elements/dynamic-tabs/dynamic-tabs.component.html","../../../projects/common/src/lib/elements/projects/controls/project-tabs/project-tabs.component.ts","../../../projects/common/src/lib/elements/projects/controls/project-tabs/project-tabs.component.html","../../../projects/common/src/lib/elements/projects/projects.component.ts","../../../projects/common/src/lib/elements/projects/projects.component.html","../../../projects/common/src/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.ts","../../../projects/common/src/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.html","../../../projects/common/src/lib/elements/projects/controls/builds/builds.component.ts","../../../projects/common/src/lib/elements/projects/controls/builds/builds.component.html","../../../projects/common/src/lib/elements/projects/controls/recent-activities/recent-activities.component.ts","../../../projects/common/src/lib/elements/projects/controls/recent-activities/recent-activities.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.html","../../../projects/common/src/lib/elements/base-form/base-form.component.ts","../../../projects/common/src/lib/elements/base-form/base-form.component.html","../../../projects/common/src/lib/models/base-form-config.model.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.html","../../../projects/common/src/lib/elements/projects/controls/git-auth/git-auth.component.ts","../../../projects/common/src/lib/elements/projects/controls/git-auth/git-auth.component.html","../../../projects/common/src/lib/elements/three-column/three-column.component.ts","../../../projects/common/src/lib/elements/three-column/three-column.component.html","../../../projects/common/src/lib/elements/slotted-card/slotted-card.component.ts","../../../projects/common/src/lib/elements/slotted-card/slotted-card.component.html","../../../projects/common/src/lib/elements/project-info-card/project-info-card.component.ts","../../../projects/common/src/lib/elements/project-info-card/project-info-card.component.html","../../../projects/common/src/lib/elements/analytics-card/analytics-card.component.ts","../../../projects/common/src/lib/elements/analytics-card/analytics-card.component.html","../../../projects/common/src/lib/elements/feed-card-sm/feed-card-sm.component.ts","../../../projects/common/src/lib/elements/feed-card-sm/feed-card-sm.component.html","../../../projects/common/src/lib/controls/devops-source-control-form/devops-source-control-form.component.ts","../../../projects/common/src/lib/controls/devops-source-control-form/devops-source-control-form.component.html","../../../projects/common/src/lib/dialogs/source-control-dialog/source-control-dialog.component.ts","../../../projects/common/src/lib/dialogs/source-control-dialog/source-control-dialog.component.html","../../../projects/common/src/lib/controls/feed-comment-form/feed-comment-form.component.ts","../../../projects/common/src/lib/controls/feed-comment-form/feed-comment-form.component.html","../../../projects/common/src/lib/elements/main-feed-card/main-feed-card.component.ts","../../../projects/common/src/lib/elements/main-feed-card/main-feed-card.component.html","../../../projects/common/src/lib/elements/two-column-header/two-column-header.component.ts","../../../projects/common/src/lib/elements/two-column-header/two-column-header.component.html","../../../projects/common/src/lib/elements/card-carousel/card-carousel.component.ts","../../../projects/common/src/lib/elements/card-carousel/card-carousel.component.html","../../../projects/common/src/lib/controls/security-toggle/security-toggle.component.ts","../../../projects/common/src/lib/controls/security-toggle/security-toggle.component.html","../../../projects/common/src/lib/controls/processor-details-form/processor-details-form.component.ts","../../../projects/common/src/lib/controls/processor-details-form/processor-details-form.component.html","../../../projects/common/src/lib/controls/source-control-form/source-control-form.component.ts","../../../projects/common/src/lib/controls/source-control-form/source-control-form.component.html","../../../projects/common/src/lib/controls/build-pipeline-form/build-pipeline-form.component.ts","../../../projects/common/src/lib/controls/build-pipeline-form/build-pipeline-form.component.html","../../../projects/common/src/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.ts","../../../projects/common/src/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.html","../../../projects/common/src/lib/controls/edit-application-form/edit-application-form.component.ts","../../../projects/common/src/lib/controls/edit-application-form/edit-application-form.component.html","../../../projects/common/src/lib/elements/breadcrumb/breadcrumb.component.ts","../../../projects/common/src/lib/elements/breadcrumb/breadcrumb.component.html","../../../projects/common/src/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.ts","../../../projects/common/src/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.html","../../../projects/common/src/lib/dialogs/edit-application-dialog/edit-application-dialog.component.ts","../../../projects/common/src/lib/dialogs/edit-application-dialog/edit-application-dialog.component.html","../../../projects/common/src/lib/dialogs/new-application-dialog/new-application-dialog.component.ts","../../../projects/common/src/lib/dialogs/new-application-dialog/new-application-dialog.component.html","../../../projects/common/src/lib/dialogs/processor-details-dialog/processor-details-dialog.component.ts","../../../projects/common/src/lib/dialogs/processor-details-dialog/processor-details-dialog.component.html","../../../projects/common/src/lib/elements/skeleton-feed-card/skeleton-feed-card.component.ts","../../../projects/common/src/lib/elements/skeleton-feed-card/skeleton-feed-card.component.html","../../../projects/common/src/lib/dialogs/upgrade-dialog/upgrade-dialog.component.ts","../../../projects/common/src/lib/dialogs/upgrade-dialog/upgrade-dialog.component.html","../../../projects/common/src/lib/controls/emulated-devices-toggle/emulated-devices-toggle.component.ts","../../../projects/common/src/lib/controls/emulated-devices-toggle/emulated-devices-toggle.component.html","../../../projects/common/src/lib/state/iot-ensemble.state.ts","../../../projects/common/src/lib/services/iot-ensemble.service.ts","../../../projects/common/src/lib/dialogs/feed-header-dialog/feed-header-dialog.component.ts","../../../projects/common/src/lib/dialogs/feed-header-dialog/feed-header-dialog.component.html","../../../projects/common/src/lib/elements/feed-header/feed-header.component.ts","../../../projects/common/src/lib/elements/feed-header/feed-header.component.html","../../../projects/common/src/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.ts","../../../projects/common/src/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.html","../../../projects/common/src/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.ts","../../../projects/common/src/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.html","../../../projects/common/src/lib/controls/state-config-form/state-config-form.component.ts","../../../projects/common/src/lib/controls/state-config-form/state-config-form.component.html","../../../projects/common/src/lib/dialogs/state-config-dialog/state-config-dialog.component.ts","../../../projects/common/src/lib/dialogs/state-config-dialog/state-config-dialog.component.html","../../../projects/common/src/lib/controls/edit-project-form/edit-project-form.component.ts","../../../projects/common/src/lib/controls/edit-project-form/edit-project-form.component.html","../../../projects/common/src/lib/dialogs/edit-project-dialog/edit-project-dialog.component.ts","../../../projects/common/src/lib/dialogs/edit-project-dialog/edit-project-dialog.component.html","../../../projects/common/src/lib/elements/page-header/page-header.component.ts","../../../projects/common/src/lib/elements/page-header/page-header.component.html","../../../projects/common/src/lib/applications-flow.module.ts","../../../projects/common/src/lib/models/project-actions.model.ts","../../../projects/common/src/lib/models/user-feed.model.ts","../../../projects/common/src/lib/models/actions.model.ts","../../../projects/common/src/lib/models/form-actions.model.ts","../../../projects/common/src/lib/models/dev-settings-preset.model.ts","../../../projects/common/src/lib/models/domain.model.ts","../../../projects/common/src/lib/models/form.model.ts","../../../projects/common/src/lowcodeunit-applications-flow-common.ts"],"sourcesContent":["/**\n * Model for form values\n *\n */\nexport class FormValuesModel {\n /**\n * Form ID\n */\n public Id: string;\n\n /**\n * Form values\n */\n public Values: object;\n\n constructor(id: string, values: object) {\n this.Id = id;\n this.Values = values;\n }\n}\n","import { FormValuesModel } from './../models/form.values.model';\nimport { FormModel } from './../models/form.model';\nimport { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsService {\n /**\n * List of forms\n */\n private _form: FormModel;\n public set Form(val: FormModel) {\n if (!val) {\n return;\n }\n\n this._form = val;\n this.forms.push(val);\n this.createValuesReference(val);\n }\n\n public get Form(): FormModel {\n return this._form;\n }\n\n /**\n * When any form is being edited\n */\n public FormIsDirty: Subject<boolean>;\n\n protected forms: Array<FormModel>;\n\n /**\n * Storage reference for intial form values\n */\n // public formsInitialValues: Array<FormModel>;\n protected previousFormValues: Array<FormValuesModel>;\n\n /**\n *\n * @param val as string - enabled form name\n * @param val as boolen - enable/disable all forms\n *\n * Enable / disable forms, use this when a form is being edited and\n * all other forms need to be disabled\n */\n public DisableForms(val: string | boolean): void {\n const preventEvent: { onlySelf: boolean; emitEvent: boolean } = {\n onlySelf: true,\n emitEvent: false,\n };\n\n this.forms.forEach((form: FormModel) => {\n if (typeof val === 'boolean') {\n val\n ? form.Form.disable(preventEvent)\n : form.Form.enable(preventEvent);\n } else {\n if (form.Id === val) {\n form.Form.enable(preventEvent);\n } else {\n form.Form.disable(preventEvent);\n }\n }\n });\n }\n\n /**\n * Create a reference of initial form data\n * Use this to compare if values really changed, because\n * the user could change values back to the original\n *\n * @param obj form data\n */\n protected createValuesReference(val: FormModel): void {\n // const values: Array<{key: string, value: string}> = [];\n const keyValues: object = {};\n\n for (const [key, value] of Object.entries(val.Form.controls)) {\n // values.push({key, value: value.value});\n keyValues[key] = value.value;\n }\n\n // this.formsValues.push(new FormValuesModel(val.Id, val.Form.value));\n this.previousFormValues.push(new FormValuesModel(val.Id, keyValues));\n }\n\n /**\n * Update value reference after saves\n *\n * @param val form model with values\n */\n public UpdateValuesReference(val: FormModel): void {\n const index: number = this.previousFormValues.findIndex(\n (x: FormValuesModel) => {\n return x.Id === val.Id;\n }\n );\n\n this.previousFormValues[index].Values = val.Form.value;\n\n // TODO: look at consolidating updating this.forms and this.previousFormValues - shannon (7-14-21)\n const formIndex: number = this.forms.findIndex((x: FormModel) => {\n return x.Id === val.Id;\n });\n\n this.forms[formIndex] = val;\n }\n\n /**\n * Reset form values back to previous\n *\n * @param id form id\n */\n public ResetFormValues(id: string): void {\n this.forms.find((form: FormModel) => {\n if (form.Id === id) {\n form.Form.patchValue(this.GetPreviousFormValues(id).Values);\n }\n });\n }\n\n /**\n *\n * @param id form id to search for\n *\n * @returns previous form values\n */\n public GetPreviousFormValues(id: string): FormValuesModel {\n return this.previousFormValues.find((x: FormValuesModel) => {\n return x.Id === id;\n });\n }\n\n /**\n * Check for actual form changes, because the user\n * could have canceled or changed the value back to the\n * original\n *\n * @param id form id\n * @param formToCheck form to be tested\n */\n public ForRealThough(id: string, formToCheck: FormGroup): boolean {\n const formVals: FormValuesModel = this.previousFormValues.find(\n (x: FormValuesModel) => {\n return x.Id === id;\n }\n );\n\n for (const key in formToCheck.controls) {\n if (formToCheck.controls[key].value !== formVals.Values[key]) {\n this.FormIsDirty.next(true);\n return true;\n }\n }\n\n this.FormIsDirty.next(false);\n return false;\n }\n\n constructor() {\n this.forms = [];\n this.previousFormValues = [];\n this.FormIsDirty = new Subject();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LCUServiceSettings } from '@lcu/common';\nimport { Observable } from 'rxjs';\nimport { EnterpriseAsCode } from '@semanticjs/common';\nimport { UnpackLowCodeUnitRequest } from '../state/applications-flow.state';\nimport { FeedEntry } from '../models/user-feed.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationsFlowService {\n // Fields\n protected apiRoot: string;\n\n // Properties\n\n // Constructors\n constructor(\n protected http: HttpClient,\n protected settings: LCUServiceSettings\n ) {\n this.apiRoot = settings.APIRoot;\n }\n\n // API Methods\n public ConfigureDevOpsAction(actionLookup: string): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/devops/actions/${actionLookup}/configure`,\n {},\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public CreateRepository(\n organization: string,\n repoName: string\n ): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\n {\n Name: repoName,\n },\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public EnsureUserEnterprise(): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprise/ensure`,\n {},\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public EnterpriseAsCodeRemovals(\n removals: EnterpriseAsCode\n ): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/removals/eac`,\n removals,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public GetActiveEnterprise(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public HasValidConnection(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/connection/valid`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListProjects(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/projects`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListBranches(\n organization: string,\n repository: string\n ): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/branches`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListBuildPaths(\n organization: string,\n repository: string,\n branch: string = ''\n ): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/build-paths?branch=${branch}`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListEnterprises(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/list`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListOrganizations(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListRepositories(organization: string): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public LoadEnterpriseAsCode(): Observable<object> {\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/eac`, {\n headers: this.loadHeaders(),\n });\n }\n\n // public LoadProjectHostingDetails(\n // organization: string,\n // repository: string,\n // branch: string\n // ): Observable<object> {\n // branch = encodeURIComponent(branch);\n\n // return this.http.get(\n // `${this.apiRoot}/api/lowcodeunit/manage/projects/organizations/${organization}/repositories/${repository}/branches/${branch}/hosting/details`,\n // {\n // headers: this.loadHeaders(),\n // }\n // );\n // }\n\n public LoadProjectHostingDetails(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/projects/hosting/details`,\n\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public LoadUserFeed(\n page: number,\n pageSize: number,\n project: string,\n applications: string[]\n ): Observable<object> {\n var apps = JSON.stringify(applications || []);\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/userfeed?page=${page}&pageSize=${pageSize}&project=${project}&applications=${apps}`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public SaveEnterpriseAsCode(eac: EnterpriseAsCode): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/eac`,\n eac,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public SetActiveEnterprise(activeEntLookup: string): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\n {\n ActiveEnterpriseLookup: activeEntLookup,\n },\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public SubmitFeedEntry(entry: FeedEntry): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/userfeed/entry`,\n entry,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public UnpackLowCodeUnit(\n req: UnpackLowCodeUnitRequest\n ): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/projects/unpack`,\n req,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n // Helpers\n protected loadHeaders(): { [header: string]: string | string[] } {\n return {};\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseModeledResponse, BaseResponse, Status } from '@lcu/common';\nimport { debug } from 'console';\nimport {\n EaCApplicationAsCode,\n EaCProjectAsCode,\n EnterpriseAsCode,\n} from '@semanticjs/common';\nimport {\n ApplicationsFlowState,\n GitHubWorkflowRun,\n UnpackLowCodeUnitRequest,\n} from '../state/applications-flow.state';\nimport { ApplicationsFlowService } from './applications-flow.service';\nimport {\n FeedEntry,\n FeedItem,\n UserFeedResponse,\n} from '../models/user-feed.model';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProjectService {\n public CreatingProject: boolean;\n\n public EditingProjectLookup: string;\n\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected activatedRoute: ActivatedRoute\n ) {}\n\n // public CreateRepository(state: ApplicationsFlowState, org: string, repoName: string): void {\n // state.GitHub.Loading = true;\n\n // this.appsFlowSvc\n // .CreateRepository(org, repoName)\n // .subscribe((response: BaseResponse) => {\n // if (response.Status.Code === 0) {\n // this.listRepositories(repoName);\n\n // state.GitHub.CreatingRepository = false;\n // } else {\n // // TODO: Need to surface an error to the user...\n\n // state.GitHub.Loading = false;\n // }\n // });\n // }\n\n public EnsureUserEnterprise(\n state: ApplicationsFlowState\n ): Promise<BaseResponse> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.EnsureUserEnterprise().subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n // const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(response);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async EnterpriseAsCodeRemovals(\n state: ApplicationsFlowState,\n eac: EnterpriseAsCode\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.EnterpriseAsCodeRemovals(eac).subscribe(\n async (response: BaseModeledResponse<string>) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public GenerateRoutedApplications(\n applications: { [lookup: string]: EaCApplicationAsCode },\n state: ApplicationsFlowState\n ): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n const appLookups = Object.keys(applications);\n\n const apps = appLookups.map((appLookup) => applications[appLookup]);\n\n let appRoutes =\n apps.map((app) => {\n return app?.LookupConfig?.PathRegex.replace('.*', '');\n }) || [];\n\n appRoutes = appRoutes.filter((ar) => ar != null);\n\n let routeBases: string[] = [];\n\n appRoutes.forEach((appRoute) => {\n const appRouteParts = appRoute.split('/');\n\n const appRouteBase = `/${appRouteParts[1]}`;\n\n if (routeBases.indexOf(appRouteBase) < 0) {\n routeBases.push(appRouteBase);\n }\n });\n\n let workingAppLookups = [...(appLookups || [])];\n\n routeBases = routeBases.sort((a, b) => b.localeCompare(a));\n\n const routeSet =\n routeBases.reduce((prevRouteMap, currentRouteBase) => {\n const routeMap = {\n ...prevRouteMap,\n };\n\n const filteredAppLookups = workingAppLookups.filter((wal) => {\n const wa = applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(\n currentRouteBase\n );\n });\n\n routeMap[currentRouteBase] =\n filteredAppLookups.reduce((prevAppMap, appLookup) => {\n const appMap = {\n ...prevAppMap,\n };\n\n appMap[appLookup] = applications[appLookup];\n\n return appMap;\n }, {}) || {};\n\n workingAppLookups = workingAppLookups.filter((wa) => {\n return filteredAppLookups.indexOf(wa) < 0;\n });\n\n return routeMap;\n }, {}) || {};\n\n let routeSetKeys = Object.keys(routeSet);\n\n routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));\n\n const routeSetResult = {};\n\n routeSetKeys.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));\n\n return routeSetResult;\n }\n\n public async GetActiveEnterprise(\n state: ApplicationsFlowState\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n state.LoadingActiveEnterprise = true;\n\n this.appsFlowSvc.GetActiveEnterprise().subscribe(\n async (\n response: BaseModeledResponse<{\n Name: string;\n Lookup: string;\n }>\n ) => {\n state.LoadingActiveEnterprise = false;\n\n if (response.Status.Code === 0) {\n state.ActiveEnterpriseLookup = response.Model?.Lookup;\n\n resolve();\n } else {\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.LoadingActiveEnterprise = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public HasValidConnection(\n state: ApplicationsFlowState,\n forceEnsureUser: boolean = false\n ): Promise<EnterpriseAsCode> {\n return new Promise(async (resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.HasValidConnection().subscribe(\n async (response: BaseResponse) => {\n state.GitHub.HasConnection = response.Status.Code === 0;\n\n if (state.GitHub.HasConnection || forceEnsureUser) {\n } else {\n }\n\n resolve({});\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async ListEnterprises(state: ApplicationsFlowState): Promise<any[]> {\n return new Promise((resolve, reject) => {\n state.LoadingEnterprises = true;\n\n this.appsFlowSvc.ListEnterprises().subscribe(\n async (response: BaseModeledResponse<Array<any>>) => {\n state.LoadingEnterprises = false;\n\n if (response.Status.Code === 0) {\n state.Enterprises = response.Model;\n\n resolve(response.Model);\n } else {\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.LoadingEnterprises = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public LoadEnterpriseAsCode(\n state: ApplicationsFlowState\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.LoadEnterpriseAsCode().subscribe(\n (response: BaseModeledResponse<EnterpriseAsCode>) => {\n state.Loading = false;\n\n if (response.Status.Code === 0) {\n state.EaC = response.Model || {};\n } else if (response.Status.Code === 3) {\n }\n\n state.EaC = state.EaC || {};\n\n this.CreatingProject =\n Object.keys(state?.EaC?.Projects || {}).length <= 0;\n\n resolve(state.EaC);\n\n console.log(state);\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async LoadUserFeed(\n page: number,\n pageSize: number,\n forCheck: boolean = false,\n state: ApplicationsFlowState\n ): Promise<Array<FeedItem>> {\n return new Promise((resolve, reject) => {\n state.LoadingFeed = !forCheck;\n\n let paramMap = this.activatedRoute.snapshot.children[0].paramMap;\n\n let result = this.loadApplicationsForFeed(state, paramMap);\n\n this.appsFlowSvc\n .LoadUserFeed(\n page,\n pageSize,\n result.Project,\n result.Applications\n )\n .subscribe(\n async (response: UserFeedResponse) => {\n state.LoadingFeed = false;\n\n if (response.Status.Code === 0) {\n if (!forCheck) {\n state.Feed = response.Items;\n\n state.FeedSourceControlLookups =\n response.SourceControlLookups;\n\n state.FeedActions = response.Actions;\n\n state.FeedCheck = null;\n } else {\n let items = response.Items?.filter(\n (i) =>\n !state.Feed?.find((f) => f.ID == i.ID)\n );\n\n if (items?.length > 0) {\n state.FeedCheck = response;\n }\n }\n // console.log(\"ITEMZ: \", response.Items)\n\n resolve(response.Items);\n } else {\n reject(response.Status);\n }\n },\n (err) => {\n state.LoadingFeed = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async SetActiveEnterprise(\n state: ApplicationsFlowState,\n activeEntLookup: string\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n state.LoadingFeed = true;\n\n this.appsFlowSvc.SetActiveEnterprise(activeEntLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.EditingProjectLookup = null;\n\n console.log(\n 'project service active ent: ',\n activeEntLookup\n );\n\n state.ActiveEnterpriseLookup = activeEntLookup;\n\n console.log(\n 'project service State active ent: ',\n state.ActiveEnterpriseLookup\n );\n\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async SaveEnterpriseAsCode(\n state: ApplicationsFlowState,\n eac: EnterpriseAsCode\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.SaveEnterpriseAsCode(eac).subscribe(\n async (response: BaseModeledResponse<string>) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public SetCreatingProject(creatingProject: boolean): void {\n this.CreatingProject = creatingProject;\n\n this.EditingProjectLookup = null;\n }\n\n public SetEditProjectSettings(\n state: ApplicationsFlowState,\n projectLookup: string\n ): Promise<any> {\n return new Promise((resolve, reject) => {\n if (projectLookup != null) {\n state.Loading = false;\n\n this.EditingProjectLookup = null;\n\n setTimeout(() => {\n this.EditingProjectLookup = projectLookup;\n\n resolve({});\n }, 0);\n\n this.CreatingProject = false;\n\n console.log(state);\n } else {\n state.Loading = false;\n\n this.EditingProjectLookup = projectLookup;\n\n this.CreatingProject = false;\n\n resolve({});\n }\n });\n }\n\n public async SubmitFeedEntry(\n state: ApplicationsFlowState,\n entry: FeedEntry\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.SubmitFeedEntry(entry).subscribe(\n async (response: BaseModeledResponse<string>) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public ToggleCreateProject(): void {\n this.SetCreatingProject(!this.CreatingProject);\n }\n\n public UnpackLowCodeUnit(\n state: ApplicationsFlowState,\n req: UnpackLowCodeUnitRequest\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.UnpackLowCodeUnit(req).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n // Helpers\n protected loadApplicationsForFeed(\n state: ApplicationsFlowState,\n paramMap: any\n ) {\n // this.activatedRoute.paramMap.subscribe(async (paramMap) => {\n var project = paramMap.get('projectLookup') || '';\n\n var route = paramMap.get('appRoute');\n\n var application = paramMap.get('appLookup');\n\n var applications: string[] = [];\n\n if (application) {\n applications.push(application);\n } else if (route && project) {\n const apps: { [lookup: string]: EaCApplicationAsCode } = {};\n\n state.EaC.Projects[project].ApplicationLookups.forEach(\n (appLookup: string) => {\n apps[appLookup] = state.EaC.Applications[appLookup];\n }\n );\n\n var routedApps = this.GenerateRoutedApplications(apps, state);\n\n var currentApps = routedApps[route];\n\n applications = Object.keys(currentApps) || [];\n }\n\n return {\n Applications: applications,\n Project: project,\n };\n // });\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { StateContext } from '@lcu/common';\nimport { ApplicationsFlowState } from './applications-flow.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationsFlowStateContext extends StateContext<ApplicationsFlowState> {\n // Constructors\n constructor(protected injector: Injector) {\n super(injector);\n }\n\n // API Methods\n public AddApplication(): void {\n this.Execute({\n Arguments: {},\n Type: 'AddApplication',\n });\n }\n\n // Helpers\n protected defaultValue(): ApplicationsFlowState {\n return { Loading: true } as ApplicationsFlowState;\n }\n\n protected loadStateKey(): string {\n return 'main';\n }\n\n protected loadStateName(): string {\n return 'lcu';\n }\n}\n","import { EnterpriseAsCode } from '@semanticjs/common';\nimport {\n FeedItem,\n FeedItemAction,\n UserFeedResponse,\n} from '../models/user-feed.model';\n\nexport class ApplicationsFlowState {\n public ActiveEnterpriseLookup?: string;\n\n public EaC?: EnterpriseAsCode;\n\n public Enterprises?: Array<{ Name: string; Lookup: string }>;\n\n public Feed?: Array<FeedItem>;\n\n public FeedActions?: Array<FeedItemAction>;\n\n public FeedCheck?: UserFeedResponse;\n\n public FeedSourceControlLookups?: Array<string>;\n\n public GitHub?: GitHubSetupState;\n\n public HostingDetails?: ProjectHostingDetails;\n\n public Loading?: boolean;\n\n public LoadingActiveEnterprise?: boolean;\n\n public LoadingEnterprises?: boolean;\n\n public LoadingFeed?: boolean;\n\n // public Projects?: ProjectState[];\n\n public Unleashed?: boolean;\n\n public UserEnterpriseLookup?: string;\n\n constructor() {\n this.GitHub = {};\n\n this.HostingDetails = {};\n\n this.Loading = true;\n\n this.LoadingActiveEnterprise = true;\n\n this.LoadingEnterprises = true;\n\n this.LoadingFeed = true;\n\n // this.Projects = [];\n }\n}\n\n// export class ProjectState {\n// public ActionsSet?: { [id: string]: DevOpsAction };\n\n// public Applications?: ApplicationState[];\n\n// public Description?: string;\n\n// public Host?: string;\n\n// public ID?: string;\n\n// public Image?: string;\n\n// public LCUs?: GitHubLowCodeUnit[];\n\n// public Name?: string;\n\n// public PreventInheritedApplications?: boolean;\n\n// public Runs?: GitHubWorkflowRun[];\n// }\n\n// export class ApplicationState {\n// public IsPrivate?: boolean;\n\n// public Name?: string;\n\n// public Organization?: string;\n\n// public PathRegex?: string;\n\n// public Priority?: number;\n\n// public Repository?: string;\n\n// public Version?: string;\n// }\n\nexport class GitHubSetupState {\n public BranchOptions?: GitHubBranch[];\n\n public CreatingRepository?: boolean;\n\n public HasConnection?: boolean;\n\n public Loading?: boolean;\n\n public OrganizationOptions?: GitHubOrganization[];\n\n public RepositoryOptions?: GitHubRepository[];\n}\n\nexport class GitHubBranch {\n public Name?: string;\n}\n\n// export class GitHubLowCodeUnit {\n// public Branch?: string;\n\n// public ID?: string;\n\n// public Lookup?: string;\n\n// public Organization?: string;\n\n// public Repository?: string;\n// }\n\nexport class GitHubOrganization {\n public Name?: string;\n}\n\nexport class GitHubRepository {\n public CloneURL?: string;\n\n public Name?: string;\n}\n\nexport class GitHubWorkflowRun {\n public Conclusion?: string;\n\n public CreatedAt?: string;\n\n public ID?: string;\n\n public LCUID?: string;\n\n public RunNumber?: number;\n\n public Status?: string;\n\n public Workflow?: string;\n\n public UpdatedAt?: string;\n}\n\nexport class UnpackLowCodeUnitRequest {\n public ApplicationLookup?: string;\n\n public ApplicationName?: string;\n\n public Version?: string;\n}\n\n// export class DevOpsAction {\n// public Details?: string;\n\n// public ID?: string;\n\n// public Name?: string;\n\n// public Overwrite?: boolean;\n\n// public Path?: string;\n\n// public Template?: string;\n// }\n\nexport class ProjectHostingDetails {\n public HostingOptions?: ProjectHostingOption[];\n\n public Loading?: boolean;\n}\n\nexport class ProjectHostingOption {\n public ArtifactType?: string;\n\n public Description?: string;\n\n public Image?: string;\n\n public Inputs?: ProjectHostingOptionInput[];\n\n public Lookup?: string;\n\n public Name?: string;\n\n public Path?: string;\n\n public Templates?: string[];\n}\n\nexport class ProjectHostingOptionInput {\n public DefaultValue?: string;\n\n public Hint?: string;\n\n public Lookup?: string;\n\n public Placeholder?: string;\n\n public Required?: boolean;\n}\n\n// export class EstablishProjectRequest {\n// public Branch?: string;\n\n// public BuildScript?: string;\n\n// public HostingOption?: string;\n\n// public Organization?: string;\n\n// public OutputFolder?: string;\n\n// public ProjectName?: string;\n\n// public Repository?: string;\n// }\n","import { Injectable } from '@angular/core';\nimport { ProjectService } from './project.service';\nimport {\n ApplicationsFlowState,\n UnpackLowCodeUnitRequest,\n} from '../state/applications-flow.state';\nimport {\n EaCApplicationAsCode,\n EaCDataToken,\n EaCDFSModifier,\n EaCEnvironmentAsCode,\n EaCHost,\n EaCProjectAsCode,\n EnterpriseAsCode,\n} from '@semanticjs/common';\nimport { FeedEntry, FeedItem } from '../models/user-feed.model';\nimport { HttpClient } from '@angular/common/http';\nimport { Status } from '@lcu/common';\nimport { Observable } from 'rxjs';\n\nexport class SaveApplicationAsCodeEventRequest {\n public Application?: EaCApplicationAsCode;\n\n public ApplicationLookup?: string;\n\n public ProjectLookup?: string;\n}\n\nexport class SaveDFSModifierEventRequest {\n public ApplicationLookup?: string;\n\n public Modifier?: EaCDFSModifier;\n\n public ModifierLookups?: Array<string>;\n\n public ProjectLookups?: Array<string>;\n}\n\nexport class SaveEnvironmentAsCodeEventRequest {\n public EnterpriseDataTokens?: { [lookup: string]: EaCDataToken };\n\n public Environment?: EaCEnvironmentAsCode;\n\n public EnvironmentLookup?: string;\n}\n\nexport class SaveProjectAsCodeEventRequest {\n public Project?: EaCProjectAsCode;\n\n public ProjectLookup?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EaCService {\n // Properties\n public get EditingProjectLookup(): string {\n return this.projectService.EditingProjectLookup;\n }\n\n public get CreatingProject(): boolean {\n return this.projectService.CreatingProject;\n }\n\n public State: ApplicationsFlowState;\n\n // Constructors\n constructor(\n protected projectService: ProjectService,\n protected http: HttpClient\n ) {\n this.State = new ApplicationsFlowState();\n }\n\n // API Methods\n public CheckUserFeedItem(feedItem: FeedItem): Observable<object> {\n return this.http.get(feedItem.RefreshLink);\n }\n\n public async DeleteApplication(\n appLookup: string,\n appName: string\n ): Promise<Status> {\n if (\n confirm(`Are you sure you want to delete application '${appName}'?`)\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Applications: {},\n };\n\n eac.Applications[appLookup] = {\n Application: {},\n };\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteDevOpsAction(\n doaLookup: string,\n doaName: string\n ): Promise<Status> {\n if (\n confirm(\n `Are you sure you want to delete Build Pipeline '${doaName}'?`\n )\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Environments: {},\n };\n\n eac.Environments[this.State.EaC.Enterprise.PrimaryEnvironment] = {\n DevOpsActions: {},\n };\n\n eac.Environments[\n this.State.EaC.Enterprise.PrimaryEnvironment\n ].DevOpsActions[doaLookup] = {};\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteModifier(\n modifierLookup: string,\n modifierName: string\n ): Promise<Status> {\n if (\n confirm(\n `Are you sure you want to delete Modifier '${modifierName}'?`\n )\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Modifiers: {},\n };\n\n eac.Modifiers[modifierLookup] = {};\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteProject(\n projectLookup: string,\n projectName: string\n ): Promise<Status> {\n if (\n confirm(`Are you sure you want to delete Project '${projectName}'?`)\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Projects: {},\n };\n\n eac.Projects[projectLookup] = {\n Project: {},\n };\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteSourceControl(\n srcLookup: string,\n srcName: string\n ): Promise<Status> {\n if (\n confirm(\n `Are you sure you want to delete Source Control '${srcName}'?`\n )\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Environments: {},\n };\n\n eac.Environments[this.State.EaC.Enterprise.PrimaryEnvironment] = {\n Sources: {},\n };\n\n eac.Environments[\n this.State.EaC.Enterprise.PrimaryEnvironment\n ].Sources[srcLookup] = {};\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n // this.appsFlowEventsSvc.EnsureUserEnterpriseEvent.subscribe(async () => {\n // await this.projectService.EnsureUserEnterprise(this.State);\n // });\n\n public async EnsureUserEnterprise(): Promise<void> {\n await this.projectService.EnsureUserEnterprise(this.State);\n }\n\n public async EnterpriseAsCodeRemovals(\n eac: EnterpriseAsCode\n ): Promise<Status> {\n return this.projectService.EnterpriseAsCodeRemovals(this.State, eac);\n }\n\n public async GetActiveEnterprise(): Promise<void> {\n await this.projectService.GetActiveEnterprise(this.State);\n }\n\n public async LoadUserFeed(\n page: number,\n pageSize: number,\n forCheck: boolean = false\n ): Promise<void> {\n await this.projectService.LoadUserFeed(\n page,\n pageSize,\n forCheck,\n this.State\n );\n }\n\n public GenerateRoutedApplications(applications: {\n [lookup: string]: EaCApplicationAsCode;\n }): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n return this.projectService.GenerateRoutedApplications(\n applications,\n this.State\n );\n }\n\n public async HasValidConnection(): Promise<void> {\n await this.projectService.HasValidConnection(this.State);\n }\n\n public async ListEnterprises(): Promise<void> {\n await this.projectService.ListEnterprises(this.State);\n }\n\n public async LoadEnterpriseAsCode(): Promise<void> {\n await this.projectService.LoadEnterpriseAsCode(this.State);\n }\n\n public ReloadFeed() {\n if (this.State.FeedCheck) {\n this.State.Feed = this.State.FeedCheck.Items;\n\n this.State.FeedActions = this.State.FeedCheck.Actions;\n\n this.State.FeedSourceControlLookups =\n this.State.FeedCheck.SourceControlLookups;\n }\n\n this.State.FeedCheck = null;\n }\n\n public async SaveApplicationAsCode(\n req: SaveApplicationAsCodeEventRequest\n ): Promise<Status> {\n return await this.handleSaveApplication(req);\n }\n\n public async SaveDFSModifier(\n req: SaveDFSModifierEventRequest\n ): Promise<void> {\n await this.handleSaveDFSModifier(req);\n }\n\n public async SaveEnterpriseAsCode(eac: EnterpriseAsCode): Promise<Status> {\n return await this.projectService.SaveEnterpriseAsCode(this.State, eac);\n }\n\n public async SaveEnvironmentAsCode(\n req: SaveEnvironmentAsCodeEventRequest\n ): Promise<Status> {\n return await this.handleSaveEnvironment(req);\n }\n\n public async SaveProjectAsCode(\n req: SaveProjectAsCodeEventRequest\n ): Promise<Status> {\n return await this.handleSaveProject(req.ProjectLookup, req.Project);\n }\n\n public async SetActiveEnterprise(entLookup: any): Promise<void> {\n this.projectService.SetActiveEnterprise(this.State, entLookup);\n }\n\n public async SetCreatingProject(creatingProject: boolean): Promise<void> {\n this.projectService.SetCreatingProject(creatingProject);\n }\n\n public async SetEditProjectSettings(projectLookup: string): Promise<void> {\n await this.projectService.SetEditProjectSettings(\n this.State,\n projectLookup\n );\n }\n\n public async SubmitFeedEntry(entry: FeedEntry): Promise<Status> {\n return await this.projectService.SubmitFeedEntry(this.State, entry);\n }\n\n public async UnpackLowCodeUnit(\n req: UnpackLowCodeUnitRequest\n ): Promise<void> {\n if (\n confirm(\n `Are you sure you want to unpack application '${req.ApplicationName}' with version '${req.Version}'?`\n )\n ) {\n await this.projectService.UnpackLowCodeUnit(this.State, req);\n }\n }\n\n // Helpers\n protected async handleSaveApplication(\n req: SaveApplicationAsCodeEventRequest\n ): Promise<Status> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Applications: {},\n Projects: {},\n };\n\n if (req.ProjectLookup) {\n const existingProj = {\n [req.ProjectLookup]: {\n ApplicationLookups: [req.ApplicationLookup],\n },\n };\n\n saveEaC.Projects = existingProj;\n }\n\n if (req.Application) {\n saveEaC.Applications[req.ApplicationLookup] = req.Application;\n }\n\n return await this.projectService.SaveEnterpriseAsCode(\n this.State,\n saveEaC\n );\n }\n\n protected async handleSaveDFSModifier(\n req: SaveDFSModifierEventRequest\n ): Promise<void> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Modifiers: {},\n Projects: {},\n Applications: {},\n };\n\n if (req.Modifier) {\n saveEaC.Modifiers[req.ModifierLookups[0]] = req.Modifier;\n }\n\n if (req.ProjectLookups) {\n req.ProjectLookups.forEach((lookup) => {\n saveEaC.Projects[lookup] = {\n ModifierLookups: req.ModifierLookups,\n };\n });\n }\n\n if (req.ApplicationLookup) {\n console.log('APPLOokup: ', req.ApplicationLookup);\n console.log('saveEAC: ', saveEaC);\n saveEaC.Applications[req.ApplicationLookup] = {\n ModifierLookups: req.ModifierLookups,\n };\n }\n\n await this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);\n }\n\n protected async handleSaveEnvironment(\n req: SaveEnvironmentAsCodeEventRequest\n ): Promise<Status> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State?.EaC?.EnterpriseLookup,\n DataTokens: {},\n Environments: {},\n };\n\n if (req.Environment) {\n saveEaC.Environments[req.EnvironmentLookup] = req.Environment;\n }\n\n if (req.EnterpriseDataTokens) {\n saveEaC.DataTokens = req.EnterpriseDataTokens;\n }\n\n return await this.projectService.SaveEnterpriseAsCode(\n this.State,\n saveEaC\n );\n }\n\n protected async handleSaveProject(\n projectLookup: string,\n project: EaCProjectAsCode\n ): Promise<Status> {\n const projHosts: { [lookup: string]: EaCHost } = {};\n\n project?.Hosts?.forEach((host: any) => {\n projHosts[host] = this.State.EaC.Hosts[host];\n });\n\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Enterprise: {\n ...this.State.EaC.Enterprise,\n PrimaryHost: project.Hosts[0],\n },\n Hosts: projHosts,\n // Providers: this.State.EaC.Providers, // TODO: Remove after all providers ADB2C's have been upgraded\n Projects: {},\n };\n\n saveEaC.Projects[projectLookup] = project;\n\n let status = await this.projectService.SaveEnterpriseAsCode(\n this.State,\n saveEaC\n );\n\n this.SetEditProjectSettings(projectLookup);\n\n return status;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EaCService } from '../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-project-items',\n templateUrl: './project-items.component.html',\n styleUrls: ['./project-items.component.scss'],\n})\nexport class ProjectItemsComponent implements OnInit {\n // Fields\n\n // Properties\n public get ProjectLookups(): Array<string> {\n return Object.keys(this.Projects || {});\n }\n\n /**\n * List of projects\n */\n @Input('projects')\n public Projects: { [lookup: string]: EaCProjectAsCode };\n\n public PanelOpenState: boolean;\n\n @Input('selected-project-lookup')\n public SelectedProjectLookup: string;\n\n // Constructors\n constructor(protected eacSvc: EaCService) {}\n\n // Life Cycle\n public ngOnInit(): void {}\n\n // API Methods\n public DeleteProject(projectLookup: string, projectName: string): void {\n this.eacSvc.DeleteProject(projectLookup, projectName).then();\n }\n\n public GetPrimaryHost(project: EaCProjectAsCode): string {\n return project.Hosts[project.Hosts.length - 1];\n }\n\n /**\n *\n * @param project Current project object\n *\n * Event to edit project settings\n */\n public ProjectSettings(projectLookup: string): void {\n this.eacSvc.SetEditProjectSettings(projectLookup);\n }\n\n //HELPERS\n}\n","<div\n [fxLayout]=\"SelectedProjectLookup ? 'row' : 'row wrap'\"\n [fxLayout.lt-md]=\"SelectedProjectLookup ? 'row' : 'column'\"\n>\n <div class=\"no-projects\" fxFlex=\"100%\" *ngIf=\"ProjectLookups?.length <= 0\">\n <!-- <h1 class=\"spread mat-display-1\">No projects configured</h1> -->\n\n <h2 class=\"spread mat-headline\">\n Create your first project to get started\n </h2>\n </div>\n\n <!-- [fxFlex]=\"SelectedProjectLookup ? '350px' : '30%'\"\n fxFlex.lt-md=\"100%\" vv-->\n <div *ngFor=\"let projectLookup of ProjectLookups\" class=\"card-container\">\n <mat-card\n class=\"spread project-card\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between\"\n [class.selected-project]=\"projectLookup == SelectedProjectLookup\"\n *ngIf=\"Projects[projectLookup]; let project\"\n >\n <mat-card-header>\n <img mat-card-avatar=\"/assets/images/project-icon.png\" />\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"project.Project.Description\"\n >\n {{ project.Project.Name }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\">\n <span class=\"mat-body-2\">{{\n GetPrimaryHost(project)\n }}</span>\n </div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <a\n mat-icon-button\n href=\"https://{{ GetPrimaryHost(project) }}\"\n target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\">launch</mat-icon>\n </a>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"ProjectSettings(projectLookup)\"\n *ngIf=\"SelectedProjectLookup != projectLookup\"\n >\n <mat-icon matTooltip=\"Edit Project Settings\"\n >settings</mat-icon\n >\n </button>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"ProjectSettings(null)\"\n *ngIf=\"SelectedProjectLookup == projectLookup\"\n >\n <mat-icon matTooltip=\"Edit Project Settings\"\n >cancel</mat-icon\n >\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteProject(projectLookup, project.Project.Name)\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{ project.Project.Name }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EaCService } from './../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Guid, LCUServiceSettings } from '@lcu/common';\n\n@Component({\n selector: 'lcu-projects-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n // Fields\n\n // Properties\n @Input('creating-project')\n public CreatingProject: boolean;\n\n public get HasProjects(): boolean {\n return this.ProjectLookups && this.ProjectLookups.length > 0;\n }\n\n public ProjectFormGroup: FormGroup;\n\n public get ProjectLookups(): Array<string> {\n return Object.keys(this.Projects || {});\n }\n\n public get ProjectName(): AbstractControl {\n return this.ProjectFormGroup.get('name');\n }\n\n @Input('projects')\n public Projects: { [lookup: string]: EaCProjectAsCode };\n\n @Input('selected-project-lookup')\n public SelectedProjectLookup: string;\n\n // Constructors\n public constructor(\n protected formBuilder: FormBuilder,\n protected lcuSettings: LCUServiceSettings,\n protected eacSvc: EaCService\n ) {}\n\n // Life Cycle\n public ngOnInit(): void {\n this.ProjectFormGroup = this.formBuilder.group({\n name: ['', Validators.required],\n });\n }\n\n // API Methods\n public CreateProject(): void {\n const proj: EaCProjectAsCode = {\n Project: {\n Name: this.ProjectName?.value,\n },\n Hosts: [`${Guid.CreateRaw()}-shared.fathym-it.com`],\n ModifierLookups: ['html-base', 'lcu-reg'],\n RelyingParty: {\n AccessConfigurations: {\n fathym: {\n AccessRightLookups: [\n 'Fathym.Global.Admin',\n 'Fathym.User',\n ],\n ProviderLookups: ['ADB2C'],\n Usernames: [\n 'support@fathym.com',\n this.lcuSettings.User.Email,\n ],\n },\n },\n AccessRightLookups: ['Fathym.Global.Admin', 'Fathym.User'],\n DefaultAccessConfigurationLookup: 'fathym',\n TrustedProviderLookups: ['ADB2C'],\n },\n };\n\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: Guid.CreateRaw(),\n Project: proj,\n });\n }\n\n public EnableCreatingProject(): void {\n this.eacSvc.SetCreatingProject(true);\n }\n\n // Helpers\n}\n","<div\n [fxLayout]=\"HasProjects ? 'row' : 'column'\"\n fxLayout.lt-md=\"column\"\n fxLayoutAlign=\"center center\"\n>\n <div fxFlex=\"100%\" [class.has-selected]=\"SelectedProjectLookup\">\n <lcu-project-items\n [projects]=\"Projects\"\n [selected-project-lookup]=\"SelectedProjectLookup\"\n ></lcu-project-items>\n </div>\n <div fxFlex=\"250px\" fxFlex.lt-md=\"100%\">\n <div class=\"divider-fill-vert margin-y-4\"></div>\n\n <div class=\"extras\" [fxLayout]=\"HasProjects ? 'column' : 'row'\">\n <mat-card class=\"spread\" id=\"create-new-project-card\">\n <mat-card-header>\n <mat-card-title>Create New Project</mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <form\n [formGroup]=\"ProjectFormGroup\"\n (ngSubmit)=\"CreateProject()\"\n *ngIf=\"CreatingProject\"\n >\n <div class=\"margin-2\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n autofocus\n placeholder=\"Project Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <div>\n <button\n mat-fab\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!ProjectFormGroup.valid\"\n >\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </form>\n\n <div *ngIf=\"!CreatingProject\">\n <a\n mat-fab\n color=\"accent\"\n href=\"/dashboard/create-project\"\n class=\"margin-top-4 margin-bottom-2\"\n >\n <mat-icon>add</mat-icon>\n </a>\n\n <!-- <button\n mat-fab\n color=\"accent\"\n (click)=\"EnableCreatingProject()\"\n class=\"margin-top-4 margin-bottom-2\"\n >\n <mat-icon>add</mat-icon>\n </button> -->\n </div>\n </mat-card-content>\n </mat-card>\n\n <!-- <mat-card class=\"spread\">\n <mat-card-header>\n <mat-card-title>Documentation</mat-card-title>\n </mat-card-header>\n \n <mat-card-content>\n <a\n mat-fab\n color=\"accent\"\n href=\"/docs\"\n target=\"_blank\"\n class=\"margin-top-4 margin-bottom-2\"\n >\n <mat-icon>description</mat-icon>\n </a>\n </mat-card-content>\n </mat-card> -->\n </div>\n </div>\n</div>\n\n<!-- <div class=\"divider-fill-vert\" [fxHide.lt-md]=\"true\"></div> -->\n\n<!-- Builds -->\n<!-- <div\n id=\"builds\"\n fxFlex.gt-xs=\"25\"\n fxLayout=\"column\"\n class=\"padding-top-3\"\n [ngClass.lt-sm]=\"'margin-bottom-2'\"\n [ngClass.gt-xs]=\"'margin-right-2'\"\n >\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n class=\"title margin-bottom-4\"\n >\n <mat-icon class=\"margin-right-2\">gavel</mat-icon>\n <span>Builds</span>\n </div>\n\n <lcu-builds [projects]=\"Projects\"> </lcu-builds>\n </div> -->\n\n<!-- <div class=\"divider-fill-vert\" fxShow [fxHide.lt-md]=\"true\"></div> -->\n\n<!-- Recent Activities -->\n<!-- <div\n id=\"recent\"\n fxLayout=\"column\"\n fxFlex.gt-xs=\"25\"\n class=\"padding-top-3\"\n >\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n class=\"title margin-bottom-4\"\n >\n <mat-icon class=\"margin-right-2\">list</mat-icon>\n\n <span>Recent Activities</span>\n </div>\n </div> -->\n","import { FormActionsModel } from './form-actions.model';\n\nexport class CardFormConfigModel {\n /**\n * Form button actions\n */\n public FormActions?: FormActionsModel;\n\n /**\n * Card title icon\n */\n public Icon: string;\n\n /**\n * Card title\n */\n public Title: string;\n\n /**\n * Card subtitle\n */\n public Subtitle: string;\n\n constructor(opts: CardFormConfigModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { FormGroup } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CardFormConfigModel } from '../../models/card-form-config.model';\nimport { FormActionsModel } from '../../models/form-actions.model';\n@Component({\n selector: 'lcu-form-card',\n templateUrl: './form-card.component.html',\n styleUrls: ['./form-card.component.scss'],\n})\nexport class FormCardComponent implements OnInit {\n /**\n * Values for building out the card\n */\n @Input('config')\n public Config: CardFormConfigModel;\n\n /**\n * Disable everything\n */\n @Input('disabled')\n public Disabled: boolean;\n\n @Input('is-dirty')\n public IsDirty: boolean;\n\n /**\n * Form\n */\n @Input('form')\n public Form: FormGroup;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div [ngClass]=\"Disabled ? 'form-disabled' : 'form-enabled'\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon color=\"accent\" class=\"title-icon\">\n {{ Config.Icon }}\n </mat-icon>\n </div>\n <mat-card-title class=\"paragraph-title\">\n {{ Config.Title }}\n </mat-card-title>\n <mat-card-subtitle class=\"plain-text\">\n {{ Config.Subtitle }}\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content fxFlexFill class=\"margin-top-3\">\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n </mat-card-content>\n <mat-card-actions>\n <div\n *ngIf=\"Config.FormActions && IsDirty\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <span class=\"mat-small caption-text\">{{\n Config.FormActions.Message\n }}</span>\n <div fxLayoutAlign=\"end center\">\n <div\n *ngFor=\"let action of Config.FormActions?.Actions\"\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n class=\"margin-right-1\"\n >\n <button\n [disabled]=\"\n Disabled ||\n (action.Type === 'SAVE' && Form.invalid)\n \"\n color=\"{{ action.Color }}\"\n mat-flat-button\n (click)=\"action.ClickEvent()\"\n >\n {{ action.Label }}\n </button>\n </div>\n </div>\n </div>\n </mat-card-actions>\n </mat-card>\n</div>\n","import { FormsService } from './../../../../../services/forms.service';\nimport { CardFormConfigModel } from './../../../../../models/card-form-config.model';\nimport { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCService } from '../../../../../services/eac.service';\nimport { EaCHost, EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n})\nexport class DomainsComponent implements OnInit {\n /**\n * Card / Form Config\n */\n public Config: CardFormConfigModel;\n\n /**\n * FormGroup\n */\n public Form: FormGroup;\n\n /**\n * Form name\n */\n protected formName: string;\n\n /**\n * When form is dirty, ties into formsService.DisableForms\n */\n public IsDirty: boolean;\n\n /**\n * Access form control for root directory\n */\n public get Domain(): AbstractControl {\n return this.Form.get('domain');\n }\n\n @Input('data')\n public Data: {\n Hosts: { [lookup: string]: EaCHost };\n PrimaryHost: string;\n Project: EaCProjectAsCode;\n ProjectLookup: string;\n };\n\n public get Host(): EaCHost {\n return this.Data?.Hosts[this.HostLookup];\n }\n\n public get HostLookup(): string {\n // let hostKeys = Object.keys(this.Data?.Hosts || {});\n\n // hostKeys = hostKeys.filter(hk => hk.indexOf('|') < 0);\n\n // return hostKeys[0];\n return this.PrimaryHost;\n }\n\n public get HostDNSInstance(): string {\n return this.Host ? this.Host?.HostDNSInstance : null;\n }\n\n public get PrimaryHost(): string {\n return this.Data.PrimaryHost;\n }\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project;\n }\n\n public get ProjectLookup(): string {\n return this.Data.ProjectLookup;\n }\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.formName = 'DomainForm';\n\n this.setupForm();\n\n this.config();\n }\n\n protected config(): void {\n this.Config = new CardFormConfigModel({\n Icon: 'head',\n Title: '',\n Subtitle:\n 'In order to use a custom domain, create a CNAME dns record pointing desired subdomain to ' +\n this.HostDNSInstance +\n '.',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Reset',\n Color: 'warn',\n ClickEvent: () => this.resetForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n\n protected setupForm(): void {\n this.Form = new FormGroup({\n domain: new FormControl(this.HostLookup || '', {\n validators: [Validators.required, Validators.minLength(3)],\n updateOn: 'change',\n }),\n });\n\n this.formsService.Form = { Id: this.formName, Form: this.Form };\n this.onChange();\n }\n\n protected onChange(): void {\n this.Form.valueChanges.subscribe((val: any) => {\n if (this.formsService.ForRealThough(this.formName, this.Form)) {\n this.IsDirty = true;\n // disable all forms except the current form being edited\n this.formsService.DisableForms(this.formName);\n } else {\n this.IsDirty = false;\n // enable all forms\n this.formsService.DisableForms(false);\n }\n });\n }\n\n /**\n * Reset form controls back to previous values\n */\n protected resetForm(): void {\n // enable all forms\n // this.formsService.DisableForms(false);\n\n this.formsService.ResetFormValues(this.formName);\n }\n\n /**\n * Save changes\n */\n protected save(): void {\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: this.ProjectLookup,\n Project: {\n ...this.Project,\n // Hosts: [...this.Project.Hosts, this.Domain.value],\n Hosts: [this.Domain.value],\n },\n });\n this.formsService.UpdateValuesReference({\n Id: this.formName,\n Form: this.Form,\n });\n }\n}\n","<form\n fxLayout=\"row\"\n fxLayout.lt-md=\"column\"\n class=\"padding-top-3\"\n [formGroup]=\"Form\"\n>\n <div>\n <lcu-form-card [config]=\"Config\" [form]=\"Form\" [is-dirty]=\"IsDirty\">\n <div fxLayout=\"column\">\n <div fxLayout=\"row\">\n <div fxFlex fxLayout=\"row\">\n <mat-form-field\n fxFlex\n appearance=\"fill\"\n class=\"margin-right-3\"\n >\n <mat-icon\n matSuffix\n [ngClass]=\"\n Domain.valid\n ? 'valid-control'\n : 'invalid-control'\n \"\n >\n {{\n Domain.valid\n ? \"check_circle\"\n : \"error_outline\"\n }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Domain.invalid || Domain.disabled ? '/' : ''\n \"\n formControlName=\"domain\"\n />\n\n <mat-hint>\n These domains are assigned to your deployments.\n Optionally, a different Git branch or a\n redirection to another domain can be configured\n for each one.\n </mat-hint>\n\n <mat-error *ngIf=\"Domain.hasError('required')\">\n Domain is required\n </mat-error>\n </mat-form-field>\n\n <button\n mat-icon-button\n [cdkCopyToClipboard]=\"HostDNSInstance\"\n matTooltip=\"Copy subdomain to clipboard\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n <!-- <button mat-button color=\"accent\">Add</button> -->\n </div>\n </div>\n <!-- <div class=\"card-divider\"></div> -->\n </lcu-form-card>\n </div>\n</form>\n","export class DynamicTabsModel {\n /**\n * Component instance to add to the tab\n */\n public Component: any;\n\n /**\n * Component data\n */\n public Data?: any;\n\n /**\n * Icon to use next to tab label\n */\n public Icon?: string;\n\n /**\n * Tab label\n */\n public Label: string;\n\n constructor(opts: DynamicTabsModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { FormsService } from './../../../../../services/forms.service';\nimport {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { LcuElementComponent, LCUElementContext } from '@lcu/common';\nimport { ApplicationsFlowService } from './../../../../../services/applications-flow.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\nexport class ApplicationsFlowProjectsElementState {}\n\nexport class ApplicationsFlowProjectsContext extends LCUElementContext<ApplicationsFlowProjectsElementState> {}\n\n@Component({\n selector: 'lcu-general',\n templateUrl: './general.component.html',\n styleUrls: ['./general.component.scss'],\n})\nexport class GeneralComponent\n extends LcuElementComponent<ApplicationsFlowProjectsContext>\n implements OnDestroy, OnInit, AfterContentChecked\n{\n @Input('data')\n public Data: { Project: EaCProjectAsCode; ProjectLookup: string };\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project;\n }\n\n public get ProjectLookup(): string {\n return this.Data.ProjectLookup;\n }\n\n constructor(\n protected injector: Injector,\n protected appsFlowSvc: ApplicationsFlowService,\n protected cd: ChangeDetectorRef,\n protected formsService: FormsService\n ) {\n super(injector);\n }\n\n // Life Cycle\n public ngOnDestroy(): void {}\n\n public ngOnInit(): void {}\n\n public ngAfterContentChecked(): void {\n this.cd.detectChanges();\n }\n}\n","<div fxLayout=\"row\" fxLayout.lt-md=\"column\">\n <div fxFlex=\"50\" fxLayout=\"column\" class=\"margin-right-3\">\n <!-- <lcu-project-details\n [project]=\"Project\"\n [project-lookup]=\"ProjectLookup\"\n class=\"margin-bottom-3\"\n ></lcu-project-details> -->\n\n <!-- <lcu-root-directory [project]=\"Project\"></lcu-root-directory> -->\n </div>\n\n <div fxFlex=\"50\">\n <!-- <lcu-settings [project]=\"Project\"></lcu-settings> -->\n <!-- <lcu-base-form-test></lcu-base-form-test> -->\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n AbstractControl,\n FormControl,\n} from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseResponse, BaseModeledResponse } from '@lcu/common';\nimport {\n GitHubBranch,\n GitHubOrganization,\n GitHubRepository,\n} from '../../../../../state/applications-flow.state';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\nimport { EaCSourceControl } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-source-control-form-controls',\n templateUrl: './source-control.component.html',\n styleUrls: ['./source-control.component.scss'],\n})\nexport class SourceControlFormControlsComponent\n implements AfterViewInit, OnDestroy, OnInit\n{\n // Fields\n\n // Properties\n public get BranchesFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'branches');\n }\n\n @Output('branches-changed')\n public BranchesChanged: EventEmitter<Array<string>>;\n\n @Input('branches-disabled')\n public BranchesDisabled: boolean;\n\n @ViewChild('branches')\n public BranchesInput: ElementRef<HTMLInputElement>;\n\n public BranchOptions: GitHubBranch[];\n\n @Input('build-path')\n public BuildPath: string;\n\n @Input('build-path-disabled')\n public BuildPathDisabled: boolean;\n\n public get BuildPathFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'buildPath');\n }\n\n public BuildPathOptions: string[];\n\n public CreatingRepository: boolean;\n\n @Input('form-group')\n public FormGroup: FormGroup;\n\n public Loading: boolean;\n\n public get MainBranchFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'mainBranch');\n }\n\n @Input('org-disabled')\n public OrganizationDisabled: boolean;\n\n public get OrganizationFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'organization');\n }\n\n public OrganizationOptions: GitHubOrganization[];\n\n public get RepositoryFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'repository');\n }\n\n @Input('repo-disabled')\n public RepositoryDisabled: boolean;\n\n public RepositoryOptions: GitHubRepository[];\n\n public SelectedBranches: string[];\n\n public readonly SeparatorKeysCodes = [ENTER, COMMA] as const;\n\n @Input('source-control')\n public SourceControl: EaCSourceControl;\n\n @Input('source-control-root')\n public SourceControlRoot: string;\n\n @Input('use-branches')\n public UseBranches: boolean;\n\n @Input('use-build-path')\n public UseBuildPath: boolean;\n\n // Constructors\n constructor(\n protected formBuilder: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService\n ) {\n this.BranchesChanged = new EventEmitter();\n\n this.SelectedBranches = [];\n\n this.SourceControl = {};\n\n this.SourceControlRoot = '';\n\n this.UseBranches = true;\n }\n\n // Life Cycle\n public ngAfterViewInit(): void {}\n\n public ngOnDestroy(): void {\n this.destroyFormControls();\n }\n\n public ngOnInit(): void {\n this.setupFormControls();\n\n this.RefreshOrganizations();\n }\n\n // API Methods\n public AddBranchOption(event: MatChipInputEvent): void {\n this.addBranchOption(event.value);\n\n event.input.value = '';\n }\n\n public BranchOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.addBranchOption(event.option.value);\n }\n\n public BuildPathChanged(event: MatSelectChange): void {}\n\n public CreateRepository(): void {\n this.CreatingRepository = true;\n\n this.RepositoryFormControl.reset();\n }\n\n public CancelCreateRepository(): void {\n this.CreatingRepository = false;\n }\n\n public MainBranchChanged(event: MatSelectChange): void {\n this.emitBranchesChanged();\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n const org = this.OrganizationFormControl;\n\n this.RepositoryFormControl.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n }\n\n this.listRepositories();\n }\n\n public RefreshOrganizations(): void {\n // this.Loading = true;\n this.listOrganizations();\n\n this.OrganizationFormControl?.reset();\n\n this.RepositoryFormControl?.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl?.reset();\n }\n }\n\n public RemoveBranchOption(option: string): void {\n const index = this.SelectedBranches.indexOf(option);\n\n if (index >= 0) {\n this.SelectedBranches.splice(index, 1);\n }\n\n this.emitBranchesChanged();\n }\n\n public RepositoryChanged(event: MatSelectChange): void {\n const repo = this.RepositoryFormControl;\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n\n this.listBranches();\n }\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }\n\n public SaveRepository(): void {\n this.Loading = true;\n\n const org = this.OrganizationFormControl.value;\n\n const repoName = this.RepositoryFormControl.value;\n\n this.appsFlowSvc\n .CreateRepository(org, repoName)\n .subscribe((response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.listRepositories(repoName);\n\n this.CreatingRepository = false;\n } else {\n // TODO: Need to surface an error to the user...\n\n this.Loading = false;\n }\n });\n }\n\n // Helpers\n protected addBranchOption(value: string): void {\n value = (value || '').trim();\n\n if (value && this.SelectedBranches.indexOf(value) < 0) {\n this.SelectedBranches.push(value);\n }\n\n this.BranchesInput.nativeElement.blur();\n\n this.emitBranchesChanged();\n }\n\n protected destroyFormControls(): void {\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'mainBranch'].join('')\n );\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'branches'].join('')\n );\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'buildPath'].join('')\n );\n\n this.SelectedBranches = [];\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'organization'].join('')\n );\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'repository'].join('')\n );\n }\n\n protected emitBranchesChanged(): void {\n if (\n this.SelectedBranches?.length > 0 &&\n (!this.MainBranchFormControl.value ||\n this.SelectedBranches.indexOf(\n this.MainBranchFormControl.value\n ) < 0)\n ) {\n this.MainBranchFormControl.setValue(\n this.SelectedBranches.find(\n (branch) => branch === 'main' || branch === 'master'\n ) || this.SelectedBranches[0]\n );\n } else if (this.SelectedBranches?.length <= 0) {\n this.MainBranchFormControl.reset();\n }\n\n this.BranchesFormControl.setValue(this.SelectedBranches.join(','));\n\n this.BranchesChanged.emit(this.SelectedBranches || []);\n }\n\n protected listBranches(): void {\n if (this.UseBranches) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBranches(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model;\n\n this.Loading = false;\n\n if (this.SourceControl?.Branches?.length > 0) {\n this.SelectedBranches = this.SourceControl.Branches;\n } else if (this.BranchOptions?.length === 1) {\n this.BranchesFormControl.setValue(\n this.BranchOptions[0].Name\n );\n\n this.SelectedBranches = [this.BranchOptions[0].Name];\n }\n\n this.emitBranchesChanged();\n\n this.listBuildPaths();\n });\n }\n }\n\n protected listBuildPaths(): void {\n if (this.UseBuildPath) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<string[]>) => {\n this.BuildPathOptions = response.Model;\n\n this.Loading = false;\n\n if (this.BuildPathOptions?.length === 1) {\n this.BuildPathFormControl.setValue(\n this.BuildPathOptions[0]\n );\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe(\n (response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n\n this.Loading = false;\n\n if (this.SourceControl?.Organization) {\n setTimeout(() => {\n this.OrganizationFormControl.setValue(\n this.SourceControl.Organization\n );\n\n this.listRepositories(\n this.SourceControl?.Repository\n );\n }, 0);\n }\n }\n );\n }\n\n protected listRepositories(activeRepo: string = null): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListRepositories(this.OrganizationFormControl.value)\n .subscribe((response: BaseModeledResponse<GitHubRepository[]>) => {\n this.RepositoryOptions = response.Model;\n\n this.Loading = false;\n\n if (activeRepo) {\n setTimeout(() => {\n this.RepositoryFormControl.setValue(activeRepo);\n\n this.listBranches();\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }, 0);\n } else if (this.RepositoryOptions?.length <= 0) {\n this.CreatingRepository = true;\n }\n });\n }\n\n protected setupFormControls(): void {\n this.destroyFormControls();\n\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'organization'].join(''),\n new FormControl(\n this.SourceControl.Organization ?? '',\n Validators.required\n )\n );\n\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'repository'].join(''),\n new FormControl(\n this.SourceControl.Repository ?? '',\n Validators.required\n )\n );\n\n if (this.UseBranches) {\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'branches'].join(''),\n new FormControl(\n this.SourceControl?.Branches ?? '',\n Validators.required\n )\n );\n\n this.SelectedBranches = this.SourceControl?.Branches;\n\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'mainBranch'].join(''),\n new FormControl(\n this.SourceControl.MainBranch ?? '',\n Validators.required\n )\n );\n }\n\n if (this.UseBuildPath) {\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'buildPath'].join(''),\n new FormControl(this.BuildPath ?? '', Validators.required)\n );\n }\n }\n}\n","<div [formGroup]=\"FormGroup\">\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 || OrganizationDisabled\"\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\n matSuffix\n (click)=\"RefreshOrganizations()\"\n matTooltip=\"Refresh Organization\"\n >\n refresh\n </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\n color=\"accent\"\n matTooltip=\"Re-authorize Organizations\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new\n 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 ||\n Loading ||\n RepositoryDisabled\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 || RepositoryDisabled\"\n required\n />\n\n <mat-icon\n matSuffix\n (click)=\"CreateRepository()\"\n [fxHide]=\"Loading || RepositoryDisabled\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\"\n >\n add_circle\n </mat-icon>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\"\n >\n <mat-icon matSuffix color=\"primary\"> save </mat-icon>\n </button>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\"\n >\n <mat-icon matSuffix> cancel </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 || BranchesDisabled\"\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 || BranchesDisabled\"\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()\">\n refresh\n </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new\n 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 &&\n !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n RepositoryFormControl?.valid &&\n !BranchesFormControl?.valid\n \"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid ||\n BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n</div>\n","import { Injectable, Injector } from '@angular/core';\nimport { DAFService, BaseModeledResponse, Pageable } from '@lcu/common';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpBackend } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NPMService extends DAFService {\n // Properties\n\n // Constructors\n constructor(protected injector: Injector, handler: HttpBackend) {\n super(injector);\n\n this.http = new HttpClient(handler);\n }\n\n // API Methods\n public Search(\n search: string\n ): Observable<BaseModeledResponse<Pageable<any>>> {\n if (search) {\n return this.http\n .get(`https://api.npms.io/v2/search?q=${search}`)\n .pipe(\n this.catchError(),\n map((res: any) => {\n return <BaseModeledResponse<Pageable<any>>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n Model: {\n TotalRecords: res.total,\n Items: res.results,\n },\n };\n })\n );\n } else {\n return Observable.create((obs: any) => {\n obs.next(<BaseModeledResponse<Pageable<any>>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n });\n\n obs.complete();\n });\n }\n }\n\n public Versions(\n npmPkg: string\n ): Observable<BaseModeledResponse<Pageable<any>>> {\n if (npmPkg) {\n return this.http.get(`https://registry.npmjs.org/${npmPkg}`).pipe(\n this.catchError(),\n map((res: any) => {\n return <BaseModeledResponse<any>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n Model: res,\n };\n })\n );\n } else {\n return new Observable((obs: any) => {\n obs.next(<BaseModeledResponse<Pageable<any>>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n });\n\n obs.complete();\n });\n }\n }\n\n // Helpers\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { debounceTime, map, switchMap } from 'rxjs/operators';\nimport { NPMService } from '../../../../../../services/npm.service';\n\n@Component({\n selector: 'lcu-npm-package-select',\n templateUrl: './npm-package-select.component.html',\n styleUrls: ['./npm-package-select.component.scss'],\n})\nexport class NpmPackageSelectComponent implements OnInit {\n // Fields\n\n // Properties\n @Input('npm-package')\n public NPMPackage: string;\n\n @Input('npm-package-version')\n public NPMPackageVersion: string;\n\n @Input('form-group')\n public FormGroup: FormGroup;\n\n public NPMPackages: { Name: string; NPMLink: string; Version: string }[];\n\n public NPMPackageVersions: string[];\n\n // Constructors\n constructor(protected npm: NPMService) {}\n\n // Life Cycle\n public ngOnDestroy(): void {\n this.FormGroup.removeControl('package');\n\n this.FormGroup.removeControl('version');\n }\n\n public ngOnInit(): void {\n this.FormGroup.addControl(\n 'package',\n new FormControl(this.NPMPackage || '', [Validators.required])\n );\n\n this.FormGroup.addControl(\n 'version',\n new FormControl(this.NPMPackageVersion || 'latest', [\n Validators.required,\n ])\n );\n\n this.FormGroup.controls.package.valueChanges\n .pipe(\n debounceTime(500),\n switchMap((value) =>\n this.npm.Search(value ? value.toString() : '')\n ),\n map((val) => {\n return val.Model\n ? val.Model.Items.map((i) => {\n return {\n Name: i.package.name,\n Version: i.package.version,\n NPMLink: i.package.links.npm,\n };\n })\n : [];\n })\n )\n .subscribe((packages) => {\n this.NPMPackages = packages;\n });\n }\n\n // API Methods\n public PackageSelected(event: MatAutocompleteSelectedEvent) {\n const pkg = this.NPMPackages.find((p) => p.Name === event.option.value);\n\n if (!this.FormGroup.controls.version.value) {\n this.FormGroup.controls.version.setValue(pkg.Version);\n\n this.npm.Versions(pkg.Name).subscribe((pkgDetails: any) => {\n const tags = Object.keys(pkgDetails['dist-tags']);\n\n const versions = Object.keys(pkgDetails['versions']);\n\n this.NPMPackageVersions = [...tags, ...versions];\n });\n }\n }\n\n // Helpers\n}\n","<div [formGroup]=\"FormGroup\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"NPM Package\"\n formControlName=\"package\"\n [matAutocomplete]=\"package\"\n required\n />\n\n <mat-autocomplete\n #package=\"matAutocomplete\"\n (optionSelected)=\"PackageSelected($event)\"\n >\n <ng-container *ngFor=\"let pkg of NPMPackages\">\n <mat-option [value]=\"pkg.Name\">\n <span>{{ pkg.Name }}</span> |\n\n <small>(latest: {{ pkg.Version }})</small>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-icon\n matSuffix\n mat-icon-button\n matTooltip=\"Enter the name of your NPM node package.\"\n >\n info_outline\n </mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Package Version\"\n formControlName=\"version\"\n [matAutocomplete]=\"version\"\n required\n />\n\n <mat-autocomplete #version=\"matAutocomplete\">\n <ng-container *ngFor=\"let version of NPMPackageVersions\">\n <mat-option [value]=\"version\">\n <span>{{ version }}</span>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <a\n mat-icon-button\n matSuffix\n matTooltip=\"Enter a Tag or current/previous version of your package. Using Tags allows for easy updates to unpack the latest version of that Tag. Click here to access the package version in NPM.\"\n [href]=\"\n 'https://www.npmjs.com/package/' +\n FormGroup.controls.package.value\n \"\n target=\"_blank\"\n id=\"npm-package-button\"\n >\n <mat-icon>info_outline</mat-icon>\n </a>\n </mat-form-field>\n</div>\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../../../../services/eac.service';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCProcessor,\n EaCProjectAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { SourceControlFormControlsComponent } from '../../forms/source-control/source-control.component';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\n\n@Component({\n selector: 'lcu-apps-flow',\n templateUrl: './apps-flow.component.html',\n styleUrls: ['./apps-flow.component.scss'],\n})\nexport class AppsFlowComponent implements OnInit {\n // Fields\n\n // Properties\n public get APIRootFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.apiRoot;\n }\n\n public ApplicationFormGroup: FormGroup;\n\n public get ApplicationIDFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.applicationId;\n }\n\n public get ApplicationLookups(): Array<string> {\n return Object.keys(this.Applications || {});\n }\n\n public get ApplicationRoutes(): Array<string> {\n return Object.keys(this.RoutedApplications || {});\n }\n\n public get ApplicationsBank(): { [lookup: string]: EaCApplicationAsCode } {\n return this.Data?.Applications || {};\n }\n\n public get Applications(): { [lookup: string]: EaCApplicationAsCode } {\n const apps: { [lookup: string]: EaCApplicationAsCode } = {};\n\n this.Project.ApplicationLookups.forEach((appLookup) => {\n apps[appLookup] = this.ApplicationsBank[appLookup];\n });\n return apps;\n }\n\n public get BuildFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.build;\n }\n\n public get ClientIDFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.clientId;\n }\n\n public get ClientSecretFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.clientSecret;\n }\n\n public CurrentApplicationRoute: string;\n\n public get CurrentRouteApplicationLookups(): Array<string> {\n return Object.keys(\n this.RoutedApplications[this.CurrentApplicationRoute] || {}\n );\n }\n\n @Input('data')\n public Data: {\n Applications: { [lookup: string]: EaCApplicationAsCode };\n Environment: EaCEnvironmentAsCode;\n PrimaryHost: string;\n Project: EaCProjectAsCode;\n ProjectLookup: string;\n };\n\n public get DefaultFileFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.defaultFile;\n }\n\n public get DefaultSourceControl(): EaCSourceControl {\n return {\n Organization: this.EditingApplication?.LowCodeUnit?.Organization,\n Repository: this.EditingApplication?.LowCodeUnit?.Repository,\n };\n }\n\n public get DescriptionFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.description;\n }\n\n public get EditingApplication(): EaCApplicationAsCode {\n let app = this.Applications\n ? this.Applications[this.EditingApplicationLookup]\n : null;\n\n if (app == null && this.EditingApplicationLookup) {\n app = {};\n }\n\n return app;\n }\n\n public EditingApplicationLookup: string;\n\n public get HasBuildFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.hasBuild;\n }\n\n public get InboundPathFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.inboundPath;\n }\n\n public get IsPrivateFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.isPrivate;\n }\n\n public get IsTriggerSignInFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.isTriggerSignIn;\n }\n\n public LCUType: string;\n\n public get MethodsFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.methods;\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.name;\n }\n\n public get PackageFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.package;\n }\n\n public IsPermanent: boolean;\n\n public IsPreserve: boolean;\n\n public redirectTooltip: string;\n\n public get PermanentFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.permanent;\n }\n\n public get PreserveMethodFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.preserveMethod;\n }\n\n public get PrimaryHost(): string {\n return this.Data.PrimaryHost;\n }\n\n public ProcessorType: string;\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project;\n }\n\n public get ProjectLookup(): string {\n return this.Data.ProjectLookup;\n }\n\n public get RedirectFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.redirect;\n }\n\n public get RoutedApplications(): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n const appLookups = Object.keys(this.Applications);\n\n const apps = appLookups.map(\n (appLookup) => this.Applications[appLookup]\n );\n\n let appRoutes =\n apps.map((app) => {\n return app?.LookupConfig?.PathRegex.replace('.*', '');\n }) || [];\n\n appRoutes = appRoutes.filter((ar) => ar != null);\n\n let routeBases: string[] = [];\n\n appRoutes.forEach((appRoute) => {\n const appRouteParts = appRoute.split('/');\n\n const appRouteBase = `/${appRouteParts[1]}`;\n\n if (routeBases.indexOf(appRouteBase) < 0) {\n routeBases.push(appRouteBase);\n }\n });\n\n let workingAppLookups = [...(appLookups || [])];\n\n routeBases = routeBases.sort((a, b) => b.localeCompare(a));\n\n const routeSet =\n routeBases.reduce((prevRouteMap, currentRouteBase) => {\n const routeMap = {\n ...prevRouteMap,\n };\n\n const filteredAppLookups = workingAppLookups.filter((wal) => {\n const wa = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(\n currentRouteBase\n );\n });\n\n routeMap[currentRouteBase] =\n filteredAppLookups.reduce((prevAppMap, appLookup) => {\n const appMap = {\n ...prevAppMap,\n };\n\n appMap[appLookup] = this.Applications[appLookup];\n\n return appMap;\n }, {}) || {};\n\n workingAppLookups = workingAppLookups.filter((wa) => {\n return filteredAppLookups.indexOf(wa) < 0;\n });\n\n return routeMap;\n }, {}) || {};\n\n let routeSetKeys = Object.keys(routeSet);\n\n routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));\n\n const routeSetResult = {};\n\n routeSetKeys.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));\n\n return routeSetResult;\n }\n\n public get RouteFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.route;\n }\n\n public get ScopesFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.scopes;\n }\n\n public get SecurityFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.security;\n }\n\n @ViewChild(SourceControlFormControlsComponent)\n public SourceControlFormControls: SourceControlFormControlsComponent;\n\n public get SourceControlLookupFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.sourceControlLookup;\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Data.Environment.Sources || {};\n }\n\n public get SPARootFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.spaRoot;\n }\n\n public get TokenLookupFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.tokenLookup;\n }\n\n public get VersionFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.version;\n }\n\n public get ZipFileFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.zipFile;\n }\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.EditingApplicationLookup = null;\n this.redirectTooltip = '';\n\n // this.IsPermanent = false;\n\n // this.IsPreserve = false;\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.ApplicationLookups?.length <= 0) {\n this.CreateNewApplication();\n }\n }\n\n // API Methods\n public CreateNewApplication(): void {\n this.SetEditingApplication(Guid.CreateRaw());\n }\n\n public DeleteApplication(appLookup: string, appName: string): void {\n this.eacSvc.DeleteApplication(appLookup, appName);\n }\n\n public LCUTypeChanged(event: MatSelectChange): void {\n this.LCUType = event.value;\n\n this.setupLcuTypeSubForm();\n }\n\n public ProcessorTypeChanged(event: MatSelectChange): void {\n this.ProcessorType = event.value;\n\n this.setupProcessorTypeSubForm();\n }\n\n public DetermineTooltipText() {\n let permanentValue = this.PermanentFormControl.value;\n let preserveValue = this.PreserveMethodFormControl.value;\n\n if (permanentValue === true && preserveValue === false) {\n this.redirectTooltip = '301 – Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === false) {\n this.redirectTooltip = '302 – Not Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === true) {\n this.redirectTooltip = '307 – Not Permanent and Preserve';\n } else if (permanentValue === true && preserveValue === true) {\n this.redirectTooltip = '308 – Permanent and Preserve';\n }\n }\n\n public GetProcessorType(appLookup: any): string {\n let processorType = '';\n processorType = this.Applications[appLookup].Processor.Type\n ? this.Applications[appLookup].Processor.Type\n : '';\n // console.log(\"Ptype = \", processorType);\n\n return processorType;\n }\n\n public EditApplicationRouteClicked(appRoute: any) {\n this.CurrentApplicationRoute = appRoute;\n }\n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = {\n Application: {\n Name: this.NameFormControl.value,\n Description: this.DescriptionFormControl.value,\n PriorityShift:\n this.EditingApplication?.Application?.PriorityShift || 0,\n },\n AccessRightLookups: [],\n DataTokens: {},\n LicenseConfigurationLookups: [],\n LookupConfig: {\n IsPrivate: this.IsPrivateFormControl.value,\n IsTriggerSignIn: this.IsPrivateFormControl.value\n ? this.IsTriggerSignInFormControl.value\n : false,\n PathRegex: `${this.RouteFormControl.value}.*`,\n QueryRegex:\n this.EditingApplication?.LookupConfig?.QueryRegex || '',\n HeaderRegex:\n this.EditingApplication?.LookupConfig?.HeaderRegex || '',\n AllowedMethods: this.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v),\n },\n Processor: {\n Type: this.ProcessorType,\n },\n };\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref =\n `${this.RouteFormControl.value}/`.replace('//', '/');\n\n app.Processor.DefaultFile =\n this.DefaultFileFormControl.value || 'index.html';\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHub':\n app.LowCodeUnit.Organization =\n this.SourceControlFormControls.OrganizationFormControl.value;\n\n app.LowCodeUnit.Repository =\n this.SourceControlFormControls.RepositoryFormControl.value;\n\n app.LowCodeUnit.Build = this.BuildFormControl.value;\n\n app.LowCodeUnit.Path =\n this.SourceControlFormControls.BuildPathFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package = this.PackageFormControl.value;\n\n app.LowCodeUnit.Version = this.VersionFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile = this.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes = this.ScopesFormControl.value.split(' ');\n\n app.Processor.TokenLookup = this.TokenLookupFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHubOAuth':\n app.LowCodeUnit.ClientID =\n this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret =\n this.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath = this.InboundPathFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'API':\n app.LowCodeUnit.APIRoot = this.APIRootFormControl.value;\n\n app.LowCodeUnit.Security =\n this.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot = this.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.Permanent = !!this.PermanentFormControl.value;\n\n app.Processor.PreserveMethod =\n !!this.PreserveMethodFormControl.value;\n\n app.Processor.Redirect = this.RedirectFormControl.value;\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Application: app,\n ApplicationLookup:\n this.EditingApplicationLookup || Guid.CreateRaw(),\n };\n\n if (\n this.HasBuildFormControl.value &&\n this.ProcessorType !== 'redirect'\n ) {\n if (app) {\n app.LowCodeUnit.SourceControlLookup =\n this.SourceControlLookupFormControl.value;\n }\n } else if (app) {\n app.LowCodeUnit.SourceControlLookup = null;\n }\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq);\n }\n\n public SetEditingApplication(appLookup: string): void {\n this.EditingApplicationLookup = appLookup;\n\n this.setupApplicationForm();\n }\n\n public SourceControlLookupChanged(event: MatSelectChange): void {\n // TODO: Anything to do here on change?\n }\n\n public StartsWith(\n app: EaCApplicationAsCode,\n appRouteBase: string\n ): boolean {\n if (appRouteBase === '/') {\n return app?.LookupConfig?.PathRegex === '/.*';\n } else {\n return app?.LookupConfig?.PathRegex.startsWith(appRouteBase);\n }\n }\n\n public Unpack(appLookup: string, app: EaCApplicationAsCode): void {\n this.eacSvc.UnpackLowCodeUnit({\n ApplicationLookup: appLookup,\n ApplicationName: app.Application?.Name,\n Version: app.LowCodeUnit?.Version || app.LowCodeUnit?.Build,\n });\n }\n\n // Helpers\n protected cleanupLcuTypeSubForm(): void {\n this.ApplicationFormGroup.removeControl('methods');\n this.ApplicationFormGroup.removeControl('apiRoot');\n this.ApplicationFormGroup.removeControl('security');\n\n this.ApplicationFormGroup.removeControl('spaRoot');\n\n this.ApplicationFormGroup.removeControl('applicationId');\n\n this.ApplicationFormGroup.removeControl('build');\n\n this.ApplicationFormGroup.removeControl('clientId');\n this.ApplicationFormGroup.removeControl('clientSecret');\n\n this.ApplicationFormGroup.removeControl('zipFile');\n }\n\n protected cleanupProcessorTypeSubForm(): void {\n this.ApplicationFormGroup.removeControl('defaultFile');\n this.ApplicationFormGroup.removeControl('dfsLcuType');\n\n this.ApplicationFormGroup.removeControl('oauthLcuType');\n this.ApplicationFormGroup.removeControl('scopes');\n this.ApplicationFormGroup.removeControl('tokenLookup');\n\n this.ApplicationFormGroup.removeControl('inboundPath');\n this.ApplicationFormGroup.removeControl('proxyLcuType');\n\n this.ApplicationFormGroup.removeControl('redirect');\n this.ApplicationFormGroup.removeControl('permanent');\n this.ApplicationFormGroup.removeControl('preserveMethod');\n\n this.cleanupLcuTypeSubForm();\n }\n\n protected setupApplicationForm(): void {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n console.log('ProcessorType = ', this.ProcessorType);\n\n if (this.EditingApplication != null) {\n this.ApplicationFormGroup = this.formBldr.group({\n name: [\n this.EditingApplication.Application?.Name,\n Validators.required,\n ],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [\n this.EditingApplication.LookupConfig?.PathRegex.replace(\n '.*',\n ''\n ) || '/',\n Validators.required,\n ],\n // priority: [\n // this.EditingApplication.Application?.Priority || 10000,\n // Validators.required,\n // ],\n procType: [this.ProcessorType, [Validators.required]],\n });\n\n this.setupBuildForm();\n\n this.setupSecurityForm();\n\n this.setupProcessorTypeSubForm();\n }\n }\n\n protected setupBuildForm(): void {\n this.ApplicationFormGroup.addControl(\n 'hasBuild',\n this.formBldr.control(\n !!this.EditingApplication.LowCodeUnit?.SourceControlLookup ||\n false,\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'sourceControlLookup',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SourceControlLookup || '',\n []\n )\n );\n }\n\n protected setupDfsForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ApplicationFormGroup.addControl(\n 'defaultFile',\n this.formBldr.control(\n this.EditingApplication.Processor?.DefaultFile || 'index.html',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupLCUAPIForm(): void {\n this.ApplicationFormGroup.addControl(\n 'methods',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.AllowedMethods?.join(\n ' '\n ) || '',\n []\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'apiRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.APIRoot || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'security',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Security || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUApplicationPointerForm(): void {\n this.ApplicationFormGroup.addControl(\n 'applicationId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ApplicationID || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUGitHubForm(): void {\n this.ApplicationFormGroup.addControl(\n 'build',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Build || 'latest',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUGitHubOAuthForm(): void {\n this.ApplicationFormGroup.addControl(\n 'clientId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientID || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'clientSecret',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientSecret || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUNPMForm(): void {\n // this.ApplicationFormGroup.addControl(\n // 'package',\n // this.formBldr.control(\n // this.EditingApplication.LowCodeUnit?.Package || '',\n // [Validators.required]\n // )\n // );\n // this.ApplicationFormGroup.addControl(\n // 'version',\n // this.formBldr.control(\n // this.EditingApplication.LowCodeUnit?.Version || '',\n // [Validators.required]\n // )\n // );\n }\n\n protected setupLCUSPAForm(): void {\n this.ApplicationFormGroup.addControl(\n 'spaRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SPARoot || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUZipForm(): void {\n this.ApplicationFormGroup.addControl(\n 'zipFile',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ZipFile || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLcuTypeSubForm(): void {\n this.cleanupLcuTypeSubForm();\n\n // this.ApplicationFormGroup.removeControl('package');\n // this.ApplicationFormGroup.removeControl('version');\n\n if (this.LCUType) {\n switch (this.LCUType) {\n case 'API':\n this.setupLCUAPIForm();\n break;\n\n case 'ApplicationPointer':\n this.setupLCUApplicationPointerForm();\n break;\n\n case 'GitHub':\n this.setupLCUGitHubForm();\n break;\n\n case 'GitHubOAuth':\n this.setupLCUGitHubOAuthForm();\n break;\n\n case 'NPM':\n this.setupLCUNPMForm();\n break;\n\n case 'SPA':\n this.setupLCUSPAForm();\n break;\n\n case 'Zip':\n this.setupLCUZipForm();\n break;\n }\n }\n }\n\n protected setupOAuthForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ApplicationFormGroup.addControl(\n 'scopes',\n this.formBldr.control(\n this.EditingApplication.Processor?.Scopes?.Join(' ') || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'tokenLookup',\n this.formBldr.control(\n this.EditingApplication.Processor?.TokenLookup || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupProxyForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ApplicationFormGroup.addControl(\n 'inboundPath',\n this.formBldr.control(\n this.EditingApplication.Processor?.InboundPath || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupProcessorTypeSubForm(): void {\n this.cleanupProcessorTypeSubForm();\n\n if (this.ProcessorType) {\n switch (this.ProcessorType) {\n case 'DFS':\n this.setupDfsForm();\n break;\n\n case 'OAuth':\n this.setupOAuthForm();\n break;\n\n case 'Proxy':\n this.setupProxyForm();\n break;\n\n case 'Redirect':\n this.setupRedirectForm();\n break;\n }\n }\n\n this.setupLcuTypeSubForm();\n }\n\n protected setupRedirectForm(): void {\n this.ApplicationFormGroup.addControl(\n 'redirect',\n this.formBldr.control(\n this.EditingApplication.Processor?.Redirect || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'permanent',\n this.formBldr.control(\n this.EditingApplication.Processor?.Permanent || false,\n []\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'preserveMethod',\n this.formBldr.control(\n this.EditingApplication.Processor?.PreserveMethod || false,\n []\n )\n );\n this.DetermineTooltipText();\n }\n\n protected setupSecurityForm(): void {\n this.ApplicationFormGroup.addControl(\n 'isPrivate',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsPrivate || false,\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'isTriggerSignIn',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsTriggerSignIn || false,\n [Validators.required]\n )\n );\n }\n}\n","<div>\n <div *ngIf=\"EditingApplication?.Application\">\n <h2>\n <button\n mat-icon-button\n matTooltip=\"Back to Routes\"\n (click)=\"SetEditingApplication(null)\"\n >\n <mat-icon>arrow_back</mat-icon>\n </button>\n\n {{ CurrentApplicationRoute }} /\n {{ EditingApplication.Application?.Name }}\n </h2>\n </div>\n <form\n [formGroup]=\"ApplicationFormGroup\"\n (ngSubmit)=\"SaveApplication()\"\n *ngIf=\"EditingApplication\"\n >\n <div\n fxLayout=\"row wrap\"\n fxLayoutAlign=\"center start\"\n fxLayout.lt-md=\"column\"\n >\n <div class=\"form-card\" fxFlex=\"70%\" fxFlex.lt-md=\"100%\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title>\n <ng-container\n *ngIf=\"EditingApplication?.Application\"\n >\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container\n *ngIf=\"!EditingApplication?.Application\"\n >\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"form-card\" fxFlex=\"35%\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\"\n >View Package</mat-option\n >\n\n <mat-option value=\"Redirect\"\n >Redirect</mat-option\n >\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"\n LCUTypeChanged($event)\n \"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\"\n >GitHub</mat-option\n >\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"\n EditingApplication?.LowCodeUnit\n ?.Path\n \"\n [form-group]=\"ApplicationFormGroup\"\n [source-control]=\"\n DefaultSourceControl\n \"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls\n ?.RepositoryFormControl\n ?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{\n EditingApplication\n ?.LowCodeUnit\n ?.CurrentBuild\n }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"\n EditingApplication?.LowCodeUnit\n ?.Package\n \"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit\n ?.Version\n \"\n [form-group]=\"ApplicationFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{\n EditingApplication?.LowCodeUnit\n ?.CurrentVersion\n }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"\n LCUTypeChanged($event)\n \"\n required\n >\n <mat-option value=\"GitHubOAuth\"\n >GitHub</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"\n LCUTypeChanged($event)\n \"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\"\n >Single Page Application</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"permanent\"\n >\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip=\"{{ redirectTooltip }}\"\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 – Not Permanent and Not Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"307 – Not Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"308 – Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Values used to control the redirect type. Permanent and Not Preserve = 301; Not Permanent and Not Preserve = 302; Permanent and Preserve = 308; Not Permanent and Not Preserve = 307;\"\n >\n info_outline\n </mat-icon> -->\n </div>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"form-card\" fxFlex=\"35%\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle\n formControlName=\"isTriggerSignIn\"\n >\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card\n class=\"spread flow-card\"\n *ngIf=\"ProcessorType != 'Redirect'\"\n >\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 &&\n SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"\n SourceControlLookupChanged($event)\n \"\n [disabled]=\"\n SourceControlFormControls?.Loading ||\n HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"\n let srcCtrlLookup of SourceControlLookups\n \"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"\n SourceControls[srcCtrlLookup];\n let srcCtrl\n \"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls\n ?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls\n ?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>\n Organization and Repository pulled from\n build settings\n </p>\n\n <mat-hint>\n CurrentBuild:\n {{\n EditingApplication?.LowCodeUnit\n ?.CurrentBuild\n }}\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\n tab above.\n </h3>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SetEditingApplication(null)\"\n >\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"\n !ApplicationFormGroup.valid || !ApplicationFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon> Save Application\n </button>\n\n <div fxFlex></div>\n </div>\n </form>\n\n <div class=\"spread\" *ngIf=\"!EditingApplication\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewApplication()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\" *ngIf=\"!CurrentApplicationRoute\">\n <div *ngIf=\"ApplicationRoutes?.length <= 0\">\n <h2>No applications created, create your first application.</h2>\n </div>\n\n <div *ngIf=\"ApplicationRoutes?.length > 0\">\n <h2>Project Routes</h2>\n\n <div\n fxLayout=\"row wrap\"\n fxLayout.lt-md=\"column\"\n *ngIf=\"ApplicationRoutes\"\n >\n <div\n fxFlex=\"20%\"\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let appRoute of ApplicationRoutes\"\n >\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"appRoute\"\n >\n {{ appRoute }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <a\n mat-icon-button\n href=\"https://{{ PrimaryHost }}{{\n appRoute\n }}\"\n target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\"\n >launch</mat-icon\n >\n </a>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"\n EditApplicationRouteClicked(\n appRoute\n )\n \"\n >\n <mat-icon\n matTooltip=\"Edit Application Route\"\n >\n settings\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"CurrentApplicationRoute\">\n <h2>\n <button\n mat-icon-button\n matTooltip=\"Back to Routes\"\n (click)=\"CurrentApplicationRoute = null\"\n >\n <mat-icon>arrow_back</mat-icon>\n </button>\n\n {{ CurrentApplicationRoute }} Routes\n </h2>\n\n <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <ng-container\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n >\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngIf=\"\n RoutedApplications[CurrentApplicationRoute][\n appLookup\n ];\n let app\n \"\n >\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"app.Application.Description\"\n >\n {{ app.Application.Name }}\n </mat-card-title>\n\n <mat-card-subtitle\n class=\"mat-subheading-1\"\n [matTooltip]=\"\n app.LowCodeUnit?.CurrentVersion ||\n app.LowCodeUnit?.CurrentBuild\n \"\n >\n @{{\n app.LowCodeUnit?.CurrentVersion ||\n app.LowCodeUnit?.CurrentBuild ||\n app.Processor?.Redirect ||\n \"No version deployed\"\n }}\n </mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <a\n mat-icon-button\n href=\"https://{{ PrimaryHost }}{{\n app.LookupConfig.PathRegex.replace(\n '.*',\n ''\n )\n }}\"\n target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\"\n >launch</mat-icon\n >\n </a>\n\n <a\n *ngIf=\"\n GetProcessorType(appLookup) ===\n 'DFS'\n \"\n mat-icon-button\n (click)=\"Unpack(appLookup, app)\"\n target=\"_blank\"\n matTooltip=\"Unpack {{\n app.LowCodeUnit?.Version ||\n app.LowCodeUnit?.Build\n }}\"\n >\n <mat-icon>cloud_upload</mat-icon>\n </a>\n\n <button\n mat-icon-button\n (click)=\"\n SetEditingApplication(appLookup)\n \"\n >\n <mat-icon matTooltip=\"Edit Application\">\n edit\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteApplication(\n appLookup,\n app.Application.Name\n )\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{\n app.Application.Name\n }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button\n mat-icon-button\n disabled\n *ngIf=\"\n GetProcessorType(appLookup) ===\n 'DFS'\n \"\n >\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCDevOpsAction, EaCArtifact } from '@semanticjs/common';\nimport {\n ProjectHostingDetails,\n ProjectHostingOption,\n} from '../../../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-hosting-details-form-group',\n templateUrl: './hosting-details-form-group.component.html',\n styleUrls: ['./hosting-details-form-group.component.scss'],\n})\nexport class HostingDetailsFormGroupComponent implements OnChanges, OnInit {\n // Fields\n\n // Properties\n @Input('artifact')\n public Artifact: EaCArtifact;\n\n @Input('build-pipeline')\n public BuildPipeline: string;\n\n public get BuildPipelineFormControl(): AbstractControl {\n return this.FormGroup.get('buildPipeline');\n }\n\n @Input('details')\n public Details: ProjectHostingDetails;\n\n @Input('devops-action')\n public DevOpsAction: EaCDevOpsAction;\n\n public get DevOpsActionNameFormControl(): AbstractControl {\n return this.FormGroup.get('devOpsActionName');\n }\n\n @Input('disabled')\n public Disabled: boolean;\n\n public get FormGroup(): FormGroup {\n return this.ParentFormGroup.get('hostingDetails') as FormGroup;\n }\n\n public get NPMTokenFormControl(): AbstractControl {\n return this.FormGroup.get('npmToken');\n }\n\n @Input('organization')\n public Organization: string;\n\n @Input('formGroup')\n public ParentFormGroup: FormGroup;\n\n public get SelectedHostingOption(): ProjectHostingOption {\n return this.Details?.HostingOptions?.find(\n (ho) => ho.Lookup === this.BuildPipeline\n );\n }\n\n public get SelectedHostingOptionInputControlValues(): {\n [lookup: string]: any;\n } {\n return this.SelectedHostingOption?.Inputs?.reduce((prev, cur) => {\n const res = {\n ...prev,\n };\n\n res[cur.Lookup] = this.FormGroup.controls[cur.Lookup].value;\n\n return res;\n }, {});\n }\n\n // Constructors\n constructor(protected formBuilder: FormBuilder) {}\n\n // Life Cycle\n public ngOnChanges(): void {}\n\n public ngOnInit(): void {\n this.BuildPipeline =\n this.BuildPipeline || this.Details?.HostingOptions\n ? this.Details?.HostingOptions[0]?.Lookup\n : '';\n\n if (this.FormGroup != null) {\n this.ParentFormGroup.removeControl('hostingDetails');\n }\n\n this.ParentFormGroup.addControl(\n 'hostingDetails',\n this.formBuilder.group({\n buildPipeline: [this.BuildPipeline, [Validators.required]],\n })\n );\n\n this.setupControlsForForm();\n }\n\n // API Methods\n public BuildPipelineChanged(): void {\n this.BuildPipeline = this.BuildPipelineFormControl.value;\n\n this.setupControlsForForm();\n }\n\n // Helpers\n protected setupControlsForForm(): void {\n for (const ctrlName in this.FormGroup.controls) {\n if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {\n this.FormGroup.removeControl(ctrlName);\n }\n }\n\n this.FormGroup.addControl(\n 'devOpsActionName',\n this.formBuilder.control(\n this.DevOpsAction?.Name ||\n this.SelectedHostingOption?.Name ||\n '',\n [Validators.required]\n )\n );\n\n this.SelectedHostingOption?.Inputs?.forEach((input) => {\n const validators = input.Required ? [Validators.required] : [];\n\n this.FormGroup.addControl(\n input.Lookup,\n this.formBuilder.control(\n this.Artifact[input.Lookup] || input.DefaultValue || '',\n validators\n )\n );\n\n // if (this.Disabled) {\n // this.FormGroup.controls[input.Lookup].disable();\n // }\n });\n\n if (this.BuildPipelineFormControl.value === 'npm-release') {\n if (!this.FormGroup.controls.npmToken) {\n this.FormGroup.addControl(\n 'npmToken',\n this.formBuilder.control(\n '',\n this.Disabled ? [] : [Validators.required]\n )\n );\n\n if (this.Disabled) {\n this.FormGroup.controls.npmToken.disable();\n }\n }\n } else if (\n this.BuildPipelineFormControl.value === 'github-artifacts-release'\n ) {\n if (this.FormGroup.controls.npmToken) {\n this.FormGroup.removeControl('npmToken');\n }\n }\n }\n}\n","<div [formGroup]=\"FormGroup\" *ngIf=\"!Details?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"\n let hostOption of Details?.HostingOptions;\n let i = index\n \"\n >\n <mat-option [value]=\"hostOption?.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n <ng-container *ngFor=\"let hostOption of Details?.HostingOptions\">\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n\n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n\n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n\n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n\n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access Token\n (PAT) with publish access to the organization used for your NPM\n packages. Learn how to create and view access tokens\n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n</div>\n\n<div *ngIf=\"Details?.Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\">Loading hosting details</h4>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\nimport {\n EaCService,\n SaveEnvironmentAsCodeEventRequest,\n} from '../../../../../services/eac.service';\nimport {\n EaCArtifact,\n EaCDevOpsAction,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { BaseModeledResponse, Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { SourceControlFormControlsComponent } from '../../forms/source-control/source-control.component';\nimport { ProjectHostingDetails } from '../../../../../state/applications-flow.state';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\nimport { HostingDetailsFormGroupComponent } from '../../hosting-details-form-group/hosting-details-form-group.component';\n\n@Component({\n selector: 'lcu-devops',\n templateUrl: './devops.component.html',\n styleUrls: ['./devops.component.scss'],\n})\nexport class DevOpsComponent implements OnInit {\n // Fields\n\n // Properties\n public DevOpsFormGroup: FormGroup;\n\n public get Artifact(): EaCArtifact {\n return this.Data.Environment.Artifacts && this.ArtifactLookup\n ? this.Data.Environment.Artifacts[this.ArtifactLookup] || {}\n : {};\n }\n\n public get ArtifactLookup(): string {\n const artLookup = this.DevOpsAction?.ArtifactLookups\n ? this.DevOpsAction?.ArtifactLookups[0]\n : null;\n\n return artLookup;\n }\n\n @Input('data')\n public Data: {\n Environment: EaCEnvironmentAsCode;\n EnvironmentLookup: string;\n };\n\n public get DefaultFileFormControl(): AbstractControl {\n return this.DevOpsFormGroup?.controls.defaultFile;\n }\n\n public get DevOpsAction(): EaCDevOpsAction {\n return this.Data.Environment.DevOpsActions && this.DevOpsActionLookup\n ? this.Data.Environment.DevOpsActions[this.DevOpsActionLookup] || {}\n : {};\n }\n\n public get DevOpsActionLookup(): string {\n if (!!this.DevOpsActionLookupFormControl?.value) {\n return this.DevOpsActionLookupFormControl.value;\n }\n\n if (!!this.EditingSourceControl?.DevOpsActionTriggerLookups) {\n return this.EditingSourceControl?.DevOpsActionTriggerLookups[0];\n } else {\n return null;\n }\n }\n\n public get DevOpsActionLookups(): Array<string> {\n return Object.keys(this.DevOpsActions || {});\n }\n\n public get DevOpsActionLookupFormControl(): AbstractControl {\n return this.DevOpsFormGroup.get('devOpsActionLookup');\n }\n\n public get DevOpsActions(): { [lookup: string]: EaCDevOpsAction } {\n return this.Data.Environment.DevOpsActions || {};\n }\n\n public get EditingSourceControl(): EaCSourceControl {\n let sc = this.Data?.Environment?.Sources\n ? this.Data?.Environment?.Sources[this.EditingSourceControlLookup]\n : null;\n\n if (sc == null && this.EditingSourceControlLookup) {\n sc = {};\n }\n\n return sc;\n }\n\n public EditingSourceControlLookup: string;\n\n public HostingDetails: ProjectHostingDetails;\n\n @ViewChild(HostingDetailsFormGroupComponent)\n public HostingDetailsFormControls: HostingDetailsFormGroupComponent;\n\n @ViewChild(SourceControlFormControlsComponent)\n public SourceControlFormControls: SourceControlFormControlsComponent;\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Data.Environment.Sources || {};\n }\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.EditingSourceControlLookup = null;\n\n this.HostingDetails = new ProjectHostingDetails();\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.SourceControlLookups?.length <= 0) {\n this.CreateNewSourceControl();\n }\n }\n\n // API Methods\n public BranchesChanged(branches: string[]): void {\n this.loadProjectHostingDetails();\n }\n\n public CreateNewSourceControl(): void {\n this.SetEditingSourceControl(Guid.CreateRaw());\n }\n\n public DeleteSourceControl(scLookup: string): void {\n // if (\n // confirm(`Are you sure you want to delete source control '${scLookup}'?`)\n // ) {\n // this.eacSvc.DeleteSourceControl(scLookup);\n // }\n }\n\n public DevOpsActionLookupChanged(event: MatSelectChange): void {\n this.configureDevOpsAction();\n }\n\n public SaveEnvironment(): void {\n const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {\n Environment: {\n ...this.Data.Environment,\n Artifacts: this.Data.Environment.Artifacts || {},\n DevOpsActions: this.Data.Environment.DevOpsActions || {},\n Secrets: this.Data.Environment.Secrets || {},\n Sources: this.Data.Environment.Sources || {},\n },\n EnvironmentLookup: this.Data.EnvironmentLookup,\n EnterpriseDataTokens: {},\n };\n\n let artifactLookup: string;\n\n let artifact: EaCArtifact = {\n ...this.Artifact,\n ...this.HostingDetailsFormControls\n .SelectedHostingOptionInputControlValues,\n };\n\n if (!this.ArtifactLookup) {\n artifactLookup = Guid.CreateRaw();\n\n artifact = {\n ...artifact,\n Type: this.HostingDetailsFormControls.SelectedHostingOption\n .ArtifactType,\n Name: this.HostingDetailsFormControls.SelectedHostingOption\n .Name,\n NPMRegistry: 'https://registry.npmjs.org/',\n };\n } else {\n artifactLookup = this.ArtifactLookup;\n }\n\n saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;\n\n let devOpsActionLookup: string;\n\n if (!this.DevOpsActionLookup) {\n devOpsActionLookup = Guid.CreateRaw();\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n ArtifactLookups: [artifactLookup],\n Name: this.HostingDetailsFormControls\n .DevOpsActionNameFormControl.value,\n Path: this.HostingDetailsFormControls.SelectedHostingOption\n .Path,\n Templates:\n this.HostingDetailsFormControls.SelectedHostingOption\n .Templates,\n };\n\n if (this.HostingDetailsFormControls.NPMTokenFormControl?.value) {\n const secretLookup = 'npm-access-token';\n\n doa.SecretLookups = [secretLookup];\n\n saveEnvReq.Environment.Secrets[secretLookup] = {\n Name: 'NPM Access Token',\n DataTokenLookup: secretLookup,\n KnownAs: 'NPM_TOKEN',\n };\n\n saveEnvReq.EnterpriseDataTokens[secretLookup] = {\n Name: saveEnvReq.Environment.Secrets[secretLookup].Name,\n Description:\n saveEnvReq.Environment.Secrets[secretLookup].Name,\n Value: this.HostingDetailsFormControls.NPMTokenFormControl\n .value,\n };\n }\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n } else {\n devOpsActionLookup = this.DevOpsActionLookupFormControl.value;\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n Name: this.HostingDetailsFormControls\n .DevOpsActionNameFormControl.value,\n };\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n }\n\n let source: EaCSourceControl = {\n ...this.EditingSourceControl,\n Branches: this.SourceControlFormControls.SelectedBranches,\n MainBranch:\n this.SourceControlFormControls.MainBranchFormControl.value,\n };\n\n source = {\n ...source,\n Type: 'GitHub',\n Name: this.EditingSourceControlLookup,\n DevOpsActionTriggerLookups: [devOpsActionLookup],\n Organization:\n this.SourceControlFormControls.OrganizationFormControl.value,\n Repository:\n this.SourceControlFormControls.RepositoryFormControl.value,\n };\n\n const scLookup = `github://${source.Organization}/${source.Repository}`;\n\n saveEnvReq.Environment.Sources[scLookup] = source;\n\n this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);\n }\n\n public SetEditingSourceControl(scLookup: string): void {\n this.EditingSourceControlLookup = scLookup;\n\n this.setupDevOpsForm();\n }\n\n // Helpers\n protected configureDevOpsAction(): void {\n setTimeout(() => {\n this.DevOpsActionLookupFormControl.setValue(\n this.DevOpsActionLookup\n );\n\n setTimeout(() => {\n const hostOption = this.HostingDetails?.HostingOptions?.find(\n (ho) => ho.Path === this.DevOpsAction.Path\n );\n\n this.HostingDetailsFormControls?.BuildPipelineFormControl.setValue(\n hostOption?.Lookup\n );\n\n this.HostingDetailsFormControls?.BuildPipelineChanged();\n }, 0);\n }, 0);\n }\n\n protected loadProjectHostingDetails(): void {\n if (this.SourceControlFormControls?.SelectedBranches?.length > 0) {\n this.HostingDetails.Loading = true;\n\n this.appsFlowSvc.LoadProjectHostingDetails().subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.configureDevOpsAction();\n },\n (err) => {\n this.HostingDetails.Loading = false;\n }\n );\n }\n }\n\n protected setupDevOpsForm(): void {\n if (this.EditingSourceControl != null) {\n this.DevOpsFormGroup = this.formBldr.group({});\n\n this.setupBuildForm();\n }\n }\n\n protected setupBuildForm(): void {\n this.DevOpsFormGroup.addControl(\n 'devOpsActionLookup',\n this.formBldr.control(this.DevOpsActionLookup || '', [])\n );\n }\n}\n","<div>\n <form\n [formGroup]=\"DevOpsFormGroup\"\n (ngSubmit)=\"SaveEnvironment()\"\n *ngIf=\"EditingSourceControl\"\n >\n <div\n fxLayout=\"row wrap\"\n fxLayoutAlign=\"center start\"\n fxLayout.lt-md=\"column\"\n >\n <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 <lcu-source-control-form-controls\n [branches-disabled]=\"HostingDetails?.Loading\"\n [form-group]=\"DevOpsFormGroup\"\n [org-disabled]=\"HostingDetails?.Loading\"\n [repo-disabled]=\"HostingDetails?.Loading\"\n [source-control]=\"EditingSourceControl\"\n (branches-changed)=\"BranchesChanged($event)\"\n ></lcu-source-control-form-controls>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"form-card\" fxFlex=\"35%\" fxFlex.lt-md=\"100%\">\n <mat-card\n class=\"spread\"\n *ngIf=\"\n SourceControlFormControls?.SelectedBranches?.length >\n 0 || EditingSourceControl?.Branches?.length > 0\n \"\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\n using this DevOpsAction\n </mat-hint>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"devOpsActionLookup\"\n placeholder=\"DevOps Action\"\n [disabled]=\"\n SourceControlLookupFormControl?.value ||\n SourceControlFormControls?.Loading ||\n HostingDetails?.Loading\n \"\n (selectionChange)=\"\n DevOpsActionLookupChanged($event)\n \"\n >\n <ng-container\n *ngFor=\"\n let devOpsActionLookup of DevOpsActionLookups\n \"\n >\n <mat-option\n [value]=\"devOpsActionLookup\"\n *ngIf=\"\n DevOpsActions[devOpsActionLookup];\n let devOpsAction\n \"\n >\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n\n <mat-option value=\"\"\n >-- Create New --</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <ng-container>\n <lcu-hosting-details-form-group\n [artifact]=\"Artifact\"\n [devops-action]=\"\n DevOpsActions[\n DevOpsActionLookupFormControl?.value\n ]\n \"\n [details]=\"HostingDetails\"\n [formGroup]=\"DevOpsFormGroup\"\n [organization]=\"\n SourceControlFormControls\n ?.OrganizationFormControl?.value\n \"\n [disabled]=\"\n !!DevOpsActionLookupFormControl?.value ||\n SourceControlFormControls?.Loading ||\n HostingDetails?.Loading\n \"\n ></lcu-hosting-details-form-group>\n </ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SetEditingSourceControl(null)\"\n >\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!DevOpsFormGroup.valid || !DevOpsFormGroup.dirty\"\n >\n <mat-icon>save</mat-icon> Save Application\n </button>\n\n <div fxFlex></div>\n </div>\n </form>\n\n <div class=\"spread\" *ngIf=\"!EditingSourceControl\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewSourceControl()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\">\n <div *ngIf=\"SourceControlLookups?.length <= 0\">\n <h2>\n No source controls created, create your first source\n control.\n </h2>\n </div>\n\n <div *ngIf=\"SourceControlLookups?.length > 0\">\n <h2>Source Controls</h2>\n\n <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let sourceControlLookup of SourceControlLookups\"\n >\n <mat-card class=\"spread\">\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"sourceControlLookup\"\n >\n {{ sourceControlLookup }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"\n SetEditingSourceControl(\n sourceControlLookup\n )\n \"\n >\n <mat-icon\n matTooltip=\"Edit Source Control\"\n >\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteSourceControl(\n sourceControlLookup\n )\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{\n sourceControlLookup\n }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport {\n EaCService,\n SaveDFSModifierEventRequest,\n} from '../../../../../services/eac.service';\nimport { EaCDFSModifier, EaCProjectAsCode } from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\n\n@Component({\n selector: 'lcu-dfs-modifiers',\n templateUrl: './dfs-modifiers.component.html',\n styleUrls: ['./dfs-modifiers.component.scss'],\n})\nexport class DFSModifiersComponent implements OnInit {\n // Fields\n\n // Properties\n public CurrentType: string;\n\n @Input('data')\n public Data: {\n Modifiers: { [lookup: string]: EaCDFSModifier };\n Project: EaCProjectAsCode;\n ProjectLookup: string;\n };\n\n public get DetailsFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.details;\n }\n\n public get EditingModifier(): EaCDFSModifier {\n let mdfr = this.Modifiers\n ? this.Modifiers[this.EditingModifierLookup]\n : null;\n\n if (mdfr == null && this.EditingModifierLookup) {\n mdfr = {};\n }\n\n return mdfr;\n }\n\n public EditingModifierLookup: string;\n\n public get EnabledFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.enabled;\n }\n\n public get LocationFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.location;\n }\n\n public ModifierFormGroup: FormGroup;\n\n public get ModifierLookups(): Array<string> {\n return Object.keys(this.Modifiers || {});\n }\n\n public get Modifiers(): { [lookup: string]: EaCDFSModifier } {\n return this.Data.Modifiers || {};\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.name;\n }\n\n public get PathFilterFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.pathFilter;\n }\n\n public get PriorityFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.priority;\n }\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project || {};\n }\n\n public get ScriptFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.script;\n }\n\n public get ScriptIDFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.scriptId;\n }\n\n public get StateDataTokenFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.stateDataToken;\n }\n\n public get TypeFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.type;\n }\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.EditingModifierLookup = null;\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.ModifierLookups?.length <= 0) {\n this.CreateNewModifier();\n }\n }\n\n // API Methods\n public CreateNewModifier(): void {\n this.SetEditingModifier(Guid.CreateRaw());\n }\n\n public DeleteModifier(modifierLookup: string, modifierName: string): void {\n this.eacSvc.DeleteModifier(modifierLookup, modifierName).then();\n }\n\n public SaveModifier(projectLookup: string = null): void {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ProjectLookups: [projectLookup],\n };\n\n const details = {};\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['StateDataToken'] =\n this.StateDataTokenFormControl.value;\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['Location'] = this.LocationFormControl.value;\n\n details['Script'] = this.ScriptFormControl.value;\n\n details['ScriptID'] = this.ScriptIDFormControl.value;\n break;\n }\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n\n public SetEditingModifier(modifierLookup: string): void {\n this.EditingModifierLookup = modifierLookup;\n\n this.setupModifierForm();\n }\n\n public SetUseForProject(\n modifierLookup: string,\n change: MatSlideToggleChange\n ): void {\n this.SetEditingModifier(modifierLookup);\n\n this.SaveModifier(this.Data.ProjectLookup);\n }\n\n public TypeChanged(event: MatSelectChange): void {\n this.CurrentType = event.value;\n\n this.setupTypeForm();\n }\n\n // Helpers\n protected setupModifierForm(): void {\n if (this.EditingModifier != null) {\n this.CurrentType = this.EditingModifier?.Type;\n\n this.ModifierFormGroup = this.formBldr.group({\n name: [this.EditingModifier?.Name, Validators.required],\n type: [this.CurrentType, Validators.required],\n priority: [this.EditingModifier?.Priority, Validators.required],\n enabled: [this.EditingModifier?.Enabled, []],\n pathFilter: [\n this.EditingModifier?.PathFilterRegex,\n Validators.required,\n ],\n });\n\n this.setupTypeForm();\n }\n }\n\n protected setupTypeForm(): void {\n this.ModifierFormGroup.removeControl('stateDataToken');\n\n this.ModifierFormGroup.removeControl('location');\n this.ModifierFormGroup.removeControl('script');\n this.ModifierFormGroup.removeControl('scriptId');\n\n const details = JSON.parse(this.EditingModifier?.Details || '{}');\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'stateDataToken',\n this.formBldr.control(details?.StateDataToken || '', [\n Validators.required,\n ])\n );\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'location',\n this.formBldr.control(details?.Location || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [\n Validators.required,\n ])\n );\n break;\n }\n }\n}\n","<div>\n <form\n [formGroup]=\"ModifierFormGroup\"\n (ngSubmit)=\"SaveModifier()\"\n *ngIf=\"EditingModifier\"\n >\n <div class=\"form-card\">\n <mat-card class=\"spread\">\n <mat-card-header>\n <mat-card-title> DFS Modifier </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure modifiers for your DFS files.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"Name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"priority\"\n placeholder=\"Priority\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"pathFilter\"\n placeholder=\"Path Filter (regex)\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"type\"\n placeholder=\"DFS Modifier Type\"\n (selectionChange)=\"TypeChanged($event)\"\n >\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n HTML Base Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n LCU Reg Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n Thrid Party Library Modifier\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"stateDataToken\"\n placeholder=\"State Data Token\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"location\"\n placeholder=\"Location\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"scriptId\"\n placeholder=\"Script ID\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n formControlName=\"script\"\n placeholder=\"Script\"\n required\n ></textarea>\n </mat-form-field>\n </ng-container>\n\n <mat-slide-toggle class=\"spread\" formControlName=\"enabled\">\n Is Enabled?\n </mat-slide-toggle>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button mat-button type=\"button\" (click)=\"SetEditingModifier(null)\">\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"\n !ModifierFormGroup.valid || !ModifierFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon> Save DFS Modifier\n </button>\n\n <div fxFlex></div>\n </div>\n </form>\n\n <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewModifier()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\">\n <div *ngIf=\"ModifierLookups?.length <= 0\">\n <h2>\n No DFS modifiers created, create your first DFS modifier.\n </h2>\n </div>\n\n <div *ngIf=\"ModifierLookups?.length > 0\">\n <h2>DFS Modifiers</h2>\n\n <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let modifierLookup of ModifierLookups\"\n >\n <mat-card\n class=\"spread\"\n *ngIf=\"Modifiers[modifierLookup]; let modifier\"\n >\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"modifier.Name\"\n >\n {{ modifier.Name || modifier.Lookup }}\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n class=\"spread\"\n [checked]=\"\n Project?.ModifierLookups.indexOf(\n modifierLookup\n ) >= 0\n \"\n (change)=\"\n SetUseForProject(\n modifierLookup,\n $event\n )\n \"\n matTooltip=\"Use for project?\"\n >\n </mat-slide-toggle>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"\n SetEditingModifier(modifierLookup)\n \"\n >\n <mat-icon\n matTooltip=\"Edit DFS Modifier\"\n >\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteModifier(\n modifierLookup,\n modifier.Name\n )\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{\n modifier.Name\n }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { FormsService } from './../../services/forms.service';\nimport { Subscription } from 'rxjs';\nimport { DynamicTabsModel } from './../../models/dynamic-tabs.model';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\n\n@Component({\n selector: 'lcu-dynamic-tabs',\n templateUrl: './dynamic-tabs.component.html',\n styleUrls: ['./dynamic-tabs.component.scss'],\n})\nexport class DynamicTabsComponent implements OnInit, AfterViewInit {\n /**\n * Container used to display dynamic components\n */\n @ViewChild('container', { read: ViewContainerRef, static: false })\n protected viewContainer: ViewContainerRef;\n\n @Input('background-color')\n public BackgroundColor: string;\n\n @Input('color')\n public Color: string;\n\n /**\n * Form is dirty flag\n */\n public FormIsDirty: boolean;\n\n /**\n * Listener for when any form is dirty\n */\n protected formIsDirtySubscription: Subscription;\n\n /**\n * Components loaded as dynamic components\n */\n @Input('tab-components')\n public TabComponents: Array<DynamicTabsModel>;\n\n constructor(\n protected viewContainerRef: ViewContainerRef,\n protected formsService: FormsService\n ) {}\n\n // Lifecycle hook\n public ngOnInit(): void {\n // listen for any form to be dirty, then disable all tabs except for the current tab\n this.formIsDirtySubscription = this.formsService.FormIsDirty.subscribe(\n (val: boolean) => {\n this.FormIsDirty = val;\n }\n );\n }\n\n public ngAfterViewInit(): void {\n this.renderComponent(0);\n }\n\n /**\n * Tab change event\n *\n * @param index selected tab index\n */\n public TabChanged(evt: MatTabChangeEvent): void {\n setTimeout(() => {\n this.renderComponent(evt.index);\n }, 1000);\n }\n\n /**\n * Render component for the active tab\n *\n * @param index TabComponents index position\n */\n protected renderComponent(index: number): any {\n if (!this.TabComponents) {\n return;\n }\n const componentRef = this.viewContainerRef.createComponent(\n this.TabComponents[index].Component\n );\n\n // factory for creating a dynamic component\n // const factory: ComponentFactory<any> = this.componentFactoryResolver\n // .resolveComponentFactory(this.TabComponents[index].Component);\n\n // component created by a factory\n // const componentRef: ComponentRef<any> = this.viewContainer.createComponent(factory);\n\n // current component instance\n const instance: DynamicTabsComponent =\n componentRef.instance as DynamicTabsComponent;\n\n // find the current component in TabComponents and set the data\n this.TabComponents.find((comp: DynamicTabsModel) => {\n if (comp.Component.name === instance.constructor.name) {\n instance['Data'] = comp.Data;\n }\n });\n }\n}\n","<mat-tab-group\n [color]=\"Color\"\n [backgroundColor]=\"BackgroundColor\"\n (selectedTabChange)=\"TabChanged($event)\"\n>\n <!-- <div>\n\n </div> -->\n <mat-tab\n *ngFor=\"let component of TabComponents\"\n #tab\n [disabled]=\"!tab.isActive && FormIsDirty\"\n >\n <ng-template mat-tab-label>\n <mat-icon [color]=\"Color\" class=\"margin-right-2\">\n {{ component.Icon }}\n </mat-icon>\n {{ component.Label }}\n </ng-template>\n <ng-template matTabContent>\n <div #container class=\"margin-top-3\"></div>\n </ng-template>\n </mat-tab>\n</mat-tab-group>\n","import { DomainsComponent } from './../tabs/domains/domains.component';\nimport { DynamicTabsModel } from './../../../../models/dynamic-tabs.model';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { GeneralComponent } from '../tabs/general/general.component';\nimport {\n EaCApplicationAsCode,\n EaCDFSModifier,\n EaCEnvironmentAsCode,\n EaCHost,\n EaCProjectAsCode,\n} from '@semanticjs/common';\nimport { AppsFlowComponent } from '../tabs/apps-flow/apps-flow.component';\nimport { DevOpsComponent } from '../tabs/devops/devops.component';\nimport { DFSModifiersComponent } from '../tabs/dfs-modifiers/dfs-modifiers.component';\n\n@Component({\n selector: 'lcu-project-tabs',\n templateUrl: './project-tabs.component.html',\n styleUrls: ['./project-tabs.component.scss'],\n})\nexport class ProjectTabsComponent implements OnInit {\n // Fields\n\n // Properties\n public get ApplicationLookups(): Array<string> {\n return Object.keys(this.Applications || {});\n }\n\n @Input('applications')\n public Applications: { [lookup: string]: EaCApplicationAsCode };\n\n @Input('dfs-modifiers')\n public DFSModifiers: { [lookup: string]: EaCDFSModifier };\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Input('environment-lookup')\n public EnvironmentLookup: string;\n\n @Input('hosts')\n public Hosts: { [lookup: string]: EaCHost };\n\n public get PrimaryHost(): string {\n return this.Project.Hosts[this.Project.Hosts.length - 1];\n }\n\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n public TabComponents: Array<DynamicTabsModel>;\n\n constructor() {}\n\n public ngOnInit(): void {\n this.tabsComponents();\n }\n\n protected tabsComponents(): void {\n this.TabComponents = [\n new DynamicTabsModel({\n Component: AppsFlowComponent,\n Data: {\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n Applications: this.Applications,\n Environment: this.Environment,\n PrimaryHost: this.PrimaryHost,\n },\n Label: 'Application Flow',\n Icon: 'account_tree',\n }),\n new DynamicTabsModel({\n Component: DevOpsComponent,\n Data: {\n Environment: this.Environment,\n EnvironmentLookup: this.EnvironmentLookup,\n },\n Label: 'DevOps',\n Icon: 'build',\n }),\n new DynamicTabsModel({\n Component: DFSModifiersComponent,\n Data: {\n Modifiers: this.DFSModifiers,\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n },\n Label: 'Modifiers',\n Icon: 'auto_fix_high',\n }),\n new DynamicTabsModel({\n Component: GeneralComponent,\n Data: {\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n },\n Label: 'General',\n Icon: 'pages',\n }),\n new DynamicTabsModel({\n Component: DomainsComponent,\n Data: {\n Hosts: this.Hosts,\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n PrimaryHost: this.PrimaryHost,\n },\n Label: 'Domains',\n Icon: 'domain',\n }),\n ];\n }\n}\n","<lcu-dynamic-tabs color=\"accent\" [tab-components]=\"TabComponents\">\n</lcu-dynamic-tabs>\n","import { Component, OnInit, Injector, OnDestroy } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\nimport {\n LCUElementContext,\n LcuElementComponent,\n BaseResponse,\n} from '@lcu/common';\nimport { ApplicationsFlowState } from './../../state/applications-flow.state';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport { EaCEnvironmentAsCode, EaCProjectAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\n\ndeclare var window: Window;\n\nexport class ApplicationsFlowProjectsElementState {}\n\nexport class ApplicationsFlowProjectsContext extends LCUElementContext<ApplicationsFlowProjectsElementState> {}\n\nexport const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT =\n 'applications-flow-projects-element';\n\n@Component({\n selector: SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT,\n templateUrl: './projects.component.html',\n styleUrls: ['./projects.component.scss'],\n})\nexport class ApplicationsFlowProjectsElementComponent\n extends LcuElementComponent<ApplicationsFlowProjectsContext>\n implements OnDestroy, OnInit\n{\n // Fields\n protected projMon: NodeJS.Timeout;\n\n // Properties\n public get ActiveEnvironment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.ActiveEnvironmentLookup];\n }\n\n public get ActiveEnvironmentLookup(): string {\n // TODO: Eventually support multiple environments\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\n\n return envLookups[0];\n }\n\n public get CreatingProject(): boolean {\n return this.eacSvc.CreatingProject;\n }\n\n public get EditingProject(): EaCProjectAsCode {\n return this.State?.EaC?.Projects\n ? this.State?.EaC?.Projects[this.EditingProjectLookup]\n : null;\n }\n\n public get EditingProjectLookup(): string {\n return this.eacSvc.EditingProjectLookup;\n }\n\n public get ProjectLookups(): Array<string> {\n return Object.keys(this.State?.EaC?.Projects || {});\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n // Constructors\n constructor(\n protected injector: Injector,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n super(injector);\n }\n\n // Life Cycle\n public ngOnDestroy(): void {}\n\n public ngOnInit(): void {\n super.ngOnInit();\n\n this.handleStateChange().then((eac) => {});\n\n // this.setupProjectMonitor();\n }\n\n // API Methods\n public async ActiveEnterpriseChanged(\n event: MatSelectChange\n ): Promise<void> {\n await this.eacSvc.SetActiveEnterprise(event.value);\n }\n\n public ConfigureDevOpsAction(devOpsActionLookup: string): void {\n this.State.Loading = true;\n\n this.appsFlowSvc\n .ConfigureDevOpsAction(devOpsActionLookup)\n .subscribe((response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.eacSvc.LoadEnterpriseAsCode();\n } else {\n this.State.Loading = false;\n }\n });\n }\n\n // Helpers\n protected async handleStateChange(): Promise<void> {\n this.State.Loading = true;\n }\n}\n","<app-host-dashboard-card-element\n [context]=\"{ Title: 'Projects', Icon: 'language' }\"\n>\n <nav>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"State.Enterprises?.length > 1\"\n >\n <mat-select\n placeholder=\"Active Enterprise ({{\n State.ActiveEnterpriseLookup\n }})\"\n [value]=\"State.ActiveEnterpriseLookup\"\n (selectionChange)=\"ActiveEnterpriseChanged($event)\"\n >\n <mat-option\n [value]=\"ent.Lookup\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n {{ ent.Name }}\n </mat-option>\n </mat-select>\n\n <!-- Toggle between Caged Krakyn and Unleashed Krakyn (Flow Tool) -->\n </mat-form-field>\n\n <a\n mat-icon-button\n href=\"/docs/getting-started/setup\"\n target=\"_blank\"\n lcuEvent=\"click\"\n label=\"Projects\"\n category=\"help\"\n >\n <mat-icon matTooltip=\"More info\">help_outline</mat-icon>\n </a>\n </nav>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n class=\"margin-bottom-4\"\n >\n <h2\n class=\"mat-display-2 margin-y-2\"\n *ngIf=\"ProjectLookups?.length <= 0\"\n >\n <span> Thank you for signing up </span>\n </h2>\n </div>\n\n <!-- <lcu-git-auth *ngIf=\"!State.GitHub.HasConnection\"></lcu-git-auth> -->\n\n <!-- *ngIf=\"State.GitHub.HasConnection\" -->\n <ng-container>\n <!-- <div *ngIf=\"!CreatingProject\">\n Creating\n <lcu-create-project-wizard></lcu-create-project-wizard>\n </div> -->\n\n <ng-container *ngIf=\"!State.Unleashed\">\n <ng-container *ngIf=\"State\">\n <lcu-projects-header\n [creating-project]=\"CreatingProject\"\n [projects]=\"State.EaC?.Projects\"\n [selected-project-lookup]=\"EditingProjectLookup\"\n ></lcu-projects-header>\n\n <div *ngIf=\"EditingProject\">\n <div class=\"divider margin-bottom-3\"></div>\n\n <lcu-project-tabs\n [applications]=\"State.EaC?.Applications\"\n [dfs-modifiers]=\"State.EaC?.Modifiers\"\n [hosts]=\"State.EaC?.Hosts\"\n [project]=\"EditingProject\"\n [project-lookup]=\"EditingProjectLookup\"\n [environment]=\"ActiveEnvironment\"\n [environment-lookup]=\"ActiveEnvironmentLookup\"\n class=\"margin-top-3\"\n >\n </lcu-project-tabs>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"State.Unleashed\">\n <!-- Shannon flow tool control implemented -->\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div class=\"loading\" *ngIf=\"State?.Loading\">\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader>\n\n <div class=\"margin-3\">\n <!-- <p *ngIf=\"!State.UserEnterpriseLookup\">Loading your projects</p> -->\n\n <!-- <p *ngIf=\"State.UserEnterpriseLookup\">Loading your Dashboard.</p> -->\n </div>\n </div>\n\n <!-- <div>\n <pre>{{ State | json }}</pre>\n </div> -->\n</app-host-dashboard-card-element>\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { MatStepper } from '@angular/material/stepper';\nimport { BaseModeledResponse } from '@lcu/common';\nimport { EaCService } from '../../../../services/eac.service';\nimport { ApplicationsFlowService } from '../../../../services/applications-flow.service';\nimport { ProjectHostingDetails } from '../../../../state/applications-flow.state';\nimport { SourceControlFormControlsComponent } from '../forms/source-control/source-control.component';\n\n@Component({\n selector: 'lcu-create-project-wizard',\n templateUrl: './create-project-wizard.component.html',\n styleUrls: ['./create-project-wizard.component.scss'],\n})\nexport class CreateProjectWizardComponent implements AfterViewInit, OnInit {\n // Fields\n\n // Properties\n public get AreProjectDetailsValid(): boolean {\n return this.ProjectDetailsFormGroup?.valid;\n }\n\n public HostingDetails: ProjectHostingDetails;\n\n public get IsBranchValid(): boolean {\n return this.SourceControl?.SelectedBranches?.length > 0;\n }\n\n public get IsOrganizationValid(): boolean {\n return this.RepoDetailsFormGroup.get('organization')?.valid;\n }\n\n public get IsRepositoryValid(): boolean {\n return this.RepoDetailsFormGroup.get('repository')?.valid;\n }\n\n public Loading?: boolean;\n\n public get ProjectDetailsFormGroup(): FormGroup {\n return this.ProjectFormGroup.get('projectDetails') as FormGroup;\n }\n\n public ProjectFormGroup: FormGroup;\n\n public get RepoDetailsFormGroup(): FormGroup {\n return this.ProjectFormGroup.get('repoDetails') as FormGroup;\n }\n\n @ViewChild(SourceControlFormControlsComponent)\n public SourceControl: SourceControlFormControlsComponent;\n\n @ViewChild('projectStepper')\n public Stepper: MatStepper;\n\n // Constructors\n constructor(\n protected formBuilder: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.HostingDetails = new ProjectHostingDetails();\n }\n // Life Cycle\n public ngAfterViewInit(): void {\n this.handleStateChange();\n }\n\n public ngOnInit(): void {\n this.ProjectFormGroup = this.formBuilder.group({\n repoDetails: this.formBuilder.group({}),\n projectDetails: this.formBuilder.group({}),\n });\n }\n\n // API Methods\n public Cancel() {\n this.eacSvc.SetCreatingProject(false);\n }\n\n public ConfigureRepository() {\n this.loadProjectHostingDetails();\n }\n\n public CreateProject(): void {\n this.Loading = true;\n\n // const req: ProjectState = {\n // Branch: this.SourceControl.SelectedBranches.join(','),\n // BuildScript: this.ProjectDetailsFormGroup.get('buildScript').value,\n // // HostingOption: projectDetails.get('hostingOption').value,\n // Organization: this.RepoDetailsFormGroup.get('organization').value,\n // OutputFolder: this.ProjectDetailsFormGroup.get('outputFolder').value,\n // // ProjectName: projectDetails.get('projectName').value,\n // Repository: this.RepoDetailsFormGroup.get('repository').value,\n // };\n\n // const src: EaCSourceControl = {\n // Name: '',\n // Type: 'GitHub',\n // Organization: this.RepoDetailsFormGroup.get('organization').value,\n // Repository: this.RepoDetailsFormGroup.get('repository').value,\n // Branches: this.SourceControl.SelectedBranches.join(','),\n // };\n\n // const doa: EaCDevOpsAction = {\n // Type: 'NPM',\n // Name: 'NPM Deploy',\n // Lookup: 'npm-deploy',\n // Output: this.ProjectDetailsFormGroup.get('outputFolder').value,\n // DeployCommand: 'npm run deploy',\n // InstallCommand: 'npm ci',\n // NPMRegistry: 'https://registry.npmjs.org/',\n // };\n\n // const art: EaCArtifact = {\n // Type: 'NPM',\n // Name: 'NPM Deploy',\n // Lookup: 'npm-deploy',\n // Output: this.ProjectDetailsFormGroup.get('output').value,\n // DeployCommand: 'npm run deploy',\n // InstallCommand: 'npm ci',\n // NPMRegistry: 'https://registry.npmjs.org/',\n // };\n\n // const proj: EaCProjectAsCode = {\n // Project: {\n // Name: `${src.Organization} ${src.Repository} ${src.Branches}`,\n // },\n // };\n\n // this.appsFlowEventsSvc.SaveProject(req);\n }\n\n public SetupRepository(): void {\n this.determineStep();\n }\n\n // Helpers\n protected determineStep(): void {\n let index = 0;\n\n if (\n this.IsOrganizationValid &&\n this.IsRepositoryValid &&\n this.IsBranchValid\n ) {\n index = 1;\n }\n\n setTimeout(() => {\n this.Stepper.selectedIndex = index;\n }, 0);\n }\n\n protected handleStateChange(): void {\n this.determineStep();\n }\n\n protected loadProjectHostingDetails(): void {\n this.HostingDetails.Loading = true;\n\n this.appsFlowSvc\n .LoadProjectHostingDetails()\n .subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.Stepper.next();\n }\n );\n }\n}\n","<div>\n <div [fxHide]=\"Loading\">\n <!-- <div style=\"position: absolute; top: 5px; right: 5px\">\n <button mat-mini-fab (click)=\"Cancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div> -->\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"80%\"\n fxFlex.lt-md=\"100%\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <div\n class=\"welcome margin-x-1\"\n fxFlex=\"40%\"\n fxFlex.lt-md=\"100%\"\n >\n <h3 class=\"mat-title\">\n Let's get your Project setup and running\n </h3>\n\n <div class=\"divider-fill-hor margin-y-4\"></div>\n </div>\n\n <div class=\"setup margin-x-1\" fxFlex=\"90%\" fxFlex.lt-md=\"100%\">\n <form\n [formGroup]=\"ProjectFormGroup\"\n (ngSubmit)=\"CreateProject()\"\n >\n <mat-horizontal-stepper linear #projectStepper>\n <mat-step\n label=\"Connect Repository\"\n formGroupName=\"repoDetails\"\n [completed]=\"\n IsOrganizationValid &&\n IsRepositoryValid &&\n IsBranchValid\n \"\n >\n <div>\n <h3\n class=\"mat-display-1 margin-bottom-4 margin-top-3\"\n >\n Connect your repository\n </h3>\n\n <div [fxShow]=\"!HostingDetails.Loading\">\n <div class=\"margin-y-2\">\n <lcu-source-control-form-controls\n [form-group]=\"\n RepoDetailsFormGroup\n \"\n [source-control]=\"{}\"\n ></lcu-source-control-form-controls>\n </div>\n\n <div class=\"margin-top-4\">\n <button\n mat-button\n color=\"warn\"\n (click)=\"Cancel()\"\n type=\"button\"\n >\n Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"ConfigureRepository()\"\n type=\"button\"\n [disabled]=\"!IsBranchValid\"\n >\n Next\n </button>\n </div>\n </div>\n\n <div\n class=\"margin-3\"\n *ngIf=\"HostingDetails.Loading\"\n >\n <lcu-loader\n style=\"margin: auto\"\n [loading]=\"true\"\n ></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\">\n Configuring\n </h4>\n </div>\n </div>\n </div>\n </mat-step>\n\n <!-- [stepControl]=\"formArray.get([2])\" -->\n <mat-step\n label=\"Configure Project\"\n formGroupName=\"projectDetails\"\n >\n <h3 class=\"mat-display-1 margin-bottom-2\">\n Configure build pipeline for\n </h3>\n\n <h4 class=\"mat-headline margin-bottom-2\">\n <strong>\n @{{\n RepoDetailsFormGroup.get(\n \"organization\"\n )?.value\n }}/{{\n RepoDetailsFormGroup.get(\n \"repository\"\n )?.value\n }}\n\n <br />\n\n <span\n *ngFor=\"\n let selBranch of SourceControl?.SelectedBranches\n \"\n >\n @{{ selBranch }}\n </span>\n </strong>\n </h4>\n\n <div\n class=\"margin-y-2\"\n *ngIf=\"!HostingDetails.Loading\"\n >\n <lcu-hosting-details-form-group\n [formGroup]=\"ProjectDetailsFormGroup\"\n [details]=\"HostingDetails\"\n ></lcu-hosting-details-form-group>\n </div>\n\n <div>\n <button\n mat-button\n matStepperPrevious\n type=\"button\"\n >\n Back\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"!AreProjectDetailsValid\"\n >\n Create Project\n </button>\n </div>\n </mat-step>\n </mat-horizontal-stepper>\n </form>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"loading\" *ngIf=\"Loading\">\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n\n <div class=\"margin-3\">\n <p>Loading</p>\n </div>\n </div>\n</div>\n","import { GitHubWorkflowRun } from './../../../../state/applications-flow.state';\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { EaCLowCodeUnit, EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-builds',\n templateUrl: './builds.component.html',\n styleUrls: ['./builds.component.scss'],\n})\nexport class BuildsComponent implements OnInit, OnDestroy {\n // Fields\n\n // Properties\n @Input('projects')\n public Projects: Array<EaCProjectAsCode>;\n\n constructor() {}\n\n public ngOnInit(): void {}\n\n public ngOnDestroy(): void {}\n\n public DeployRun(lastrun: GitHubWorkflowRun): void {\n // this.appsFlowEventsSvc.DeployRun(lastrun);\n }\n\n public RetrieveLCU(val: {\n project: EaCProjectAsCode;\n lcuID: string;\n }): EaCLowCodeUnit {\n // this.RetrieveLCUEmitter.emit(lcu);\n return {}; //val.project.LCUs.find((lcu) => lcu.ID === val.lcuID);\n }\n}\n","<mat-accordion>\n <div *ngIf=\"Projects\" class=\"expansion-container\">\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n *ngFor=\"let project of Projects\"\n >\n <div fxFlex fxLayout=\"row\">\n <mat-expansion-panel\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\"\n [ngClass]=\"panelOpenState === true ? 'active' : 'inactive'\"\n class=\"expansion-panel\"\n >\n <mat-expansion-panel-header\n [collapsedHeight]=\"'75px'\"\n [expandedHeight]=\"'75px'\"\n >\n <div\n fxFlex\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n class=\"margin-right-3\"\n *ngIf=\"project.Runs[0]; let latestRun\"\n >\n <div fxLayout=\"row\">\n <div>\n <div\n fxLayout=\"column\"\n *ngIf=\"\n RetrieveLCU({\n project: project,\n lcuID: latestRun.LCUID\n });\n let lcu\n \"\n >\n <div class=\"workflow-run-status\">\n <a\n mat-icon-button\n href=\"https://github.com/{{\n lcu.Organization\n }}/{{ lcu.Repository }}/actions\"\n target=\"_blank\"\n >\n <div fxLayout=\"row\">\n <div\n fxLayoutAlign=\"center center\"\n class=\"icon-bg\"\n [ngClass]=\"\n latestRun.Conclusion ==\n 'success'\n ? 'success'\n : 'error'\n \"\n >\n <mat-icon\n matTooltip=\"{{\n latestRun.Status\n }} {{\n latestRun.Conclusion\n }}\"\n *ngIf=\"\n latestRun.Conclusion ==\n 'success'\n \"\n >\n {{\n latestRun.Conclusion ==\n \"success\"\n ? \"check_circle\"\n : \"error\"\n }}\n </mat-icon>\n </div>\n\n <div>\n <mat-icon\n class=\"error\"\n *ngIf=\"\n latestRun.Conclusion ==\n 'failure'\n \"\n >\n error_outline\n </mat-icon>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n <div\n fxLayout=\"column\"\n class=\"details margin-left-3\"\n >\n <span\n class=\"name mat-headline mat-body-1\"\n >{{ project.Name }}</span\n >\n </div>\n </div>\n\n <div fxLayout=\"row\" class=\"actions\">\n <a\n mat-button\n color=\"accent\"\n (click)=\"DeployRun(latestRun)\"\n target=\"_blank\"\n matTooltip=\"Deploy Latest\"\n >\n <mat-icon>cloud_upload</mat-icon>\n </a>\n </div>\n </div>\n </mat-expansion-panel-header>\n <span class=\"mat-body-2\">Build Details</span>\n </mat-expansion-panel>\n </div>\n </div>\n </div>\n</mat-accordion>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-recent-activities',\n templateUrl: './recent-activities.component.html',\n styleUrls: ['./recent-activities.component.scss'],\n})\nexport class RecentActivitiesComponent implements OnInit {\n constructor() {}\n\n public ngOnInit(): void {}\n}\n","<p>recent-activities works!</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { FormsService } from '../../../../../../../services/forms.service';\nimport { CardFormConfigModel } from '../../../../../../../models/card-form-config.model';\nimport { EaCService } from '../../../../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-project-details',\n templateUrl: './project-details.component.html',\n styleUrls: ['./project-details.component.scss'],\n})\nexport class ProjectNameComponent implements OnInit {\n /**\n * Form button actions\n */\n public Config: CardFormConfigModel;\n\n /**\n * Access form control for description\n */\n public get Description(): AbstractControl {\n return this.Form.get('description');\n }\n\n /**\n * FormGroup for project name card\n */\n public Form: FormGroup;\n\n /**\n * Name of form\n */\n protected formName: string;\n\n /**\n * When form is dirty, ties into formsService.DisableForms\n */\n public IsDirty: boolean;\n\n /**\n * Access form control for project name\n */\n public get Name(): AbstractControl {\n return this.Form.get('name');\n }\n\n /**\n * Input value for state\n */\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.formName = 'ProjectNameForm';\n\n this.setupForm();\n\n this.config();\n }\n\n /**\n * Form configurations\n */\n protected config(): void {\n this.Config = new CardFormConfigModel({\n Icon: 'house',\n Title: 'Root Directory',\n Subtitle:\n 'The directory within your project, in which your code is located. Leave this field empty if your code is not located in a subdirectory',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Reset',\n Color: 'warn',\n ClickEvent: () => this.resetForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n /**\n * Setup form controls\n */\n protected setupForm(): void {\n this.Form = new FormGroup({\n name: new FormControl(this.Project?.Project?.Name || '', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n description: new FormControl(\n this.Project?.Project?.Description || '',\n {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }\n ),\n });\n\n this.formsService.Form = { Id: this.formName, Form: this.Form };\n\n this.onChange();\n }\n\n /**\n * Save form\n */\n protected save(): void {\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: this.ProjectLookup,\n Project: {\n ...this.Project,\n Project: {\n ...(this.Project || {}),\n Description: this.Description.value,\n Name: this.Name.value,\n },\n },\n });\n\n this.formsService.UpdateValuesReference({\n Id: this.formName,\n Form: this.Form,\n });\n }\n\n /**\n * Reset form controls back to previous values\n */\n protected resetForm(): void {\n // enable all forms\n // this.formsService.DisableForms(false);\n\n this.formsService.ResetFormValues(this.formName);\n }\n\n /**\n * Listen to form changes\n */\n protected onChange(): void {\n this.Form.valueChanges.subscribe((val: object) => {\n if (this.formsService.ForRealThough(this.formName, this.Form)) {\n this.IsDirty = true;\n // disable all forms except the current form being edited\n this.formsService.DisableForms(this.formName);\n } else {\n this.IsDirty = false;\n // enable all forms\n this.formsService.DisableForms(false);\n }\n });\n }\n}\n","<form fxFlex fxLayout=\"row\" fxLayout.lt-md=\"column\" [formGroup]=\"Form\">\n <lcu-form-card fxFlex [config]=\"Config\" [form]=\"Form\" [is-dirty]=\"IsDirty\">\n <div fxLayout=\"column\">\n <mat-form-field\n appearance=\"fill\"\n fxFlex\n class=\"margin-right-1 margin-bottom-2\"\n >\n <mat-icon\n matSuffix\n [ngClass]=\"Name.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Name.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Name.invalid || Name.disabled ? 'Project Name' : ''\n \"\n formControlName=\"name\"\n />\n\n <!-- <mat-hint *ngIf=\"Name.valid\"> Selected Project Name </mat-hint> -->\n\n <mat-error *ngIf=\"Name.hasError('required')\">\n Project Name is required\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex appearance=\"fill\" class=\"margin-right-1\">\n <mat-icon\n matTooltip=\"Brief content that allows users to understand the purpose, objective, goals or problems addressed by the project.\"\n matSuffix\n [ngClass]=\"\n Description.valid ? 'valid-control' : 'invalid-control'\n \"\n >\n {{ Description.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <textarea\n type=\"text\"\n matInput\n rows=\"3\"\n [placeholder]=\"\n Description.invalid || Description.disabled\n ? 'Project Description'\n : ''\n \"\n formControlName=\"description\"\n ></textarea>\n\n <!-- <mat-hint *ngIf=\"Description.valid\">\n Selected Project Description\n </mat-hint> -->\n\n <mat-error *ngIf=\"Description.hasError('required')\">\n Project Description is required\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>\n","import { Subscription } from 'rxjs';\nimport { FormsService } from './../../../../../../../services/forms.service';\nimport { CardFormConfigModel } from './../../../../../../../models/card-form-config.model';\nimport { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCService } from '../../../../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-root-directory',\n templateUrl: './root-directory.component.html',\n styleUrls: ['./root-directory.component.scss'],\n})\nexport class RootDirectoryComponent implements OnInit {\n /**\n * Card / Form Config\n */\n public Config: CardFormConfigModel;\n\n /**\n * FormGroup\n */\n public Form: FormGroup;\n\n protected formIsDirtySubscription: Subscription;\n\n /**\n * Access form control for root directory\n */\n public get Root(): AbstractControl {\n return this.Form.get('root');\n }\n\n /**\n * Access form control for root directory\n */\n public get IncludeSource(): AbstractControl {\n return this.Form.get('includeSource');\n }\n\n /**\n * Input value for state\n */\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.setupForm();\n\n this.config();\n }\n\n /**\n * Setup form controls\n */\n protected setupForm(): void {\n this.Form = new FormGroup({\n root: new FormControl('/', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n includeSource: new FormControl(false),\n });\n\n this.formsService.Form = { Id: 'RootDirectoryForm', Form: this.Form };\n this.onChange();\n }\n\n /**\n * Form configurations\n */\n protected config(): void {\n this.Config = new CardFormConfigModel({\n Icon: 'house',\n Title: 'Root Directory',\n Subtitle:\n 'The directory within your project, in which your code is located. Leave this field empty if your code is not located in a subdirectory',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Clear',\n Color: 'warn',\n ClickEvent: () => this.clearForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n\n /**\n * Save form\n */\n protected save(): void {\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: this.ProjectLookup,\n Project: {\n ...this.Project,\n // Root: this.Root.value,\n // IncludeSource: this.IncludeSource.value\n },\n });\n // this.formsService.UpdateValuesReference({ Id: 'RootDirectoryForm', Form: this.Form });\n }\n\n /**\n * Clear form controls\n */\n protected clearForm(): void {\n // this.Form.reset();\n\n // enable all forms\n this.formsService.DisableForms(false);\n }\n\n /**\n * Listen to form changes\n */\n protected onChange(): void {\n this.Form.valueChanges.subscribe((val: any) => {\n // disable all forms except the current form being edited\n this.formsService.DisableForms('RootDirectoryForm');\n });\n }\n}\n","<form fxFlex fxLayout=\"row\" fxLayout.lt-md=\"column\" [formGroup]=\"Form\">\n <lcu-form-card [config]=\"Config\" [form]=\"Form\" [disabled]=\"Form.disabled\">\n <div fxLayout=\"column\">\n <mat-form-field appearance=\"fill\" class=\"margin-right-1\">\n <mat-icon\n matSuffix\n [ngClass]=\"Root.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Root.valid ? \"check_circle\" : \"cancel\" }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Root.invalid || Root.disabled ? 'Root Directory' : ''\n \"\n formControlName=\"root\"\n />\n <mat-hint *ngIf=\"Root.valid\">\n Selected Root Directory\n </mat-hint>\n <mat-error *ngIf=\"Root.hasError('required')\">\n Root Directory is required\n </mat-error>\n </mat-form-field>\n <mat-checkbox id=\"includeSource\" formControlName=\"includeSource\">\n Include source files outside of the Root Directory in the build\n step\n </mat-checkbox>\n </div>\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>\n","import { BaseFormConfigModel } from './../../models/base-form-config.model';\nimport { Component, OnInit } from '@angular/core';\nimport { EaCService } from '../../services/eac.service';\nimport { FormsService } from '../../services/forms.service';\n\n@Component({\n selector: 'lcu-base-form',\n templateUrl: './base-form.component.html',\n styleUrls: ['./base-form.component.scss'],\n})\nexport class BaseFormComponent implements OnInit {\n /**\n * FormGroup for project name card\n */\n // public Form: FormGroup;\n\n /**\n * Form name\n */\n // protected formName: string;\n\n /**\n * When form is dirty, ties into formsService.DisableForms\n */\n // public IsDirty: boolean;\n\n public FormConfig: BaseFormConfigModel;\n\n constructor(\n protected formsService: FormsService,\n protected eac: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.setupForm();\n }\n\n protected setupForm(): void {\n this.formsService.Form = {\n Id: this.FormConfig.FormName,\n Form: this.FormConfig.Form,\n };\n\n // this.onChange();\n }\n\n /**\n * Listen to form value changes\n */\n protected onChange(): void {}\n\n protected checkFormForChanges(): void {\n this.FormConfig.Form.valueChanges.subscribe((val: object) => {\n if (\n this.formsService.ForRealThough(\n this.FormConfig.FormName,\n this.FormConfig.Form\n )\n ) {\n this.FormConfig.IsDirty = true;\n // disable all forms except the current form being edited\n this.formsService.DisableForms(this.FormConfig.FormName);\n } else {\n this.FormConfig.IsDirty = false;\n // enable all forms\n this.formsService.DisableForms(false);\n }\n });\n }\n\n /**\n * Update Form value reference\n */\n protected updateValueRef(): void {\n this.formsService.UpdateValuesReference({\n Id: this.FormConfig.FormName,\n Form: this.FormConfig.Form,\n });\n }\n\n protected save(): void {\n console.log('PARENT SAVE');\n }\n\n protected resetForm(): void {}\n}\n","","import { Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CardFormConfigModel } from './card-form-config.model';\n\nexport class BaseFormConfigModel {\n public CardConfig?: CardFormConfigModel;\n public Form?: FormGroup;\n public FormName: string;\n public IsDirty?: boolean;\n\n constructor(opts: BaseFormConfigModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { CardFormConfigModel } from '../../../../../../../models/card-form-config.model';\nimport { FormsService } from '../../../../../../../services/forms.service';\nimport { EaCService } from '../../../../../../../services/eac.service';\nimport { BaseFormComponent } from '../../../../../../base-form/base-form.component';\nimport { Component, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { BaseFormConfigModel } from '../../../../../../../models/base-form-config.model';\n\n@Component({\n selector: 'lcu-base-form-test',\n templateUrl: './base-form-test.component.html',\n styleUrls: ['./base-form-test.component.scss'],\n})\nexport class BaseFormTestComponent extends BaseFormComponent implements OnInit {\n /**\n * Access form control for description\n */\n public get Description(): AbstractControl {\n return this.FormConfig.Form.get('description');\n }\n\n /**\n * Access form control for project name\n */\n public get Name(): AbstractControl {\n return this.FormConfig.Form.get('name');\n }\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {\n super(formsService, eacSvc);\n }\n\n public ngOnInit(): void {\n this.FormConfig = new BaseFormConfigModel({\n FormName: 'TestFormComponent',\n });\n\n this.setupConfig();\n this.setupMyForm();\n\n super.ngOnInit();\n }\n\n protected setupMyForm(): void {\n this.FormConfig.Form = new FormGroup({\n name: new FormControl('', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n description: new FormControl('', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n });\n\n this.checkFormForChanges();\n }\n\n protected setupConfig(): void {\n this.FormConfig.CardConfig = new CardFormConfigModel({\n Icon: 'house',\n Title: 'Test Form',\n Subtitle:\n 'The directory within your project, in which your code is located. Leave this field empty if your code is not located in a subdirectory',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Reset',\n Color: 'warn',\n ClickEvent: () => this.resetForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n\n protected save(): void {\n console.log('CHILD SAVE');\n }\n}\n","<form\n fxFlex\n fxLayout=\"row\"\n fxLayout.lt-md=\"column\"\n [formGroup]=\"FormConfig.Form\"\n>\n <lcu-form-card\n fxFlex\n [config]=\"FormConfig.CardConfig\"\n [form]=\"FormConfig.Form\"\n [is-dirty]=\"FormConfig.IsDirty\"\n >\n <div fxLayout=\"column\">\n <mat-form-field\n appearance=\"fill\"\n fxFlex\n class=\"margin-right-1 margin-bottom-2\"\n >\n <mat-icon\n matSuffix\n [ngClass]=\"Name.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Name.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Name.invalid || Name.disabled ? 'Project Name' : ''\n \"\n formControlName=\"name\"\n />\n\n <mat-hint *ngIf=\"Name.valid\"> Selected Project Name </mat-hint>\n\n <mat-error *ngIf=\"Name.hasError('required')\">\n Project Name is required\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex appearance=\"fill\" class=\"margin-right-1\">\n <mat-icon\n matSuffix\n [ngClass]=\"\n Description.valid ? 'valid-control' : 'invalid-control'\n \"\n >\n {{ Description.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <textarea\n type=\"text\"\n matInput\n rows=\"3\"\n [placeholder]=\"\n Description.invalid || Description.disabled\n ? 'Project Description'\n : ''\n \"\n formControlName=\"description\"\n ></textarea>\n\n <mat-hint *ngIf=\"Description.valid\">\n Selected Project Description\n </mat-hint>\n\n <mat-error *ngIf=\"Description.hasError('required')\">\n Project Description is required\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>\n","import { Component, OnInit, AfterViewInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lcu-git-auth',\n templateUrl: './git-auth.component.html',\n styleUrls: ['./git-auth.component.scss'],\n})\nexport class GitAuthComponent implements OnInit, AfterViewInit {\n @Input('size')\n public Size: string;\n // Properties\n public ConnectClicked: boolean;\n\n // Constructors\n constructor() {\n this.Size = 'large';\n }\n\n // Life Cycle\n public ngAfterViewInit(): void {}\n\n public ngOnInit(): void {}\n\n /**\n * Connect Github Provider\n */\n public ConnectGitHubProvider(): void {\n const reidrectUri = location.pathname + location.search;\n\n // window.location.href = `/.oauth/GitHubOAuth?redirectUri=${reidrectUri}`;\n\n // added below line for the new social ui redirectUri wasn't working\n\n window.location.href = '/.oauth/GitHubOAuth?redirectUri=%2Fdashboard';\n\n this.ConnectClicked = true;\n }\n\n /**\n * Listen for State changes\n */\n}\n","<ng-container *ngIf=\"Size === 'large'\">\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <!-- <div\n label=\"Connect Git\"\n [completed]=\"State.GitHub.HasConnection\"\n > -->\n <!-- <div \n label=\"Connect Git\" \n *ngIf=\"!State.GitHub.HasConnection\"> -->\n <div\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n class=\"connect margin-x-3 margin-bottom-3\"\n >\n <h3 class=\"mat-display-1 margin-bottom-4\">\n Connect your git provider\n </h3>\n\n <!-- href=\"/.oauth/github\" -->\n <a\n mat-raised-button\n color=\"primary\"\n class=\"github margin-y-3\"\n [disabled]=\"ConnectClicked\"\n >\n Connect with GitHub\n\n <span class=\"octocat-icon\"></span>\n </a>\n </div>\n <!-- </div> -->\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"Size === 'small'\">\n <button\n mat-raised-button\n (click)=\"ConnectGitHubProvider()\"\n [disabled]=\"ConnectClicked\"\n color=\"primary\"\n >\n <mat-icon>add</mat-icon>\n Connect with GitHub\n </button>\n</ng-container>\n","import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-three-column',\n templateUrl: './three-column.component.html',\n styleUrls: ['./three-column.component.scss'],\n})\nexport class ThreeColumnComponent implements OnInit {\n public SmallScreen: boolean;\n\n constructor(public breakpointObserver: BreakpointObserver) {}\n\n ngOnInit(): void {\n this.breakpointObserver\n .observe(['(max-width: 850px)'])\n .subscribe((state: BreakpointState) => {\n // console.log(\"Breakpoint: \", state.matches)\n if (state.matches) {\n this.SmallScreen = true;\n } else {\n this.SmallScreen = false;\n }\n // console.log(\"SmallScrren = \" ,this.SmallScreen);\n });\n }\n}\n","<div\n class=\"col-container\"\n fxLayout.gt-md=\"row\"\n fxLayout.lt-md=\"column\"\n fxLayoutAlign.lt-md=\"space-evenly center\"\n>\n <!-- LEFT COL -->\n\n <div class=\"col-left\" fxFlex.gt-md=\"25%\" fxFlexOrder.lt-md=\"1\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n\n <!-- CENTER COL -->\n\n <div class=\"col-center\" fxFlex.gt-md=\"50%\" fxFlexOrder.lt-md=\"3\">\n <ng-content></ng-content>\n </div>\n\n <!-- RIGHT COL -->\n\n <div class=\"col-right\" fxFlex.gt-md=\"25%\" fxFlexOrder.lt-md=\"2\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-slotted-card',\n templateUrl: './slotted-card.component.html',\n styleUrls: ['./slotted-card.component.scss'],\n})\nexport class SlottedCardComponent implements OnInit {\n @Input('action-text')\n public ActionText: string;\n\n @Input('action-path')\n public ActionPath: string;\n\n @Input('icon')\n public Icon: string;\n\n @Input('main-slot-description')\n public MainSlotDescription: string;\n\n @Input('main-icon')\n public MainIcon: string;\n\n @Input('show-main-icon')\n public ShowMainIcon: boolean;\n\n @Input('card-title')\n public CardTitle: string;\n\n @Input('secondary-slot-description')\n public SecondarySlotDescription: string;\n\n @Output('main-action-clicked')\n public MainActionClicked: EventEmitter<{}>;\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService) {\n this.MainActionClicked = new EventEmitter();\n this.SkeletonEffect = 'wave';\n\n this.MainIcon = 'add';\n\n this.ShowMainIcon = true;\n }\n\n public ngOnInit(): void {}\n\n public MainActionClickEvent() {\n this.MainActionClicked.emit({});\n }\n}\n","<mat-card class=\"col-info-card\">\n <mat-card-header\n class=\"slotted-card-header\"\n fxLayoutAlign=\"space-between center\"\n >\n <div mat-card-avatar fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n <div class=\"card-title\">{{ CardTitle }}</div>\n </div>\n\n <button\n mat-mini-fab\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n matTooltip=\"Add {{ CardTitle }}\"\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n >\n <mat-icon>\n {{ MainIcon }}\n </mat-icon>\n </button>\n\n <button\n mat-mini-fab\n color=\"accent\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n *ngIf=\"State?.Loading\"\n >\n <mat-icon> add </mat-icon>\n </button>\n </mat-card-header>\n\n <!-- SKELETON CONTENT -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-description\"\n >\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content\n skeleton-block\n [effect]=\"SkeletonEffect\"\n ></ng-content>\n </div>\n </div>\n\n <div\n class=\"slot-secondary\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div class=\"slot-header-container\">\n <div class=\"slot-header\">\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Name of the content\n </div>\n </div>\n\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Description\n </div>\n </div>\n\n <div class=\"slot-actions-container\" fxLayout=\"row\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n edit\n </mat-icon>\n </div>\n </div>\n\n <div\n *ngIf=\"SecondarySlotDescription\"\n class=\"slot-secondary-container\"\n >\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-description\"\n >\n {{ SecondarySlotDescription }}\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n {{ ActionText }}\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <div\n *ngIf=\"SecondarySlotDescription\"\n class=\"slot-secondary-container\"\n >\n <div class=\"header-description\">\n {{ SecondarySlotDescription }}\n </div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a\n mat-button\n *ngIf=\"ActionPath\"\n class=\"slotted-card-action-btn\"\n [href]=\"ActionPath\"\n color=\"primary\"\n >{{ ActionText }}\n </a>\n\n <a\n mat-button\n *ngIf=\"!ActionPath\"\n class=\"slotted-card-action-btn\"\n (click)=\"MainActionClickEvent()\"\n color=\"primary\"\n >\n {{ ActionText }}\n </a>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { UpgradeDialogComponent } from '../../dialogs/upgrade-dialog/upgrade-dialog.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-project-info-card',\n templateUrl: './project-info-card.component.html',\n styleUrls: ['./project-info-card.component.scss'],\n})\nexport class ProjectInfoCardComponent implements OnInit {\n @Input('description')\n public Description: string;\n\n @Input('image')\n public Image: string;\n\n @Input('is-editable')\n public IsEditable: boolean;\n\n @Input('is-shareable')\n public IsShareable: boolean;\n\n @Input('name')\n public Name: string;\n\n @Input('subtext')\n public Subtext: string;\n\n @Input('version')\n public Version: string;\n\n @Output('left-click-event')\n public LeftClickEvent: EventEmitter<{}>;\n\n @Output('right-click-event')\n public RightClickEvent: EventEmitter<{}>;\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService, protected dialog: MatDialog) {\n this.LeftClickEvent = new EventEmitter();\n\n this.RightClickEvent = new EventEmitter();\n\n this.SkeletonEffect = 'wave';\n }\n\n public ngOnInit(): void {\n // console.log(\"loading = \", this.Loading)\n // console.log(\"is shareable: \", this.IsShareable);\n // console.log(\"is editable: \", this.IsEditable);\n }\n\n public LeftIconClicked() {\n this.LeftClickEvent.emit({});\n }\n\n public RightIconClicked() {\n console.log('share clicked');\n this.RightClickEvent.emit({});\n }\n\n // public UpgradeClicked() {\n // const dialogRef = this.dialog.open(UpgradeDialogComponent, {\n // width: '600px',\n // data: {},\n // });\n\n // dialogRef.afterClosed().subscribe((result) => {\n // // console.log('The dialog was closed');\n // // console.log(\"result:\", result)\n // });\n // }\n}\n","<mat-card class=\"project-info-card\">\n <!-- SKELETON CONTENT -->\n <ng-container *ngIf=\"State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\">\n <skeleton-avatar\n class=\"round-project-img\"\n [effect]=\"SkeletonEffect\"\n [size]=\"75\"\n ></skeleton-avatar>\n </div>\n\n <mat-card-header\n class=\"project-card-header\"\n fxLayoutAlign=\"center center\"\n >\n <mat-card-title\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"project-card-name\"\n >\n Name of card\n </mat-card-title>\n\n <mat-card-subtitle\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"project-card-description\"\n >\n Description Text\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"host-anchor\"\n >\n https://www.fathym.com\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div\n skeleton-block\n [effect]=\"SkeletonEffect\"\n class=\"stats-container\"\n ></div>\n\n <div\n class=\"promo-container-skeleton\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Access exclusive tools & insights\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >emoji_events</mat-icon\n >\n\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Upgrade to premium now\n </div>\n </div>\n </div>\n </mat-card-content>\n <mat-card-actions\n class=\"actions-container-skeleton\"\n fxLayoutAlign=\"center center\"\n >\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n action\n mat-button\n >\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >outbox</mat-icon\n >\n Unpack\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\">\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"!Image\" class=\"temp-icon\"\n >flutter_dash</mat-icon\n >\n <img\n *ngIf=\"Image\"\n [src]=\"Image\"\n [alt]=\"Name\"\n style=\"width: 75px; border-radius: 40px\"\n />\n </div>\n </div>\n\n <div\n class=\"icon-btn-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <button\n *ngIf=\"IsEditable\"\n mat-icon-button\n id=\"left-icon\"\n (click)=\"LeftIconClicked()\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n *ngIf=\"IsShareable\"\n mat-icon-button\n id=\"right-icon\"\n (click)=\"RightIconClicked()\"\n >\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header\n class=\"project-card-header\"\n fxLayoutAlign=\"center center\"\n >\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">\n {{ Name }}\n </mat-card-title>\n\n <mat-card-subtitle\n class=\"project-card-description\"\n *ngIf=\"Description\"\n >\n {{ Description }}\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-version\" *ngIf=\"Version\">\n {{ Version }}\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <a\n class=\"host-anchor\"\n *ngIf=\"Subtext\"\n [href]=\"'https://' + Subtext\"\n target=\"_blank\"\n fxLayoutAlign=\"center center\"\n >\n {{ Subtext }}\n <mat-icon>launch</mat-icon>\n </a>\n </mat-card-subtitle>\n </mat-card-header>\n\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 class=\"promo-container\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <div>Access exclusive tools & insights</div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"gold-icon\">emoji_events</mat-icon>\n\n <a class=\"upgrade-text\" href=\"/dashboard/billing\">\n Upgrade to premium now\n </a>\n </div>\n </div>\n <!-- </div> -->\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-analytics-card',\n templateUrl: './analytics-card.component.html',\n styleUrls: ['./analytics-card.component.scss'],\n})\nexport class AnalyticsCardComponent implements OnInit {\n @Input('title')\n public Title: string;\n\n @Input('subtext')\n public Subtext: string;\n\n // TODO update from any to an analytics model\n @Input('analytics')\n public Analytics: any[];\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<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\n class=\"analytic-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div\n class=\"percent-change increase\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n >\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ 0.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","import { Component, Input, OnInit } from '@angular/core';\nimport { FeedItem, FeedItemAction } from '../../models/user-feed.model';\n\n@Component({\n selector: 'lcu-feed-card-sm',\n templateUrl: './feed-card-sm.component.html',\n styleUrls: ['./feed-card-sm.component.scss'],\n})\nexport class FeedCardSmComponent implements OnInit {\n @Input('feed-item')\n public FeedItem: FeedItem;\n\n public IconColor: string;\n\n public Icon: string;\n\n constructor() {}\n\n // Life Cycle\n public ngOnInit(): void {\n this.determineIcon();\n }\n\n // API Methods\n public HandleAction(action: FeedItemAction) {\n console.log('Action clicked');\n }\n\n // Helpers\n protected determineIcon(): void {\n if (this.FeedItem.Status.Code === 0) {\n this.Icon = 'check_circle';\n\n this.IconColor = 'green';\n } else if (this.FeedItem.Status.Code === 1) {\n this.Icon = 'cancel';\n\n this.IconColor = 'red';\n } else if (this.FeedItem.Status.Code === 2) {\n this.Icon = 'sync';\n\n this.IconColor = 'blue';\n }\n }\n}\n","<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=\"FeedItem.Title\">\n {{ FeedItem.Title }}\n </mat-card-title>\n\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\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","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseModeledResponse, BaseResponse, Guid, Status } from '@lcu/common';\nimport {\n EaCArtifact,\n EaCDevOpsAction,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport {\n EaCService,\n SaveEnvironmentAsCodeEventRequest,\n} from '../../services/eac.service';\nimport {\n ApplicationsFlowState,\n GitHubBranch,\n GitHubOrganization,\n GitHubRepository,\n ProjectHostingDetails,\n} from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-devops-source-control-form',\n templateUrl: './devops-source-control-form.component.html',\n styleUrls: ['./devops-source-control-form.component.scss'],\n})\nexport class DevopsSourceControlFormComponent\n implements AfterViewInit, OnDestroy, OnInit\n{\n // Fields\n\n @Input('editing-source-control-lookup')\n public EditingSourceControlLookup: string;\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Input('environment-lookup')\n public EnvironmentLookup: string;\n\n @Output('save-status-event')\n public SaveStatusEvent: EventEmitter<Status>;\n\n @ViewChild('branches')\n public BranchesInput: ElementRef<HTMLInputElement>;\n\n //Optional input not being used setting to\n // @Input('build-path')\n public BuildPath: string;\n\n //Optional not being used\n // @Input('build-path-disabled')\n public BuildPathDisabled: boolean;\n\n // this input is not being used anywhere\n // @Input('source-control-root')\n public SourceControlRoot: string;\n\n //not being used set to true by default\n // @Input('use-branches')\n public UseBranches: boolean;\n\n //not being used set to false by default\n // @Input('use-build-path')\n public UseBuildPath: boolean;\n\n // Properties\n\n public get ArtifactLookups(): Array<string> {\n return this.DevOpsAction?.ArtifactLookups;\n }\n\n public get ArtifactLookup(): string {\n const artLookup = this.DevOpsAction?.ArtifactLookups\n ? this.DevOpsAction?.ArtifactLookups[0]\n : null;\n return artLookup;\n }\n\n public get Artifact(): EaCArtifact {\n return this.Environment?.Artifacts && this.ArtifactLookup\n ? this.Environment?.Artifacts[this.ArtifactLookup] || {}\n : {};\n }\n public get BranchesFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'branches'\n );\n }\n\n public get BuildPathFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'buildPath'\n );\n }\n\n public get DevOpsActionLookups(): Array<string> {\n // console.log(this.DevOpsActions);\n return Object.keys(this.DevOpsActions || {});\n }\n\n public get DevOpsAction(): any {\n return this.Environment.DevOpsActions && this.DevOpsActionLookup\n ? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}\n : {};\n }\n\n public get DevOpsActionLookup(): string {\n if (!!this.DevOpsActionLookupFormControl?.value) {\n return this.DevOpsActionLookupFormControl.value;\n }\n\n if (!!this.EditingSourceControl?.DevOpsActionTriggerLookups) {\n return this.EditingSourceControl?.DevOpsActionTriggerLookups[0];\n } else {\n return null;\n }\n }\n\n public get DevOpsActionLookupFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get('devOpsActionLookup');\n }\n\n public get DevOpsActions(): { [lookup: string]: EaCDevOpsAction } {\n return this.Environment.DevOpsActions || {};\n }\n\n public get EditingSourceControl(): EaCSourceControl {\n let sc = this.Environment?.Sources\n ? this.Environment?.Sources[this.EditingSourceControlLookup]\n : null;\n\n if (sc == null && this.EditingSourceControlLookup) {\n sc = {};\n }\n\n return sc;\n }\n\n public get MainBranchFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'mainBranch'\n );\n }\n\n public get OrganizationFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'organization'\n );\n }\n\n public get RepositoryFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'repository'\n );\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public BranchOptions: GitHubBranch[];\n\n public BuildPathOptions: string[];\n\n public CreatingRepository: boolean;\n\n public DevOpsSourceControlFormGroup: FormGroup;\n\n public HostingDetails: ProjectHostingDetails;\n\n public Loading: boolean;\n\n public OrganizationOptions: GitHubOrganization[];\n\n public RepositoryOptions: GitHubRepository[];\n\n public SelectedBranches: string[];\n\n public SkeletonEffect: string;\n\n public readonly SeparatorKeysCodes = [ENTER, COMMA] as const;\n\n // Constructors\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService,\n protected formBuilder: FormBuilder\n ) {\n this.SaveStatusEvent = new EventEmitter();\n\n this.BuildPath = null;\n\n this.HostingDetails = new ProjectHostingDetails();\n\n this.SelectedBranches = [];\n\n this.SourceControlRoot = '';\n\n this.SkeletonEffect = 'wave';\n\n this.UseBranches = true;\n\n this.UseBuildPath = false;\n }\n\n // Life Cycle\n public ngAfterViewInit(): void {}\n\n public ngOnDestroy(): void {\n this.destroyFormControls();\n }\n\n public ngOnInit(): void {\n console.log('source control lookup', this.EditingSourceControlLookup);\n\n if (this.EditingSourceControlLookup === null) {\n this.CreateNewSourceControl();\n }\n console.log('source control', this.EditingSourceControl);\n\n if (this.EditingSourceControl != null) {\n this.DevOpsSourceControlFormGroup = this.formBuilder.group({});\n\n this.setupFormControls();\n }\n\n this.RefreshOrganizations();\n }\n\n // API Methods\n public AddBranchOption(event: MatChipInputEvent): void {\n this.addBranchOption(event.value);\n\n event.input.value = '';\n }\n\n public BranchOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.addBranchOption(event.option.value);\n }\n\n public BranchesChanged(branches: string[]): void {\n this.loadProjectHostingDetails();\n }\n\n public BuildPathChanged(event: MatSelectChange): void {\n //do something??\n }\n\n public CreateNewSourceControl(): void {\n this.SetEditingSourceControl(Guid.CreateRaw());\n }\n\n public CreateRepository(): void {\n this.CreatingRepository = true;\n\n this.RepositoryFormControl.reset();\n }\n\n public CancelCreateRepository(): void {\n this.CreatingRepository = false;\n }\n\n public DevOpsActionLookupChanged(event: MatSelectChange): void {\n this.configureDevOpsAction();\n }\n\n public MainBranchChanged(event: MatSelectChange): void {\n this.emitBranchesChanged();\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n const org = this.OrganizationFormControl;\n\n this.RepositoryFormControl.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n }\n\n this.listRepositories();\n }\n\n public RefreshOrganizations(): void {\n // this.Loading = true;\n this.listOrganizations();\n\n this.OrganizationFormControl?.reset();\n\n this.RepositoryFormControl?.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl?.reset();\n }\n }\n\n public RemoveBranchOption(option: string): void {\n const index = this.SelectedBranches.indexOf(option);\n\n if (index >= 0) {\n this.SelectedBranches.splice(index, 1);\n }\n\n this.emitBranchesChanged();\n }\n\n public RepositoryChanged(event: MatSelectChange): void {\n const repo = this.RepositoryFormControl;\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n\n this.listBranches();\n }\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }\n\n public SaveRepository(): void {\n this.Loading = true;\n\n const org = this.OrganizationFormControl.value;\n\n const repoName = this.RepositoryFormControl.value;\n\n this.appsFlowSvc\n .CreateRepository(org, repoName)\n .subscribe((response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.listRepositories(repoName);\n\n this.CreatingRepository = false;\n } else {\n // TODO: Need to surface an error to the user...\n\n this.Loading = false;\n }\n });\n }\n\n public SetEditingSourceControl(scLookup: string): void {\n this.EditingSourceControlLookup = scLookup;\n }\n\n public SubmitSourceControl() {\n console.log(\n 'source control submitted: ',\n this.DevOpsSourceControlFormGroup.value\n );\n this.SaveSourceControl();\n }\n\n public SaveSourceControl(): void {\n const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {\n Environment: {\n ...this.Environment,\n Sources: this.Environment.Sources || {},\n },\n EnvironmentLookup: this.EnvironmentLookup,\n EnterpriseDataTokens: {},\n };\n\n let source: EaCSourceControl = {\n ...this.EditingSourceControl,\n Branches: this.SelectedBranches,\n MainBranch: this.MainBranchFormControl.value,\n };\n\n source = {\n ...source,\n Type: 'GitHub',\n Name: `@${this.OrganizationFormControl.value}/${this.RepositoryFormControl.value}`,\n DevOpsActionTriggerLookups: [this.DevOpsActionLookup],\n Organization: this.OrganizationFormControl.value,\n Repository: this.RepositoryFormControl.value,\n };\n\n const scLookup = `github://${source.Organization}/${source.Repository}`;\n\n saveEnvReq.Environment.Sources[scLookup] = source;\n\n console.log('save SC: ', saveEnvReq);\n\n let resp = this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);\n\n resp.then((res) => {\n this.SaveStatusEvent.emit(res);\n });\n }\n\n // Helpers\n\n protected addBranchOption(value: string): void {\n value = (value || '').trim();\n\n if (value && this.SelectedBranches.indexOf(value) < 0) {\n this.SelectedBranches.push(value);\n }\n\n this.BranchesInput.nativeElement.blur();\n\n this.emitBranchesChanged();\n }\n\n protected configureDevOpsAction(): void {\n setTimeout(() => {\n this.DevOpsActionLookupFormControl.setValue(\n this.DevOpsActionLookup\n );\n }, 0);\n }\n\n protected destroyFormControls(): void {\n this.DevOpsSourceControlFormGroup.removeControl(\n [this.SourceControlRoot, 'mainBranch'].join('')\n );\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'branches'].join('')\n );\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'buildPath'].join('')\n );\n\n this.SelectedBranches = [];\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'organization'].join('')\n );\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'repository'].join('')\n );\n }\n\n protected emitBranchesChanged(): void {\n if (\n this.SelectedBranches?.length > 0 &&\n (!this.MainBranchFormControl.value ||\n this.SelectedBranches.indexOf(\n this.MainBranchFormControl.value\n ) < 0)\n ) {\n this.MainBranchFormControl.setValue(\n this.SelectedBranches.find(\n (branch) => branch === 'main' || branch === 'master'\n ) || this.SelectedBranches[0]\n );\n } else if (this.SelectedBranches?.length <= 0) {\n this.MainBranchFormControl.reset();\n }\n\n this.BranchesFormControl.setValue(this.SelectedBranches.join(','));\n\n this.BranchesChanged(this.SelectedBranches || []);\n }\n\n protected listBranches(): void {\n if (this.UseBranches) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBranches(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model;\n\n this.Loading = false;\n\n if (this.EditingSourceControl?.Branches?.length > 0) {\n this.SelectedBranches =\n this.EditingSourceControl.Branches;\n } else if (this.BranchOptions?.length === 1) {\n this.BranchesFormControl.setValue(\n this.BranchOptions[0].Name\n );\n\n this.SelectedBranches = [this.BranchOptions[0].Name];\n }\n\n this.emitBranchesChanged();\n\n this.listBuildPaths();\n });\n }\n }\n\n protected listBuildPaths(): void {\n if (this.UseBuildPath) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<string[]>) => {\n this.BuildPathOptions = response.Model;\n\n this.Loading = false;\n\n if (this.BuildPathOptions?.length === 1) {\n this.BuildPathFormControl.setValue(\n this.BuildPathOptions[0]\n );\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe(\n (response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\n 'Organization Options: ',\n this.OrganizationOptions\n );\n\n this.Loading = false;\n\n if (this.EditingSourceControl?.Organization) {\n setTimeout(() => {\n this.OrganizationFormControl.setValue(\n this.EditingSourceControl.Organization\n );\n\n this.listRepositories(\n this.EditingSourceControl?.Repository\n );\n }, 0);\n }\n }\n );\n }\n\n protected listRepositories(activeRepo: string = null): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListRepositories(this.OrganizationFormControl.value)\n .subscribe((response: BaseModeledResponse<GitHubRepository[]>) => {\n this.RepositoryOptions = response.Model;\n\n this.Loading = false;\n\n if (activeRepo) {\n setTimeout(() => {\n this.RepositoryFormControl.setValue(activeRepo);\n\n this.listBranches();\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }, 0);\n } else if (this.RepositoryOptions?.length <= 0) {\n this.CreatingRepository = true;\n }\n });\n }\n\n protected loadProjectHostingDetails(): void {\n if (this.SelectedBranches?.length > 0) {\n this.HostingDetails.Loading = true;\n\n this.appsFlowSvc.LoadProjectHostingDetails().subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.configureDevOpsAction();\n },\n (err) => {\n this.HostingDetails.Loading = false;\n }\n );\n }\n }\n\n protected setupFormControls(): void {\n this.destroyFormControls();\n\n console.log('Source Control: ', this.EditingSourceControl);\n\n this.DevOpsSourceControlFormGroup.addControl(\n 'devOpsActionLookup',\n new FormControl(this.DevOpsActionLookup || '', [])\n );\n\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'organization'].join(''),\n new FormControl(\n this.EditingSourceControl.Organization ?? '',\n Validators.required\n )\n );\n\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'repository'].join(''),\n new FormControl(\n this.EditingSourceControl.Repository ?? '',\n Validators.required\n )\n );\n\n if (this.UseBranches) {\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'branches'].join(''),\n new FormControl(\n this.EditingSourceControl?.Branches ?? '',\n Validators.required\n )\n );\n\n this.SelectedBranches = this.EditingSourceControl?.Branches;\n\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'mainBranch'].join(''),\n new FormControl(\n this.EditingSourceControl.MainBranch ?? '',\n Validators.required\n )\n );\n }\n\n if (this.UseBuildPath) {\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'buildPath'].join(''),\n new FormControl(this.BuildPath ?? '', Validators.required)\n );\n }\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"DevOpsSourceControlFormGroup\"\n (ngSubmit)=\"SubmitSourceControl()\"\n>\n <!-- <mat-card class=\"spread\" class=\"sc-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title> Source Control </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon matSuffix matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\">\n info_outline\n </mat-icon>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader>\n\n <!-- <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block> -->\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\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=\"\n DevOpsActions[devOpsActionLookup];\n let devOpsAction\n \"\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 margin-bottom\"\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\n matSuffix\n (click)=\"RefreshOrganizations()\"\n matTooltip=\"Refresh Organization\"\n color=\"accent\"\n >\n refresh\n </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\n color=\"accent\"\n matTooltip=\"Re-authorize Organizations\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a\n new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n class=\"primary-link\"\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 ||\n Loading ||\n 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=\"\n !CreatingRepository && OrganizationFormControl?.valid\n \"\n >\n add_circle\n </mat-icon>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\"\n >\n <mat-icon matSuffix color=\"primary\"> save </mat-icon>\n </button>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\"\n >\n <mat-icon matSuffix> cancel </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\n matSuffix\n (click)=\"RefreshOrganizations()\"\n color=\"accent\"\n >\n refresh\n </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a\n new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n class=\"primary-link\"\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\n class=\"mat-title\"\n *ngIf=\"!OrganizationFormControl?.valid\"\n >\n Loading organizations\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid &&\n !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n RepositoryFormControl?.valid &&\n !BranchesFormControl?.valid\n \"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid ||\n BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n </ng-container>\n <!-- </div> -->\n\n <!-- </mat-card-content> -->\n <!-- <mat-card-actions fxLayoutAlign=\"center center\"> -->\n\n <!-- <button \n mat-raised-button \n *ngIf=\"!State?.Loading\"\n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!DevOpsSourceControlFormGroup.valid || !DevOpsSourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Source Control\n </button>\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader> -->\n\n <!-- </mat-card-actions> -->\n <!-- </mat-card> -->\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCEnvironmentAsCode } from '@semanticjs/common';\nimport { DevopsSourceControlFormComponent } from '../../controls/devops-source-control-form/devops-source-control-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface SCDialogData {\n environment: EaCEnvironmentAsCode;\n environmentLookup: string;\n scLookup: string;\n scName: string;\n}\n\n@Component({\n selector: 'lcu-source-control-dialog',\n templateUrl: './source-control-dialog.component.html',\n styleUrls: ['./source-control-dialog.component.scss'],\n})\nexport class SourceControlDialogComponent implements OnInit {\n @ViewChild(DevopsSourceControlFormComponent)\n public DevopsSourceControl: DevopsSourceControlFormComponent;\n\n public get DevOpsSourceControlFormGroup(): FormGroup {\n return this.DevopsSourceControl?.DevOpsSourceControlFormGroup;\n }\n\n public get HasConnection(): boolean {\n return this.State.GitHub.HasConnection;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public dialogRef: MatDialogRef<SourceControlDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: SCDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public DeleteSourceControl(): void {\n this.eacSvc\n .DeleteSourceControl(this.data.scLookup, this.data.scName)\n .then((status) => {\n this.CloseDialog();\n });\n }\n\n public HandleSaveStatusEvent(event: Status) {\n console.log('event to save: ', event);\n if (event.Code === 0) {\n this.snackBar.open('Source Control Succesfully Saved', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveSourceControl() {\n this.DevopsSourceControl.SaveSourceControl();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Source Control</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <ng-container *ngIf=\"!HasConnection\">\n <lcu-git-auth></lcu-git-auth>\n </ng-container>\n\n <ng-conatiner *ngIf=\"HasConnection\" fxLayout=\"column\">\n <div fxLayoutAlign=\"center center\">\n <lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n [editing-source-control-lookup]=\"data.scLookup\"\n (save-status-event)=\"HandleSaveStatusEvent($event)\"\n >\n </lcu-devops-source-control-form>\n </div>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n </ng-conatiner>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteSourceControl()\"\n matTooltip=\"Delete {{ data.scName }}\"\n >\n Delete\n </button>\n </div>\n\n <div fxLayoutAlign=\"end center\">\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"43%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n class=\"action-button\"\n mat-raised-button\n *ngIf=\"!State?.Loading\"\n fxFlex=\"30%\"\n color=\"primary\"\n (click)=\"SaveSourceControl()\"\n [disabled]=\"\n !DevOpsSourceControlFormGroup?.valid ||\n !DevOpsSourceControlFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\n\n@Component({\n selector: 'lcu-feed-comment-form',\n templateUrl: './feed-comment-form.component.html',\n styleUrls: ['./feed-comment-form.component.scss'],\n})\nexport class FeedCommentFormComponent implements OnInit {\n public get CommentControl(): AbstractControl {\n return this.FeedCommentsFormGroup?.controls.comment;\n }\n public EditorConfig: AngularEditorConfig;\n\n public FeedCommentsFormGroup: FormGroup;\n\n constructor(protected formBuilder: FormBuilder) {\n this.setupEditorConfig();\n }\n\n public ngOnInit(): void {\n this.buildCommentForm();\n }\n\n public SubmitComment() {\n console.log(this.CommentControl.value);\n }\n\n protected buildCommentForm() {\n this.FeedCommentsFormGroup = this.formBuilder.group({\n comment: '',\n });\n }\n\n protected setupEditorConfig() {\n this.EditorConfig = {\n editable: true,\n spellcheck: true,\n height: '100px',\n minHeight: '0',\n maxHeight: 'auto',\n width: '100%',\n minWidth: '0',\n translate: 'yes',\n enableToolbar: true,\n showToolbar: true,\n placeholder: 'Leave a comment',\n defaultParagraphSeparator: '',\n defaultFontName: '',\n defaultFontSize: '',\n fonts: [\n { class: 'arial', name: 'Arial' },\n { class: 'times-new-roman', name: 'Times New Roman' },\n { class: 'calibri', name: 'Calibri' },\n { class: 'comic-sans-ms', name: 'Comic Sans MS' },\n ],\n customClasses: [\n {\n name: 'quote',\n class: 'quote',\n },\n {\n name: 'redText',\n class: 'redText',\n },\n {\n name: 'titleText',\n class: 'titleText',\n tag: 'h1',\n },\n ],\n sanitize: true,\n toolbarPosition: 'top',\n toolbarHiddenButtons: [\n [\n 'undo',\n 'redo',\n 'subscript',\n 'superscript',\n 'justifyLeft',\n 'justifyCenter',\n 'justifyRight',\n 'justifyFull',\n 'indent',\n 'outdent',\n 'fontName',\n ],\n [\n 'textColor',\n 'fontSize',\n 'backgroundColor',\n 'customClasses',\n 'link',\n 'unlink',\n 'removeFormat',\n 'insertHorizontalRule',\n ],\n ],\n };\n }\n}\n","<form\n class=\"feed-comment-form\"\n [formGroup]=\"FeedCommentsFormGroup\"\n fxLayoutAlign=\"space-around center\"\n (ngSubmit)=\"SubmitComment()\"\n fxLayout=\"column\"\n>\n <angular-editor\n class=\"angular-editor\"\n id=\"issue-editor\"\n formControlName=\"comment\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n <!-- <mat-form-field class=\"comment-field\" appearance=\"fill\" >\n <mat-label>Leave a comment</mat-label>\n <textarea matInput formControlName=\"comment\" rows=\"1\" ></textarea>\n </mat-form-field> -->\n <div class=\"comment-form-actions\" fxLayoutAlign=\"end center\">\n <button\n mat-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!CommentControl.dirty\"\n >\n Submit\n </button>\n </div>\n</form>\n","import { Component, Input, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { FeedItem, FeedItemAction } from '../../models/user-feed.model';\nimport moment from 'moment';\nimport { EaCService } from '../../services/eac.service';\nimport { BaseModeledResponse } from '@lcu/common';\nimport { SourceControlDialogComponent } from '../../dialogs/source-control-dialog/source-control-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EaCEnvironmentAsCode } from '@semanticjs/common';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\nimport { FeedCommentFormComponent } from '../../controls/feed-comment-form/feed-comment-form.component';\n\n@Component({\n selector: 'lcu-main-feed-card',\n templateUrl: './main-feed-card.component.html',\n styleUrls: ['./main-feed-card.component.scss'],\n})\nexport class MainFeedCardComponent implements OnDestroy, OnInit {\n protected checkTimeout: any;\n\n @ViewChild(FeedCommentFormComponent)\n public FeedCommentFormControls: FeedCommentFormComponent;\n\n public get ActiveEnvironment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.ActiveEnvironmentLookup];\n }\n\n public get ActiveEnvironmentLookup(): string {\n // TODO: Eventually support multiple environments\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\n\n return envLookups[0];\n }\n\n public get CommentControl(): AbstractControl {\n return this.FeedCommentFormControls?.FeedCommentsFormGroup?.controls\n .comment;\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n // console.log(\"Ent Environment var: \", this.State?.EaC?.Environments[this.State?.EaC?.Enterprise?.PrimaryEnvironment]);\n return this.State?.EaC?.Environments[\n this.State?.EaC?.Enterprise?.PrimaryEnvironment\n ];\n }\n\n @Input('feed-item')\n public FeedItem: FeedItem;\n\n public get Icon(): string {\n if (this.FeedItem.Status.Code === 0) {\n return 'check_circle';\n } else if (this.FeedItem.Status.Code === 1) {\n return 'cancel';\n } else if (this.FeedItem.Status.Code === 2) {\n return 'sync';\n } else {\n return 'help_outline';\n }\n }\n\n public get IconColor(): string {\n if (this.FeedItem.Status.Code === 0) {\n return 'green';\n } else if (this.FeedItem.Status.Code === 1) {\n return 'red';\n } else if (this.FeedItem.Status.Code === 2) {\n return 'blue';\n } else {\n return 'gray';\n }\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n constructor(\n protected eacSvc: EaCService,\n protected dialog: MatDialog,\n private sanitizer: DomSanitizer,\n protected formBuilder: FormBuilder\n ) {}\n\n // Life Cycle\n public ngOnDestroy(): void {\n if (this.checkTimeout) {\n clearTimeout(this.checkTimeout);\n }\n }\n\n public ngOnInit(): void {\n this.handleRefresh();\n this.SanitizeVideos();\n }\n\n // API Methods\n public CalculateTimelapse(timestamp: Date) {\n return moment(timestamp).fromNow();\n }\n\n public HandleAction(action: FeedItemAction) {\n if (action.ActionType == 'Link') {\n if (action.Action.startsWith('http')) {\n window.open(action.Action, '_blank');\n } else {\n window.location.href = action.Action;\n }\n } else if (action.ActionType == 'Modal') {\n if (action.Action == 'AddSourceControl') {\n this.OpenSourceControlDialog(null, null);\n } else {\n alert('other modaled ' + action.Action);\n }\n }\n }\n\n public OpenSourceControlDialog(scLookup: string, scName: string): void {\n const dialogRef = this.dialog.open(SourceControlDialogComponent, {\n width: '550px',\n data: {\n environment: this.Environment,\n environmentLookup: this.ActiveEnvironmentLookup,\n scLookup: scLookup,\n scName: scName,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n }\n\n public SafeHtml(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n public SanitizeVideos() {\n this.FeedItem?.Tabs?.forEach((tab) => {\n if (tab.Data.Video) {\n tab.Data.Video = this.SafeHtml(tab.Data.Video);\n }\n });\n }\n\n public SubmitComment() {\n console.log('comment: ', this.CommentControl.value);\n }\n\n // Helpers\n\n protected handleRefresh(): void {\n if (this.FeedItem?.RefreshLink) {\n this.checkTimeout = setTimeout(() => {\n this.eacSvc.CheckUserFeedItem(this.FeedItem).subscribe(\n async (response: BaseModeledResponse<FeedItem>) => {\n if (response.Status.Code === 0) {\n this.FeedItem = response.Model;\n\n this.handleRefresh();\n } else {\n console.log(response);\n }\n },\n (err) => {\n console.log(err);\n }\n );\n }, 30000);\n }\n }\n}\n","<mat-card class=\"social-card\">\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"FeedItem.Avatar\"\n *ngIf=\"FeedItem.Avatar\"\n />\n\n <mat-card-title *ngIf=\"FeedItem.Title\">{{\n FeedItem.Title\n }}</mat-card-title>\n\n <mat-card-subtitle>\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\n <div *ngIf=\"FeedItem.Subtext\">{{ FeedItem.Subtext }}</div>\n\n <div *ngIf=\"FeedItem.Status\">\n <mat-icon\n *ngIf=\"Icon\"\n [style.color]=\"IconColor\"\n [class.spin]=\"FeedItem.Status?.Code == 2\"\n >\n {{ Icon }}\n </mat-icon>\n\n <span *ngIf=\"FeedItem.Status?.Message\">\n {{ FeedItem.Status?.Message }}\n </span>\n\n <span *ngIf=\"FeedItem.Timestamp\">\n {{ CalculateTimelapse(FeedItem.Timestamp) }}\n </span>\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n\n <div *ngIf=\"!FeedItem.IsShortForm\">\n <div class=\"feed-card-container\">\n <div class=\"feed-card-main-content\">\n <mat-tab-group>\n <ng-container *ngFor=\"let tab of FeedItem.Tabs\">\n <mat-tab [label]=\"tab.Title\">\n <div class=\"tab\">\n <ng-container *ngIf=\"tab.Data?.Commit?.Message\">\n <div\n class=\"commit-message\"\n [innerHTML]=\"\n SafeHtml(tab.Data?.Commit?.Message)\n \"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Content\">\n <div\n class=\"content\"\n [innerHTML]=\"\n SafeHtml(tab.Data?.Content)\n \"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Video\">\n <div\n class=\"video\"\n [innerHTML]=\"tab.Data.Video\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Comments\">\n <div class=\"comments\">\n <ng-container\n *ngIf=\"\n tab.Data?.Comments?.length <= 0\n \"\n >\n <h4>No comments provided</h4>\n </ng-container>\n\n <mat-card\n *ngFor=\"\n let comment of tab.Data\n ?.Comments\n \"\n >\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"comment.Avatar\"\n *ngIf=\"comment.Avatar\"\n />\n\n <mat-card-title>\n {{ comment.Author }}\n commented on\n {{ comment.UpdatedAt }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content\n [innerHTML]=\"\n SafeHtml(comment.Comment)\n \"\n >\n </mat-card-content>\n </mat-card>\n <lcu-feed-comment-form></lcu-feed-comment-form>\n </div>\n </ng-container>\n </div>\n </mat-tab>\n </ng-container>\n </mat-tab-group>\n </div>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div fxFlex></div>\n\n <ng-container *ngFor=\"let action of FeedItem.Actions\">\n <button\n mat-raised-button\n [color]=\"action.Color\"\n (click)=\"HandleAction(action)\"\n >\n <mat-icon *ngIf=\"action.Icon\">{{ action.Icon }}</mat-icon>\n\n {{ action.Text }}\n </button>\n </ng-container>\n </mat-card-actions>\n</mat-card>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-two-column-header',\n templateUrl: './two-column-header.component.html',\n styleUrls: ['./two-column-header.component.scss'],\n})\nexport class TwoColumnHeaderComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"col-container\" fxLayout=\"row\">\n <div class=\"col-left\" fxFlex=\"15%\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n\n <div class=\"col-center\" fxFlex=\"85%\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-card-carousel',\n templateUrl: './card-carousel.component.html',\n styleUrls: ['./card-carousel.component.scss'],\n})\nexport class CardCarouselComponent implements OnInit {\n @Input('stats')\n public Stats: any[];\n\n protected carouselIndex: number;\n\n constructor() {\n this.carouselIndex = 0;\n }\n\n ngOnInit(): void {}\n\n public ngAfterViewInit() {\n this.assignCarouselClass();\n }\n\n public LeftChevronClicked() {\n this.removeCarouselClasses();\n\n if (this.carouselIndex === 0) {\n this.carouselIndex = this.Stats.length - 1;\n } else {\n this.carouselIndex--;\n }\n\n this.assignCarouselClass();\n }\n\n public MoreDetailsClicked() {\n console.log(\n 'More details clicked on carousel item',\n this.Stats[this.carouselIndex]\n );\n }\n\n public RightChevronClicked() {\n this.removeCarouselClasses();\n\n if (this.carouselIndex === this.Stats.length - 1) {\n this.carouselIndex = 0;\n } else {\n this.carouselIndex++;\n }\n\n this.assignCarouselClass();\n }\n\n //HELPERS\n\n protected removeCarouselClasses() {\n for (let i = 0; i < this.Stats.length; i++) {\n if (i === this.carouselIndex) {\n (<HTMLElement>(\n document.getElementById('carousel-' + this.carouselIndex)\n )).classList.remove('active');\n } else {\n (<HTMLElement>(\n document.getElementById('carousel-' + i)\n )).classList.remove('hidden');\n }\n }\n }\n\n protected assignCarouselClass() {\n for (let i = 0; i < this.Stats.length; i++) {\n if (i === this.carouselIndex) {\n (<HTMLElement>(\n document.getElementById('carousel-' + this.carouselIndex)\n )).classList.add('active');\n } else {\n (<HTMLElement>(\n document.getElementById('carousel-' + i)\n )).classList.add('hidden');\n }\n }\n }\n}\n","<div stats class=\"carousel-container\">\n <div class=\"chevron-container\" fxLayout=\"row\">\n <button\n mat-icon-button\n class=\"chevron-button\"\n id=\"left-chevron\"\n (click)=\"LeftChevronClicked()\"\n >\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"chevron-button\"\n id=\"right-chevron\"\n (click)=\"RightChevronClicked()\"\n >\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let stat of Stats; let i = index\">\n <div class=\"carousel-item\" [id]=\"'carousel-' + i\">\n <div class=\"carousel-title\">{{ stat.Name }}</div>\n <div class=\"carousel-stat\">{{ stat.Stat }}</div>\n </div>\n </ng-container>\n <div (click)=\"MoreDetailsClicked()\">More details</div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-security-toggle',\n templateUrl: './security-toggle.component.html',\n styleUrls: ['./security-toggle.component.scss'],\n})\nexport class SecurityToggleComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get IsPrivateFormControl(): AbstractControl {\n return this.SecurityFormGroup?.controls.isPrivate;\n }\n\n public get IsTriggerSignInFormControl(): AbstractControl {\n return this.SecurityFormGroup?.controls.isTriggerSignIn;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SecurityFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService, protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n this.SkeletonEffect = 'wave';\n }\n\n public ngOnInit(): void {\n this.setupSecurityFormGroup();\n }\n\n public SecuritySubmit() {\n //save the security settings\n console.log(\n 'submitting security values: ',\n this.SecurityFormGroup.value\n );\n this.SaveFormEvent.emit(this.SecurityFormGroup.value);\n }\n\n protected setupSecurityFormGroup() {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n this.SecurityFormGroup = this.formBldr.group({});\n this.setupSecurityForm();\n }\n\n protected setupSecurityForm(): void {\n this.SecurityFormGroup.addControl(\n 'isPrivate',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsPrivate || false,\n [Validators.required]\n )\n );\n\n this.SecurityFormGroup.addControl(\n 'isTriggerSignIn',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsTriggerSignIn || false,\n [Validators.required]\n )\n );\n }\n}\n","<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseModeledResponse, Guid } from '@lcu/common';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-processor-details-form',\n templateUrl: './processor-details-form.component.html',\n styleUrls: ['./processor-details-form.component.scss'],\n})\nexport class ProcessorDetailsFormComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Input('editing-application-lookup')\n public EditingApplicationLookup: string;\n\n @Input('has-save-button')\n public HasSaveButton: boolean;\n\n @Input('source-control-lookups')\n public SourceControlLookups: Array<string>;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get APIRootFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.apiRoot;\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[\n this.State?.EaC?.Enterprise?.PrimaryEnvironment\n ];\n }\n\n public get BuildFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.build;\n }\n\n public get BuildPathFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.buildPath;\n }\n\n public get ClientIDFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.clientId;\n }\n\n public get ClientSecretFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.clientSecret;\n }\n\n public get DefaultFileFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.defaultFile;\n }\n\n public get DefaultSourceControl(): EaCSourceControl {\n return {\n Organization: this.EditingApplication?.LowCodeUnit?.Organization,\n Repository: this.EditingApplication?.LowCodeUnit?.Repository,\n };\n }\n\n public get InboundPathFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.inboundPath;\n }\n\n public get IncludeRequestFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.includeRequest;\n }\n\n public get MethodsFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.methods;\n }\n\n public get PackageFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.package;\n }\n\n public get PermanentFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.permanent;\n }\n\n public get PreserveMethodFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.preserveMethod;\n }\n\n public get RedirectFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.redirect;\n }\n\n public get ScopesFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.scopes;\n }\n\n public get SecurityFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.security;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SourceControlFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.sourceControl;\n }\n\n public get SPARootFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.spaRoot;\n }\n\n public get TokenLookupFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.tokenLookup;\n }\n\n public get ValidFormControls(): Array<AbstractControl> {\n let vfc: Array<AbstractControl> = new Array<AbstractControl>();\n for (const field in this.ProcessorDetailsFormGroup.controls) {\n const control = this.ProcessorDetailsFormGroup.get(field);\n if (control.valid) {\n vfc.push(control);\n }\n }\n // console.log(\"VFC=\", vfc)\n return vfc;\n }\n\n public get VersionFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.version;\n }\n\n public get ZipFileFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.zipFile;\n }\n\n public BuildPathOptions: string[];\n\n public IsPermanent: boolean;\n\n public IsPreserve: boolean;\n\n public LCUType: string;\n\n public redirectTooltip: string;\n\n public ProcessorDetailsFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected formBldr: FormBuilder,\n protected eacSvc: EaCService\n ) {\n this.redirectTooltip = '';\n\n this.HasSaveButton = true;\n\n this.SaveFormEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n if (!this.EditingApplication) {\n this.CreateNewApplication();\n } else {\n this.setupProcessorDetailsForm();\n }\n }\n\n public CreateNewApplication(): void {\n this.SetEditingApplication(Guid.CreateRaw());\n }\n\n public DetermineTooltipText() {\n let permanentValue = this.PermanentFormControl.value;\n let preserveValue = this.PreserveMethodFormControl.value;\n\n if (permanentValue === true && preserveValue === false) {\n this.redirectTooltip = '301 – Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === false) {\n this.redirectTooltip = '302 – Not Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === true) {\n this.redirectTooltip = '307 – Not Permanent and Preserve';\n } else if (permanentValue === true && preserveValue === true) {\n this.redirectTooltip = '308 – Permanent and Preserve';\n }\n }\n\n public SaveProcessorDetails(): void {\n const app: EaCApplicationAsCode = this.EditingApplication;\n app.LookupConfig.AllowedMethods = this.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v);\n app.Processor.Type = this.ProcessorType;\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.DefaultFile =\n this.DefaultFileFormControl.value || 'index.html';\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHub':\n app.LowCodeUnit.Organization =\n this.SourceControls[\n this.SourceControlFormControl.value\n ]?.Organization;\n\n app.LowCodeUnit.Repository =\n this.SourceControls[\n this.SourceControlFormControl.value\n ]?.Repository;\n\n app.LowCodeUnit.Build = this.BuildFormControl.value;\n\n app.LowCodeUnit.Path = this.BuildPathFormControl.value;\n\n app.LowCodeUnit.SourceControlLookup =\n this.SourceControlFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package = this.PackageFormControl.value;\n\n app.LowCodeUnit.Version = this.VersionFormControl.value;\n break;\n\n case 'WordPress':\n app.LowCodeUnit.APIRoot = this.APIRootFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile = this.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes = this.ScopesFormControl.value.split(' ');\n\n app.Processor.TokenLookup = this.TokenLookupFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHubOAuth':\n app.LowCodeUnit.ClientID =\n this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret =\n this.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath = this.InboundPathFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'API':\n app.LowCodeUnit.APIRoot = this.APIRootFormControl.value;\n\n app.LowCodeUnit.Security =\n this.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot = this.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.IncludeRequest =\n !!this.IncludeRequestFormControl.value;\n\n app.Processor.Permanent = !!this.PermanentFormControl.value;\n\n app.Processor.PreserveMethod =\n !!this.PreserveMethodFormControl.value;\n\n app.Processor.Redirect = this.RedirectFormControl.value;\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Application: app,\n ApplicationLookup:\n this.EditingApplicationLookup || Guid.CreateRaw(),\n };\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.SaveFormEvent.emit(res);\n });\n }\n\n public SetEditingApplication(appLookup: string): void {\n this.EditingApplication = new EaCApplicationAsCode();\n this.EditingApplicationLookup = appLookup;\n\n this.setupProcessorDetailsForm();\n }\n\n public SourceControlChanged(event: any) {\n this.listBuildPaths();\n }\n\n public ProcessorTypeChanged(event: MatSelectChange): void {\n this.ProcessorType = event.value;\n\n this.setupProcessorTypeSubForm();\n }\n\n public LCUTypeChanged(event: MatSelectChange): void {\n this.LCUType = event.value;\n\n this.setupLcuTypeSubForm();\n }\n\n //HELPERS\n\n protected cleanupLcuTypeSubForm(): void {\n this.ProcessorDetailsFormGroup.removeControl('methods');\n this.ProcessorDetailsFormGroup.removeControl('apiRoot');\n this.ProcessorDetailsFormGroup.removeControl('security');\n\n this.ProcessorDetailsFormGroup.removeControl('spaRoot');\n\n this.ProcessorDetailsFormGroup.removeControl('applicationId');\n this.ProcessorDetailsFormGroup.removeControl('sourceControl');\n\n this.ProcessorDetailsFormGroup.removeControl('build');\n\n this.ProcessorDetailsFormGroup.removeControl('clientId');\n this.ProcessorDetailsFormGroup.removeControl('clientSecret');\n this.ProcessorDetailsFormGroup.removeControl('package');\n this.ProcessorDetailsFormGroup.removeControl('version');\n\n this.ProcessorDetailsFormGroup.removeControl('zipFile');\n }\n\n protected cleanupProcessorTypeSubForm(): void {\n this.ProcessorDetailsFormGroup.removeControl('defaultFile');\n\n // this.ApplicationFormGroup.removeControl('dfsLcuType');\n\n // this.ApplicationFormGroup.removeControl('oauthLcuType');\n this.ProcessorDetailsFormGroup.removeControl('scopes');\n this.ProcessorDetailsFormGroup.removeControl('tokenLookup');\n\n this.ProcessorDetailsFormGroup.removeControl('inboundPath');\n this.ProcessorDetailsFormGroup.removeControl('proxyLcuType');\n\n this.ProcessorDetailsFormGroup.removeControl('includeRequest');\n this.ProcessorDetailsFormGroup.removeControl('redirect');\n this.ProcessorDetailsFormGroup.removeControl('permanent');\n this.ProcessorDetailsFormGroup.removeControl('preserveMethod');\n\n this.cleanupLcuTypeSubForm();\n }\n\n protected listBuildPaths(): void {\n this.State.Loading = true;\n\n console.log(\n 'Source Control: ',\n this.SourceControls[this.SourceControlFormControl.value]\n );\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.SourceControls[this.SourceControlFormControl.value]\n ?.Organization,\n this.SourceControls[this.SourceControlFormControl.value]\n ?.Repository\n )\n .subscribe((response: BaseModeledResponse<string[]>) => {\n this.BuildPathOptions = response.Model;\n console.log('build path options: ', this.BuildPathOptions);\n\n this.State.Loading = false;\n\n // if (this.BuildPathOptions?.length === 1) {\n // this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);\n // }\n });\n }\n\n protected setupLcuTypeSubForm(): void {\n this.cleanupLcuTypeSubForm();\n\n if (this.LCUType) {\n switch (this.LCUType) {\n case 'API':\n this.setupLCUAPIForm();\n break;\n\n case 'ApplicationPointer':\n this.setupLCUApplicationPointerForm();\n break;\n\n case 'GitHub':\n this.setupLCUGitHubForm();\n break;\n\n case 'GitHubOAuth':\n this.setupLCUGitHubOAuthForm();\n break;\n\n case 'WordPress':\n this.setupLCUWordPressForm();\n break;\n\n // case 'NPM':\n // this.setupLCUNPMForm();\n // break;\n\n case 'SPA':\n this.setupLCUSPAForm();\n break;\n\n case 'Zip':\n this.setupLCUZipForm();\n break;\n }\n }\n }\n\n protected setupProcessorDetailsForm(): void {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n\n // console.log('EDITING APP = ', this.EditingApplication);\n\n if (this.EditingApplication != null) {\n this.ProcessorDetailsFormGroup = this.formBldr.group({\n procType: [this.ProcessorType, [Validators.required]],\n });\n // this.setupDfsForm();\n\n // this.setupLcuTypeSubForm();\n this.setupProcessorTypeSubForm();\n }\n }\n\n protected setupLCUGitHubForm(): void {\n console.log('EditingApplication: ', this.EditingApplication);\n\n this.ProcessorDetailsFormGroup.addControl(\n 'sourceControl',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SourceControlLookup || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'buildPath',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Path || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'build',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Build || 'latest',\n [Validators.required]\n )\n );\n\n this.listBuildPaths();\n }\n\n protected setupLCUApplicationPointerForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'applicationId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ApplicationID || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUSPAForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'spaRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SPARoot || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUAPIForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'methods',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.AllowedMethods?.join(\n ' '\n ) || '',\n []\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'apiRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.APIRoot || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'security',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Security || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUGitHubOAuthForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'clientId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientID || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'clientSecret',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientSecret || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUWordPressForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'apiRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.APIRoot || '',\n [Validators.required]\n )\n );\n }\n\n protected setupProxyForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ProcessorDetailsFormGroup.addControl(\n 'inboundPath',\n this.formBldr.control(\n this.EditingApplication.Processor?.InboundPath || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupRedirectForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'redirect',\n this.formBldr.control(\n this.EditingApplication.Processor?.Redirect || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'permanent',\n this.formBldr.control(\n this.EditingApplication.Processor?.Permanent || false,\n []\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'preserveMethod',\n this.formBldr.control(\n this.EditingApplication.Processor?.PreserveMethod || false,\n []\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'includeRequest',\n this.formBldr.control(\n this.EditingApplication.Processor?.IncludeRequest || false,\n []\n )\n );\n\n this.DetermineTooltipText();\n }\n\n protected setupOAuthForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ProcessorDetailsFormGroup.addControl(\n 'scopes',\n this.formBldr.control(\n this.EditingApplication.Processor?.Scopes?.Join(' ') || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'tokenLookup',\n this.formBldr.control(\n this.EditingApplication.Processor?.TokenLookup || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupLCUZipForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'zipFile',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ZipFile || '',\n [Validators.required]\n )\n );\n }\n\n protected setupDfsForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ProcessorDetailsFormGroup.addControl(\n 'defaultFile',\n this.formBldr.control(\n this.EditingApplication.Processor?.DefaultFile || 'index.html',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupProcessorTypeSubForm(): void {\n this.cleanupProcessorTypeSubForm();\n\n if (this.ProcessorType) {\n switch (this.ProcessorType) {\n case 'DFS':\n this.setupDfsForm();\n break;\n\n case 'OAuth':\n this.setupOAuthForm();\n break;\n\n case 'Proxy':\n this.setupProxyForm();\n break;\n\n case 'Redirect':\n this.setupRedirectForm();\n break;\n }\n }\n\n this.setupLcuTypeSubForm();\n }\n}\n","<form\n class=\"processor-details-form\"\n [formGroup]=\"ProcessorDetailsFormGroup\"\n (ngSubmit)=\"SaveProcessorDetails()\"\n>\n <!-- <mat-card class=\"spread flow-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header> -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <ng-container *ngFor=\"let fc of ValidFormControls\">\n <skeleton-block\n [id]=\"fc\"\n class=\"s-block\"\n effect=\"wave\"\n ></skeleton-block>\n </ng-container>\n\n <lcu-loader\n *ngIf=\"LCUType === 'Redirect'\"\n [loading]=\"State?.Loading\"\n ></lcu-loader>\n </ng-container>\n <!-- END SKELETON -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <!-- <mat-card-content> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <mat-option value=\"WordPress\">WordPress</mat-option>\n\n <mat-option value=\"Zip\">Zip</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <!-- <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ProcessorDetailsFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls> -->\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Source Control\"\n formControlName=\"sourceControl\"\n (selectionChange)=\"SourceControlChanged($event)\"\n required\n >\n <mat-option\n *ngFor=\"\n let scLookup of SourceControlLookups\n \"\n [value]=\"scLookup\"\n >\n {{ scLookup }}\n </mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width with-hint\"\n *ngIf=\"SourceControlFormControl?.valid\"\n >\n <mat-select\n formControlName=\"buildPath\"\n placeholder=\"Build Path\"\n required\n >\n <ng-container\n *ngFor=\"let buildPath of BuildPathOptions\"\n >\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\n use for your configuration.\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"SourceControlFormControl?.valid\"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{\n EditingApplication?.LowCodeUnit\n ?.CurrentBuild\n }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"\n EditingApplication?.LowCodeUnit?.Package\n \"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{\n EditingApplication?.LowCodeUnit?.CurrentVersion\n }}\n </mat-hint>\n </div>\n\n <div *ngSwitchCase=\"'WordPress'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'Zip'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Zip File\"\n formControlName=\"zipFile\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\"\n >Single Page Application</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"permanent\"\n >\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip=\"{{ redirectTooltip }}\"\n >\n info_outline\n </mat-icon>\n </div>\n\n <div>\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"includeRequest\"\n >\n Include Path and Query?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Should the redirect include the path and query?\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n <!-- </mat-card-content> -->\n <!-- <mat-card-actions fxLayoutAlign=\"center center\"> -->\n\n <!-- <button \n *ngIf=\"HasSaveButton && !State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!ProcessorDetailsFormGroup.valid || !ProcessorDetailsFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Processor Details\n </button> -->\n <!-- <lcu-loader *ngIf=\"HasSaveButton\" [loading]=\"State?.Loading\"></lcu-loader> -->\n\n <!-- </mat-card-actions> -->\n </ng-container>\n\n <!-- </mat-card> -->\n</form>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCProjectAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { SourceControlFormControlsComponent } from '../../elements/projects/controls/forms/source-control/source-control.component';\n\n@Component({\n selector: 'lcu-source-control-form',\n templateUrl: './source-control-form.component.html',\n styleUrls: ['./source-control-form.component.scss'],\n})\nexport class SourceControlFormComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get HasBuildFormControl(): AbstractControl {\n return this.SourceControlFormGroup?.controls.hasBuild;\n }\n\n public get SourceControlLookupFormControl(): AbstractControl {\n return this.SourceControlFormGroup?.controls.sourceControlLookup;\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment.Sources || {};\n }\n\n public SourceControlFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n constructor(protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n this.setupSourceControlForm();\n }\n\n public SourceControlLookupChanged(event: MatSelectChange): void {\n // TODO: Anything to do here on change?\n console.log('sourceControlLookupChanged: ', event);\n }\n\n public SubmitSourceControl() {\n console.log(\n 'submitting source control: ',\n this.SourceControlFormGroup.value\n );\n this.SaveFormEvent.emit(this.SourceControlFormGroup.value);\n }\n\n //HELPER\n\n protected setupSourceControlForm(): void {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n\n this.SourceControlFormGroup = this.formBldr.group({});\n\n this.setupBuildForm();\n }\n\n protected setupBuildForm(): void {\n this.SourceControlFormGroup.addControl(\n 'hasBuild',\n this.formBldr.control(\n !!this.EditingApplication.LowCodeUnit?.SourceControlLookup ||\n false,\n [Validators.required]\n )\n );\n\n this.SourceControlFormGroup.addControl(\n 'sourceControlLookup',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SourceControlLookup || '',\n []\n )\n );\n }\n}\n","<form\n class=\"source-control-form\"\n [formGroup]=\"SourceControlFormGroup\"\n (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 &&\n SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading ||\n 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\n ?.value || SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl\n ?.value || SourceControl?.Repository\n }}\n </h3>\n\n <p>\n Organization and Repository pulled from build settings\n </p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SourceControlFormGroup.valid ||\n !SourceControlFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save\n </button>\n </mat-card-actions>\n </mat-card>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { BaseModeledResponse, Guid } from '@lcu/common';\nimport {\n EaCArtifact,\n EaCDevOpsAction,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport {\n EaCService,\n SaveEnvironmentAsCodeEventRequest,\n} from '../../services/eac.service';\nimport {\n ApplicationsFlowState,\n ProjectHostingDetails,\n ProjectHostingOption,\n} from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-build-pipeline-form',\n templateUrl: './build-pipeline-form.component.html',\n styleUrls: ['./build-pipeline-form.component.scss'],\n})\nexport class BuildPipelineFormComponent implements OnInit {\n //PROPERTIES\n\n // @Input('build-pipeline')\n public BuildPipeline: string;\n\n @Input('devops-action-lookup')\n public DevOpsActionLookup: string;\n\n @Input('disabled')\n public Disabled: boolean;\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Input('environment-lookup')\n public EnvironmentLookup: string;\n\n @Input('hosting-details')\n public HostingDetails: ProjectHostingDetails;\n\n @Output('response-event')\n public ResponseEvent: EventEmitter<any>;\n\n public get Artifact(): EaCArtifact {\n // console.log(\"ARTIFACT: \", this.Environment?.Artifacts[this.ArtifactLookup]);\n return this.Environment?.Artifacts && this.ArtifactLookup\n ? this.Environment?.Artifacts[this.ArtifactLookup] || {}\n : {};\n }\n\n public get ArtifactLookup(): string {\n const artLookup = this.DevOpsAction?.ArtifactLookups\n ? this.DevOpsAction?.ArtifactLookups[0]\n : null;\n\n return artLookup;\n }\n\n public get BuildPipelineFormControl(): AbstractControl {\n return this.BuildPipelineFormGroup?.get('buildPipeline');\n }\n\n public get DevOpsAction(): EaCDevOpsAction {\n return this.Environment.DevOpsActions && this.DevOpsActionLookup\n ? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}\n : {};\n }\n\n public get DevOpsActions(): { [lookup: string]: EaCDevOpsAction } {\n return this.Environment.DevOpsActions || {};\n }\n\n public get DevOpsActionNameFormControl(): AbstractControl {\n return this.BuildPipelineFormGroup.get('devOpsActionName');\n }\n\n public get NPMTokenFormControl(): AbstractControl {\n return this.BuildPipelineFormGroup.get('npmToken');\n }\n\n // (ho) => ho.Lookup === this.BuildPipeline\n public get SelectedHostingOption(): ProjectHostingOption {\n return this.HostingDetails?.HostingOptions?.find(\n (ho) => ho.Lookup === this.BuildPipeline\n );\n }\n\n public get SelectedHostingOptionInputControlValues(): {\n [lookup: string]: any;\n } {\n return this.SelectedHostingOption?.Inputs?.reduce((prev, cur) => {\n const res = {\n ...prev,\n };\n\n res[cur.Lookup] =\n this.BuildPipelineFormGroup.controls[cur.Lookup].value;\n\n return res;\n }, {});\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment.Sources || {};\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public BuildPipelineFormGroup: FormGroup;\n\n constructor(\n protected eacSvc: EaCService,\n protected formBuilder: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService\n ) {\n this.Disabled = false;\n this.HostingDetails = new ProjectHostingDetails();\n this.ResponseEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n // console.log('BuildPipeline = ', this.BuildPipeline)\n\n // this.BuildPipelineFormGroup = this.formBuilder.group({});\n\n // if (this.BuildPipelineFormGroup != null) {\n // this.BuildPipelineFormGroup.removeControl('hostingDetails');\n // }\n\n // this.BuildPipelineFormGroup.addControl(\n // 'hostingDetails',\n this.BuildPipelineFormGroup = this.formBuilder.group({\n // buildPipeline: [this.BuildPipeline, [Validators.required]],\n });\n // );\n\n this.loadProjectHostingDetails();\n // this.setupControlsForForm();\n }\n\n //API METHODS\n\n public BuildPipelineChanged(): void {\n //for some reason this value is coming back undefined\n // console.log(\"build pipeline value: \", this.BuildPipelineFormControl?.value)\n this.BuildPipeline = this.BuildPipelineFormControl?.value;\n\n this.setupControlsForForm();\n }\n\n public SubmitBuildPipeline() {\n // console.log(\"submitting build pipeline: \", this.BuildPipelineFormGroup.value);\n this.SaveEnvironment();\n }\n\n public SaveEnvironment(): void {\n const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {\n Environment: {\n ...this.Environment,\n Artifacts: this.Environment.Artifacts || {},\n DevOpsActions: this.Environment.DevOpsActions || {},\n Secrets: this.Environment.Secrets || {},\n Sources: this.Environment.Sources || {},\n },\n EnvironmentLookup: this.EnvironmentLookup,\n EnterpriseDataTokens: {},\n };\n\n let artifactLookup: string;\n\n let artifact: EaCArtifact = {\n ...this.Artifact,\n ...this.SelectedHostingOptionInputControlValues,\n };\n\n if (!this.ArtifactLookup) {\n artifactLookup = Guid.CreateRaw();\n\n artifact = {\n ...artifact,\n Type: this.SelectedHostingOption.ArtifactType,\n Name: this.SelectedHostingOption.Name,\n NPMRegistry: 'https://registry.npmjs.org/',\n };\n } else {\n artifactLookup = this.ArtifactLookup;\n }\n\n saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;\n\n let devOpsActionLookup: string;\n\n if (!this.DevOpsActionLookup) {\n devOpsActionLookup = Guid.CreateRaw();\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n ArtifactLookups: [artifactLookup],\n Name: this.DevOpsActionNameFormControl.value,\n Path: this.SelectedHostingOption.Path,\n Templates: this.SelectedHostingOption.Templates,\n };\n\n if (this.NPMTokenFormControl?.value) {\n const secretLookup = 'npm-access-token';\n\n doa.SecretLookups = [secretLookup];\n\n saveEnvReq.Environment.Secrets[secretLookup] = {\n Name: 'NPM Access Token',\n DataTokenLookup: secretLookup,\n KnownAs: 'NPM_TOKEN',\n };\n\n saveEnvReq.EnterpriseDataTokens[secretLookup] = {\n Name: saveEnvReq.Environment.Secrets[secretLookup].Name,\n Description:\n saveEnvReq.Environment.Secrets[secretLookup].Name,\n Value: this.NPMTokenFormControl.value,\n };\n }\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n } else {\n devOpsActionLookup = this.DevOpsActionLookup;\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n Name: this.DevOpsActionNameFormControl.value,\n };\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n }\n\n this.eacSvc.SaveEnvironmentAsCode(saveEnvReq).then((res) => {\n this.ResponseEvent.emit(res);\n });\n }\n\n // Helpers\n protected setupControlsForForm(): void {\n // this.BuildPipeline =\n // this.BuildPipeline || this.HostingDetails?.HostingOptions\n // ? this.HostingDetails?.HostingOptions[0]?.Lookup\n // : '';\n\n // console.log(\"hosting details: \", this.HostingDetails)\n\n for (const ctrlName in this.BuildPipelineFormGroup.controls) {\n //devOpsAction doesn't exist\n //removes hosting details\n if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {\n // console.log(\"removing control: \", ctrlName)\n this.BuildPipelineFormGroup.removeControl(ctrlName);\n }\n }\n\n this.BuildPipelineFormGroup.addControl(\n 'buildPipeline',\n this.formBuilder.control(this.BuildPipeline || '', [\n Validators.required,\n ])\n );\n\n this.BuildPipelineFormGroup.addControl(\n 'devOpsActionName',\n this.formBuilder.control(\n this.DevOpsAction?.Name ||\n this.SelectedHostingOption?.Name ||\n '',\n [Validators.required]\n )\n );\n\n // console.log(\"selected hosting options: \", this.SelectedHostingOption.Inputs);\n\n this.SelectedHostingOption?.Inputs?.forEach((input) => {\n const validators = input.Required ? [Validators.required] : [];\n\n this.BuildPipelineFormGroup.addControl(\n input.Lookup,\n this.formBuilder.control(\n this.Artifact[input.Lookup] || input.DefaultValue || '',\n validators\n )\n );\n\n // if (this.Disabled) {\n // this.FormGroup.controls[input.Lookup].disable();\n // }\n });\n\n if (this.BuildPipelineFormControl?.value === 'npm-release') {\n console.log('npm release');\n if (!this.BuildPipelineFormGroup?.controls?.npmToken) {\n console.log('npm token if');\n this.BuildPipelineFormGroup.addControl(\n 'npmToken',\n this.formBuilder.control(\n '',\n this.Disabled ? [] : [Validators.required]\n )\n );\n\n if (this.Disabled) {\n this.BuildPipelineFormGroup.controls.npmToken.disable();\n }\n }\n } else if (\n this.BuildPipelineFormControl?.value === 'github-artifacts-release'\n ) {\n if (this.BuildPipelineFormGroup?.controls?.npmToken) {\n this.BuildPipelineFormGroup.removeControl('npmToken');\n }\n }\n }\n\n protected loadProjectHostingDetails(): void {\n this.HostingDetails.Loading = true;\n this.appsFlowSvc.LoadProjectHostingDetails().subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n // console.log(\"response: \", response);\n this.HostingDetails.Loading = false;\n\n const hostOption = this.HostingDetails?.HostingOptions?.find(\n (ho) => ho.Path === this.DevOpsAction.Path\n );\n this.BuildPipeline = hostOption?.Lookup;\n\n // console.log(\"Build Pipeline HERE= \", this.BuildPipeline);\n\n this.setupControlsForForm();\n },\n (err) => {\n console.log('ERR: ', err);\n this.HostingDetails.Loading = false;\n }\n );\n // console.log('HOSTING DETAILS: ', this.HostingDetails);\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"BuildPipelineFormGroup\"\n (ngSubmit)=\"SubmitBuildPipeline()\"\n>\n <!-- <mat-card\n class=\"spread\" \n > -->\n <!-- <mat-card-header>\n <mat-card-title> Build Pipeline </mat-card-title>\n\n <mat-hint>\n Changes made here are reflected for all sources using this\n DevOpsAction\n </mat-hint>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n\n <ng-container *ngIf=\"HostingDetails?.Loading || State?.Loading\">\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <ng-container *ngIf=\"SelectedHostingOption?.Inputs\">\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions\"\n >\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n </ng-container>\n\n <skeleton-block *ngIf=\"\" class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n\n <ng-container *ngIf=\"!HostingDetails?.Loading && !State?.Loading\">\n <!-- <div *ngIf=\"!HostingDetails?.Loading\"> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"\n let hostOption of HostingDetails?.HostingOptions;\n let i = index\n \"\n >\n <mat-option [value]=\"hostOption.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions\"\n >\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n\n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n\n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n\n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n\n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access\n Token (PAT) with publish access to the organization used for\n your NPM packages. Learn how to create and view access\n tokens\n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n class=\"primary-link\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n <!-- </div> -->\n\n <!-- <div *ngIf=\"HostingDetails?.Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n \n <div class=\"margin-3\">\n <h4 class=\"mat-title\">Loading hosting details</h4>\n </div>\n </div>\n </div> -->\n </ng-container>\n <!-- </mat-card-content> -->\n\n <!-- <mat-card-actions fxLayoutAlign=\"center center\"> -->\n\n <!-- <button \n *ngIf=\"!State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!BuildPipelineFormGroup.valid || !BuildPipelineFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Build Pipeline\n </button> -->\n <!-- <lcu-loader [loading]=\"State?.Loading\"></lcu-loader> -->\n\n <!-- </mat-card-actions> -->\n <!-- </mat-card> -->\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCEnvironmentAsCode } from '@semanticjs/common';\nimport { BuildPipelineFormComponent } from '../../controls/build-pipeline-form/build-pipeline-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface BPDialogData {\n devopsActionLookup: string;\n doaName: string;\n environment: EaCEnvironmentAsCode;\n environmentLookup: string;\n\n // buildPipeline: string;\n}\n\n@Component({\n selector: 'lcu-build-pipeline-dialog',\n templateUrl: './build-pipeline-dialog.component.html',\n styleUrls: ['./build-pipeline-dialog.component.scss'],\n})\nexport class BuildPipelineDialogComponent implements OnInit {\n @ViewChild(BuildPipelineFormComponent)\n public BuildPipelineControl: BuildPipelineFormComponent;\n\n public get BuildPipelineFormGroup(): FormGroup {\n return this.BuildPipelineControl?.BuildPipelineFormGroup;\n }\n\n public get HasConnection(): boolean {\n return this.State.GitHub.HasConnection;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public dialogRef: MatDialogRef<BuildPipelineDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: BPDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public DeleteDevOpsAction(): void {\n this.eacSvc\n .DeleteDevOpsAction(this.data.devopsActionLookup, this.data.doaName)\n .then((status) => {\n this.CloseDialog();\n });\n }\n\n public HandleResponseEvent(event: Status) {\n console.log('Response Event: ', event);\n if (event.Code === 0) {\n this.snackBar.open(\n 'Build Pipeline Created Succesfully',\n 'Dismiss',\n {\n duration: 5000,\n }\n );\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveBuildPipeline() {\n this.BuildPipelineControl.SaveEnvironment();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Build Pipeline</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <ng-container *ngIf=\"!HasConnection\">\n <lcu-git-auth></lcu-git-auth>\n </ng-container>\n\n <ng-container *ngIf=\"HasConnection\">\n <lcu-build-pipeline-form\n [devops-action-lookup]=\"data.devopsActionLookup\"\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n (response-event)=\"HandleResponseEvent($event)\"\n >\n </lcu-build-pipeline-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteDevOpsAction()\"\n matTooltip=\"Delete {{ data.doaName }}\"\n >\n Delete\n </button>\n </div>\n <div fxLayoutAlign=\"end center\">\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"52%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveBuildPipeline()\"\n [disabled]=\"\n !BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-edit-application-form',\n templateUrl: './edit-application-form.component.html',\n styleUrls: ['./edit-application-form.component.scss'],\n})\nexport class EditApplicationFormComponent implements OnInit {\n @Input('application-lookup')\n public ApplicationLookup: string;\n\n @Input('current-route')\n public CurrentRoute: string;\n\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Input('has-save-button')\n public HasSaveButton: boolean;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get DescriptionFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.description;\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.name;\n }\n\n public get RouteFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.route;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ApplicationFormGroup: FormGroup;\n\n constructor(protected formBldr: FormBuilder, protected eacSvc: EaCService) {\n this.SaveFormEvent = new EventEmitter();\n this.HasSaveButton = true;\n }\n\n public ngOnInit(): void {\n this.setupApplicationForm();\n }\n\n public SubmitApplicationControl() {\n console.log('application form: ', this.ApplicationFormGroup.value);\n this.SaveApplication();\n }\n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = this.EditingApplication;\n // console.log(\"APP=\", app);\n app.Application = {\n Name: this.NameFormControl.value,\n Description: this.DescriptionFormControl.value,\n PriorityShift:\n this.EditingApplication?.Application?.PriorityShift || 0,\n };\n\n app.LookupConfig.PathRegex = `${this.RouteFormControl.value}.*`;\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref =\n `${this.RouteFormControl.value}/`.replace('//', '/');\n\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Application: app,\n ApplicationLookup: this.ApplicationLookup,\n };\n\n console.log('processor details being submitted: ', app.Processor);\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.SaveFormEvent.emit(res);\n });\n }\n\n //HELPERS\n protected setupApplicationForm() {\n if (this.EditingApplication != null) {\n this.ApplicationFormGroup = this.formBldr.group({\n name: [\n this.EditingApplication.Application?.Name,\n Validators.required,\n ],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [\n this.CurrentRoute\n ? this.CurrentRoute\n : this.EditingApplication.LookupConfig?.PathRegex.replace(\n '.*',\n ''\n ) || '/',\n Validators.required,\n ],\n // priority: [\n // this.EditingApplication.Application?.Priority || 10000,\n // Validators.required,\n // ],\n });\n }\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"ApplicationFormGroup\"\n (ngSubmit)=\"SubmitApplicationControl()\"\n>\n <!-- <mat-card class=\"spread flow-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title>\n <ng-container *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n <ng-container *ngIf=\"State?.Loading\">\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <!-- </mat-card-content> -->\n <!-- <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n *ngIf=\"HasSaveButton && !State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!ApplicationFormGroup.valid || !ApplicationFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n <lcu-loader *ngIf=\"HasSaveButton\" [loading]=\"State?.Loading\"></lcu-loader>\n \n </mat-card-actions> -->\n <!-- </mat-card> -->\n</form>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n})\nexport class BreadcrumbComponent implements OnInit {\n @Input('application-lookup')\n public ApplicationLookup: string;\n\n public get Enterprise(): any {\n return this.State?.EaC?.Enterprise;\n }\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Input('selected-route')\n public SelectedRoute: string;\n\n public get ApplicationsBank(): { [lookup: string]: EaCApplicationAsCode } {\n return this.State?.EaC?.Applications || {};\n }\n\n public get Applications(): { [lookup: string]: EaCApplicationAsCode } {\n const apps: { [lookup: string]: EaCApplicationAsCode } = {};\n\n this.SelectedProject?.ApplicationLookups?.forEach(\n (appLookup: string) => {\n apps[appLookup] = this.ApplicationsBank[appLookup];\n }\n );\n return apps;\n }\n\n public get SelectedApplication(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.ApplicationLookup] || {};\n }\n\n public get CurrentRouteApplicationLookups(): Array<string> {\n return Object.keys(this.RoutedApplications[this.SelectedRoute] || {});\n }\n\n public get Loading(): boolean {\n return (\n this.State?.LoadingActiveEnterprise ||\n this.State?.LoadingEnterprises\n );\n }\n\n public get Projects(): any {\n return this.State?.EaC?.Projects || {};\n }\n\n public get ProjectLookups(): string[] {\n return Object.keys(this.State?.EaC?.Projects || {});\n }\n\n public get Routes(): Array<string> {\n return Object.keys(this.RoutedApplications || {});\n }\n\n public get RoutedApplications(): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n const appLookups = Object.keys(this.Applications);\n\n const apps = appLookups.map(\n (appLookup) => this.Applications[appLookup]\n );\n\n let appRoutes =\n apps.map((app) => {\n return app?.LookupConfig?.PathRegex.replace('.*', '');\n }) || [];\n\n appRoutes = appRoutes.filter((ar) => ar != null);\n\n let routeBases: string[] = [];\n\n appRoutes?.forEach((appRoute) => {\n const appRouteParts = appRoute.split('/');\n\n const appRouteBase = `/${appRouteParts[1]}`;\n\n if (routeBases.indexOf(appRouteBase) < 0) {\n routeBases.push(appRouteBase);\n }\n });\n\n let workingAppLookups = [...(appLookups || [])];\n\n routeBases = routeBases.sort((a, b) => b.localeCompare(a));\n\n const routeSet =\n routeBases.reduce((prevRouteMap, currentRouteBase) => {\n const routeMap = {\n ...prevRouteMap,\n };\n\n const filteredAppLookups = workingAppLookups.filter((wal) => {\n const wa = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(\n currentRouteBase\n );\n });\n\n routeMap[currentRouteBase] =\n filteredAppLookups.reduce((prevAppMap, appLookup) => {\n const appMap = {\n ...prevAppMap,\n };\n\n appMap[appLookup] = this.Applications[appLookup];\n\n return appMap;\n }, {}) || {};\n\n workingAppLookups = workingAppLookups.filter((wa) => {\n return filteredAppLookups.indexOf(wa) < 0;\n });\n\n return routeMap;\n }, {}) || {};\n\n let routeSetKeys = Object.keys(routeSet);\n\n routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));\n\n const routeSetResult = {};\n\n routeSetKeys?.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));\n\n return routeSetResult;\n }\n\n public get SelectedProject(): any {\n return this.State?.EaC?.Projects[this.ProjectLookup] || {};\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService) {\n this.SkeletonEffect = 'wave';\n }\n\n ngOnInit(): void {\n this.handleStateChange().then((eac) => {});\n\n // console.log(\"state: \", this.State)\n\n console.log('selected enterprise: ', this.Enterprise);\n\n // console.log('Selected project: ', this.SelectedProject.Project);\n\n // console.log('SelectedRoute:', this.SelectedRoute);\n }\n\n public SetActiveEnterprise(entLookup: string): void {\n this.eacSvc.SetActiveEnterprise(entLookup).then(() => {});\n }\n\n protected async handleStateChange(): Promise<void> {}\n}\n","<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <ng-container *ngIf=\"State.Loading || Loading\">\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">home</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Enterprise Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State.Loading && Enterprise && !Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">\n <mat-icon>home</mat-icon>\n\n {{ Enterprise?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"enterpriseMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #enterpriseMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n [routerLink]=\"['/enterprises']\"\n (click)=\"SetActiveEnterprise(ent.Lookup)\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n <span>{{ ent.Name }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"ProjectLookup && SelectedProject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Project Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">\n {{ SelectedProject?.Project?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let projectLookup of ProjectLookups\"\n [routerLink]=\"['/projects', projectLookup]\"\n >\n <span *ngIf=\"Projects[projectLookup]; let pro\">{{\n pro.Project?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Route Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\"\n >\n {{ SelectedRoute }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appRoute of Routes\"\n [routerLink]=\"['/routes', appRoute, ProjectLookup]\"\n >\n <span *ngIf=\"appRoute\">{{ appRoute }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"SelectedApplication && ApplicationLookup\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Application Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"[\n '/applications',\n ApplicationLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n {{ SelectedApplication?.Application?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"applicationMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #applicationMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"[\n '/applications',\n appLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n <span\n *ngIf=\"\n RoutedApplications[SelectedRoute][appLookup];\n let app\n \"\n >{{ app.Application?.Name }}</span\n >\n </button>\n </mat-menu>\n </ng-container>\n </div>\n</div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { EaCHost, EaCProjectAsCode } from '@semanticjs/common';\n\nexport interface CDDialogData {\n hosts: { [lookup: string]: EaCHost };\n primaryHost: string;\n project: EaCProjectAsCode;\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-custom-domain-dialog',\n templateUrl: './custom-domain-dialog.component.html',\n styleUrls: ['./custom-domain-dialog.component.scss'],\n})\nexport class CustomDomainDialogComponent implements OnInit {\n public DomainData: {};\n\n constructor(\n public dialogRef: MatDialogRef<CustomDomainDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: CDDialogData\n ) {\n this.DomainData = {\n Hosts: this.data.hosts,\n PrimaryHost: this.data.primaryHost,\n Project: this.data.project,\n ProjectLookup: this.data.projectLookup,\n };\n }\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n}\n","<!-- <div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div> -->\n\n<!-- NEW BELOW -->\n<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Custom Domain</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-domains [data]=\"DomainData\"> </lcu-domains>\n\n <!-- <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error> -->\n</mat-dialog-content>\n\n<!-- <mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"end center\"\n>\n <button \n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\">\n Cancel\n\n </button>\n\n\n\n <button \n *ngIf=\"!State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"25%\" \n color=\"primary\" \n (click)=\"SaveCustomDomain()\"\n [disabled]=\"!BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\">\n Save\n </button>\n\n</mat-dialog-actions> -->\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EditApplicationFormComponent } from '../../controls/edit-application-form/edit-application-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface ApplicationDialogData {\n application: EaCApplicationAsCode;\n applicationLookup: string;\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-edit-application-dialog',\n templateUrl: './edit-application-dialog.component.html',\n styleUrls: ['./edit-application-dialog.component.scss'],\n})\nexport class EditApplicationDialogComponent implements OnInit {\n @ViewChild(EditApplicationFormComponent)\n public EditApplicationControl: EditApplicationFormComponent;\n\n public get ApplicationFormGroup(): FormGroup {\n return this.EditApplicationControl?.ApplicationFormGroup;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public eacSvc: EaCService,\n public dialogRef: MatDialogRef<EditApplicationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ApplicationDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleSaveApplicationEvent(event: Status) {\n console.log('event to save: ', event);\n if (event.Code === 0) {\n this.snackBar.open('Application Succesfully Updated', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveApplication() {\n this.EditApplicationControl.SaveApplication();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>\n Edit Application: {{ data.application?.Application?.Name }}\n </h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-edit-application-form\n [application-lookup]=\"data.applicationLookup\"\n [editing-application]=\"data.application\"\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveApplicationEvent($event)\"\n >\n </lcu-edit-application-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ApplicationFormGroup?.valid || !ApplicationFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Guid, Status } from '@lcu/common';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n EnterpriseAsCode,\n} from '@semanticjs/common';\nimport { EditApplicationFormComponent } from '../../controls/edit-application-form/edit-application-form.component';\nimport { ProcessorDetailsFormComponent } from '../../controls/processor-details-form/processor-details-form.component';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface NewApplicationDialogData {\n environmentLookup: string;\n projectLookup: string;\n currentRoute: string;\n}\n\n@Component({\n selector: 'lcu-new-application-dialog',\n templateUrl: './new-application-dialog.component.html',\n styleUrls: ['./new-application-dialog.component.scss'],\n})\nexport class NewApplicationDialogComponent implements OnInit {\n @ViewChild(EditApplicationFormComponent)\n public ApplicationFormControls: EditApplicationFormComponent;\n\n @ViewChild(ProcessorDetailsFormComponent)\n public ProcessorDetailsFormControls: ProcessorDetailsFormComponent;\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.data.environmentLookup];\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.Environment.Sources || {});\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n public HasSaveButton: boolean;\n\n public NewApplication: EaCApplicationAsCode;\n\n public NewApplicationLookup: string;\n\n constructor(\n protected eacSvc: EaCService,\n public dialogRef: MatDialogRef<NewApplicationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: NewApplicationDialogData,\n protected snackBar: MatSnackBar\n ) {\n this.HasSaveButton = false;\n }\n\n public ngOnInit(): void {\n this.SetupApplication(Guid.CreateRaw());\n }\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public SetupApplication(appLookup: string) {\n this.NewApplication = new EaCApplicationAsCode();\n this.NewApplicationLookup = appLookup;\n }\n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = {\n Application: {\n Name: this.ApplicationFormControls.NameFormControl.value,\n Description:\n this.ApplicationFormControls.DescriptionFormControl.value,\n PriorityShift: 0,\n },\n AccessRightLookups: [],\n DataTokens: {},\n LicenseConfigurationLookups: [],\n LookupConfig: {\n IsPrivate: false,\n IsTriggerSignIn: false,\n PathRegex: `${this.ApplicationFormControls.RouteFormControl.value}.*`,\n QueryRegex: '',\n HeaderRegex: '',\n AllowedMethods:\n this.ProcessorDetailsFormControls.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v),\n },\n Processor: {\n Type: this.ProcessorDetailsFormControls.ProcessorType,\n },\n LowCodeUnit: {},\n };\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref =\n `${this.ApplicationFormControls.RouteFormControl.value}/`.replace(\n '//',\n '/'\n );\n\n app.Processor.DefaultFile =\n this.ProcessorDetailsFormControls.DefaultFileFormControl\n .value || 'index.html';\n\n app.LowCodeUnit = {\n Type: this.ProcessorDetailsFormControls.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHub':\n app.LowCodeUnit.Organization =\n this.SourceControls[\n this.ProcessorDetailsFormControls.SourceControlFormControl.value\n ].Organization;\n\n app.LowCodeUnit.Repository =\n this.SourceControls[\n this.ProcessorDetailsFormControls.SourceControlFormControl.value\n ].Repository;\n\n app.LowCodeUnit.Build =\n this.ProcessorDetailsFormControls.BuildFormControl.value;\n\n app.LowCodeUnit.Path =\n this.ProcessorDetailsFormControls.BuildPathFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package =\n this.ProcessorDetailsFormControls.PackageFormControl.value;\n\n app.LowCodeUnit.Version =\n this.ProcessorDetailsFormControls.VersionFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile =\n this.ProcessorDetailsFormControls.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes =\n this.ProcessorDetailsFormControls.ScopesFormControl.value.split(\n ' '\n );\n\n app.Processor.TokenLookup =\n this.ProcessorDetailsFormControls.TokenLookupFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.ProcessorDetailsFormControls.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHubOAuth':\n app.LowCodeUnit.ClientID =\n this.ProcessorDetailsFormControls.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret =\n this.ProcessorDetailsFormControls.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath =\n this.ProcessorDetailsFormControls.InboundPathFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.ProcessorDetailsFormControls.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'API':\n app.LowCodeUnit.APIRoot =\n this.ProcessorDetailsFormControls.APIRootFormControl.value;\n\n app.LowCodeUnit.Security =\n this.ProcessorDetailsFormControls.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot =\n this.ProcessorDetailsFormControls.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.Permanent =\n !!this.ProcessorDetailsFormControls.PermanentFormControl\n .value;\n\n app.Processor.PreserveMethod =\n !!this.ProcessorDetailsFormControls\n .PreserveMethodFormControl.value;\n\n app.Processor.Redirect =\n this.ProcessorDetailsFormControls.RedirectFormControl.value;\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.data.projectLookup,\n Application: app,\n ApplicationLookup: this.NewApplicationLookup,\n };\n // this.HasBuildFormControl.value && taken out from below if statement\n if (\n this.ProcessorDetailsFormControls.ProcessorType !== 'redirect' &&\n this.ProcessorDetailsFormControls.LCUType === 'GitHub'\n ) {\n if (app) {\n app.LowCodeUnit.SourceControlLookup =\n this.ProcessorDetailsFormControls.SourceControlFormControl.value;\n }\n } else if (app) {\n app.LowCodeUnit.SourceControlLookup = null;\n }\n\n // console.log(\"Save new App request: \", saveAppReq);\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.handleSaveStatus(res);\n });\n }\n\n protected handleSaveStatus(status: Status) {\n console.log('event to save: ', status);\n if (status.Code === 0) {\n this.snackBar.open('Application Succesfully Created', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = status.Message;\n }\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Create Application</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-edit-application-form\n [current-route]=\"data.currentRoute\"\n [editing-application]=\"NewApplication\"\n [has-save-button]=\"HasSaveButton\"\n >\n </lcu-edit-application-form>\n\n <lcu-processor-details-form\n [editing-application]=\"NewApplication\"\n [editing-application-lookup]=\"NewApplicationLookup\"\n [has-save-button]=\"HasSaveButton\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n >\n </lcu-processor-details-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"\n ProcessorDetailsFormControls &&\n ApplicationFormControls &&\n !State?.Loading\n \"\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"new-app-submit\"\n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ProcessorDetailsFormControls?.ProcessorDetailsFormGroup?.valid ||\n !ApplicationFormControls?.ApplicationFormGroup?.valid\n \"\n >\n Save Application\n </button>\n</mat-dialog-actions>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ProcessorDetailsFormComponent } from '../../controls/processor-details-form/processor-details-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface ProcessorDetailsDialogData {\n applicationLookup: string;\n environmentLookup: string;\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-processor-details-dialog',\n templateUrl: './processor-details-dialog.component.html',\n styleUrls: ['./processor-details-dialog.component.scss'],\n})\nexport class ProcessorDetailsDialogComponent implements OnInit {\n @ViewChild(ProcessorDetailsFormComponent)\n public ProcessorDetailsFormControls: ProcessorDetailsFormComponent;\n\n public get Application(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.data.applicationLookup] || {};\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.data.environmentLookup];\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.Environment?.Sources || {});\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get ProcessorDetailsFormGroup(): FormGroup {\n return this.ProcessorDetailsFormControls?.ProcessorDetailsFormGroup;\n }\n\n public ErrorMessage: string;\n\n constructor(\n protected eacSvc: EaCService,\n public dialogRef: MatDialogRef<ProcessorDetailsDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ProcessorDetailsDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleSaveFormEvent(event: Status) {\n console.log('event: ', event);\n if (event.Code === 0) {\n this.snackBar.open(\n 'Build Pipeline Created Succesfully',\n 'Dismiss',\n {\n duration: 5000,\n }\n );\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveProcessorDetails() {\n this.ProcessorDetailsFormControls.SaveProcessorDetails();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Processor Details</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-processor-details-form\n more-details\n [editing-application]=\"Application\"\n [editing-application-lookup]=\"data.applicationLookup\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveFormEvent($event)\"\n >\n </lcu-processor-details-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveProcessorDetails()\"\n [disabled]=\"\n !ProcessorDetailsFormGroup?.valid ||\n !ProcessorDetailsFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-skeleton-feed-card',\n templateUrl: './skeleton-feed-card.component.html',\n styleUrls: ['./skeleton-feed-card.component.scss'],\n})\nexport class SkeletonFeedCardComponent implements OnInit {\n public SkeletonEffect: string;\n\n constructor() {\n this.SkeletonEffect = 'wave';\n }\n\n ngOnInit(): void {}\n}\n","<mat-card class=\"social-card\">\n <mat-card-header>\n <skeleton-avatar\n mat-card-avatar\n size=\"100\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-avatar>\n\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\"\n >FeedItem Title</mat-card-title\n >\n\n <mat-card-subtitle>\n <div skeleton-text [effect]=\"SkeletonEffect\">FeedItem Subtitle</div>\n <div>\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\"\n >check</mat-icon\n >\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Timestamp</div>\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <div skeleton-text [effect]=\"SkeletonEffect\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sit\n amet ante dui. Praesent ut aliquam metus. Phasellus consectetur non\n eros eu gravida. Vestibulum faucibus laoreet leo, ac molestie felis\n tincidunt semper. Vivamus lorem ipsum, sagittis nec blandit sed,\n accumsan sed dolor. Etiam tincidunt vel ligula ut malesuada. Nulla\n sit amet fermentum libero. Quisque magna tellus, pellentesque in\n convallis vitae, aliquet et orci. Pellentesque commodo ante id est\n viverra posuere ac vitae ligula. Ut sed ullamcorper purus. Integer\n sit amet lorem eros.\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n </mat-card-actions>\n</mat-card>\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'lcu-upgrade-dialog',\n templateUrl: './upgrade-dialog.component.html',\n styleUrls: ['./upgrade-dialog.component.scss'],\n})\nexport class UpgradeDialogComponent implements OnInit {\n constructor(public dialogRef: MatDialogRef<UpgradeDialogComponent>) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button id=\"close-upgrade-button\" (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<div fxLayout=\"row\" fxLayoutAlign=\"space-around center\" id=\"upgrade-content\">\n <div\n class=\"upgrade-container\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center start\"\n >\n <div class=\"x-large\">Wow!</div>\n <div class=\"x-large\">Fathym Premium is Free During Beta!</div>\n <div class=\"large\">Really...no credit card required.</div>\n </div>\n <div class=\"upgrade-container\">\n <img\n src=\"./assets/images/Happy_Lady.png\"\n id=\"upgrade-promo-image\"\n alt=\"Fathym Premium Free During Beta\"\n />\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-emulated-devices-toggle',\n templateUrl: './emulated-devices-toggle.component.html',\n styleUrls: ['./emulated-devices-toggle.component.scss'],\n})\nexport class EmulatedDevicesToggleComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get IsPrivateFormControl(): AbstractControl {\n return this.EmulatedDevicesFormGroup?.controls.isPrivate;\n }\n\n public get IsTriggerSignInFormControl(): AbstractControl {\n return this.EmulatedDevicesFormGroup?.controls.isTriggerSignIn;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public EmulatedDevicesFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService, protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n this.SkeletonEffect = 'wave';\n }\n\n public ngOnInit(): void {\n this.setupEmulatedDevicesFormGroup();\n }\n\n public EmulatedDevicesSubmit() {\n //save the EmulatedDevices settings\n console.log(\n 'submitting EmulatedDevices values: ',\n this.EmulatedDevicesFormGroup.value\n );\n this.SaveFormEvent.emit(this.EmulatedDevicesFormGroup.value);\n }\n\n protected setupEmulatedDevicesFormGroup() {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n this.EmulatedDevicesFormGroup = this.formBldr.group({});\n this.setupEmulatedDevicesForm();\n }\n\n protected setupEmulatedDevicesForm(): void {\n this.EmulatedDevicesFormGroup.addControl(\n 'isEmulated',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsPrivate || false,\n [Validators.required]\n )\n );\n }\n}\n","<form\n class=\"emulated-devices-form\"\n [formGroup]=\"EmulatedDevicesFormGroup\"\n (ngSubmit)=\"EmulatedDevicesSubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Emulated Devices Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-header>\n <mat-card-title> Emulated Device Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !EmulatedDevicesFormGroup.valid ||\n !EmulatedDevicesFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n","import { Status } from '@lcu/common';\n\nexport class IoTEnsembleState {\n public AccessLicenseType?: string;\n\n public AccessPlanGroup?: string;\n\n public DataInterval?: number;\n\n public DataRetention?: number;\n\n public DevicesConfig?: IoTEnsembleConnectedDevicesConfig;\n\n public Dashboard?: IoTEnsembleDashboardConfiguration;\n\n public Drawers?: IoTEnsembleDrawersConfig;\n\n public Emulated?: EmulatedDeviceInfo;\n\n public Error?: ErrorContext;\n\n public ExpandedPayloadID?: string;\n\n public HasAccess?: boolean;\n\n public Loading?: boolean;\n\n public SelectedDeviceID?: string;\n\n public Storage?: IoTEnsembleStorageConfiguration;\n\n public Telemetry?: IoTEnsembleTelemetry;\n\n public UserEnterpriseLookup?: string;\n}\n\nexport class EmulatedDeviceInfo {\n public Enabled?: boolean;\n\n public Loading?: boolean;\n}\n\nexport class IoTEnsembleDashboardConfiguration {\n public FreeboardConfig?: any;\n\n public PowerBIConfig?: any;\n}\n\nexport class ErrorContext {\n public ActionPath?: string;\n\n public ActionTarget?: string;\n\n public ActionText?: string;\n\n public Message?: string;\n\n public Title?: string;\n}\n\nexport class IoTEnsembleDeviceEnrollment {\n public DeviceName?: string;\n}\n\nexport class IoTEnsembleConnectedDevicesConfig {\n public EnterpriseDevicesCount: number;\n\n public Devices?: IoTEnsembleDeviceInfo[];\n\n public Loading?: boolean;\n\n public MaxDevicesCount?: number;\n\n public Page?: number;\n\n public PageSize?: number;\n\n public SASTokens?: { [deviceName: string]: string };\n\n public Status?: Status;\n\n public TotalDevices?: number;\n}\n\nexport class IoTEnsembleDeviceInfo {\n [prop: string]: any;\n\n public ActivelySendingData?: boolean;\n\n public AuthenticationType?: string;\n\n public CloudToDeviceMessageCount?: number;\n\n public ConnectionString?: string;\n\n public DeviceID?: string;\n\n public DeviceName?: string;\n\n public LastStatusUpdate?: Status;\n}\n\nexport class IoTEnsembleTelemetry {\n public Enabled?: boolean;\n\n public Loading?: boolean;\n\n public Page?: number;\n\n public PageSize?: number;\n\n public Payloads?: IoTEnsembleTelemetryPayload[];\n\n public RefreshRate?: number;\n\n public LastSyncedAt?: string;\n\n public TotalPayloads?: number;\n}\n\nexport class IoTEnsembleTelemetryPayload {\n [prop: string]: any;\n\n public DeviceData?: { [prop: string]: any };\n\n public DeviceID?: string;\n\n public DeviceType?: string;\n\n public ID?: string;\n\n public SensorMetadata?: { [prop: string]: any };\n\n public SensorReadings?: { [prop: string]: any };\n\n public Timestamp?: Date;\n\n public TotalPayloads?: number;\n\n public Version?: string;\n}\n\nexport class IoTEnsembleDrawersConfig {\n public DetailsActive: boolean;\n\n public HasBackdrop: boolean;\n\n public NavActive: boolean;\n}\n\nexport class IoTEnsembleStorageConfiguration {\n public APIKeys: IoTEnsembleAPIKeyData[];\n\n public OpenAPISource: string;\n}\n\nexport class IoTEnsembleAPIKeyData {\n public Key: string;\n\n public KeyName: string;\n}\n\nexport enum ColdQueryDataTypes {\n Telemetry = 'Telemetry',\n Observations = 'Observations',\n SensorMetadata = 'SensorMetadata',\n}\n\nexport enum ColdQueryResultTypes {\n CSV = 'CSV',\n JSON = 'JSON',\n JSONLines = 'JSONLines',\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IoTEnsembleState } from '../state/iot-ensemble.state';\nimport { LCUServiceSettings } from '@lcu/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IoTEnsembleService {\n // Fields\n protected apiRoot: string;\n\n // Properties\n public State: IoTEnsembleState;\n\n // Constructors\n constructor(\n protected http: HttpClient,\n protected settings: LCUServiceSettings\n ) {\n this.apiRoot = settings.APIRoot;\n\n this.State = new IoTEnsembleState();\n }\n\n // API Methods\n public ColdQuery(): Observable<object> {\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/iot/cold-query`, {\n headers: this.loadHeaders(),\n });\n }\n\n public ToggleEmulatedEnabled(): Observable<object> {\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/userfeed`, {\n headers: this.loadHeaders(),\n });\n }\n\n // Helpers\n protected loadHeaders(): { [header: string]: string | string[] } {\n return {};\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\nimport { BaseModeledResponse } from '@lcu/common';\nimport { EaCEnvironmentAsCode, EaCSourceControl } from '@semanticjs/common';\nimport { FeedEntry } from '../../models/user-feed.model';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport { EaCService } from '../../services/eac.service';\nimport {\n ApplicationsFlowState,\n GitHubBranch,\n GitHubOrganization,\n GitHubRepository,\n} from '../../state/applications-flow.state';\n\nexport interface FeedHeaderDialogData {\n // action: FeedItemAction,\n dialogTitle: string;\n type: string;\n}\n\n@Component({\n selector: 'lcu-feed-header-dialog',\n templateUrl: './feed-header-dialog.component.html',\n styleUrls: ['./feed-header-dialog.component.scss'],\n})\nexport class FeedHeaderDialogComponent implements OnInit {\n public get ActionIconControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.actionIcon;\n }\n\n public get ActionLinkControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.actionLink;\n }\n\n public get ActionTextControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.actionText;\n }\n\n public get EditorControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.editor;\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[\n this.State?.EaC?.Enterprise?.PrimaryEnvironment\n ];\n }\n\n public get TargetBranchFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.targetBranch;\n }\n\n public get OrganizationFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.organization;\n }\n\n public get SourceBranchFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.sourceBranch;\n }\n\n public get RepositoryFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.repository;\n }\n\n public get SourceControlFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.sourceControl;\n }\n\n public get SourceControlLookups(): Array<string> {\n return this.State.FeedSourceControlLookups\n ? this.State.FeedSourceControlLookups\n : Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SubtitleFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.subtitle;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get TitleFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.title;\n }\n\n public BranchOptions: GitHubBranch[];\n\n public EditorConfig: AngularEditorConfig;\n\n public ErrorMessage: string;\n\n public FeedHeaderFormGroup: FormGroup;\n\n public Loading: boolean;\n\n public OrganizationOptions: GitHubOrganization[];\n\n public RepositoryOptions: GitHubRepository[];\n\n public SourceControl: EaCSourceControl;\n\n public Slices: { [key: string]: number };\n\n public SlicesCount: number;\n\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService,\n protected formBldr: FormBuilder,\n public dialogRef: MatDialogRef<FeedHeaderDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: FeedHeaderDialogData,\n protected snackBar: MatSnackBar\n ) {\n this.EditorConfig = {\n editable: true,\n spellcheck: true,\n height: '250px',\n minHeight: '0',\n maxHeight: 'auto',\n width: 'auto',\n minWidth: '0',\n translate: 'yes',\n enableToolbar: true,\n showToolbar: true,\n placeholder: 'Enter text here...',\n defaultParagraphSeparator: '',\n defaultFontName: '',\n defaultFontSize: '',\n fonts: [\n { class: 'arial', name: 'Arial' },\n { class: 'times-new-roman', name: 'Times New Roman' },\n { class: 'calibri', name: 'Calibri' },\n { class: 'comic-sans-ms', name: 'Comic Sans MS' },\n ],\n customClasses: [\n {\n name: 'quote',\n class: 'quote',\n },\n {\n name: 'redText',\n class: 'redText',\n },\n {\n name: 'titleText',\n class: 'titleText',\n tag: 'h1',\n },\n ],\n sanitize: true,\n toolbarPosition: 'top',\n toolbarHiddenButtons: [['subscript', 'superscript'], ['fontSize']],\n };\n\n this.ErrorMessage = null;\n\n this.Loading = false;\n\n this.SlicesCount = 5;\n\n this.Slices = {\n Sources: this.SlicesCount,\n };\n\n if (this.SourceControlLookups.length === 1) {\n this.SourceControl =\n this.Environment?.Sources[this.SourceControlLookups[0]];\n }\n }\n\n public ngOnInit(): void {\n this.setupFeedHeaderForm();\n }\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleAction() {\n if (this.ActionLinkControl.value.startsWith('http')) {\n window.open(this.ActionLinkControl.value, '_blank');\n } else {\n window.location.href = this.ActionLinkControl.value;\n }\n }\n\n public PullRequestSourceControlChanged(event: MatSelectChange) {\n console.log('sourcecontrol', this.SourceControlFormControl.value);\n this.SourceControl =\n this.SourceControls[this.SourceControlFormControl.value];\n this.listBranches();\n }\n\n public FeatureBranchSourceControlChanged(event: MatSelectChange) {\n this.SourceControl =\n this.SourceControls[this.SourceControlFormControl.value];\n this.listOrganizations();\n }\n\n public IsDisabled(): boolean {\n // console.log(\"valid: \",this.FeedHeaderFormGroup?.valid)\n // console.log(\"loading: \",this.Loading)\n // console.log(\"returning \",(!this.FeedHeaderFormGroup?.valid || this.Loading))\n return !this.FeedHeaderFormGroup?.valid || this.Loading;\n }\n\n public IssueSourceControlChanged(event: MatSelectChange) {\n this.SourceControl =\n this.SourceControls[this.SourceControlFormControl.value];\n }\n\n public Submit() {\n let returnObject: FeedEntry = {\n ActionIcon: this.ActionIconControl\n ? this.ActionIconControl.value\n : null,\n ActionLink: this.ActionLinkControl\n ? this.ActionLinkControl.value\n : null,\n ActionText: this.ActionTextControl\n ? this.ActionTextControl.value\n : null,\n Avatar: null,\n Content: this.EditorControl ? this.EditorControl.value : null,\n ExpiresAt: null,\n Organization: this.OrganizationFormControl\n ? this.OrganizationFormControl.value\n : null,\n Repository: this.RepositoryFormControl\n ? this.RepositoryFormControl.value\n : null,\n SourceBranch: this.SourceBranchFormControl\n ? this.SourceBranchFormControl.value\n : null,\n SourceControlLookup: this.SourceControlFormControl\n ? this.SourceControlFormControl.value\n : null,\n Subtitle: this.SubtitleFormControl\n ? this.SubtitleFormControl.value\n : null,\n TargetBranch: this.TargetBranchFormControl\n ? this.TargetBranchFormControl.value\n : null,\n Type: this.data.type,\n Title: this.TitleFormControl ? this.TitleFormControl.value : null,\n };\n console.log('Control: ', returnObject);\n\n this.eacSvc.SubmitFeedEntry(returnObject).then((res) => {\n if (res.Code === 0) {\n this.snackBar.open(\n ` '${this.data.type}' Succesfully Created`,\n 'Dismiss',\n {\n duration: 5000,\n }\n );\n this.CloseDialog();\n } else {\n this.ErrorMessage = res.Message;\n }\n });\n\n // console.log(\"Editor: \", this.EditorControl.value )\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n this.RepositoryFormControl.reset();\n\n this.listRepositories();\n }\n\n public RepositoryChanged(event: MatSelectChange) {\n this.listBranches();\n }\n\n //HELPERS\n\n protected listBranches(): void {\n this.Loading = true;\n\n console.log('LISTING BRANCHES');\n\n this.appsFlowSvc\n .ListBranches(\n this.SourceControl?.Organization,\n this.SourceControl?.Repository\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model;\n this.Loading = false;\n });\n // console.log(\"Loading = \", this.Loading)\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe(\n (response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\n 'Organization Options: ',\n this.OrganizationOptions\n );\n\n if (this.SourceControl?.Organization) {\n setTimeout(() => {\n this.OrganizationFormControl.setValue(\n this.SourceControl.Organization\n );\n\n this.listRepositories(\n this.SourceControl?.Repository\n );\n }, 0);\n }\n this.Loading = false;\n }\n );\n // console.log(\"Loading = \", this.Loading)\n }\n\n protected listRepositories(activeRepo: string = null): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListRepositories(this.OrganizationFormControl.value)\n .subscribe((response: BaseModeledResponse<GitHubRepository[]>) => {\n this.RepositoryOptions = response.Model;\n\n if (activeRepo) {\n setTimeout(() => {\n this.RepositoryFormControl.setValue(activeRepo);\n\n this.listBranches();\n // this.Loading=true;\n }, 0);\n }\n this.Loading = false;\n });\n // console.log(\"Loading = \", this.Loading)\n }\n\n protected setupFeedHeaderForm() {\n this.FeedHeaderFormGroup = this.formBldr.group({});\n\n switch (this.data.type) {\n case 'Announcement':\n this.setupAnnouncementForm();\n break;\n case 'PullRequest':\n this.setupPRForm();\n break;\n case 'OpenIssue':\n this.setupIssueForm();\n break;\n case 'CreateBranch':\n this.setupFeatureBranchForm();\n break;\n default:\n //\n break;\n }\n }\n\n protected setupAnnouncementForm() {\n this.setupBasicForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'subtitle',\n this.formBldr.control('')\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionText',\n this.formBldr.control('')\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionLink',\n this.formBldr.control('')\n );\n this.FeedHeaderFormGroup.addControl(\n 'actionIcon',\n this.formBldr.control('')\n );\n }\n\n protected setupPRForm() {\n this.listBranches();\n this.setupIssueForm();\n this.setupBranchesForm();\n }\n\n protected setupBasicForm() {\n this.FeedHeaderFormGroup.addControl(\n 'title',\n this.formBldr.control('', [Validators.required])\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'editor',\n this.formBldr.control('')\n );\n }\n\n protected setupIssueForm() {\n this.setupBasicForm();\n\n this.setupSourceControlForm();\n }\n\n protected setupFeatureBranchForm() {\n this.setupSourceControlForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'organization',\n this.formBldr.control('', [Validators.required])\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'repository',\n this.formBldr.control('', [Validators.required])\n );\n\n this.setupBranchesForm();\n }\n\n protected setupSourceControlForm() {\n this.FeedHeaderFormGroup.addControl(\n 'sourceControl',\n this.formBldr.control('', [Validators.required])\n );\n }\n\n protected setupBranchesForm() {\n this.FeedHeaderFormGroup.addControl(\n 'targetBranch',\n this.formBldr.control('', [Validators.required])\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'sourceBranch',\n this.formBldr.control('', [Validators.required])\n );\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>{{ data.dialogTitle }}</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <form [formGroup]=\"FeedHeaderFormGroup\">\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n class=\"angular-editor\"\n id=\"issue-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- ANNOUNCEMENT FORM -->\n\n <ng-container *ngIf=\"data.type === 'Announcement'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Subtitle\"\n formControlName=\"subtitle\"\n />\n </mat-form-field>\n\n <angular-editor\n id=\"announcement-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Text\"\n formControlName=\"actionText\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Link\"\n formControlName=\"actionLink\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Icon\"\n formControlName=\"actionIcon\"\n />\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button\n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button\n color=\"primary\"\n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{\n ActionIconControl?.value\n }}</mat-icon>\n\n {{ ActionTextControl?.value }}\n </button>\n\n <button\n *ngIf=\"\n !ActionTextControl?.value && !ActionIconControl?.value\n \"\n mat-button\n color=\"primary\"\n >\n <mat-icon>cruelty_free</mat-icon>\n\n Example Button\n </button>\n </div>\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n PullRequestSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-icon>arrow_back</mat-icon>\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Compare</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"pr-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field>\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n FeatureBranchSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-select\n formControlName=\"organization\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let orgOpt of OrganizationOptions\"\n >\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n <mat-select\n formControlName=\"repository\"\n placeholder=\"Repository\"\n (selectionChange)=\"RepositoryChanged($event)\"\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 </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field>\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Create New Branch\"\n formControlName=\"targetBranch\"\n required\n />\n </mat-form-field>\n </div>\n </ng-container>\n\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"submit\"\n (click)=\"Submit()\"\n [disabled]=\"IsDisabled()\"\n >\n Submit\n </button>\n</mat-dialog-actions>\n","import { Input } from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FeedHeaderDialogComponent } from '../../dialogs/feed-header-dialog/feed-header-dialog.component';\nimport { NewApplicationDialogComponent } from '../../dialogs/new-application-dialog/new-application-dialog.component';\nimport { FeedItemAction } from '../../models/user-feed.model';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-feed-header',\n templateUrl: './feed-header.component.html',\n styleUrls: ['./feed-header.component.scss'],\n})\nexport class FeedHeaderComponent implements OnInit {\n @Input('source-control-lookup')\n public SourceControlLookup: string;\n\n public get ActiveEnvironmentLookup(): string {\n // TODO: Eventually support multiple environments\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\n\n return envLookups[0];\n }\n\n public get FeedHeaderActions(): Array<FeedItemAction> {\n return this.State?.FeedActions;\n }\n\n public get HasGHConnection(): boolean {\n return this.State?.GitHub?.HasConnection;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ModalHeader: string;\n\n public SkeletonEffect: string;\n\n protected selectedBtn: string;\n\n public value: string;\n\n constructor(protected eacSvc: EaCService, protected dialog: MatDialog) {\n this.SkeletonEffect = 'wave';\n // this.selectedBtn = \"pr-btn\";\n }\n\n public ngOnInit(): void {}\n\n public ngAfterViewInit() {\n this.addSelectBtn();\n }\n\n public CreateAnnouncement() {\n // this.ModalHeader = \"Create Team Announcement\";\n this.OpenFHDialog('Announcement', 'Create Team Announcement');\n }\n\n // public CreateFeatureBranch(){\n // this.removeSelectedBtn();\n // this.ModalHeader = \"Create Feature Branch\";\n // this.selectedBtn = \"fb-btn\";\n // this.addSelectBtn();\n // console.log(\"create feature branch selected\");\n // this.OpenFHDialog('branch');\n\n // }\n\n // public OpenIssue(){\n // this.removeSelectedBtn();\n // this.ModalHeader = \"Open Issue\";\n // this.selectedBtn = \"oi-btn\";\n // this.addSelectBtn();\n // console.log(\"open issue selected\");\n // this.OpenFHDialog('issue');\n\n // }\n\n // public CreatePullRequest(){\n // this.removeSelectedBtn();\n // this.ModalHeader = \"Create Pull Request\";\n // this.selectedBtn = \"pr-btn\";\n // this.addSelectBtn();\n // console.log(\"create pull request selected\");\n // this.OpenFHDialog('pull-request');\n\n // }\n\n public CreateNewApp() {\n const dialogRef = this.dialog.open(NewApplicationDialogComponent, {\n width: '600px',\n data: {\n environmentLookup: this.ActiveEnvironmentLookup,\n },\n });\n\n dialogRef.afterClosed().subscribe((result: any) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n }\n\n public HandleAction(action: FeedItemAction) {\n if (action.ActionType == 'Link') {\n if (action.Action.startsWith('http')) {\n window.open(action.Action, '_blank');\n } else {\n window.location.href = action.Action;\n }\n } else if (action.ActionType == 'Modal') {\n this.OpenFHDialog(action.Action, action.Text);\n }\n }\n\n public OpenFHDialog(modalType: string, modalHeader: string) {\n const dialogRef = this.dialog.open(FeedHeaderDialogComponent, {\n width: '600px',\n data: {\n dialogTitle: modalHeader,\n type: modalType,\n sourceControlLookup: this.SourceControlLookup\n ? this.SourceControlLookup\n : null,\n },\n });\n\n dialogRef.afterClosed().subscribe((result: any) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n }\n\n public ReloadFeed(): void {\n this.eacSvc.ReloadFeed();\n }\n\n public RouteToPath(path: string): void {\n window.location.href = path;\n }\n\n public Submit() {\n console.log('submitting: ', this.value);\n switch (this.selectedBtn) {\n case 'pr-btn':\n //Pull request\n console.log('creating pull request: ', this.value);\n break;\n case 'oi-btn':\n //Open Issue\n console.log('Open issue: ', this.value);\n break;\n case 'fb-btn':\n //Feature Branch\n console.log('creating feature branch: ', this.value);\n break;\n default:\n console.log('hmm');\n\n break;\n }\n }\n\n //HELPERS\n\n protected addSelectBtn() {\n (<HTMLElement>document.getElementById(this.selectedBtn))?.classList.add(\n 'selected'\n );\n }\n\n protected removeSelectedBtn() {\n (<HTMLElement>(\n document.getElementById(this.selectedBtn)\n ))?.classList.remove('selected');\n }\n}\n","<div>\n <mat-card class=\"social-card\">\n <ng-container *ngIf=\"!State?.LoadingFeed\">\n <div\n class=\"gh-card-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\" color=\"primary\">\n campaign\n </mat-icon>\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <button\n mat-raised-button\n class=\"main-btn\"\n (click)=\"CreateAnnouncement()\"\n color=\"primary\"\n >\n Create Team Announcement\n </button>\n\n <!-- <mat-form-field appearance=\"fill\" class=\"gh-input\">\n <mat-label>{{ InputLabel }}</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"value\" (click)=\"OpenFHDialog('Announcement')\"/>\n </mat-form-field> -->\n </div>\n\n <!-- <button\n fxFlex=\"15%\"\n mat-button\n (click)=\"Submit()\"\n id=\"submit-btn\"\n color=\"primary\"\n >\n Submit\n </button> -->\n </div>\n\n <mat-card-actions\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n >\n <ng-container *ngFor=\"let action of FeedHeaderActions\">\n <button\n mat-raised-button\n [color]=\"action.Color\"\n (click)=\"HandleAction(action)\"\n id=\"pr-btn\"\n >\n <mat-icon *ngIf=\"action.Icon\">{{\n action.Icon\n }}</mat-icon>\n\n {{ action.Text }}\n </button>\n </ng-container>\n </mat-card-actions>\n </ng-container>\n\n <!-- SKELETON -->\n <ng-container *ngIf=\"State?.LoadingFeed\">\n <div\n id=\"gh-card-skeleton\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <skeleton-avatar\n class=\"gh-icon\"\n [showIcon]=\"false\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-avatar>\n\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <skeleton-block\n height=\"60px\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-block>\n </div>\n\n <!-- <div\n skeleton-text\n fxFlex=\"15%\"\n [effect]=\"SkeletonEffect\"\n style=\"margin: 0px 10px\"\n >\n Submit\n </div> -->\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Pull Request</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Open Issue</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">\n Feature Branch\n </div>\n <!-- <div skeleton-text [effect]=\"SkeletonEffect\">\n <mat-icon>more_horiz</mat-icon>\n </div> -->\n </div>\n </ng-container>\n </mat-card>\n\n <mat-card class=\"social-card reload\" *ngIf=\"State?.FeedCheck\">\n There are new items in your feed.\n\n <button mat-raised-button (click)=\"ReloadFeed()\">Reload Feed</button>\n </mat-card>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\n\nimport { EaCDFSModifier, EaCProjectAsCode } from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport {\n EaCService,\n SaveDFSModifierEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-dfs-modifier-form',\n templateUrl: './dfs-modifiers-form.component.html',\n styleUrls: ['./dfs-modifiers-form.component.scss'],\n})\nexport class DFSModifiersFormComponent implements OnInit {\n // Fields\n\n // Properties\n public CurrentType: string;\n\n // @Input('data')\n // public Data: {\n // Modifiers: { [lookup: string]: EaCDFSModifier };\n // Project: EaCProjectAsCode;\n // ProjectLookup: string;\n // };\n\n @Input('editing-modifier-lookup')\n public EditingModifierLookup: string;\n\n /**Specific Modifiers for either the project or appliaction */\n\n // @Input('modifiers')\n // public Modifiers: { [lookup: string]: EaCDFSModifier };\n\n @Input('application-lookup')\n public ApplicationLookup: string;\n\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n /**which level is the dfs modifier being edited ent project or app */\n @Input('level')\n public Level: string;\n\n // public get Details(): any {\n // return JSON.stringify(this.EditingModifier?.Details);\n // }\n\n public get DetailsFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.details;\n }\n\n public get EditingModifier(): EaCDFSModifier {\n let mdfr = this.Modifiers\n ? this.Modifiers[this.EditingModifierLookup]\n : null;\n\n if (mdfr == null && this.EditingModifierLookup) {\n mdfr = {};\n }\n\n return mdfr;\n }\n\n // public EditingModifierLookup: string;\n\n public get EnabledFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.enabled;\n }\n\n public get EnterprisesModifierLookups(): Array<string> {\n return Object.keys(this.Modifiers || {});\n }\n\n public get LocationFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.location;\n }\n\n public get Modifiers(): { [lookup: string]: EaCDFSModifier } {\n return this.State?.EaC?.Modifiers;\n }\n\n public get ModifierLookups(): Array<string> {\n if (this.ProjectLookup) {\n return this.State?.EaC?.Projects[this.ProjectLookup]\n ?.ModifierLookups;\n } else if (this.ApplicationLookup) {\n return this.State.EaC?.Applications[this.ApplicationLookup]\n ?.ModifierLookups;\n } else {\n return Object.keys(this.Modifiers || {});\n }\n }\n\n public get MultiSelectFormControl(): AbstractControl {\n return this.ModifierSelectFormGroup?.controls.multiSelect;\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.name;\n }\n\n public get PathFilterFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.pathFilter;\n }\n\n public get PriorityFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.priority;\n }\n\n // public get Project(): EaCProjectAsCode {\n // return this.Data.Project || {};\n // }\n\n public get ScriptFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.script;\n }\n\n public get ScriptIDFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.scriptId;\n }\n\n public get ScriptTypeFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.scriptType;\n }\n\n public get StateDataTokenFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.stateDataToken;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get TypeFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.type;\n }\n\n public ModifierFormGroup: FormGroup;\n\n public ModifierSelectFormGroup: FormGroup;\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n // this.EditingModifierLookup = null;\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.Level === 'enterprise' && !this.EditingModifierLookup) {\n this.CreateNewModifier();\n } else if (this.EditingModifierLookup) {\n this.setupModifierForm();\n } else {\n this.setupModifierSelectForm();\n }\n }\n\n // API Methods\n public CreateNewModifier(): void {\n this.SetEditingModifier(Guid.CreateRaw());\n }\n\n public DeleteModifier(modifierLookup: string, modifierName: string): void {\n this.eacSvc.DeleteModifier(modifierLookup, modifierName).then();\n }\n\n public SaveModifierForAllProjects(projectLookups: Array<string>) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ProjectLookups: projectLookups,\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n\n public SaveModifierForApplication(applicationLookup: string): void {\n if (this.ModifierFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ApplicationLookup: applicationLookup,\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n } else if (this.ModifierSelectFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n ModifierLookups: this.MultiSelectFormControl.value,\n ApplicationLookup: applicationLookup,\n };\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n }\n\n /**\n *\n * Saves a modifier, saves a modifier to a project\n */\n public SaveModifier(projectLookup: string = null): void {\n if (this.ModifierFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ProjectLookups: [projectLookup],\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n } else if (this.ModifierSelectFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n ModifierLookups: this.MultiSelectFormControl.value,\n ProjectLookups: [projectLookup],\n };\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n }\n\n public SetEditingModifier(modifierLookup: string): void {\n this.EditingModifierLookup = modifierLookup;\n\n this.setupModifierForm();\n }\n\n public SetUseForProject(\n modifierLookup: string,\n change: MatSlideToggleChange\n ): void {\n this.SetEditingModifier(modifierLookup);\n\n this.SaveModifier(this.ProjectLookup);\n }\n\n public TypeChanged(event: MatSelectChange): void {\n this.CurrentType = event.value;\n\n this.setupTypeForm();\n }\n\n // Helpers\n\n protected getDetails(): any {\n const details = {};\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['StateDataToken'] =\n this.StateDataTokenFormControl.value;\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['Location'] = this.LocationFormControl.value;\n\n details['Script'] = this.ScriptFormControl.value;\n\n details['ScriptType'] = this.ScriptTypeFormControl.value;\n\n details['ScriptID'] = this.ScriptIDFormControl.value;\n break;\n }\n return details;\n }\n\n protected setupModifierSelectForm() {\n this.ModifierSelectFormGroup = this.formBldr.group({\n multiSelect: [this.ModifierLookups ? this.ModifierLookups : []],\n });\n }\n\n protected setupModifierForm(): void {\n if (this.EditingModifier != null) {\n this.CurrentType = this.EditingModifier?.Type;\n\n this.ModifierFormGroup = this.formBldr.group({\n name: [this.EditingModifier?.Name, Validators.required],\n type: [this.CurrentType, Validators.required],\n priority: [\n this.EditingModifier?.Priority\n ? this.EditingModifier?.Priority\n : 9000,\n Validators.required,\n ],\n enabled: [this.EditingModifier?.Enabled, []],\n pathFilter: [\n this.EditingModifier?.PathFilterRegex\n ? this.EditingModifier?.PathFilterRegex\n : '*index.html',\n Validators.required,\n ],\n });\n\n this.setupTypeForm();\n }\n }\n\n protected setupTypeForm(): void {\n this.ModifierFormGroup.removeControl('stateDataToken');\n\n this.ModifierFormGroup.removeControl('location');\n this.ModifierFormGroup.removeControl('script');\n this.ModifierFormGroup.removeControl('scriptId');\n this.ModifierFormGroup.removeControl('scriptType');\n\n const details = JSON.parse(this.EditingModifier?.Details || '{}');\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'stateDataToken',\n this.formBldr.control(\n details?.StateDataToken || 'lcu-state-config',\n [Validators.required]\n )\n );\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'location',\n this.formBldr.control(details?.Location || 'Head', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptType',\n this.formBldr.control(details?.ScriptType || 'Control')\n );\n break;\n }\n }\n}\n","<div>\n <div *ngIf=\"!EditingModifierLookup\">\n Select the modifiers you would like to apply from the list below, or\n create a new modifier.\n </div>\n\n <form\n [formGroup]=\"ModifierFormGroup\"\n (ngSubmit)=\"SaveModifier()\"\n *ngIf=\"EditingModifier\"\n >\n <div class=\"form-card\">\n <!-- <mat-card class=\"spread\"> -->\n <!-- <mat-card-header>\n <mat-card-title> DFS Modifier </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure modifiers for your DFS files.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n\n <!-- end -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"type\"\n placeholder=\"DFS Modifier Type\"\n (selectionChange)=\"TypeChanged($event)\"\n >\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n HTML Base Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n LCU Reg Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n Thrid Party Library Modifier\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"Name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"priority\"\n placeholder=\"Priority\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"pathFilter\"\n placeholder=\"Path Filter (regex)\"\n />\n </mat-form-field>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"stateDataToken\"\n placeholder=\"State Data Token\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"location\"\n placeholder=\"Location\"\n (selectionChange)=\"LocationChanged($event)\"\n required\n >\n <mat-option value=\"Head\"> Head </mat-option>\n\n <mat-option value=\"Body\"> Body </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"scriptId\"\n placeholder=\"Script ID\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"scriptType\"\n placeholder=\"Script Type\"\n required\n >\n <mat-option value=\"Content\"> Content </mat-option>\n\n <mat-option value=\"Source\"> Source </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"ScriptTypeFormControl?.value === 'Content'\"\n >\n <textarea\n matInput\n formControlName=\"script\"\n placeholder=\"Script Content\"\n required\n ></textarea>\n </mat-form-field>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"ScriptTypeFormControl?.value === 'Source'\"\n >\n <input\n matInput\n formControlName=\"script\"\n placeholder=\"Script URL\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <mat-slide-toggle\n *ngIf=\"ProjectLookup\"\n class=\"spread\"\n formControlName=\"enabled\"\n >\n Is Enabled?\n </mat-slide-toggle>\n <!-- </mat-card-content> -->\n <!-- </mat-card> -->\n </div>\n\n <!-- <div class=\"spread\">\n <div fxFlex></div>\n\n <button mat-button type=\"button\" (click)=\"SetEditingModifier(null)\">\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!ModifierFormGroup.valid || !ModifierFormGroup.dirty\"\n >\n <mat-icon>save</mat-icon> Save DFS Modifier\n </button>\n\n <div fxFlex></div>\n </div> -->\n </form>\n\n <form [formGroup]=\"ModifierSelectFormGroup\" *ngIf=\"!EditingModifier\">\n <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewModifier()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\">\n <div *ngIf=\"EnterprisesModifierLookups?.length <= 0\">\n <h2>\n No DFS modifiers created, create your first DFS\n modifier.\n </h2>\n </div>\n\n <ng-container *ngIf=\"EnterprisesModifierLookups?.length > 0\">\n <!-- <h2>DFS Modifiers</h2> -->\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Modifiers</mat-label>\n <mat-select formControlName=\"multiSelect\" multiple>\n <mat-select-trigger>\n {{\n MultiSelectFormControl?.value\n ? MultiSelectFormControl?.value[0]\n : \"\"\n }}\n <span\n *ngIf=\"\n MultiSelectFormControl?.value?.length >\n 1\n \"\n class=\"modifier-selection\"\n >\n (+{{\n MultiSelectFormControl?.value?.length -\n 1\n }}\n {{\n MultiSelectFormControl?.value\n ?.length === 2\n ? \"other\"\n : \"others\"\n }})\n </span>\n </mat-select-trigger>\n <ng-container\n *ngFor=\"\n let modifierLookup of EnterprisesModifierLookups\n \"\n >\n <mat-option\n *ngIf=\"\n Modifiers[modifierLookup];\n let modifier\n \"\n [value]=\"modifierLookup\"\n >{{ modifier?.Name }}</mat-option\n >\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <!-- <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <div\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let modifierLookup of ModifierLookups\"\n >\n \n <ng-container *ngIf=\"Modifiers[modifierLookup]; let modifier\">\n\n <div\n class=\"mat-subheading-2\"\n [matTooltip]=\"modifier.Name\"\n >\n {{ modifier.Name || modifier.Lookup }}\n\n\n <mat-slide-toggle\n class=\"spread\"\n [checked]=\"\n Project?.ModifierLookups.indexOf(modifierLookup) >= 0\n \"\n (change)=\"SetUseForProject(modifierLookup, $event)\"\n [matTooltip]=\"'Use for ' + Level\"\n >\n </mat-slide-toggle>\n </div>\n \n\n <div>\n <div class=\"data-app-actions\">\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"SetEditingModifier(modifierLookup)\"\n >\n <mat-icon matTooltip=\"Edit DFS Modifier\">\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteModifier(modifierLookup, modifier.Name)\"\n >\n <mat-icon matTooltip=\"Delete {{ modifier.Name }}\">\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n \n </div>\n </ng-container>\n </div>\n </div> -->\n </ng-container>\n </div>\n </div>\n </form>\n</div>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { DFSModifiersFormComponent } from '../../controls/dfs-modifiers-form/dfs-modifiers-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface DFSModifiersDialogData {\n applicationLookup?: string;\n modifierLookup?: string;\n modifierName?: string;\n // modifiers: { [lookup: string]: EaCDFSModifier };\n level: string;\n projectLookup?: string;\n}\n\n@Component({\n selector: 'lcu-dfs-modifiers-dialog',\n templateUrl: './dfs-modifiers-dialog.component.html',\n styleUrls: ['./dfs-modifiers-dialog.component.scss'],\n})\nexport class DFSModifiersDialogComponent implements OnInit {\n @ViewChild(DFSModifiersFormComponent)\n public DFSModifersFormControls: DFSModifiersFormComponent;\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get ProjectLookups(): string[] {\n return Object.keys(this.State?.EaC?.Projects || {});\n }\n\n public get DFSModifersFormGroup(): FormGroup {\n return this.DFSModifersFormControls?.ModifierFormGroup;\n }\n\n public get SelectedModifiersFormGroup(): FormGroup {\n return this.DFSModifersFormControls?.ModifierSelectFormGroup;\n }\n\n public ErrorMessage: string;\n\n public ModifierDialogForm: FormGroup;\n\n public SaveDisabled: boolean;\n\n constructor(\n protected eacSvc: EaCService,\n public formbldr: FormBuilder,\n public dialogRef: MatDialogRef<DFSModifiersDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: DFSModifiersDialogData,\n protected snackBar: MatSnackBar\n ) {\n this.ModifierDialogForm = this.formbldr.group({});\n }\n\n public ngOnInit(): void {\n this.determineLevel();\n }\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public DeleteModifier(): void {\n this.eacSvc.DeleteModifier(\n this.data.modifierLookup,\n this.data.modifierName\n );\n }\n\n public HandleSaveFormEvent(event: Status) {\n console.log('event: ', event);\n if (event.Code === 0) {\n this.snackBar.open('DFS Modifier Saved Successfully', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public IsDisabled() {\n this.SaveDisabled = true;\n if (this.DFSModifersFormGroup) {\n this.SaveDisabled =\n !this.DFSModifersFormGroup?.valid ||\n !this.ModifierDialogForm?.valid;\n } else if (this.SelectedModifiersFormGroup) {\n this.SaveDisabled =\n !this.SelectedModifiersFormGroup?.valid ||\n !this.SelectedModifiersFormGroup?.dirty;\n }\n return this.SaveDisabled;\n }\n\n public IsPreconfigured(): boolean {\n if (this.data.modifierLookup) {\n if (\n this.data.modifierLookup === 'html-base' ||\n this.data.modifierLookup === 'lcu-reg'\n ) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n public SaveDFSModifier() {\n // console.log(\"level at save: \", this.data.level)\n\n switch (this.data.level) {\n case 'enterprise': {\n if (this.ModifierDialogForm.controls.applyToAllProjects.value) {\n //save modifier add it to the ModifierLookups of all projects\n this.DFSModifersFormControls.SaveModifierForAllProjects(\n this.ProjectLookups\n );\n } else {\n //save modifier\n this.DFSModifersFormControls.SaveModifier();\n }\n }\n case 'project': {\n this.DFSModifersFormControls.SaveModifier(\n this.data.projectLookup\n );\n }\n\n case 'application': {\n this.DFSModifersFormControls.SaveModifierForApplication(\n this.data.applicationLookup\n );\n }\n }\n // this.DFSModifersFormControls.SaveModifier();\n }\n\n protected determineLevel() {\n // console.log(\"LEVEL: \", this.data.level)\n switch (this.data.level) {\n case 'enterprise': {\n this.setupEntForm();\n }\n }\n }\n\n protected setupEntForm() {\n this.ModifierDialogForm.addControl(\n 'applyToAllProjects',\n this.formbldr.control(false)\n );\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>DFS Modifiers</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-dfs-modifier-form\n [application-lookup]=\"data.applicationLookup\"\n [project-lookup]=\"data.projectLookup\"\n [editing-modifier-lookup]=\"data.modifierLookup\"\n [level]=\"data.level\"\n >\n </lcu-dfs-modifier-form>\n\n <form [formGroup]=\"ModifierDialogForm\">\n <mat-checkbox\n *ngIf=\"data.level === 'enterprise' && data.modifierLookup\"\n formControlName=\"applyToAllProjects\"\n >Apply to all Projects</mat-checkbox\n >\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n <button\n *ngIf=\"!IsPreconfigured()\"\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteModifier()\"\n matTooltip=\"Delete {{ data.modifierLookup }}\"\n >\n Delete\n </button>\n </div>\n\n <div fxLayoutAlign=\"end center\">\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"52%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n class=\"action-button\"\n mat-raised-button\n *ngIf=\"!State?.Loading\"\n fxFlex=\"30%\"\n color=\"primary\"\n (click)=\"SaveDFSModifier()\"\n [disabled]=\"IsDisabled()\"\n >\n Save\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Guid, Status } from '@lcu/common';\nimport { EaCApplicationAsCode, EaCDataToken } from '@semanticjs/common';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-state-config-form',\n templateUrl: './state-config-form.component.html',\n styleUrls: ['./state-config-form.component.scss'],\n})\nexport class StateConfigFormComponent implements OnInit {\n @Input('app-lookup')\n public AppLookup: string;\n\n @Input('config')\n public Config: EaCDataToken;\n\n @Output('status-event')\n public StatusEvent: EventEmitter<Status>;\n\n public get Application(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.AppLookup];\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get StateConfigNameFormControl(): AbstractControl {\n return this.StateConfigForm?.controls.name;\n }\n\n public get StateConfigDescriptionFormControl(): AbstractControl {\n return this.StateConfigForm?.controls.description;\n }\n\n public get StateConfigValueFormControl(): AbstractControl {\n return this.StateConfigForm?.controls.value;\n }\n\n public StateConfigForm: FormGroup;\n\n constructor(protected eacSvc: EaCService, public formbldr: FormBuilder) {\n this.StateConfigForm = this.formbldr.group({});\n\n this.StatusEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n this.buildForm();\n }\n\n public SaveStateConfig() {\n let app = this.Application;\n\n console.log('APP = ', app);\n\n app.DataTokens['lcu-state-config'] = {\n Name: this.StateConfigNameFormControl.value,\n Description: this.StateConfigDescriptionFormControl.value,\n Value: this.StateConfigValueFormControl.value,\n };\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ApplicationLookup: this.AppLookup || Guid.CreateRaw(),\n Application: app,\n };\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.StatusEvent.emit(res);\n });\n }\n\n protected buildForm() {\n this.StateConfigForm.addControl(\n 'name',\n this.formbldr.control(this.Config?.Name ? this.Config?.Name : '', [\n Validators.required,\n ])\n );\n\n this.StateConfigForm.addControl(\n 'description',\n this.formbldr.control(\n this.Config?.Description ? this.Config?.Description : '',\n [Validators.required]\n )\n );\n\n this.StateConfigForm.addControl(\n 'value',\n this.formbldr.control(\n this.Config?.Value\n ? JSON.stringify(\n JSON.parse(this.Config?.Value),\n undefined,\n 4\n )\n : '',\n [Validators.required]\n )\n );\n }\n}\n","<form [formGroup]=\"StateConfigForm\">\n <mat-form-field appearance=\"fill\" class=\"input-form\">\n <mat-label>Name</mat-label>\n\n <input matInput formControlName=\"name\" required />\n </mat-form-field>\n\n <mat-form-field appearance=\"fill\" class=\"config-text-area\">\n <mat-label>Description</mat-label>\n\n <textarea matInput formControlName=\"description\"> </textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" class=\"config-text-area\">\n <mat-label>Value</mat-label>\n\n <textarea matInput formControlName=\"value\" rows=\"10\" required>\n </textarea>\n </mat-form-field>\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { StateConfigFormComponent } from '../../controls/state-config-form/state-config-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface StateConfigDialogData {\n appLookup: string;\n config: string;\n}\n\n@Component({\n selector: 'lcu-state-config-dialog',\n templateUrl: './state-config-dialog.component.html',\n styleUrls: ['./state-config-dialog.component.scss'],\n})\nexport class StateConfigDialogComponent implements OnInit {\n @ViewChild(StateConfigFormComponent)\n public StateConfigForm: StateConfigFormComponent;\n\n public get Application(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.data.appLookup];\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get StateConfigFormControl(): AbstractControl {\n return this.StateConfigForm?.StateConfigForm;\n }\n\n public ErrorMessage: string;\n\n constructor(\n protected eacSvc: EaCService,\n public dialogRef: MatDialogRef<StateConfigDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: StateConfigDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleStatusEvent(res: Status) {\n if (res.Code === 0) {\n this.snackBar.open('State Config Succesfully Updated', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = res.Message;\n }\n }\n\n public SaveStateConfig() {\n this.StateConfigForm?.SaveStateConfig();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>State Config</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-state-config-form\n [app-lookup]=\"data.appLookup\"\n [config]=\"data.config\"\n (status-event)=\"HandleStatusEvent($event)\"\n >\n </lcu-state-config-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveStateConfig()\"\n [disabled]=\"\n !StateConfigFormControl?.dirty || !StateConfigFormControl?.valid\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCProjectAsCode } from '@semanticjs/common';\nimport {\n EaCService,\n SaveProjectAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-edit-project-form',\n templateUrl: './edit-project-form.component.html',\n styleUrls: ['./edit-project-form.component.scss'],\n})\nexport class EditProjectFormComponent implements OnInit {\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get DescriptionFormControl(): AbstractControl {\n return this.ProjectFormGroup.controls.description;\n }\n\n public get Project(): EaCProjectAsCode {\n return this.State?.EaC?.Projects[this.ProjectLookup];\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ProjectFormGroup.controls.name;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ProjectFormGroup: FormGroup;\n\n constructor(protected eacSvc: EaCService, protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n }\n\n ngOnInit(): void {\n this.setupProjectForm();\n }\n\n public SaveProject(): void {\n const proj: EaCProjectAsCode = this.Project;\n // console.log(\"APP=\", app);\n proj.Project = {\n Name: this.NameFormControl.value,\n Description: this.DescriptionFormControl.value,\n };\n\n const saveProjReq: SaveProjectAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Project: proj,\n };\n\n this.eacSvc.SaveProjectAsCode(saveProjReq).then((res) => {\n this.SaveFormEvent.emit(res);\n });\n }\n\n public SubmitProjectControl() {\n console.log('application form: ', this.ProjectFormGroup.value);\n this.SaveProject();\n }\n\n protected setupProjectForm() {\n if (this.Project != null) {\n this.ProjectFormGroup = this.formBldr.group({\n name: [this.Project?.Project?.Name, Validators.required],\n description: [\n this.Project?.Project?.Description,\n Validators.required,\n ],\n });\n }\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"ProjectFormGroup\"\n (ngSubmit)=\"SubmitProjectControl()\"\n>\n <ng-container *ngIf=\"State?.Loading\">\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </ng-container>\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCProjectAsCode } from '@semanticjs/common';\nimport { EditProjectFormComponent } from '../../controls/edit-project-form/edit-project-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface ProjectDialogData {\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-edit-project-dialog',\n templateUrl: './edit-project-dialog.component.html',\n styleUrls: ['./edit-project-dialog.component.scss'],\n})\nexport class EditProjectDialogComponent implements OnInit {\n @ViewChild(EditProjectFormComponent)\n public EditProjectControl: EditProjectFormComponent;\n\n public get Project(): EaCProjectAsCode {\n return this.State?.EaC?.Projects[this.data.projectLookup];\n }\n\n public get ProjectFormGroup(): FormGroup {\n return this.EditProjectControl?.ProjectFormGroup;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public eacSvc: EaCService,\n public dialogRef: MatDialogRef<EditProjectDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ProjectDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleSaveProjectEvent(event: Status) {\n console.log('event to save: ', event);\n if (event.Code === 0) {\n this.snackBar.open('Project Succesfully Updated', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveProject() {\n this.EditProjectControl.SaveProject();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Edit Project: {{ Project?.Project?.Name }}</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-edit-project-form\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveProjectEvent($event)\"\n >\n </lcu-edit-project-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveProject()\"\n [disabled]=\"!ProjectFormGroup?.valid || !ProjectFormGroup?.dirty\"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n})\nexport class PageHeaderComponent implements OnInit {\n public IsSmScreen: boolean;\n\n constructor(public breakpointObserver: BreakpointObserver) {}\n\n public ngOnInit(): void {\n this.breakpointObserver\n .observe(['(max-width: 959px)'])\n .subscribe((state: BreakpointState) => {\n if (state.matches) {\n this.IsSmScreen = true;\n } else {\n this.IsSmScreen = false;\n }\n });\n }\n}\n","<mat-toolbar class=\"social-toolbar\" color=\"primary\">\n <img class=\"logo\" src=\"./assets/svgs/logo.svg\" />\n\n <div fxFlex></div>\n\n <ng-container *ngIf=\"!IsSmScreen\">\n <a mat-button class=\"toolbar-action\" href=\"/docs\" target=\"_blank\"\n >Docs</a\n >\n <a mat-button class=\"toolbar-action\" href=\"/blog/\" target=\"_blank\"\n >Blog</a\n >\n <!-- <a mat-button class=\"toolbar-action\" href=\"/.oauth/logout\">Logout</a> -->\n </ng-container>\n\n <ng-container *ngIf=\"IsSmScreen\">\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>menu</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <a\n class=\"toolbar-menu-action\"\n mat-menu-item\n href=\"/docs\"\n target=\"_blank\"\n >Docs</a\n >\n <a\n class=\"toolbar-menu-action\"\n mat-menu-item\n href=\"/blog/\"\n target=\"_blank\"\n >Blog</a\n >\n <!-- <a class=\"toolbar-menu-action\" mat-menu-item href=\"/.oauth/logout\"\n >Logout</a\n > -->\n </mat-menu>\n </ng-container>\n</mat-toolbar>\n","import { FormsService } from './services/forms.service';\nimport { ProjectService } from './services/project.service';\nimport {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FathymSharedModule, MaterialModule } from '@lcu/common';\nimport { ApplicationsFlowStateContext } from './state/applications-flow-state.context';\nimport { ApplicationsFlowProjectsElementComponent } from './elements/projects/projects.component';\nimport { AppHostModule } from '@lowcodeunit/app-host-common';\nimport { ApplicationsFlowService } from './services/applications-flow.service';\nimport { HostingDetailsFormGroupComponent } from './elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component';\nimport { CreateProjectWizardComponent } from './elements/projects/controls/create-project-wizard/create-project-wizard.component';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { DynamicTabsComponent } from './elements/dynamic-tabs/dynamic-tabs.component';\nimport { HeaderComponent } from './elements/projects/controls/header/header.component';\nimport { ProjectTabsComponent } from './elements/projects/controls/project-tabs/project-tabs.component';\nimport { DomainsComponent } from './elements/projects/controls/tabs/domains/domains.component';\nimport { ProjectItemsComponent } from './elements/projects/controls/project-items/project-items.component';\nimport { BuildsComponent } from './elements/projects/controls/builds/builds.component';\nimport { RecentActivitiesComponent } from './elements/projects/controls/recent-activities/recent-activities.component';\nimport { FormCardComponent } from './elements/form-card/form-card.component';\nimport { ProjectNameComponent } from './elements/projects/controls/tabs/general/forms/project-details/project-details.component';\nimport { RootDirectoryComponent } from './elements/projects/controls/tabs/general/forms/root-directory/root-directory.component';\nimport { BaseFormComponent } from './elements/base-form/base-form.component';\nimport { BaseFormTestComponent } from './elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component';\nimport { GitAuthComponent } from './elements/projects/controls/git-auth/git-auth.component';\nimport { SourceControlFormControlsComponent } from './elements/projects/controls/forms/source-control/source-control.component';\nimport { AppsFlowComponent } from './elements/projects/controls/tabs/apps-flow/apps-flow.component';\nimport { NPMService } from './services/npm.service';\nimport { NpmPackageSelectComponent } from './elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component';\nimport { DevOpsComponent } from './elements/projects/controls/tabs/devops/devops.component';\nimport { DFSModifiersComponent } from './elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component';\nimport { ThreeColumnComponent } from './elements/three-column/three-column.component';\nimport { SlottedCardComponent } from './elements/slotted-card/slotted-card.component';\nimport { ProjectInfoCardComponent } from './elements/project-info-card/project-info-card.component';\nimport { AnalyticsCardComponent } from './elements/analytics-card/analytics-card.component';\nimport { FeedCardSmComponent } from './elements/feed-card-sm/feed-card-sm.component';\nimport { MainFeedCardComponent } from './elements/main-feed-card/main-feed-card.component';\nimport { TwoColumnHeaderComponent } from './elements/two-column-header/two-column-header.component';\nimport { CardCarouselComponent } from './elements/card-carousel/card-carousel.component';\nimport { SecurityToggleComponent } from './controls/security-toggle/security-toggle.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { EaCService } from './services/eac.service';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { ProcessorDetailsFormComponent } from './controls/processor-details-form/processor-details-form.component';\nimport { SourceControlFormComponent } from './controls/source-control-form/source-control-form.component';\nimport { BuildPipelineFormComponent } from './controls/build-pipeline-form/build-pipeline-form.component';\nimport { DevopsSourceControlFormComponent } from './controls/devops-source-control-form/devops-source-control-form.component';\nimport { SourceControlDialogComponent } from './dialogs/source-control-dialog/source-control-dialog.component';\nimport { BuildPipelineDialogComponent } from './dialogs/build-pipeline-dialog/build-pipeline-dialog.component';\nimport { EditApplicationFormComponent } from './controls/edit-application-form/edit-application-form.component';\nimport { BreadcrumbComponent } from './elements/breadcrumb/breadcrumb.component';\nimport { CustomDomainDialogComponent } from './dialogs/custom-domain-dialog/custom-domain-dialog.component';\nimport { EditApplicationDialogComponent } from './dialogs/edit-application-dialog/edit-application-dialog.component';\nimport { NewApplicationDialogComponent } from './dialogs/new-application-dialog/new-application-dialog.component';\nimport { ProcessorDetailsDialogComponent } from './dialogs/processor-details-dialog/processor-details-dialog.component';\nimport { SkeletonElementsModule } from 'skeleton-elements/angular';\nimport { SkeletonFeedCardComponent } from './elements/skeleton-feed-card/skeleton-feed-card.component';\nimport { UpgradeDialogComponent } from './dialogs/upgrade-dialog/upgrade-dialog.component';\nimport { EmulatedDevicesToggleComponent } from './controls/emulated-devices-toggle/emulated-devices-toggle.component';\nimport { IoTEnsembleService } from './services/iot-ensemble.service';\nimport { FeedHeaderComponent } from './elements/feed-header/feed-header.component';\nimport { FeedHeaderDialogComponent } from './dialogs/feed-header-dialog/feed-header-dialog.component';\nimport { AngularEditorModule } from '@kolkov/angular-editor';\nimport { DFSModifiersDialogComponent } from './dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component';\nimport { DFSModifiersFormComponent } from './controls/dfs-modifiers-form/dfs-modifiers-form.component';\nimport { StateConfigDialogComponent } from './dialogs/state-config-dialog/state-config-dialog.component';\nimport { StateConfigFormComponent } from './controls/state-config-form/state-config-form.component';\nimport { EditProjectDialogComponent } from './dialogs/edit-project-dialog/edit-project-dialog.component';\nimport { EditProjectFormComponent } from './controls/edit-project-form/edit-project-form.component';\nimport { FeedCommentFormComponent } from './controls/feed-comment-form/feed-comment-form.component';\nimport { PageHeaderComponent } from './elements/page-header/page-header.component';\n\n@NgModule({\n declarations: [\n ApplicationsFlowProjectsElementComponent,\n HostingDetailsFormGroupComponent,\n CreateProjectWizardComponent,\n DynamicTabsComponent,\n HeaderComponent,\n ProjectTabsComponent,\n DomainsComponent,\n ProjectItemsComponent,\n BuildsComponent,\n RecentActivitiesComponent,\n FormCardComponent,\n ProjectNameComponent,\n RootDirectoryComponent,\n BaseFormComponent,\n BaseFormTestComponent,\n GitAuthComponent,\n SourceControlFormControlsComponent,\n AppsFlowComponent,\n DevOpsComponent,\n DFSModifiersComponent,\n NpmPackageSelectComponent,\n DFSModifiersFormComponent,\n ThreeColumnComponent,\n SlottedCardComponent,\n ProjectInfoCardComponent,\n AnalyticsCardComponent,\n FeedCardSmComponent,\n FeedHeaderComponent,\n MainFeedCardComponent,\n TwoColumnHeaderComponent,\n CardCarouselComponent,\n SecurityToggleComponent,\n ProcessorDetailsFormComponent,\n SourceControlFormComponent,\n BuildPipelineFormComponent,\n DevopsSourceControlFormComponent,\n SourceControlDialogComponent,\n BuildPipelineDialogComponent,\n EditApplicationFormComponent,\n BreadcrumbComponent,\n DFSModifiersDialogComponent,\n CustomDomainDialogComponent,\n EditApplicationDialogComponent,\n NewApplicationDialogComponent,\n ProcessorDetailsDialogComponent,\n SkeletonFeedCardComponent,\n UpgradeDialogComponent,\n EmulatedDevicesToggleComponent,\n FeedHeaderDialogComponent,\n StateConfigDialogComponent,\n StateConfigFormComponent,\n EditProjectDialogComponent,\n EditProjectFormComponent,\n FeedCommentFormComponent,\n PageHeaderComponent,\n ],\n imports: [\n AngularEditorModule,\n ClipboardModule,\n FathymSharedModule,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n MaterialModule,\n AppHostModule,\n MatTooltipModule,\n MatSlideToggleModule,\n SkeletonElementsModule,\n\n // LazyElementModule,\n ],\n exports: [\n ApplicationsFlowProjectsElementComponent,\n HostingDetailsFormGroupComponent,\n CreateProjectWizardComponent,\n DynamicTabsComponent,\n HeaderComponent,\n ProjectTabsComponent,\n DomainsComponent,\n ProjectItemsComponent,\n BuildsComponent,\n RecentActivitiesComponent,\n FormCardComponent,\n ProjectNameComponent,\n RootDirectoryComponent,\n BaseFormComponent,\n BaseFormTestComponent,\n GitAuthComponent,\n SourceControlFormControlsComponent,\n AppsFlowComponent,\n DevOpsComponent,\n DFSModifiersComponent,\n NpmPackageSelectComponent,\n ThreeColumnComponent,\n SlottedCardComponent,\n ProjectInfoCardComponent,\n AnalyticsCardComponent,\n FeedCardSmComponent,\n FeedHeaderComponent,\n FeedHeaderDialogComponent,\n MainFeedCardComponent,\n TwoColumnHeaderComponent,\n CardCarouselComponent,\n SecurityToggleComponent,\n ProcessorDetailsFormComponent,\n SourceControlFormComponent,\n BuildPipelineFormComponent,\n DevopsSourceControlFormComponent,\n SourceControlDialogComponent,\n BuildPipelineDialogComponent,\n EditApplicationFormComponent,\n BreadcrumbComponent,\n CustomDomainDialogComponent,\n EditApplicationDialogComponent,\n NewApplicationDialogComponent,\n ProcessorDetailsDialogComponent,\n SkeletonFeedCardComponent,\n UpgradeDialogComponent,\n EmulatedDevicesToggleComponent,\n FeedHeaderDialogComponent,\n DFSModifiersDialogComponent,\n DFSModifiersFormComponent,\n StateConfigDialogComponent,\n StateConfigFormComponent,\n EditProjectDialogComponent,\n EditProjectFormComponent,\n FeedCommentFormComponent,\n PageHeaderComponent,\n ],\n entryComponents: [\n ApplicationsFlowProjectsElementComponent,\n DynamicTabsComponent,\n HeaderComponent,\n ProjectTabsComponent,\n DomainsComponent,\n ProjectItemsComponent,\n BuildsComponent,\n RecentActivitiesComponent,\n FormCardComponent,\n ProjectNameComponent,\n RootDirectoryComponent,\n BaseFormComponent,\n BaseFormTestComponent,\n GitAuthComponent,\n SourceControlFormControlsComponent,\n AppsFlowComponent,\n DevOpsComponent,\n DFSModifiersComponent,\n NpmPackageSelectComponent,\n ThreeColumnComponent,\n SlottedCardComponent,\n ProjectInfoCardComponent,\n AnalyticsCardComponent,\n FeedCardSmComponent,\n FeedHeaderComponent,\n MainFeedCardComponent,\n TwoColumnHeaderComponent,\n CardCarouselComponent,\n SecurityToggleComponent,\n ProcessorDetailsFormComponent,\n DFSModifiersFormComponent,\n SourceControlFormComponent,\n BuildPipelineFormComponent,\n DevopsSourceControlFormComponent,\n DFSModifiersDialogComponent,\n SourceControlDialogComponent,\n BuildPipelineDialogComponent,\n EditApplicationFormComponent,\n BreadcrumbComponent,\n CustomDomainDialogComponent,\n EditApplicationDialogComponent,\n EmulatedDevicesToggleComponent,\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA, // Tells Angular we will have custom tags in our templates\n ],\n})\nexport class ApplicationsFlowModule {\n static forRoot(): ModuleWithProviders<ApplicationsFlowModule> {\n return {\n ngModule: ApplicationsFlowModule,\n providers: [\n ApplicationsFlowStateContext,\n ApplicationsFlowService,\n ProjectService,\n NPMService,\n FormsService,\n EaCService,\n IoTEnsembleService,\n ],\n };\n }\n}\n","export class ProjectActionsModel {\n /**\n * Click Action\n */\n public Action?: any;\n /**\n * Mat Icon\n */\n\n public Icon: string;\n\n /**\n * Tooltip\n */\n public Tooltip?: string;\n\n constructor(opts: ProjectActionsModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { BaseResponse, Status } from '@lcu/common';\n\nexport class UserFeedResponse extends BaseResponse {\n public Actions: Array<FeedItemAction>;\n\n public Items: Array<FeedItem>;\n\n public SourceControlLookups: Array<string>;\n}\n\nexport class FeedItem {\n [key: string]: any;\n\n public Actions: Array<FeedItemAction>;\n\n public Avatar: string;\n\n public Badge: string;\n\n public Contributors: Array<FeedItemContributor>;\n\n public ID: string;\n\n public IsPinned: boolean;\n\n public IsShortForm: boolean;\n\n public RefreshLink: string;\n\n public Status: Status;\n\n public Subtext: string;\n\n public Subtitle: string;\n\n public Tabs: Array<FeedItemTab>;\n\n public Timestamp: Date;\n\n public Title: string;\n\n public Type: string;\n}\n\nexport class FeedItemContributor {\n [key: string]: any;\n\n public Status: string;\n\n public StatusIcon: string;\n\n public UserImage: string;\n\n public Username: string;\n}\n\nexport class FeedItemAction {\n [key: string]: any;\n\n public Action: string;\n\n public ActionType: string;\n\n public Color: string;\n\n public Icon: string;\n\n public Text: string;\n}\n\nexport class FeedItemTab {\n [key: string]: any;\n\n public Data: { [key: string]: any };\n\n public Title: string;\n}\n\nexport class FeedEntry {\n public ActionIcon: string;\n\n public ActionLink: string;\n\n public ActionText: string;\n\n public Avatar: string;\n\n public Content: string;\n\n public ExpiresAt: Date;\n\n public Organization: string;\n\n public Repository: string;\n\n public SourceBranch: string;\n\n public SourceControlLookup: string;\n\n public Subtitle: string;\n\n public TargetBranch: string;\n\n public Title: string;\n\n public Type: string;\n}\n","type ButtonType = 'GENERIC' | 'RESET' | 'SAVE';\nexport class ActionsModel {\n /**\n * Callback function on button click\n */\n public ClickEvent: any;\n\n /**\n * Angular Material theme color (primary, accent, warn)\n */\n public Color?: string;\n\n /**\n * Button text value\n */\n public Label: string;\n\n /**\n * Style from parent component\n */\n public Style?: string;\n\n /**\n * Type of button functionality (reset, save, generic)\n */\n public Type: ButtonType;\n}\n","import { ActionsModel } from './actions.model';\n\nexport class FormActionsModel {\n /**\n * Button actions\n */\n public Actions: Array<ActionsModel>;\n\n /**\n * Simple text on the same line as the buttons\n */\n public Message?: string;\n}\n","export class DevSettingsPresetModel {\n public Icon: string;\n public ID: number;\n public Label: string;\n}\n","export class DomainModel {\n public Branch: string;\n public Name: string;\n public Host: string;\n public ValidConfig: string;\n}\n","import { FormGroup } from '@angular/forms';\nexport class FormModel {\n /**\n * Form Id\n */\n public Id: string;\n\n /**\n * Form\n */\n public Form: FormGroup;\n\n constructor(opts: FormModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './lcu.api';\n"],"names":["i1.ApplicationsFlowService","i2","i1.ProjectService","i1.EaCService","i3","i4","i5","i6","i7","i1","i3.EaCService","i4.ProjectItemsComponent","i8","i9","i10","i11","i1.FormsService","i2.EaCService","i3.FormCardComponent","i12","ApplicationsFlowProjectsElementState","ApplicationsFlowProjectsContext","i2.FormsService","i2.ApplicationsFlowService","i13","i14","i1.NPMService","i10.SourceControlFormControlsComponent","i11.NpmPackageSelectComponent","i15","i16","i6.SourceControlFormControlsComponent","i10.HostingDetailsFormGroupComponent","i1.DynamicTabsComponent","i9.HeaderComponent","i10.ProjectTabsComponent","i5.SourceControlFormControlsComponent","i8.HostingDetailsFormGroupComponent","i6.GitAuthComponent","i7.DevopsSourceControlFormComponent","i8.FeedCommentFormComponent","i9.NpmPackageSelectComponent","i3.ApplicationsFlowService","i7.BuildPipelineFormComponent","i4.DomainsComponent","i6.EditApplicationFormComponent","i7.ProcessorDetailsFormComponent","i6.ProcessorDetailsFormComponent","i7.DFSModifiersFormComponent","i6.StateConfigFormComponent","i6.EditProjectFormComponent"],"mappings":"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"}
1
+ {"version":3,"file":"lowcodeunit-applications-flow-common.mjs","sources":["../../../projects/common/src/lib/models/form.values.model.ts","../../../projects/common/src/lib/services/forms.service.ts","../../../projects/common/src/lib/services/applications-flow.service.ts","../../../projects/common/src/lib/services/project.service.ts","../../../projects/common/src/lib/state/applications-flow-state.context.ts","../../../projects/common/src/lib/state/applications-flow.state.ts","../../../projects/common/src/lib/services/eac.service.ts","../../../projects/common/src/lib/elements/projects/controls/project-items/project-items.component.ts","../../../projects/common/src/lib/elements/projects/controls/project-items/project-items.component.html","../../../projects/common/src/lib/elements/projects/controls/header/header.component.ts","../../../projects/common/src/lib/elements/projects/controls/header/header.component.html","../../../projects/common/src/lib/models/card-form-config.model.ts","../../../projects/common/src/lib/elements/form-card/form-card.component.ts","../../../projects/common/src/lib/elements/form-card/form-card.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/domains/domains.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/domains/domains.component.html","../../../projects/common/src/lib/models/dynamic-tabs.model.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/general.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/general.component.html","../../../projects/common/src/lib/elements/projects/controls/forms/source-control/source-control.component.ts","../../../projects/common/src/lib/elements/projects/controls/forms/source-control/source-control.component.html","../../../projects/common/src/lib/services/npm.service.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.html","../../../projects/common/src/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.ts","../../../projects/common/src/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/devops/devops.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/devops/devops.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.html","../../../projects/common/src/lib/elements/dynamic-tabs/dynamic-tabs.component.ts","../../../projects/common/src/lib/elements/dynamic-tabs/dynamic-tabs.component.html","../../../projects/common/src/lib/elements/projects/controls/project-tabs/project-tabs.component.ts","../../../projects/common/src/lib/elements/projects/controls/project-tabs/project-tabs.component.html","../../../projects/common/src/lib/elements/projects/projects.component.ts","../../../projects/common/src/lib/elements/projects/projects.component.html","../../../projects/common/src/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.ts","../../../projects/common/src/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.html","../../../projects/common/src/lib/elements/projects/controls/builds/builds.component.ts","../../../projects/common/src/lib/elements/projects/controls/builds/builds.component.html","../../../projects/common/src/lib/elements/projects/controls/recent-activities/recent-activities.component.ts","../../../projects/common/src/lib/elements/projects/controls/recent-activities/recent-activities.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.html","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.html","../../../projects/common/src/lib/elements/base-form/base-form.component.ts","../../../projects/common/src/lib/elements/base-form/base-form.component.html","../../../projects/common/src/lib/models/base-form-config.model.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.ts","../../../projects/common/src/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.html","../../../projects/common/src/lib/elements/projects/controls/git-auth/git-auth.component.ts","../../../projects/common/src/lib/elements/projects/controls/git-auth/git-auth.component.html","../../../projects/common/src/lib/elements/three-column/three-column.component.ts","../../../projects/common/src/lib/elements/three-column/three-column.component.html","../../../projects/common/src/lib/elements/slotted-card/slotted-card.component.ts","../../../projects/common/src/lib/elements/slotted-card/slotted-card.component.html","../../../projects/common/src/lib/elements/project-info-card/project-info-card.component.ts","../../../projects/common/src/lib/elements/project-info-card/project-info-card.component.html","../../../projects/common/src/lib/elements/analytics-card/analytics-card.component.ts","../../../projects/common/src/lib/elements/analytics-card/analytics-card.component.html","../../../projects/common/src/lib/elements/feed-card-sm/feed-card-sm.component.ts","../../../projects/common/src/lib/elements/feed-card-sm/feed-card-sm.component.html","../../../projects/common/src/lib/controls/devops-source-control-form/devops-source-control-form.component.ts","../../../projects/common/src/lib/controls/devops-source-control-form/devops-source-control-form.component.html","../../../projects/common/src/lib/dialogs/source-control-dialog/source-control-dialog.component.ts","../../../projects/common/src/lib/dialogs/source-control-dialog/source-control-dialog.component.html","../../../projects/common/src/lib/elements/main-feed-card/main-feed-card.component.ts","../../../projects/common/src/lib/elements/main-feed-card/main-feed-card.component.html","../../../projects/common/src/lib/elements/two-column-header/two-column-header.component.ts","../../../projects/common/src/lib/elements/two-column-header/two-column-header.component.html","../../../projects/common/src/lib/elements/card-carousel/card-carousel.component.ts","../../../projects/common/src/lib/elements/card-carousel/card-carousel.component.html","../../../projects/common/src/lib/controls/security-toggle/security-toggle.component.ts","../../../projects/common/src/lib/controls/security-toggle/security-toggle.component.html","../../../projects/common/src/lib/controls/processor-details-form/processor-details-form.component.ts","../../../projects/common/src/lib/controls/processor-details-form/processor-details-form.component.html","../../../projects/common/src/lib/controls/source-control-form/source-control-form.component.ts","../../../projects/common/src/lib/controls/source-control-form/source-control-form.component.html","../../../projects/common/src/lib/controls/build-pipeline-form/build-pipeline-form.component.ts","../../../projects/common/src/lib/controls/build-pipeline-form/build-pipeline-form.component.html","../../../projects/common/src/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.ts","../../../projects/common/src/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.html","../../../projects/common/src/lib/controls/edit-application-form/edit-application-form.component.ts","../../../projects/common/src/lib/controls/edit-application-form/edit-application-form.component.html","../../../projects/common/src/lib/elements/breadcrumb/breadcrumb.component.ts","../../../projects/common/src/lib/elements/breadcrumb/breadcrumb.component.html","../../../projects/common/src/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.ts","../../../projects/common/src/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.html","../../../projects/common/src/lib/dialogs/edit-application-dialog/edit-application-dialog.component.ts","../../../projects/common/src/lib/dialogs/edit-application-dialog/edit-application-dialog.component.html","../../../projects/common/src/lib/dialogs/new-application-dialog/new-application-dialog.component.ts","../../../projects/common/src/lib/dialogs/new-application-dialog/new-application-dialog.component.html","../../../projects/common/src/lib/dialogs/processor-details-dialog/processor-details-dialog.component.ts","../../../projects/common/src/lib/dialogs/processor-details-dialog/processor-details-dialog.component.html","../../../projects/common/src/lib/elements/skeleton-feed-card/skeleton-feed-card.component.ts","../../../projects/common/src/lib/elements/skeleton-feed-card/skeleton-feed-card.component.html","../../../projects/common/src/lib/dialogs/upgrade-dialog/upgrade-dialog.component.ts","../../../projects/common/src/lib/dialogs/upgrade-dialog/upgrade-dialog.component.html","../../../projects/common/src/lib/controls/emulated-devices-toggle/emulated-devices-toggle.component.ts","../../../projects/common/src/lib/controls/emulated-devices-toggle/emulated-devices-toggle.component.html","../../../projects/common/src/lib/state/iot-ensemble.state.ts","../../../projects/common/src/lib/services/iot-ensemble.service.ts","../../../projects/common/src/lib/dialogs/feed-header-dialog/feed-header-dialog.component.ts","../../../projects/common/src/lib/dialogs/feed-header-dialog/feed-header-dialog.component.html","../../../projects/common/src/lib/elements/feed-header/feed-header.component.ts","../../../projects/common/src/lib/elements/feed-header/feed-header.component.html","../../../projects/common/src/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.ts","../../../projects/common/src/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.html","../../../projects/common/src/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.ts","../../../projects/common/src/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.html","../../../projects/common/src/lib/controls/state-config-form/state-config-form.component.ts","../../../projects/common/src/lib/controls/state-config-form/state-config-form.component.html","../../../projects/common/src/lib/dialogs/state-config-dialog/state-config-dialog.component.ts","../../../projects/common/src/lib/dialogs/state-config-dialog/state-config-dialog.component.html","../../../projects/common/src/lib/controls/edit-project-form/edit-project-form.component.ts","../../../projects/common/src/lib/controls/edit-project-form/edit-project-form.component.html","../../../projects/common/src/lib/dialogs/edit-project-dialog/edit-project-dialog.component.ts","../../../projects/common/src/lib/dialogs/edit-project-dialog/edit-project-dialog.component.html","../../../projects/common/src/lib/applications-flow.module.ts","../../../projects/common/src/lib/models/project-actions.model.ts","../../../projects/common/src/lib/models/user-feed.model.ts","../../../projects/common/src/lib/models/actions.model.ts","../../../projects/common/src/lib/models/form-actions.model.ts","../../../projects/common/src/lib/models/dev-settings-preset.model.ts","../../../projects/common/src/lib/models/domain.model.ts","../../../projects/common/src/lib/models/form.model.ts","../../../projects/common/src/lowcodeunit-applications-flow-common.ts"],"sourcesContent":["/**\n * Model for form values\n *\n */\nexport class FormValuesModel {\n /**\n * Form ID\n */\n public Id: string;\n\n /**\n * Form values\n */\n public Values: object;\n\n constructor(id: string, values: object) {\n this.Id = id;\n this.Values = values;\n }\n}\n","import { FormValuesModel } from './../models/form.values.model';\nimport { FormModel } from './../models/form.model';\nimport { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormsService {\n /**\n * List of forms\n */\n private _form: FormModel;\n public set Form(val: FormModel) {\n if (!val) {\n return;\n }\n\n this._form = val;\n this.forms.push(val);\n this.createValuesReference(val);\n }\n\n public get Form(): FormModel {\n return this._form;\n }\n\n /**\n * When any form is being edited\n */\n public FormIsDirty: Subject<boolean>;\n\n protected forms: Array<FormModel>;\n\n /**\n * Storage reference for intial form values\n */\n // public formsInitialValues: Array<FormModel>;\n protected previousFormValues: Array<FormValuesModel>;\n\n /**\n *\n * @param val as string - enabled form name\n * @param val as boolen - enable/disable all forms\n *\n * Enable / disable forms, use this when a form is being edited and\n * all other forms need to be disabled\n */\n public DisableForms(val: string | boolean): void {\n const preventEvent: { onlySelf: boolean; emitEvent: boolean } = {\n onlySelf: true,\n emitEvent: false,\n };\n\n this.forms.forEach((form: FormModel) => {\n if (typeof val === 'boolean') {\n val\n ? form.Form.disable(preventEvent)\n : form.Form.enable(preventEvent);\n } else {\n if (form.Id === val) {\n form.Form.enable(preventEvent);\n } else {\n form.Form.disable(preventEvent);\n }\n }\n });\n }\n\n /**\n * Create a reference of initial form data\n * Use this to compare if values really changed, because\n * the user could change values back to the original\n *\n * @param obj form data\n */\n protected createValuesReference(val: FormModel): void {\n // const values: Array<{key: string, value: string}> = [];\n const keyValues: object = {};\n\n for (const [key, value] of Object.entries(val.Form.controls)) {\n // values.push({key, value: value.value});\n keyValues[key] = value.value;\n }\n\n // this.formsValues.push(new FormValuesModel(val.Id, val.Form.value));\n this.previousFormValues.push(new FormValuesModel(val.Id, keyValues));\n }\n\n /**\n * Update value reference after saves\n *\n * @param val form model with values\n */\n public UpdateValuesReference(val: FormModel): void {\n const index: number = this.previousFormValues.findIndex(\n (x: FormValuesModel) => {\n return x.Id === val.Id;\n }\n );\n\n this.previousFormValues[index].Values = val.Form.value;\n\n // TODO: look at consolidating updating this.forms and this.previousFormValues - shannon (7-14-21)\n const formIndex: number = this.forms.findIndex((x: FormModel) => {\n return x.Id === val.Id;\n });\n\n this.forms[formIndex] = val;\n }\n\n /**\n * Reset form values back to previous\n *\n * @param id form id\n */\n public ResetFormValues(id: string): void {\n this.forms.find((form: FormModel) => {\n if (form.Id === id) {\n form.Form.patchValue(this.GetPreviousFormValues(id).Values);\n }\n });\n }\n\n /**\n *\n * @param id form id to search for\n *\n * @returns previous form values\n */\n public GetPreviousFormValues(id: string): FormValuesModel {\n return this.previousFormValues.find((x: FormValuesModel) => {\n return x.Id === id;\n });\n }\n\n /**\n * Check for actual form changes, because the user\n * could have canceled or changed the value back to the\n * original\n *\n * @param id form id\n * @param formToCheck form to be tested\n */\n public ForRealThough(id: string, formToCheck: FormGroup): boolean {\n const formVals: FormValuesModel = this.previousFormValues.find(\n (x: FormValuesModel) => {\n return x.Id === id;\n }\n );\n\n for (const key in formToCheck.controls) {\n if (formToCheck.controls[key].value !== formVals.Values[key]) {\n this.FormIsDirty.next(true);\n return true;\n }\n }\n\n this.FormIsDirty.next(false);\n return false;\n }\n\n constructor() {\n this.forms = [];\n this.previousFormValues = [];\n this.FormIsDirty = new Subject();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LCUServiceSettings } from '@lcu/common';\nimport { Observable } from 'rxjs';\nimport { EnterpriseAsCode } from '@semanticjs/common';\nimport { UnpackLowCodeUnitRequest } from '../state/applications-flow.state';\nimport { FeedEntry } from '../models/user-feed.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationsFlowService {\n // Fields\n protected apiRoot: string;\n\n // Properties\n\n // Constructors\n constructor(\n protected http: HttpClient,\n protected settings: LCUServiceSettings\n ) {\n this.apiRoot = settings.APIRoot;\n }\n\n // API Methods\n public ConfigureDevOpsAction(actionLookup: string): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/devops/actions/${actionLookup}/configure`,\n {},\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public CreateRepository(\n organization: string,\n repoName: string\n ): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\n {\n Name: repoName,\n },\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public EnsureUserEnterprise(): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprise/ensure`,\n {},\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public EnterpriseAsCodeRemovals(\n removals: EnterpriseAsCode\n ): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/removals/eac`,\n removals,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public GetActiveEnterprise(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public HasValidConnection(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/connection/valid`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListProjects(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/projects`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListBranches(\n organization: string,\n repository: string\n ): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/branches`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListBuildPaths(\n organization: string,\n repository: string,\n branch: string = ''\n ): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/build-paths?branch=${branch}`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListEnterprises(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/list`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListOrganizations(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public ListRepositories(organization: string): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public LoadEnterpriseAsCode(): Observable<object> {\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/eac`, {\n headers: this.loadHeaders(),\n });\n }\n\n // public LoadProjectHostingDetails(\n // organization: string,\n // repository: string,\n // branch: string\n // ): Observable<object> {\n // branch = encodeURIComponent(branch);\n\n // return this.http.get(\n // `${this.apiRoot}/api/lowcodeunit/manage/projects/organizations/${organization}/repositories/${repository}/branches/${branch}/hosting/details`,\n // {\n // headers: this.loadHeaders(),\n // }\n // );\n // }\n\n public LoadProjectHostingDetails(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/manage/projects/hosting/details`,\n\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public LoadUserFeed(\n page: number,\n pageSize: number,\n project: string,\n applications: string[]\n ): Observable<object> {\n var apps = JSON.stringify(applications || []);\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/userfeed?page=${page}&pageSize=${pageSize}&project=${project}&applications=${apps}`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public SaveEnterpriseAsCode(eac: EnterpriseAsCode): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/eac`,\n eac,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public SetActiveEnterprise(activeEntLookup: string): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\n {\n ActiveEnterpriseLookup: activeEntLookup,\n },\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public SubmitFeedEntry(entry: FeedEntry): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/userfeed/entry`,\n entry,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n public UnpackLowCodeUnit(\n req: UnpackLowCodeUnitRequest\n ): Observable<object> {\n return this.http.post(\n `${this.apiRoot}/api/lowcodeunit/manage/projects/unpack`,\n req,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n\n // Helpers\n protected loadHeaders(): { [header: string]: string | string[] } {\n return {};\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseModeledResponse, BaseResponse, Status } from '@lcu/common';\nimport { debug } from 'console';\nimport {\n EaCApplicationAsCode,\n EaCProjectAsCode,\n EnterpriseAsCode,\n} from '@semanticjs/common';\nimport {\n ApplicationsFlowState,\n GitHubWorkflowRun,\n UnpackLowCodeUnitRequest,\n} from '../state/applications-flow.state';\nimport { ApplicationsFlowService } from './applications-flow.service';\nimport {\n FeedEntry,\n FeedItem,\n UserFeedResponse,\n} from '../models/user-feed.model';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProjectService {\n public CreatingProject: boolean;\n\n public EditingProjectLookup: string;\n\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected activatedRoute: ActivatedRoute\n ) {}\n\n // public CreateRepository(state: ApplicationsFlowState, org: string, repoName: string): void {\n // state.GitHub.Loading = true;\n\n // this.appsFlowSvc\n // .CreateRepository(org, repoName)\n // .subscribe((response: BaseResponse) => {\n // if (response.Status.Code === 0) {\n // this.listRepositories(repoName);\n\n // state.GitHub.CreatingRepository = false;\n // } else {\n // // TODO: Need to surface an error to the user...\n\n // state.GitHub.Loading = false;\n // }\n // });\n // }\n\n public EnsureUserEnterprise(\n state: ApplicationsFlowState\n ): Promise<BaseResponse> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.EnsureUserEnterprise().subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n // const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(response);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async EnterpriseAsCodeRemovals(\n state: ApplicationsFlowState,\n eac: EnterpriseAsCode\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.EnterpriseAsCodeRemovals(eac).subscribe(\n async (response: BaseModeledResponse<string>) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public GenerateRoutedApplications(\n applications: { [lookup: string]: EaCApplicationAsCode },\n state: ApplicationsFlowState\n ): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n const appLookups = Object.keys(applications);\n\n const apps = appLookups.map((appLookup) => applications[appLookup]);\n\n let appRoutes =\n apps.map((app) => {\n return app?.LookupConfig?.PathRegex.replace('.*', '');\n }) || [];\n\n appRoutes = appRoutes.filter((ar) => ar != null);\n\n let routeBases: string[] = [];\n\n appRoutes.forEach((appRoute) => {\n const appRouteParts = appRoute.split('/');\n\n const appRouteBase = `/${appRouteParts[1]}`;\n\n if (routeBases.indexOf(appRouteBase) < 0) {\n routeBases.push(appRouteBase);\n }\n });\n\n let workingAppLookups = [...(appLookups || [])];\n\n routeBases = routeBases.sort((a, b) => b.localeCompare(a));\n\n const routeSet =\n routeBases.reduce((prevRouteMap, currentRouteBase) => {\n const routeMap = {\n ...prevRouteMap,\n };\n\n const filteredAppLookups = workingAppLookups.filter((wal) => {\n const wa = applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(\n currentRouteBase\n );\n });\n\n routeMap[currentRouteBase] =\n filteredAppLookups.reduce((prevAppMap, appLookup) => {\n const appMap = {\n ...prevAppMap,\n };\n\n appMap[appLookup] = applications[appLookup];\n\n return appMap;\n }, {}) || {};\n\n workingAppLookups = workingAppLookups.filter((wa) => {\n return filteredAppLookups.indexOf(wa) < 0;\n });\n\n return routeMap;\n }, {}) || {};\n\n let routeSetKeys = Object.keys(routeSet);\n\n routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));\n\n const routeSetResult = {};\n\n routeSetKeys.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));\n\n return routeSetResult;\n }\n\n public async GetActiveEnterprise(\n state: ApplicationsFlowState\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n state.LoadingActiveEnterprise = true;\n\n this.appsFlowSvc.GetActiveEnterprise().subscribe(\n async (\n response: BaseModeledResponse<{\n Name: string;\n Lookup: string;\n }>\n ) => {\n state.LoadingActiveEnterprise = false;\n\n if (response.Status.Code === 0) {\n state.ActiveEnterpriseLookup = response.Model?.Lookup;\n\n resolve();\n } else {\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.LoadingActiveEnterprise = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public HasValidConnection(\n state: ApplicationsFlowState,\n forceEnsureUser: boolean = false\n ): Promise<EnterpriseAsCode> {\n return new Promise(async (resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.HasValidConnection().subscribe(\n async (response: BaseResponse) => {\n state.GitHub.HasConnection = response.Status.Code === 0;\n\n if (state.GitHub.HasConnection || forceEnsureUser) {\n } else {\n }\n\n resolve({});\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async ListEnterprises(state: ApplicationsFlowState): Promise<any[]> {\n return new Promise((resolve, reject) => {\n state.LoadingEnterprises = true;\n\n this.appsFlowSvc.ListEnterprises().subscribe(\n async (response: BaseModeledResponse<Array<any>>) => {\n state.LoadingEnterprises = false;\n\n if (response.Status.Code === 0) {\n state.Enterprises = response.Model;\n\n resolve(response.Model);\n } else {\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.LoadingEnterprises = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public LoadEnterpriseAsCode(\n state: ApplicationsFlowState\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.LoadEnterpriseAsCode().subscribe(\n (response: BaseModeledResponse<EnterpriseAsCode>) => {\n state.Loading = false;\n\n if (response.Status.Code === 0) {\n state.EaC = response.Model || {};\n } else if (response.Status.Code === 3) {\n }\n\n state.EaC = state.EaC || {};\n\n this.CreatingProject =\n Object.keys(state?.EaC?.Projects || {}).length <= 0;\n\n resolve(state.EaC);\n\n console.log(state);\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async LoadUserFeed(\n page: number,\n pageSize: number,\n forCheck: boolean = false,\n state: ApplicationsFlowState\n ): Promise<Array<FeedItem>> {\n return new Promise((resolve, reject) => {\n state.LoadingFeed = !forCheck;\n\n let paramMap = this.activatedRoute.snapshot.children[0].paramMap;\n\n let result = this.loadApplicationsForFeed(state, paramMap);\n\n this.appsFlowSvc\n .LoadUserFeed(\n page,\n pageSize,\n result.Project,\n result.Applications\n )\n .subscribe(\n async (response: UserFeedResponse) => {\n state.LoadingFeed = false;\n\n if (response.Status.Code === 0) {\n if (!forCheck) {\n state.Feed = response.Items;\n\n state.FeedSourceControlLookups =\n response.SourceControlLookups;\n\n state.FeedActions = response.Actions;\n\n state.FeedCheck = null;\n } else {\n let items = response.Items?.filter(\n (i) =>\n !state.Feed?.find((f) => f.ID == i.ID)\n );\n\n if (items?.length > 0) {\n state.FeedCheck = response;\n }\n }\n // console.log(\"ITEMZ: \", response.Items)\n\n resolve(response.Items);\n } else {\n reject(response.Status);\n }\n },\n (err) => {\n state.LoadingFeed = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async SetActiveEnterprise(\n state: ApplicationsFlowState,\n activeEntLookup: string\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n state.LoadingFeed = true;\n\n this.appsFlowSvc.SetActiveEnterprise(activeEntLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.EditingProjectLookup = null;\n\n console.log(\n 'project service active ent: ',\n activeEntLookup\n );\n\n state.ActiveEnterpriseLookup = activeEntLookup;\n\n console.log(\n 'project service State active ent: ',\n state.ActiveEnterpriseLookup\n );\n\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public async SaveEnterpriseAsCode(\n state: ApplicationsFlowState,\n eac: EnterpriseAsCode\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.SaveEnterpriseAsCode(eac).subscribe(\n async (response: BaseModeledResponse<string>) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public SetCreatingProject(creatingProject: boolean): void {\n this.CreatingProject = creatingProject;\n\n this.EditingProjectLookup = null;\n }\n\n public SetEditProjectSettings(\n state: ApplicationsFlowState,\n projectLookup: string\n ): Promise<any> {\n return new Promise((resolve, reject) => {\n if (projectLookup != null) {\n state.Loading = false;\n\n this.EditingProjectLookup = null;\n\n setTimeout(() => {\n this.EditingProjectLookup = projectLookup;\n\n resolve({});\n }, 0);\n\n this.CreatingProject = false;\n\n console.log(state);\n } else {\n state.Loading = false;\n\n this.EditingProjectLookup = projectLookup;\n\n this.CreatingProject = false;\n\n resolve({});\n }\n });\n }\n\n public async SubmitFeedEntry(\n state: ApplicationsFlowState,\n entry: FeedEntry\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.SubmitFeedEntry(entry).subscribe(\n async (response: BaseModeledResponse<string>) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n public ToggleCreateProject(): void {\n this.SetCreatingProject(!this.CreatingProject);\n }\n\n public UnpackLowCodeUnit(\n state: ApplicationsFlowState,\n req: UnpackLowCodeUnitRequest\n ): Promise<Status> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.UnpackLowCodeUnit(req).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n resolve(response.Status);\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, false, state),\n ]);\n } else {\n state.Loading = false;\n\n reject(response.Status);\n\n console.log(response);\n }\n },\n (err) => {\n state.Loading = false;\n\n reject(err);\n\n console.log(err);\n }\n );\n });\n }\n\n // Helpers\n protected loadApplicationsForFeed(\n state: ApplicationsFlowState,\n paramMap: any\n ) {\n // this.activatedRoute.paramMap.subscribe(async (paramMap) => {\n var project = paramMap.get('projectLookup') || '';\n\n var route = paramMap.get('appRoute');\n\n var application = paramMap.get('appLookup');\n\n var applications: string[] = [];\n\n if (application) {\n applications.push(application);\n } else if (route && project) {\n const apps: { [lookup: string]: EaCApplicationAsCode } = {};\n\n state.EaC.Projects[project].ApplicationLookups.forEach(\n (appLookup: string) => {\n apps[appLookup] = state.EaC.Applications[appLookup];\n }\n );\n\n var routedApps = this.GenerateRoutedApplications(apps, state);\n\n var currentApps = routedApps[route];\n\n applications = Object.keys(currentApps) || [];\n }\n\n return {\n Applications: applications,\n Project: project,\n };\n // });\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { StateContext } from '@lcu/common';\nimport { ApplicationsFlowState } from './applications-flow.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApplicationsFlowStateContext extends StateContext<ApplicationsFlowState> {\n // Constructors\n constructor(protected injector: Injector) {\n super(injector);\n }\n\n // API Methods\n public AddApplication(): void {\n this.Execute({\n Arguments: {},\n Type: 'AddApplication',\n });\n }\n\n // Helpers\n protected defaultValue(): ApplicationsFlowState {\n return { Loading: true } as ApplicationsFlowState;\n }\n\n protected loadStateKey(): string {\n return 'main';\n }\n\n protected loadStateName(): string {\n return 'lcu';\n }\n}\n","import { EnterpriseAsCode } from '@semanticjs/common';\nimport {\n FeedItem,\n FeedItemAction,\n UserFeedResponse,\n} from '../models/user-feed.model';\n\nexport class ApplicationsFlowState {\n public ActiveEnterpriseLookup?: string;\n\n public EaC?: EnterpriseAsCode;\n\n public Enterprises?: Array<{ Name: string; Lookup: string }>;\n\n public Feed?: Array<FeedItem>;\n\n public FeedActions?: Array<FeedItemAction>;\n\n public FeedCheck?: UserFeedResponse;\n\n public FeedSourceControlLookups?: Array<string>;\n\n public GitHub?: GitHubSetupState;\n\n public HostingDetails?: ProjectHostingDetails;\n\n public Loading?: boolean;\n\n public LoadingActiveEnterprise?: boolean;\n\n public LoadingEnterprises?: boolean;\n\n public LoadingFeed?: boolean;\n\n // public Projects?: ProjectState[];\n\n public Unleashed?: boolean;\n\n public UserEnterpriseLookup?: string;\n\n constructor() {\n this.GitHub = {};\n\n this.HostingDetails = {};\n\n this.Loading = true;\n\n this.LoadingActiveEnterprise = true;\n\n this.LoadingEnterprises = true;\n\n this.LoadingFeed = true;\n\n // this.Projects = [];\n }\n}\n\n// export class ProjectState {\n// public ActionsSet?: { [id: string]: DevOpsAction };\n\n// public Applications?: ApplicationState[];\n\n// public Description?: string;\n\n// public Host?: string;\n\n// public ID?: string;\n\n// public Image?: string;\n\n// public LCUs?: GitHubLowCodeUnit[];\n\n// public Name?: string;\n\n// public PreventInheritedApplications?: boolean;\n\n// public Runs?: GitHubWorkflowRun[];\n// }\n\n// export class ApplicationState {\n// public IsPrivate?: boolean;\n\n// public Name?: string;\n\n// public Organization?: string;\n\n// public PathRegex?: string;\n\n// public Priority?: number;\n\n// public Repository?: string;\n\n// public Version?: string;\n// }\n\nexport class GitHubSetupState {\n public BranchOptions?: GitHubBranch[];\n\n public CreatingRepository?: boolean;\n\n public HasConnection?: boolean;\n\n public Loading?: boolean;\n\n public OrganizationOptions?: GitHubOrganization[];\n\n public RepositoryOptions?: GitHubRepository[];\n}\n\nexport class GitHubBranch {\n public Name?: string;\n}\n\n// export class GitHubLowCodeUnit {\n// public Branch?: string;\n\n// public ID?: string;\n\n// public Lookup?: string;\n\n// public Organization?: string;\n\n// public Repository?: string;\n// }\n\nexport class GitHubOrganization {\n public Name?: string;\n}\n\nexport class GitHubRepository {\n public CloneURL?: string;\n\n public Name?: string;\n}\n\nexport class GitHubWorkflowRun {\n public Conclusion?: string;\n\n public CreatedAt?: string;\n\n public ID?: string;\n\n public LCUID?: string;\n\n public RunNumber?: number;\n\n public Status?: string;\n\n public Workflow?: string;\n\n public UpdatedAt?: string;\n}\n\nexport class UnpackLowCodeUnitRequest {\n public ApplicationLookup?: string;\n\n public ApplicationName?: string;\n\n public Version?: string;\n}\n\n// export class DevOpsAction {\n// public Details?: string;\n\n// public ID?: string;\n\n// public Name?: string;\n\n// public Overwrite?: boolean;\n\n// public Path?: string;\n\n// public Template?: string;\n// }\n\nexport class ProjectHostingDetails {\n public HostingOptions?: ProjectHostingOption[];\n\n public Loading?: boolean;\n}\n\nexport class ProjectHostingOption {\n public ArtifactType?: string;\n\n public Description?: string;\n\n public Image?: string;\n\n public Inputs?: ProjectHostingOptionInput[];\n\n public Lookup?: string;\n\n public Name?: string;\n\n public Path?: string;\n\n public Templates?: string[];\n}\n\nexport class ProjectHostingOptionInput {\n public DefaultValue?: string;\n\n public Hint?: string;\n\n public Lookup?: string;\n\n public Placeholder?: string;\n\n public Required?: boolean;\n}\n\n// export class EstablishProjectRequest {\n// public Branch?: string;\n\n// public BuildScript?: string;\n\n// public HostingOption?: string;\n\n// public Organization?: string;\n\n// public OutputFolder?: string;\n\n// public ProjectName?: string;\n\n// public Repository?: string;\n// }\n","import { Injectable } from '@angular/core';\nimport { ProjectService } from './project.service';\nimport {\n ApplicationsFlowState,\n UnpackLowCodeUnitRequest,\n} from '../state/applications-flow.state';\nimport {\n EaCApplicationAsCode,\n EaCDataToken,\n EaCDFSModifier,\n EaCEnvironmentAsCode,\n EaCHost,\n EaCProjectAsCode,\n EnterpriseAsCode,\n} from '@semanticjs/common';\nimport { FeedEntry, FeedItem } from '../models/user-feed.model';\nimport { HttpClient } from '@angular/common/http';\nimport { Status } from '@lcu/common';\nimport { Observable } from 'rxjs';\n\nexport class SaveApplicationAsCodeEventRequest {\n public Application?: EaCApplicationAsCode;\n\n public ApplicationLookup?: string;\n\n public ProjectLookup?: string;\n}\n\nexport class SaveDFSModifierEventRequest {\n public ApplicationLookup?: string;\n\n public Modifier?: EaCDFSModifier;\n\n public ModifierLookups?: Array<string>;\n\n public ProjectLookups?: Array<string>;\n}\n\nexport class SaveEnvironmentAsCodeEventRequest {\n public EnterpriseDataTokens?: { [lookup: string]: EaCDataToken };\n\n public Environment?: EaCEnvironmentAsCode;\n\n public EnvironmentLookup?: string;\n}\n\nexport class SaveProjectAsCodeEventRequest {\n public Project?: EaCProjectAsCode;\n\n public ProjectLookup?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EaCService {\n // Properties\n public get EditingProjectLookup(): string {\n return this.projectService.EditingProjectLookup;\n }\n\n public get CreatingProject(): boolean {\n return this.projectService.CreatingProject;\n }\n\n public State: ApplicationsFlowState;\n\n // Constructors\n constructor(\n protected projectService: ProjectService,\n protected http: HttpClient\n ) {\n this.State = new ApplicationsFlowState();\n }\n\n // API Methods\n public CheckUserFeedItem(feedItem: FeedItem): Observable<object> {\n return this.http.get(feedItem.RefreshLink);\n }\n\n public async DeleteApplication(\n appLookup: string,\n appName: string\n ): Promise<Status> {\n if (\n confirm(`Are you sure you want to delete application '${appName}'?`)\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Applications: {},\n };\n\n eac.Applications[appLookup] = {\n Application: {},\n };\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteDevOpsAction(\n doaLookup: string,\n doaName: string\n ): Promise<Status> {\n if (\n confirm(\n `Are you sure you want to delete Build Pipeline '${doaName}'?`\n )\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Environments: {},\n };\n\n eac.Environments[this.State.EaC.Enterprise.PrimaryEnvironment] = {\n DevOpsActions: {},\n };\n\n eac.Environments[\n this.State.EaC.Enterprise.PrimaryEnvironment\n ].DevOpsActions[doaLookup] = {};\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteModifier(\n modifierLookup: string,\n modifierName: string\n ): Promise<Status> {\n if (\n confirm(\n `Are you sure you want to delete Modifier '${modifierName}'?`\n )\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Modifiers: {},\n };\n\n eac.Modifiers[modifierLookup] = {};\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteProject(\n projectLookup: string,\n projectName: string\n ): Promise<Status> {\n if (\n confirm(`Are you sure you want to delete Project '${projectName}'?`)\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Projects: {},\n };\n\n eac.Projects[projectLookup] = {\n Project: {},\n };\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n public async DeleteSourceControl(\n srcLookup: string,\n srcName: string\n ): Promise<Status> {\n if (\n confirm(\n `Are you sure you want to delete Source Control '${srcName}'?`\n )\n ) {\n const eac: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Environments: {},\n };\n\n eac.Environments[this.State.EaC.Enterprise.PrimaryEnvironment] = {\n Sources: {},\n };\n\n eac.Environments[\n this.State.EaC.Enterprise.PrimaryEnvironment\n ].Sources[srcLookup] = {};\n\n return await this.projectService.EnterpriseAsCodeRemovals(\n this.State,\n eac\n );\n }\n }\n\n // this.appsFlowEventsSvc.EnsureUserEnterpriseEvent.subscribe(async () => {\n // await this.projectService.EnsureUserEnterprise(this.State);\n // });\n\n public async EnsureUserEnterprise(): Promise<void> {\n await this.projectService.EnsureUserEnterprise(this.State);\n }\n\n public async EnterpriseAsCodeRemovals(\n eac: EnterpriseAsCode\n ): Promise<Status> {\n return this.projectService.EnterpriseAsCodeRemovals(this.State, eac);\n }\n\n public async GetActiveEnterprise(): Promise<void> {\n await this.projectService.GetActiveEnterprise(this.State);\n }\n\n public async LoadUserFeed(\n page: number,\n pageSize: number,\n forCheck: boolean = false\n ): Promise<void> {\n await this.projectService.LoadUserFeed(\n page,\n pageSize,\n forCheck,\n this.State\n );\n }\n\n public GenerateRoutedApplications(applications: {\n [lookup: string]: EaCApplicationAsCode;\n }): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n return this.projectService.GenerateRoutedApplications(\n applications,\n this.State\n );\n }\n\n public async HasValidConnection(): Promise<void> {\n await this.projectService.HasValidConnection(this.State);\n }\n\n public async ListEnterprises(): Promise<void> {\n await this.projectService.ListEnterprises(this.State);\n }\n\n public async LoadEnterpriseAsCode(): Promise<void> {\n await this.projectService.LoadEnterpriseAsCode(this.State);\n }\n\n public ReloadFeed() {\n if (this.State.FeedCheck) {\n this.State.Feed = this.State.FeedCheck.Items;\n\n this.State.FeedActions = this.State.FeedCheck.Actions;\n\n this.State.FeedSourceControlLookups =\n this.State.FeedCheck.SourceControlLookups;\n }\n\n this.State.FeedCheck = null;\n }\n\n public async SaveApplicationAsCode(\n req: SaveApplicationAsCodeEventRequest\n ): Promise<Status> {\n return await this.handleSaveApplication(req);\n }\n\n public async SaveDFSModifier(\n req: SaveDFSModifierEventRequest\n ): Promise<void> {\n await this.handleSaveDFSModifier(req);\n }\n\n public async SaveEnterpriseAsCode(eac: EnterpriseAsCode): Promise<Status> {\n return await this.projectService.SaveEnterpriseAsCode(this.State, eac);\n }\n\n public async SaveEnvironmentAsCode(\n req: SaveEnvironmentAsCodeEventRequest\n ): Promise<Status> {\n return await this.handleSaveEnvironment(req);\n }\n\n public async SaveProjectAsCode(\n req: SaveProjectAsCodeEventRequest\n ): Promise<Status> {\n return await this.handleSaveProject(req.ProjectLookup, req.Project);\n }\n\n public async SetActiveEnterprise(entLookup: any): Promise<void> {\n this.projectService.SetActiveEnterprise(this.State, entLookup);\n }\n\n public async SetCreatingProject(creatingProject: boolean): Promise<void> {\n this.projectService.SetCreatingProject(creatingProject);\n }\n\n public async SetEditProjectSettings(projectLookup: string): Promise<void> {\n await this.projectService.SetEditProjectSettings(\n this.State,\n projectLookup\n );\n }\n\n public async SubmitFeedEntry(entry: FeedEntry): Promise<Status> {\n return await this.projectService.SubmitFeedEntry(this.State, entry);\n }\n\n public async UnpackLowCodeUnit(\n req: UnpackLowCodeUnitRequest\n ): Promise<void> {\n if (\n confirm(\n `Are you sure you want to unpack application '${req.ApplicationName}' with version '${req.Version}'?`\n )\n ) {\n await this.projectService.UnpackLowCodeUnit(this.State, req);\n }\n }\n\n // Helpers\n protected async handleSaveApplication(\n req: SaveApplicationAsCodeEventRequest\n ): Promise<Status> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Applications: {},\n Projects: {},\n };\n\n if (req.ProjectLookup) {\n const existingProj = {\n [req.ProjectLookup]: {\n ApplicationLookups: [req.ApplicationLookup],\n },\n };\n\n saveEaC.Projects = existingProj;\n }\n\n if (req.Application) {\n saveEaC.Applications[req.ApplicationLookup] = req.Application;\n }\n\n return await this.projectService.SaveEnterpriseAsCode(\n this.State,\n saveEaC\n );\n }\n\n protected async handleSaveDFSModifier(\n req: SaveDFSModifierEventRequest\n ): Promise<void> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Modifiers: {},\n Projects: {},\n Applications: {},\n };\n\n if (req.Modifier) {\n saveEaC.Modifiers[req.ModifierLookups[0]] = req.Modifier;\n }\n\n if (req.ProjectLookups) {\n req.ProjectLookups.forEach((lookup) => {\n saveEaC.Projects[lookup] = {\n ModifierLookups: req.ModifierLookups,\n };\n });\n }\n\n if (req.ApplicationLookup) {\n console.log('APPLOokup: ', req.ApplicationLookup);\n console.log('saveEAC: ', saveEaC);\n saveEaC.Applications[req.ApplicationLookup] = {\n ModifierLookups: req.ModifierLookups,\n };\n }\n\n await this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);\n }\n\n protected async handleSaveEnvironment(\n req: SaveEnvironmentAsCodeEventRequest\n ): Promise<Status> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State?.EaC?.EnterpriseLookup,\n DataTokens: {},\n Environments: {},\n };\n\n if (req.Environment) {\n saveEaC.Environments[req.EnvironmentLookup] = req.Environment;\n }\n\n if (req.EnterpriseDataTokens) {\n saveEaC.DataTokens = req.EnterpriseDataTokens;\n }\n\n return await this.projectService.SaveEnterpriseAsCode(\n this.State,\n saveEaC\n );\n }\n\n protected async handleSaveProject(\n projectLookup: string,\n project: EaCProjectAsCode\n ): Promise<Status> {\n const projHosts: { [lookup: string]: EaCHost } = {};\n\n project?.Hosts?.forEach((host: any) => {\n projHosts[host] = this.State.EaC.Hosts[host];\n });\n\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Enterprise: {\n ...this.State.EaC.Enterprise,\n PrimaryHost: project.Hosts[0],\n },\n Hosts: projHosts,\n // Providers: this.State.EaC.Providers, // TODO: Remove after all providers ADB2C's have been upgraded\n Projects: {},\n };\n\n saveEaC.Projects[projectLookup] = project;\n\n let status = await this.projectService.SaveEnterpriseAsCode(\n this.State,\n saveEaC\n );\n\n this.SetEditProjectSettings(projectLookup);\n\n return status;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EaCService } from '../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-project-items',\n templateUrl: './project-items.component.html',\n styleUrls: ['./project-items.component.scss'],\n})\nexport class ProjectItemsComponent implements OnInit {\n // Fields\n\n // Properties\n public get ProjectLookups(): Array<string> {\n return Object.keys(this.Projects || {});\n }\n\n /**\n * List of projects\n */\n @Input('projects')\n public Projects: { [lookup: string]: EaCProjectAsCode };\n\n public PanelOpenState: boolean;\n\n @Input('selected-project-lookup')\n public SelectedProjectLookup: string;\n\n // Constructors\n constructor(protected eacSvc: EaCService) {}\n\n // Life Cycle\n public ngOnInit(): void {}\n\n // API Methods\n public DeleteProject(projectLookup: string, projectName: string): void {\n this.eacSvc.DeleteProject(projectLookup, projectName).then();\n }\n\n public GetPrimaryHost(project: EaCProjectAsCode): string {\n return project.Hosts[project.Hosts.length - 1];\n }\n\n /**\n *\n * @param project Current project object\n *\n * Event to edit project settings\n */\n public ProjectSettings(projectLookup: string): void {\n this.eacSvc.SetEditProjectSettings(projectLookup);\n }\n\n //HELPERS\n}\n","<div\n [fxLayout]=\"SelectedProjectLookup ? 'row' : 'row wrap'\"\n [fxLayout.lt-md]=\"SelectedProjectLookup ? 'row' : 'column'\"\n>\n <div class=\"no-projects\" fxFlex=\"100%\" *ngIf=\"ProjectLookups?.length <= 0\">\n <!-- <h1 class=\"spread mat-display-1\">No projects configured</h1> -->\n\n <h2 class=\"spread mat-headline\">\n Create your first project to get started\n </h2>\n </div>\n\n <!-- [fxFlex]=\"SelectedProjectLookup ? '350px' : '30%'\"\n fxFlex.lt-md=\"100%\" vv-->\n <div *ngFor=\"let projectLookup of ProjectLookups\" class=\"card-container\">\n <mat-card\n class=\"spread project-card\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between\"\n [class.selected-project]=\"projectLookup == SelectedProjectLookup\"\n *ngIf=\"Projects[projectLookup]; let project\"\n >\n <mat-card-header>\n <img mat-card-avatar=\"/assets/images/project-icon.png\" />\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"project.Project.Description\"\n >\n {{ project.Project.Name }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\">\n <span class=\"mat-body-2\">{{\n GetPrimaryHost(project)\n }}</span>\n </div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <a\n mat-icon-button\n href=\"https://{{ GetPrimaryHost(project) }}\"\n target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\">launch</mat-icon>\n </a>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"ProjectSettings(projectLookup)\"\n *ngIf=\"SelectedProjectLookup != projectLookup\"\n >\n <mat-icon matTooltip=\"Edit Project Settings\"\n >settings</mat-icon\n >\n </button>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"ProjectSettings(null)\"\n *ngIf=\"SelectedProjectLookup == projectLookup\"\n >\n <mat-icon matTooltip=\"Edit Project Settings\"\n >cancel</mat-icon\n >\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteProject(projectLookup, project.Project.Name)\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{ project.Project.Name }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EaCService } from './../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Guid, LCUServiceSettings } from '@lcu/common';\n\n@Component({\n selector: 'lcu-projects-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n})\nexport class HeaderComponent implements OnInit {\n // Fields\n\n // Properties\n @Input('creating-project')\n public CreatingProject: boolean;\n\n public get HasProjects(): boolean {\n return this.ProjectLookups && this.ProjectLookups.length > 0;\n }\n\n public ProjectFormGroup: FormGroup;\n\n public get ProjectLookups(): Array<string> {\n return Object.keys(this.Projects || {});\n }\n\n public get ProjectName(): AbstractControl {\n return this.ProjectFormGroup.get('name');\n }\n\n @Input('projects')\n public Projects: { [lookup: string]: EaCProjectAsCode };\n\n @Input('selected-project-lookup')\n public SelectedProjectLookup: string;\n\n // Constructors\n public constructor(\n protected formBuilder: FormBuilder,\n protected lcuSettings: LCUServiceSettings,\n protected eacSvc: EaCService\n ) {}\n\n // Life Cycle\n public ngOnInit(): void {\n this.ProjectFormGroup = this.formBuilder.group({\n name: ['', Validators.required],\n });\n }\n\n // API Methods\n public CreateProject(): void {\n const proj: EaCProjectAsCode = {\n Project: {\n Name: this.ProjectName?.value,\n },\n Hosts: [`${Guid.CreateRaw()}-shared.fathym-it.com`],\n ModifierLookups: ['html-base', 'lcu-reg'],\n RelyingParty: {\n AccessConfigurations: {\n fathym: {\n AccessRightLookups: [\n 'Fathym.Global.Admin',\n 'Fathym.User',\n ],\n ProviderLookups: ['ADB2C'],\n Usernames: [\n 'support@fathym.com',\n this.lcuSettings.User.Email,\n ],\n },\n },\n AccessRightLookups: ['Fathym.Global.Admin', 'Fathym.User'],\n DefaultAccessConfigurationLookup: 'fathym',\n TrustedProviderLookups: ['ADB2C'],\n },\n };\n\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: Guid.CreateRaw(),\n Project: proj,\n });\n }\n\n public EnableCreatingProject(): void {\n this.eacSvc.SetCreatingProject(true);\n }\n\n // Helpers\n}\n","<div\n [fxLayout]=\"HasProjects ? 'row' : 'column'\"\n fxLayout.lt-md=\"column\"\n fxLayoutAlign=\"center center\"\n>\n <div fxFlex=\"100%\" [class.has-selected]=\"SelectedProjectLookup\">\n <lcu-project-items\n [projects]=\"Projects\"\n [selected-project-lookup]=\"SelectedProjectLookup\"\n ></lcu-project-items>\n </div>\n <div fxFlex=\"250px\" fxFlex.lt-md=\"100%\">\n <div class=\"divider-fill-vert margin-y-4\"></div>\n\n <div class=\"extras\" [fxLayout]=\"HasProjects ? 'column' : 'row'\">\n <mat-card class=\"spread\" id=\"create-new-project-card\">\n <mat-card-header>\n <mat-card-title>Create New Project</mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <form\n [formGroup]=\"ProjectFormGroup\"\n (ngSubmit)=\"CreateProject()\"\n *ngIf=\"CreatingProject\"\n >\n <div class=\"margin-2\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n autofocus\n placeholder=\"Project Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <div>\n <button\n mat-fab\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!ProjectFormGroup.valid\"\n >\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </form>\n\n <div *ngIf=\"!CreatingProject\">\n <a\n mat-fab\n color=\"accent\"\n href=\"/dashboard/create-project\"\n class=\"margin-top-4 margin-bottom-2\"\n >\n <mat-icon>add</mat-icon>\n </a>\n\n <!-- <button\n mat-fab\n color=\"accent\"\n (click)=\"EnableCreatingProject()\"\n class=\"margin-top-4 margin-bottom-2\"\n >\n <mat-icon>add</mat-icon>\n </button> -->\n </div>\n </mat-card-content>\n </mat-card>\n\n <!-- <mat-card class=\"spread\">\n <mat-card-header>\n <mat-card-title>Documentation</mat-card-title>\n </mat-card-header>\n \n <mat-card-content>\n <a\n mat-fab\n color=\"accent\"\n href=\"/docs\"\n target=\"_blank\"\n class=\"margin-top-4 margin-bottom-2\"\n >\n <mat-icon>description</mat-icon>\n </a>\n </mat-card-content>\n </mat-card> -->\n </div>\n </div>\n</div>\n\n<!-- <div class=\"divider-fill-vert\" [fxHide.lt-md]=\"true\"></div> -->\n\n<!-- Builds -->\n<!-- <div\n id=\"builds\"\n fxFlex.gt-xs=\"25\"\n fxLayout=\"column\"\n class=\"padding-top-3\"\n [ngClass.lt-sm]=\"'margin-bottom-2'\"\n [ngClass.gt-xs]=\"'margin-right-2'\"\n >\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n class=\"title margin-bottom-4\"\n >\n <mat-icon class=\"margin-right-2\">gavel</mat-icon>\n <span>Builds</span>\n </div>\n\n <lcu-builds [projects]=\"Projects\"> </lcu-builds>\n </div> -->\n\n<!-- <div class=\"divider-fill-vert\" fxShow [fxHide.lt-md]=\"true\"></div> -->\n\n<!-- Recent Activities -->\n<!-- <div\n id=\"recent\"\n fxLayout=\"column\"\n fxFlex.gt-xs=\"25\"\n class=\"padding-top-3\"\n >\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n class=\"title margin-bottom-4\"\n >\n <mat-icon class=\"margin-right-2\">list</mat-icon>\n\n <span>Recent Activities</span>\n </div>\n </div> -->\n","import { FormActionsModel } from './form-actions.model';\n\nexport class CardFormConfigModel {\n /**\n * Form button actions\n */\n public FormActions?: FormActionsModel;\n\n /**\n * Card title icon\n */\n public Icon: string;\n\n /**\n * Card title\n */\n public Title: string;\n\n /**\n * Card subtitle\n */\n public Subtitle: string;\n\n constructor(opts: CardFormConfigModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { FormGroup } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { CardFormConfigModel } from '../../models/card-form-config.model';\nimport { FormActionsModel } from '../../models/form-actions.model';\n@Component({\n selector: 'lcu-form-card',\n templateUrl: './form-card.component.html',\n styleUrls: ['./form-card.component.scss'],\n})\nexport class FormCardComponent implements OnInit {\n /**\n * Values for building out the card\n */\n @Input('config')\n public Config: CardFormConfigModel;\n\n /**\n * Disable everything\n */\n @Input('disabled')\n public Disabled: boolean;\n\n @Input('is-dirty')\n public IsDirty: boolean;\n\n /**\n * Form\n */\n @Input('form')\n public Form: FormGroup;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div [ngClass]=\"Disabled ? 'form-disabled' : 'form-enabled'\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon color=\"accent\" class=\"title-icon\">\n {{ Config.Icon }}\n </mat-icon>\n </div>\n <mat-card-title class=\"paragraph-title\">\n {{ Config.Title }}\n </mat-card-title>\n <mat-card-subtitle class=\"plain-text\">\n {{ Config.Subtitle }}\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content fxFlexFill class=\"margin-top-3\">\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n </mat-card-content>\n <mat-card-actions>\n <div\n *ngIf=\"Config.FormActions && IsDirty\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <span class=\"mat-small caption-text\">{{\n Config.FormActions.Message\n }}</span>\n <div fxLayoutAlign=\"end center\">\n <div\n *ngFor=\"let action of Config.FormActions?.Actions\"\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n class=\"margin-right-1\"\n >\n <button\n [disabled]=\"\n Disabled ||\n (action.Type === 'SAVE' && Form.invalid)\n \"\n color=\"{{ action.Color }}\"\n mat-flat-button\n (click)=\"action.ClickEvent()\"\n >\n {{ action.Label }}\n </button>\n </div>\n </div>\n </div>\n </mat-card-actions>\n </mat-card>\n</div>\n","import { FormsService } from './../../../../../services/forms.service';\nimport { CardFormConfigModel } from './../../../../../models/card-form-config.model';\nimport { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCService } from '../../../../../services/eac.service';\nimport { EaCHost, EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n})\nexport class DomainsComponent implements OnInit {\n /**\n * Card / Form Config\n */\n public Config: CardFormConfigModel;\n\n /**\n * FormGroup\n */\n public Form: FormGroup;\n\n /**\n * Form name\n */\n protected formName: string;\n\n /**\n * When form is dirty, ties into formsService.DisableForms\n */\n public IsDirty: boolean;\n\n /**\n * Access form control for root directory\n */\n public get Domain(): AbstractControl {\n return this.Form.get('domain');\n }\n\n @Input('data')\n public Data: {\n Hosts: { [lookup: string]: EaCHost };\n PrimaryHost: string;\n Project: EaCProjectAsCode;\n ProjectLookup: string;\n };\n\n public get Host(): EaCHost {\n return this.Data?.Hosts[this.HostLookup];\n }\n\n public get HostLookup(): string {\n // let hostKeys = Object.keys(this.Data?.Hosts || {});\n\n // hostKeys = hostKeys.filter(hk => hk.indexOf('|') < 0);\n\n // return hostKeys[0];\n return this.PrimaryHost;\n }\n\n public get HostDNSInstance(): string {\n return this.Host ? this.Host?.HostDNSInstance : null;\n }\n\n public get PrimaryHost(): string {\n return this.Data.PrimaryHost;\n }\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project;\n }\n\n public get ProjectLookup(): string {\n return this.Data.ProjectLookup;\n }\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.formName = 'DomainForm';\n\n this.setupForm();\n\n this.config();\n }\n\n protected config(): void {\n this.Config = new CardFormConfigModel({\n Icon: 'head',\n Title: '',\n Subtitle:\n 'In order to use a custom domain, create a CNAME dns record pointing desired subdomain to ' +\n this.HostDNSInstance +\n '.',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Reset',\n Color: 'warn',\n ClickEvent: () => this.resetForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n\n protected setupForm(): void {\n this.Form = new FormGroup({\n domain: new FormControl(this.HostLookup || '', {\n validators: [Validators.required, Validators.minLength(3)],\n updateOn: 'change',\n }),\n });\n\n this.formsService.Form = { Id: this.formName, Form: this.Form };\n this.onChange();\n }\n\n protected onChange(): void {\n this.Form.valueChanges.subscribe((val: any) => {\n if (this.formsService.ForRealThough(this.formName, this.Form)) {\n this.IsDirty = true;\n // disable all forms except the current form being edited\n this.formsService.DisableForms(this.formName);\n } else {\n this.IsDirty = false;\n // enable all forms\n this.formsService.DisableForms(false);\n }\n });\n }\n\n /**\n * Reset form controls back to previous values\n */\n protected resetForm(): void {\n // enable all forms\n // this.formsService.DisableForms(false);\n\n this.formsService.ResetFormValues(this.formName);\n }\n\n /**\n * Save changes\n */\n protected save(): void {\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: this.ProjectLookup,\n Project: {\n ...this.Project,\n // Hosts: [...this.Project.Hosts, this.Domain.value],\n Hosts: [this.Domain.value],\n },\n });\n this.formsService.UpdateValuesReference({\n Id: this.formName,\n Form: this.Form,\n });\n }\n}\n","<form\n fxLayout=\"row\"\n fxLayout.lt-md=\"column\"\n class=\"padding-top-3\"\n [formGroup]=\"Form\"\n>\n <div>\n <lcu-form-card [config]=\"Config\" [form]=\"Form\" [is-dirty]=\"IsDirty\">\n <div fxLayout=\"column\">\n <div fxLayout=\"row\">\n <div fxFlex fxLayout=\"row\">\n <mat-form-field\n fxFlex\n appearance=\"fill\"\n class=\"margin-right-3\"\n >\n <mat-icon\n matSuffix\n [ngClass]=\"\n Domain.valid\n ? 'valid-control'\n : 'invalid-control'\n \"\n >\n {{\n Domain.valid\n ? \"check_circle\"\n : \"error_outline\"\n }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Domain.invalid || Domain.disabled ? '/' : ''\n \"\n formControlName=\"domain\"\n />\n\n <mat-hint>\n These domains are assigned to your deployments.\n Optionally, a different Git branch or a\n redirection to another domain can be configured\n for each one.\n </mat-hint>\n\n <mat-error *ngIf=\"Domain.hasError('required')\">\n Domain is required\n </mat-error>\n </mat-form-field>\n\n <button\n mat-icon-button\n [cdkCopyToClipboard]=\"HostDNSInstance\"\n matTooltip=\"Copy subdomain to clipboard\"\n >\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n <!-- <button mat-button color=\"accent\">Add</button> -->\n </div>\n </div>\n <!-- <div class=\"card-divider\"></div> -->\n </lcu-form-card>\n </div>\n</form>\n","export class DynamicTabsModel {\n /**\n * Component instance to add to the tab\n */\n public Component: any;\n\n /**\n * Component data\n */\n public Data?: any;\n\n /**\n * Icon to use next to tab label\n */\n public Icon?: string;\n\n /**\n * Tab label\n */\n public Label: string;\n\n constructor(opts: DynamicTabsModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { FormsService } from './../../../../../services/forms.service';\nimport {\n AfterContentChecked,\n ChangeDetectorRef,\n Component,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { LcuElementComponent, LCUElementContext } from '@lcu/common';\nimport { ApplicationsFlowService } from './../../../../../services/applications-flow.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\nexport class ApplicationsFlowProjectsElementState {}\n\nexport class ApplicationsFlowProjectsContext extends LCUElementContext<ApplicationsFlowProjectsElementState> {}\n\n@Component({\n selector: 'lcu-general',\n templateUrl: './general.component.html',\n styleUrls: ['./general.component.scss'],\n})\nexport class GeneralComponent\n extends LcuElementComponent<ApplicationsFlowProjectsContext>\n implements OnDestroy, OnInit, AfterContentChecked\n{\n @Input('data')\n public Data: { Project: EaCProjectAsCode; ProjectLookup: string };\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project;\n }\n\n public get ProjectLookup(): string {\n return this.Data.ProjectLookup;\n }\n\n constructor(\n protected injector: Injector,\n protected appsFlowSvc: ApplicationsFlowService,\n protected cd: ChangeDetectorRef,\n protected formsService: FormsService\n ) {\n super(injector);\n }\n\n // Life Cycle\n public ngOnDestroy(): void {}\n\n public ngOnInit(): void {}\n\n public ngAfterContentChecked(): void {\n this.cd.detectChanges();\n }\n}\n","<div fxLayout=\"row\" fxLayout.lt-md=\"column\">\n <div fxFlex=\"50\" fxLayout=\"column\" class=\"margin-right-3\">\n <!-- <lcu-project-details\n [project]=\"Project\"\n [project-lookup]=\"ProjectLookup\"\n class=\"margin-bottom-3\"\n ></lcu-project-details> -->\n\n <!-- <lcu-root-directory [project]=\"Project\"></lcu-root-directory> -->\n </div>\n\n <div fxFlex=\"50\">\n <!-- <lcu-settings [project]=\"Project\"></lcu-settings> -->\n <!-- <lcu-base-form-test></lcu-base-form-test> -->\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport {\n FormGroup,\n FormBuilder,\n Validators,\n AbstractControl,\n FormControl,\n} from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseResponse, BaseModeledResponse } from '@lcu/common';\nimport {\n GitHubBranch,\n GitHubOrganization,\n GitHubRepository,\n} from '../../../../../state/applications-flow.state';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\nimport { EaCSourceControl } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-source-control-form-controls',\n templateUrl: './source-control.component.html',\n styleUrls: ['./source-control.component.scss'],\n})\nexport class SourceControlFormControlsComponent\n implements AfterViewInit, OnDestroy, OnInit\n{\n // Fields\n\n // Properties\n public get BranchesFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'branches');\n }\n\n @Output('branches-changed')\n public BranchesChanged: EventEmitter<Array<string>>;\n\n @Input('branches-disabled')\n public BranchesDisabled: boolean;\n\n @ViewChild('branches')\n public BranchesInput: ElementRef<HTMLInputElement>;\n\n public BranchOptions: GitHubBranch[];\n\n @Input('build-path')\n public BuildPath: string;\n\n @Input('build-path-disabled')\n public BuildPathDisabled: boolean;\n\n public get BuildPathFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'buildPath');\n }\n\n public BuildPathOptions: string[];\n\n public CreatingRepository: boolean;\n\n @Input('form-group')\n public FormGroup: FormGroup;\n\n public Loading: boolean;\n\n public get MainBranchFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'mainBranch');\n }\n\n @Input('org-disabled')\n public OrganizationDisabled: boolean;\n\n public get OrganizationFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'organization');\n }\n\n public OrganizationOptions: GitHubOrganization[];\n\n public get RepositoryFormControl(): AbstractControl {\n return this.FormGroup.get(this.SourceControlRoot + 'repository');\n }\n\n @Input('repo-disabled')\n public RepositoryDisabled: boolean;\n\n public RepositoryOptions: GitHubRepository[];\n\n public SelectedBranches: string[];\n\n public readonly SeparatorKeysCodes = [ENTER, COMMA] as const;\n\n @Input('source-control')\n public SourceControl: EaCSourceControl;\n\n @Input('source-control-root')\n public SourceControlRoot: string;\n\n @Input('use-branches')\n public UseBranches: boolean;\n\n @Input('use-build-path')\n public UseBuildPath: boolean;\n\n // Constructors\n constructor(\n protected formBuilder: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService\n ) {\n this.BranchesChanged = new EventEmitter();\n\n this.SelectedBranches = [];\n\n this.SourceControl = {};\n\n this.SourceControlRoot = '';\n\n this.UseBranches = true;\n }\n\n // Life Cycle\n public ngAfterViewInit(): void {}\n\n public ngOnDestroy(): void {\n this.destroyFormControls();\n }\n\n public ngOnInit(): void {\n this.setupFormControls();\n\n this.RefreshOrganizations();\n }\n\n // API Methods\n public AddBranchOption(event: MatChipInputEvent): void {\n this.addBranchOption(event.value);\n\n event.input.value = '';\n }\n\n public BranchOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.addBranchOption(event.option.value);\n }\n\n public BuildPathChanged(event: MatSelectChange): void {}\n\n public CreateRepository(): void {\n this.CreatingRepository = true;\n\n this.RepositoryFormControl.reset();\n }\n\n public CancelCreateRepository(): void {\n this.CreatingRepository = false;\n }\n\n public MainBranchChanged(event: MatSelectChange): void {\n this.emitBranchesChanged();\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n const org = this.OrganizationFormControl;\n\n this.RepositoryFormControl.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n }\n\n this.listRepositories();\n }\n\n public RefreshOrganizations(): void {\n // this.Loading = true;\n this.listOrganizations();\n\n this.OrganizationFormControl?.reset();\n\n this.RepositoryFormControl?.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl?.reset();\n }\n }\n\n public RemoveBranchOption(option: string): void {\n const index = this.SelectedBranches.indexOf(option);\n\n if (index >= 0) {\n this.SelectedBranches.splice(index, 1);\n }\n\n this.emitBranchesChanged();\n }\n\n public RepositoryChanged(event: MatSelectChange): void {\n const repo = this.RepositoryFormControl;\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n\n this.listBranches();\n }\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }\n\n public SaveRepository(): void {\n this.Loading = true;\n\n const org = this.OrganizationFormControl.value;\n\n const repoName = this.RepositoryFormControl.value;\n\n this.appsFlowSvc\n .CreateRepository(org, repoName)\n .subscribe((response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.listRepositories(repoName);\n\n this.CreatingRepository = false;\n } else {\n // TODO: Need to surface an error to the user...\n\n this.Loading = false;\n }\n });\n }\n\n // Helpers\n protected addBranchOption(value: string): void {\n value = (value || '').trim();\n\n if (value && this.SelectedBranches.indexOf(value) < 0) {\n this.SelectedBranches.push(value);\n }\n\n this.BranchesInput.nativeElement.blur();\n\n this.emitBranchesChanged();\n }\n\n protected destroyFormControls(): void {\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'mainBranch'].join('')\n );\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'branches'].join('')\n );\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'buildPath'].join('')\n );\n\n this.SelectedBranches = [];\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'organization'].join('')\n );\n\n this.FormGroup.removeControl(\n [this.SourceControlRoot, 'repository'].join('')\n );\n }\n\n protected emitBranchesChanged(): void {\n if (\n this.SelectedBranches?.length > 0 &&\n (!this.MainBranchFormControl.value ||\n this.SelectedBranches.indexOf(\n this.MainBranchFormControl.value\n ) < 0)\n ) {\n this.MainBranchFormControl.setValue(\n this.SelectedBranches.find(\n (branch) => branch === 'main' || branch === 'master'\n ) || this.SelectedBranches[0]\n );\n } else if (this.SelectedBranches?.length <= 0) {\n this.MainBranchFormControl.reset();\n }\n\n this.BranchesFormControl.setValue(this.SelectedBranches.join(','));\n\n this.BranchesChanged.emit(this.SelectedBranches || []);\n }\n\n protected listBranches(): void {\n if (this.UseBranches) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBranches(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model;\n\n this.Loading = false;\n\n if (this.SourceControl?.Branches?.length > 0) {\n this.SelectedBranches = this.SourceControl.Branches;\n } else if (this.BranchOptions?.length === 1) {\n this.BranchesFormControl.setValue(\n this.BranchOptions[0].Name\n );\n\n this.SelectedBranches = [this.BranchOptions[0].Name];\n }\n\n this.emitBranchesChanged();\n\n this.listBuildPaths();\n });\n }\n }\n\n protected listBuildPaths(): void {\n if (this.UseBuildPath) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<string[]>) => {\n this.BuildPathOptions = response.Model;\n\n this.Loading = false;\n\n if (this.BuildPathOptions?.length === 1) {\n this.BuildPathFormControl.setValue(\n this.BuildPathOptions[0]\n );\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe(\n (response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n\n this.Loading = false;\n\n if (this.SourceControl?.Organization) {\n setTimeout(() => {\n this.OrganizationFormControl.setValue(\n this.SourceControl.Organization\n );\n\n this.listRepositories(\n this.SourceControl?.Repository\n );\n }, 0);\n }\n }\n );\n }\n\n protected listRepositories(activeRepo: string = null): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListRepositories(this.OrganizationFormControl.value)\n .subscribe((response: BaseModeledResponse<GitHubRepository[]>) => {\n this.RepositoryOptions = response.Model;\n\n this.Loading = false;\n\n if (activeRepo) {\n setTimeout(() => {\n this.RepositoryFormControl.setValue(activeRepo);\n\n this.listBranches();\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }, 0);\n } else if (this.RepositoryOptions?.length <= 0) {\n this.CreatingRepository = true;\n }\n });\n }\n\n protected setupFormControls(): void {\n this.destroyFormControls();\n\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'organization'].join(''),\n new FormControl(\n this.SourceControl.Organization ?? '',\n Validators.required\n )\n );\n\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'repository'].join(''),\n new FormControl(\n this.SourceControl.Repository ?? '',\n Validators.required\n )\n );\n\n if (this.UseBranches) {\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'branches'].join(''),\n new FormControl(\n this.SourceControl?.Branches ?? '',\n Validators.required\n )\n );\n\n this.SelectedBranches = this.SourceControl?.Branches;\n\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'mainBranch'].join(''),\n new FormControl(\n this.SourceControl.MainBranch ?? '',\n Validators.required\n )\n );\n }\n\n if (this.UseBuildPath) {\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'buildPath'].join(''),\n new FormControl(this.BuildPath ?? '', Validators.required)\n );\n }\n }\n}\n","<div [formGroup]=\"FormGroup\">\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 || OrganizationDisabled\"\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\n matSuffix\n (click)=\"RefreshOrganizations()\"\n matTooltip=\"Refresh Organization\"\n >\n refresh\n </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\n color=\"accent\"\n matTooltip=\"Re-authorize Organizations\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new\n 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 ||\n Loading ||\n RepositoryDisabled\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 || RepositoryDisabled\"\n required\n />\n\n <mat-icon\n matSuffix\n (click)=\"CreateRepository()\"\n [fxHide]=\"Loading || RepositoryDisabled\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\"\n >\n add_circle\n </mat-icon>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\"\n >\n <mat-icon matSuffix color=\"primary\"> save </mat-icon>\n </button>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\"\n >\n <mat-icon matSuffix> cancel </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 || BranchesDisabled\"\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 || BranchesDisabled\"\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()\">\n refresh\n </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new\n 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 &&\n !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n RepositoryFormControl?.valid &&\n !BranchesFormControl?.valid\n \"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid ||\n BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n</div>\n","import { Injectable, Injector } from '@angular/core';\nimport { DAFService, BaseModeledResponse, Pageable } from '@lcu/common';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { HttpClient, HttpBackend } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NPMService extends DAFService {\n // Properties\n\n // Constructors\n constructor(protected injector: Injector, handler: HttpBackend) {\n super(injector);\n\n this.http = new HttpClient(handler);\n }\n\n // API Methods\n public Search(\n search: string\n ): Observable<BaseModeledResponse<Pageable<any>>> {\n if (search) {\n return this.http\n .get(`https://api.npms.io/v2/search?q=${search}`)\n .pipe(\n this.catchError(),\n map((res: any) => {\n return <BaseModeledResponse<Pageable<any>>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n Model: {\n TotalRecords: res.total,\n Items: res.results,\n },\n };\n })\n );\n } else {\n return Observable.create((obs: any) => {\n obs.next(<BaseModeledResponse<Pageable<any>>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n });\n\n obs.complete();\n });\n }\n }\n\n public Versions(\n npmPkg: string\n ): Observable<BaseModeledResponse<Pageable<any>>> {\n if (npmPkg) {\n return this.http.get(`https://registry.npmjs.org/${npmPkg}`).pipe(\n this.catchError(),\n map((res: any) => {\n return <BaseModeledResponse<any>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n Model: res,\n };\n })\n );\n } else {\n return new Observable((obs: any) => {\n obs.next(<BaseModeledResponse<Pageable<any>>>{\n Status: {\n Code: 0,\n Message: 'Success',\n },\n });\n\n obs.complete();\n });\n }\n }\n\n // Helpers\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { debounceTime, map, switchMap } from 'rxjs/operators';\nimport { NPMService } from '../../../../../../services/npm.service';\n\n@Component({\n selector: 'lcu-npm-package-select',\n templateUrl: './npm-package-select.component.html',\n styleUrls: ['./npm-package-select.component.scss'],\n})\nexport class NpmPackageSelectComponent implements OnInit {\n // Fields\n\n // Properties\n @Input('npm-package')\n public NPMPackage: string;\n\n @Input('npm-package-version')\n public NPMPackageVersion: string;\n\n @Input('form-group')\n public FormGroup: FormGroup;\n\n public NPMPackages: { Name: string; NPMLink: string; Version: string }[];\n\n public NPMPackageVersions: string[];\n\n // Constructors\n constructor(protected npm: NPMService) {}\n\n // Life Cycle\n public ngOnDestroy(): void {\n this.FormGroup.removeControl('package');\n\n this.FormGroup.removeControl('version');\n }\n\n public ngOnInit(): void {\n this.FormGroup.addControl(\n 'package',\n new FormControl(this.NPMPackage || '', [Validators.required])\n );\n\n this.FormGroup.addControl(\n 'version',\n new FormControl(this.NPMPackageVersion || 'latest', [\n Validators.required,\n ])\n );\n\n this.FormGroup.controls.package.valueChanges\n .pipe(\n debounceTime(500),\n switchMap((value) =>\n this.npm.Search(value ? value.toString() : '')\n ),\n map((val) => {\n return val.Model\n ? val.Model.Items.map((i) => {\n return {\n Name: i.package.name,\n Version: i.package.version,\n NPMLink: i.package.links.npm,\n };\n })\n : [];\n })\n )\n .subscribe((packages) => {\n this.NPMPackages = packages;\n });\n }\n\n // API Methods\n public PackageSelected(event: MatAutocompleteSelectedEvent) {\n const pkg = this.NPMPackages.find((p) => p.Name === event.option.value);\n\n if (!this.FormGroup.controls.version.value) {\n this.FormGroup.controls.version.setValue(pkg.Version);\n\n this.npm.Versions(pkg.Name).subscribe((pkgDetails: any) => {\n const tags = Object.keys(pkgDetails['dist-tags']);\n\n const versions = Object.keys(pkgDetails['versions']);\n\n this.NPMPackageVersions = [...tags, ...versions];\n });\n }\n }\n\n // Helpers\n}\n","<div [formGroup]=\"FormGroup\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"NPM Package\"\n formControlName=\"package\"\n [matAutocomplete]=\"package\"\n required\n />\n\n <mat-autocomplete\n #package=\"matAutocomplete\"\n (optionSelected)=\"PackageSelected($event)\"\n >\n <ng-container *ngFor=\"let pkg of NPMPackages\">\n <mat-option [value]=\"pkg.Name\">\n <span>{{ pkg.Name }}</span> |\n\n <small>(latest: {{ pkg.Version }})</small>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-icon\n matSuffix\n mat-icon-button\n matTooltip=\"Enter the name of your NPM node package.\"\n >\n info_outline\n </mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Package Version\"\n formControlName=\"version\"\n [matAutocomplete]=\"version\"\n required\n />\n\n <mat-autocomplete #version=\"matAutocomplete\">\n <ng-container *ngFor=\"let version of NPMPackageVersions\">\n <mat-option [value]=\"version\">\n <span>{{ version }}</span>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <a\n mat-icon-button\n matSuffix\n matTooltip=\"Enter a Tag or current/previous version of your package. Using Tags allows for easy updates to unpack the latest version of that Tag. Click here to access the package version in NPM.\"\n [href]=\"\n 'https://www.npmjs.com/package/' +\n FormGroup.controls.package.value\n \"\n target=\"_blank\"\n id=\"npm-package-button\"\n >\n <mat-icon>info_outline</mat-icon>\n </a>\n </mat-form-field>\n</div>\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../../../../services/eac.service';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCProcessor,\n EaCProjectAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { SourceControlFormControlsComponent } from '../../forms/source-control/source-control.component';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\n\n@Component({\n selector: 'lcu-apps-flow',\n templateUrl: './apps-flow.component.html',\n styleUrls: ['./apps-flow.component.scss'],\n})\nexport class AppsFlowComponent implements OnInit {\n // Fields\n\n // Properties\n public get APIRootFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.apiRoot;\n }\n\n public ApplicationFormGroup: FormGroup;\n\n public get ApplicationIDFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.applicationId;\n }\n\n public get ApplicationLookups(): Array<string> {\n return Object.keys(this.Applications || {});\n }\n\n public get ApplicationRoutes(): Array<string> {\n return Object.keys(this.RoutedApplications || {});\n }\n\n public get ApplicationsBank(): { [lookup: string]: EaCApplicationAsCode } {\n return this.Data?.Applications || {};\n }\n\n public get Applications(): { [lookup: string]: EaCApplicationAsCode } {\n const apps: { [lookup: string]: EaCApplicationAsCode } = {};\n\n this.Project.ApplicationLookups.forEach((appLookup) => {\n apps[appLookup] = this.ApplicationsBank[appLookup];\n });\n return apps;\n }\n\n public get BuildFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.build;\n }\n\n public get ClientIDFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.clientId;\n }\n\n public get ClientSecretFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.clientSecret;\n }\n\n public CurrentApplicationRoute: string;\n\n public get CurrentRouteApplicationLookups(): Array<string> {\n return Object.keys(\n this.RoutedApplications[this.CurrentApplicationRoute] || {}\n );\n }\n\n @Input('data')\n public Data: {\n Applications: { [lookup: string]: EaCApplicationAsCode };\n Environment: EaCEnvironmentAsCode;\n PrimaryHost: string;\n Project: EaCProjectAsCode;\n ProjectLookup: string;\n };\n\n public get DefaultFileFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.defaultFile;\n }\n\n public get DefaultSourceControl(): EaCSourceControl {\n return {\n Organization: this.EditingApplication?.LowCodeUnit?.Organization,\n Repository: this.EditingApplication?.LowCodeUnit?.Repository,\n };\n }\n\n public get DescriptionFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.description;\n }\n\n public get EditingApplication(): EaCApplicationAsCode {\n let app = this.Applications\n ? this.Applications[this.EditingApplicationLookup]\n : null;\n\n if (app == null && this.EditingApplicationLookup) {\n app = {};\n }\n\n return app;\n }\n\n public EditingApplicationLookup: string;\n\n public get HasBuildFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.hasBuild;\n }\n\n public get InboundPathFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.inboundPath;\n }\n\n public get IsPrivateFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.isPrivate;\n }\n\n public get IsTriggerSignInFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.isTriggerSignIn;\n }\n\n public LCUType: string;\n\n public get MethodsFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.methods;\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.name;\n }\n\n public get PackageFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.package;\n }\n\n public IsPermanent: boolean;\n\n public IsPreserve: boolean;\n\n public redirectTooltip: string;\n\n public get PermanentFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.permanent;\n }\n\n public get PreserveMethodFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.preserveMethod;\n }\n\n public get PrimaryHost(): string {\n return this.Data.PrimaryHost;\n }\n\n public ProcessorType: string;\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project;\n }\n\n public get ProjectLookup(): string {\n return this.Data.ProjectLookup;\n }\n\n public get RedirectFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.redirect;\n }\n\n public get RoutedApplications(): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n const appLookups = Object.keys(this.Applications);\n\n const apps = appLookups.map(\n (appLookup) => this.Applications[appLookup]\n );\n\n let appRoutes =\n apps.map((app) => {\n return app?.LookupConfig?.PathRegex.replace('.*', '');\n }) || [];\n\n appRoutes = appRoutes.filter((ar) => ar != null);\n\n let routeBases: string[] = [];\n\n appRoutes.forEach((appRoute) => {\n const appRouteParts = appRoute.split('/');\n\n const appRouteBase = `/${appRouteParts[1]}`;\n\n if (routeBases.indexOf(appRouteBase) < 0) {\n routeBases.push(appRouteBase);\n }\n });\n\n let workingAppLookups = [...(appLookups || [])];\n\n routeBases = routeBases.sort((a, b) => b.localeCompare(a));\n\n const routeSet =\n routeBases.reduce((prevRouteMap, currentRouteBase) => {\n const routeMap = {\n ...prevRouteMap,\n };\n\n const filteredAppLookups = workingAppLookups.filter((wal) => {\n const wa = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(\n currentRouteBase\n );\n });\n\n routeMap[currentRouteBase] =\n filteredAppLookups.reduce((prevAppMap, appLookup) => {\n const appMap = {\n ...prevAppMap,\n };\n\n appMap[appLookup] = this.Applications[appLookup];\n\n return appMap;\n }, {}) || {};\n\n workingAppLookups = workingAppLookups.filter((wa) => {\n return filteredAppLookups.indexOf(wa) < 0;\n });\n\n return routeMap;\n }, {}) || {};\n\n let routeSetKeys = Object.keys(routeSet);\n\n routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));\n\n const routeSetResult = {};\n\n routeSetKeys.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));\n\n return routeSetResult;\n }\n\n public get RouteFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.route;\n }\n\n public get ScopesFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.scopes;\n }\n\n public get SecurityFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.security;\n }\n\n @ViewChild(SourceControlFormControlsComponent)\n public SourceControlFormControls: SourceControlFormControlsComponent;\n\n public get SourceControlLookupFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.sourceControlLookup;\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Data.Environment.Sources || {};\n }\n\n public get SPARootFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.spaRoot;\n }\n\n public get TokenLookupFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.tokenLookup;\n }\n\n public get VersionFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.version;\n }\n\n public get ZipFileFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.zipFile;\n }\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.EditingApplicationLookup = null;\n this.redirectTooltip = '';\n\n // this.IsPermanent = false;\n\n // this.IsPreserve = false;\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.ApplicationLookups?.length <= 0) {\n this.CreateNewApplication();\n }\n }\n\n // API Methods\n public CreateNewApplication(): void {\n this.SetEditingApplication(Guid.CreateRaw());\n }\n\n public DeleteApplication(appLookup: string, appName: string): void {\n this.eacSvc.DeleteApplication(appLookup, appName);\n }\n\n public LCUTypeChanged(event: MatSelectChange): void {\n this.LCUType = event.value;\n\n this.setupLcuTypeSubForm();\n }\n\n public ProcessorTypeChanged(event: MatSelectChange): void {\n this.ProcessorType = event.value;\n\n this.setupProcessorTypeSubForm();\n }\n\n public DetermineTooltipText() {\n let permanentValue = this.PermanentFormControl.value;\n let preserveValue = this.PreserveMethodFormControl.value;\n\n if (permanentValue === true && preserveValue === false) {\n this.redirectTooltip = '301 – Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === false) {\n this.redirectTooltip = '302 – Not Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === true) {\n this.redirectTooltip = '307 – Not Permanent and Preserve';\n } else if (permanentValue === true && preserveValue === true) {\n this.redirectTooltip = '308 – Permanent and Preserve';\n }\n }\n\n public GetProcessorType(appLookup: any): string {\n let processorType = '';\n processorType = this.Applications[appLookup].Processor.Type\n ? this.Applications[appLookup].Processor.Type\n : '';\n // console.log(\"Ptype = \", processorType);\n\n return processorType;\n }\n\n public EditApplicationRouteClicked(appRoute: any) {\n this.CurrentApplicationRoute = appRoute;\n }\n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = {\n Application: {\n Name: this.NameFormControl.value,\n Description: this.DescriptionFormControl.value,\n PriorityShift:\n this.EditingApplication?.Application?.PriorityShift || 0,\n },\n AccessRightLookups: [],\n DataTokens: {},\n LicenseConfigurationLookups: [],\n LookupConfig: {\n IsPrivate: this.IsPrivateFormControl.value,\n IsTriggerSignIn: this.IsPrivateFormControl.value\n ? this.IsTriggerSignInFormControl.value\n : false,\n PathRegex: `${this.RouteFormControl.value}.*`,\n QueryRegex:\n this.EditingApplication?.LookupConfig?.QueryRegex || '',\n HeaderRegex:\n this.EditingApplication?.LookupConfig?.HeaderRegex || '',\n AllowedMethods: this.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v),\n },\n Processor: {\n Type: this.ProcessorType,\n },\n };\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref =\n `${this.RouteFormControl.value}/`.replace('//', '/');\n\n app.Processor.DefaultFile =\n this.DefaultFileFormControl.value || 'index.html';\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHub':\n app.LowCodeUnit.Organization =\n this.SourceControlFormControls.OrganizationFormControl.value;\n\n app.LowCodeUnit.Repository =\n this.SourceControlFormControls.RepositoryFormControl.value;\n\n app.LowCodeUnit.Build = this.BuildFormControl.value;\n\n app.LowCodeUnit.Path =\n this.SourceControlFormControls.BuildPathFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package = this.PackageFormControl.value;\n\n app.LowCodeUnit.Version = this.VersionFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile = this.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes = this.ScopesFormControl.value.split(' ');\n\n app.Processor.TokenLookup = this.TokenLookupFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHubOAuth':\n app.LowCodeUnit.ClientID =\n this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret =\n this.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath = this.InboundPathFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'API':\n app.LowCodeUnit.APIRoot = this.APIRootFormControl.value;\n\n app.LowCodeUnit.Security =\n this.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot = this.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.Permanent = !!this.PermanentFormControl.value;\n\n app.Processor.PreserveMethod =\n !!this.PreserveMethodFormControl.value;\n\n app.Processor.Redirect = this.RedirectFormControl.value;\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Application: app,\n ApplicationLookup:\n this.EditingApplicationLookup || Guid.CreateRaw(),\n };\n\n if (\n this.HasBuildFormControl.value &&\n this.ProcessorType !== 'redirect'\n ) {\n if (app) {\n app.LowCodeUnit.SourceControlLookup =\n this.SourceControlLookupFormControl.value;\n }\n } else if (app) {\n app.LowCodeUnit.SourceControlLookup = null;\n }\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq);\n }\n\n public SetEditingApplication(appLookup: string): void {\n this.EditingApplicationLookup = appLookup;\n\n this.setupApplicationForm();\n }\n\n public SourceControlLookupChanged(event: MatSelectChange): void {\n // TODO: Anything to do here on change?\n }\n\n public StartsWith(\n app: EaCApplicationAsCode,\n appRouteBase: string\n ): boolean {\n if (appRouteBase === '/') {\n return app?.LookupConfig?.PathRegex === '/.*';\n } else {\n return app?.LookupConfig?.PathRegex.startsWith(appRouteBase);\n }\n }\n\n public Unpack(appLookup: string, app: EaCApplicationAsCode): void {\n this.eacSvc.UnpackLowCodeUnit({\n ApplicationLookup: appLookup,\n ApplicationName: app.Application?.Name,\n Version: app.LowCodeUnit?.Version || app.LowCodeUnit?.Build,\n });\n }\n\n // Helpers\n protected cleanupLcuTypeSubForm(): void {\n this.ApplicationFormGroup.removeControl('methods');\n this.ApplicationFormGroup.removeControl('apiRoot');\n this.ApplicationFormGroup.removeControl('security');\n\n this.ApplicationFormGroup.removeControl('spaRoot');\n\n this.ApplicationFormGroup.removeControl('applicationId');\n\n this.ApplicationFormGroup.removeControl('build');\n\n this.ApplicationFormGroup.removeControl('clientId');\n this.ApplicationFormGroup.removeControl('clientSecret');\n\n this.ApplicationFormGroup.removeControl('zipFile');\n }\n\n protected cleanupProcessorTypeSubForm(): void {\n this.ApplicationFormGroup.removeControl('defaultFile');\n this.ApplicationFormGroup.removeControl('dfsLcuType');\n\n this.ApplicationFormGroup.removeControl('oauthLcuType');\n this.ApplicationFormGroup.removeControl('scopes');\n this.ApplicationFormGroup.removeControl('tokenLookup');\n\n this.ApplicationFormGroup.removeControl('inboundPath');\n this.ApplicationFormGroup.removeControl('proxyLcuType');\n\n this.ApplicationFormGroup.removeControl('redirect');\n this.ApplicationFormGroup.removeControl('permanent');\n this.ApplicationFormGroup.removeControl('preserveMethod');\n\n this.cleanupLcuTypeSubForm();\n }\n\n protected setupApplicationForm(): void {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n console.log('ProcessorType = ', this.ProcessorType);\n\n if (this.EditingApplication != null) {\n this.ApplicationFormGroup = this.formBldr.group({\n name: [\n this.EditingApplication.Application?.Name,\n Validators.required,\n ],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [\n this.EditingApplication.LookupConfig?.PathRegex.replace(\n '.*',\n ''\n ) || '/',\n Validators.required,\n ],\n // priority: [\n // this.EditingApplication.Application?.Priority || 10000,\n // Validators.required,\n // ],\n procType: [this.ProcessorType, [Validators.required]],\n });\n\n this.setupBuildForm();\n\n this.setupSecurityForm();\n\n this.setupProcessorTypeSubForm();\n }\n }\n\n protected setupBuildForm(): void {\n this.ApplicationFormGroup.addControl(\n 'hasBuild',\n this.formBldr.control(\n !!this.EditingApplication.LowCodeUnit?.SourceControlLookup ||\n false,\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'sourceControlLookup',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SourceControlLookup || '',\n []\n )\n );\n }\n\n protected setupDfsForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ApplicationFormGroup.addControl(\n 'defaultFile',\n this.formBldr.control(\n this.EditingApplication.Processor?.DefaultFile || 'index.html',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupLCUAPIForm(): void {\n this.ApplicationFormGroup.addControl(\n 'methods',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.AllowedMethods?.join(\n ' '\n ) || '',\n []\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'apiRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.APIRoot || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'security',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Security || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUApplicationPointerForm(): void {\n this.ApplicationFormGroup.addControl(\n 'applicationId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ApplicationID || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUGitHubForm(): void {\n this.ApplicationFormGroup.addControl(\n 'build',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Build || 'latest',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUGitHubOAuthForm(): void {\n this.ApplicationFormGroup.addControl(\n 'clientId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientID || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'clientSecret',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientSecret || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUNPMForm(): void {\n // this.ApplicationFormGroup.addControl(\n // 'package',\n // this.formBldr.control(\n // this.EditingApplication.LowCodeUnit?.Package || '',\n // [Validators.required]\n // )\n // );\n // this.ApplicationFormGroup.addControl(\n // 'version',\n // this.formBldr.control(\n // this.EditingApplication.LowCodeUnit?.Version || '',\n // [Validators.required]\n // )\n // );\n }\n\n protected setupLCUSPAForm(): void {\n this.ApplicationFormGroup.addControl(\n 'spaRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SPARoot || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUZipForm(): void {\n this.ApplicationFormGroup.addControl(\n 'zipFile',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ZipFile || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLcuTypeSubForm(): void {\n this.cleanupLcuTypeSubForm();\n\n // this.ApplicationFormGroup.removeControl('package');\n // this.ApplicationFormGroup.removeControl('version');\n\n if (this.LCUType) {\n switch (this.LCUType) {\n case 'API':\n this.setupLCUAPIForm();\n break;\n\n case 'ApplicationPointer':\n this.setupLCUApplicationPointerForm();\n break;\n\n case 'GitHub':\n this.setupLCUGitHubForm();\n break;\n\n case 'GitHubOAuth':\n this.setupLCUGitHubOAuthForm();\n break;\n\n case 'NPM':\n this.setupLCUNPMForm();\n break;\n\n case 'SPA':\n this.setupLCUSPAForm();\n break;\n\n case 'Zip':\n this.setupLCUZipForm();\n break;\n }\n }\n }\n\n protected setupOAuthForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ApplicationFormGroup.addControl(\n 'scopes',\n this.formBldr.control(\n this.EditingApplication.Processor?.Scopes?.Join(' ') || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'tokenLookup',\n this.formBldr.control(\n this.EditingApplication.Processor?.TokenLookup || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupProxyForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ApplicationFormGroup.addControl(\n 'inboundPath',\n this.formBldr.control(\n this.EditingApplication.Processor?.InboundPath || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupProcessorTypeSubForm(): void {\n this.cleanupProcessorTypeSubForm();\n\n if (this.ProcessorType) {\n switch (this.ProcessorType) {\n case 'DFS':\n this.setupDfsForm();\n break;\n\n case 'OAuth':\n this.setupOAuthForm();\n break;\n\n case 'Proxy':\n this.setupProxyForm();\n break;\n\n case 'Redirect':\n this.setupRedirectForm();\n break;\n }\n }\n\n this.setupLcuTypeSubForm();\n }\n\n protected setupRedirectForm(): void {\n this.ApplicationFormGroup.addControl(\n 'redirect',\n this.formBldr.control(\n this.EditingApplication.Processor?.Redirect || '',\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'permanent',\n this.formBldr.control(\n this.EditingApplication.Processor?.Permanent || false,\n []\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'preserveMethod',\n this.formBldr.control(\n this.EditingApplication.Processor?.PreserveMethod || false,\n []\n )\n );\n this.DetermineTooltipText();\n }\n\n protected setupSecurityForm(): void {\n this.ApplicationFormGroup.addControl(\n 'isPrivate',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsPrivate || false,\n [Validators.required]\n )\n );\n\n this.ApplicationFormGroup.addControl(\n 'isTriggerSignIn',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsTriggerSignIn || false,\n [Validators.required]\n )\n );\n }\n}\n","<div>\n <div *ngIf=\"EditingApplication?.Application\">\n <h2>\n <button\n mat-icon-button\n matTooltip=\"Back to Routes\"\n (click)=\"SetEditingApplication(null)\"\n >\n <mat-icon>arrow_back</mat-icon>\n </button>\n\n {{ CurrentApplicationRoute }} /\n {{ EditingApplication.Application?.Name }}\n </h2>\n </div>\n <form\n [formGroup]=\"ApplicationFormGroup\"\n (ngSubmit)=\"SaveApplication()\"\n *ngIf=\"EditingApplication\"\n >\n <div\n fxLayout=\"row wrap\"\n fxLayoutAlign=\"center start\"\n fxLayout.lt-md=\"column\"\n >\n <div class=\"form-card\" fxFlex=\"70%\" fxFlex.lt-md=\"100%\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title>\n <ng-container\n *ngIf=\"EditingApplication?.Application\"\n >\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container\n *ngIf=\"!EditingApplication?.Application\"\n >\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"form-card\" fxFlex=\"35%\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\"\n >View Package</mat-option\n >\n\n <mat-option value=\"Redirect\"\n >Redirect</mat-option\n >\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"\n LCUTypeChanged($event)\n \"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\"\n >GitHub</mat-option\n >\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"\n EditingApplication?.LowCodeUnit\n ?.Path\n \"\n [form-group]=\"ApplicationFormGroup\"\n [source-control]=\"\n DefaultSourceControl\n \"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls\n ?.RepositoryFormControl\n ?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{\n EditingApplication\n ?.LowCodeUnit\n ?.CurrentBuild\n }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"\n EditingApplication?.LowCodeUnit\n ?.Package\n \"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit\n ?.Version\n \"\n [form-group]=\"ApplicationFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{\n EditingApplication?.LowCodeUnit\n ?.CurrentVersion\n }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"\n LCUTypeChanged($event)\n \"\n required\n >\n <mat-option value=\"GitHubOAuth\"\n >GitHub</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"\n LCUTypeChanged($event)\n \"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\"\n >Single Page Application</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"permanent\"\n >\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip=\"{{ redirectTooltip }}\"\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 – Not Permanent and Not Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"307 – Not Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"308 – Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Values used to control the redirect type. Permanent and Not Preserve = 301; Not Permanent and Not Preserve = 302; Permanent and Preserve = 308; Not Permanent and Not Preserve = 307;\"\n >\n info_outline\n </mat-icon> -->\n </div>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"form-card\" fxFlex=\"35%\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle\n formControlName=\"isTriggerSignIn\"\n >\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card\n class=\"spread flow-card\"\n *ngIf=\"ProcessorType != 'Redirect'\"\n >\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 &&\n SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"\n SourceControlLookupChanged($event)\n \"\n [disabled]=\"\n SourceControlFormControls?.Loading ||\n HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"\n let srcCtrlLookup of SourceControlLookups\n \"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"\n SourceControls[srcCtrlLookup];\n let srcCtrl\n \"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls\n ?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls\n ?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>\n Organization and Repository pulled from\n build settings\n </p>\n\n <mat-hint>\n CurrentBuild:\n {{\n EditingApplication?.LowCodeUnit\n ?.CurrentBuild\n }}\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\n tab above.\n </h3>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SetEditingApplication(null)\"\n >\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"\n !ApplicationFormGroup.valid || !ApplicationFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon> Save Application\n </button>\n\n <div fxFlex></div>\n </div>\n </form>\n\n <div class=\"spread\" *ngIf=\"!EditingApplication\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewApplication()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\" *ngIf=\"!CurrentApplicationRoute\">\n <div *ngIf=\"ApplicationRoutes?.length <= 0\">\n <h2>No applications created, create your first application.</h2>\n </div>\n\n <div *ngIf=\"ApplicationRoutes?.length > 0\">\n <h2>Project Routes</h2>\n\n <div\n fxLayout=\"row wrap\"\n fxLayout.lt-md=\"column\"\n *ngIf=\"ApplicationRoutes\"\n >\n <div\n fxFlex=\"20%\"\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let appRoute of ApplicationRoutes\"\n >\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"appRoute\"\n >\n {{ appRoute }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <a\n mat-icon-button\n href=\"https://{{ PrimaryHost }}{{\n appRoute\n }}\"\n target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\"\n >launch</mat-icon\n >\n </a>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"\n EditApplicationRouteClicked(\n appRoute\n )\n \"\n >\n <mat-icon\n matTooltip=\"Edit Application Route\"\n >\n settings\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"CurrentApplicationRoute\">\n <h2>\n <button\n mat-icon-button\n matTooltip=\"Back to Routes\"\n (click)=\"CurrentApplicationRoute = null\"\n >\n <mat-icon>arrow_back</mat-icon>\n </button>\n\n {{ CurrentApplicationRoute }} Routes\n </h2>\n\n <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <ng-container\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n >\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngIf=\"\n RoutedApplications[CurrentApplicationRoute][\n appLookup\n ];\n let app\n \"\n >\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"app.Application.Description\"\n >\n {{ app.Application.Name }}\n </mat-card-title>\n\n <mat-card-subtitle\n class=\"mat-subheading-1\"\n [matTooltip]=\"\n app.LowCodeUnit?.CurrentVersion ||\n app.LowCodeUnit?.CurrentBuild\n \"\n >\n @{{\n app.LowCodeUnit?.CurrentVersion ||\n app.LowCodeUnit?.CurrentBuild ||\n app.Processor?.Redirect ||\n \"No version deployed\"\n }}\n </mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <a\n mat-icon-button\n href=\"https://{{ PrimaryHost }}{{\n app.LookupConfig.PathRegex.replace(\n '.*',\n ''\n )\n }}\"\n target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\"\n >launch</mat-icon\n >\n </a>\n\n <a\n *ngIf=\"\n GetProcessorType(appLookup) ===\n 'DFS'\n \"\n mat-icon-button\n (click)=\"Unpack(appLookup, app)\"\n target=\"_blank\"\n matTooltip=\"Unpack {{\n app.LowCodeUnit?.Version ||\n app.LowCodeUnit?.Build\n }}\"\n >\n <mat-icon>cloud_upload</mat-icon>\n </a>\n\n <button\n mat-icon-button\n (click)=\"\n SetEditingApplication(appLookup)\n \"\n >\n <mat-icon matTooltip=\"Edit Application\">\n edit\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteApplication(\n appLookup,\n app.Application.Name\n )\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{\n app.Application.Name\n }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button\n mat-icon-button\n disabled\n *ngIf=\"\n GetProcessorType(appLookup) ===\n 'DFS'\n \"\n >\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCDevOpsAction, EaCArtifact } from '@semanticjs/common';\nimport {\n ProjectHostingDetails,\n ProjectHostingOption,\n} from '../../../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-hosting-details-form-group',\n templateUrl: './hosting-details-form-group.component.html',\n styleUrls: ['./hosting-details-form-group.component.scss'],\n})\nexport class HostingDetailsFormGroupComponent implements OnChanges, OnInit {\n // Fields\n\n // Properties\n @Input('artifact')\n public Artifact: EaCArtifact;\n\n @Input('build-pipeline')\n public BuildPipeline: string;\n\n public get BuildPipelineFormControl(): AbstractControl {\n return this.FormGroup.get('buildPipeline');\n }\n\n @Input('details')\n public Details: ProjectHostingDetails;\n\n @Input('devops-action')\n public DevOpsAction: EaCDevOpsAction;\n\n public get DevOpsActionNameFormControl(): AbstractControl {\n return this.FormGroup.get('devOpsActionName');\n }\n\n @Input('disabled')\n public Disabled: boolean;\n\n public get FormGroup(): FormGroup {\n return this.ParentFormGroup.get('hostingDetails') as FormGroup;\n }\n\n public get NPMTokenFormControl(): AbstractControl {\n return this.FormGroup.get('npmToken');\n }\n\n @Input('organization')\n public Organization: string;\n\n @Input('formGroup')\n public ParentFormGroup: FormGroup;\n\n public get SelectedHostingOption(): ProjectHostingOption {\n return this.Details?.HostingOptions?.find(\n (ho) => ho.Lookup === this.BuildPipeline\n );\n }\n\n public get SelectedHostingOptionInputControlValues(): {\n [lookup: string]: any;\n } {\n return this.SelectedHostingOption?.Inputs?.reduce((prev, cur) => {\n const res = {\n ...prev,\n };\n\n res[cur.Lookup] = this.FormGroup.controls[cur.Lookup].value;\n\n return res;\n }, {});\n }\n\n // Constructors\n constructor(protected formBuilder: FormBuilder) {}\n\n // Life Cycle\n public ngOnChanges(): void {}\n\n public ngOnInit(): void {\n this.BuildPipeline =\n this.BuildPipeline || this.Details?.HostingOptions\n ? this.Details?.HostingOptions[0]?.Lookup\n : '';\n\n if (this.FormGroup != null) {\n this.ParentFormGroup.removeControl('hostingDetails');\n }\n\n this.ParentFormGroup.addControl(\n 'hostingDetails',\n this.formBuilder.group({\n buildPipeline: [this.BuildPipeline, [Validators.required]],\n })\n );\n\n this.setupControlsForForm();\n }\n\n // API Methods\n public BuildPipelineChanged(): void {\n this.BuildPipeline = this.BuildPipelineFormControl.value;\n\n this.setupControlsForForm();\n }\n\n // Helpers\n protected setupControlsForForm(): void {\n for (const ctrlName in this.FormGroup.controls) {\n if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {\n this.FormGroup.removeControl(ctrlName);\n }\n }\n\n this.FormGroup.addControl(\n 'devOpsActionName',\n this.formBuilder.control(\n this.DevOpsAction?.Name ||\n this.SelectedHostingOption?.Name ||\n '',\n [Validators.required]\n )\n );\n\n this.SelectedHostingOption?.Inputs?.forEach((input) => {\n const validators = input.Required ? [Validators.required] : [];\n\n this.FormGroup.addControl(\n input.Lookup,\n this.formBuilder.control(\n this.Artifact[input.Lookup] || input.DefaultValue || '',\n validators\n )\n );\n\n // if (this.Disabled) {\n // this.FormGroup.controls[input.Lookup].disable();\n // }\n });\n\n if (this.BuildPipelineFormControl.value === 'npm-release') {\n if (!this.FormGroup.controls.npmToken) {\n this.FormGroup.addControl(\n 'npmToken',\n this.formBuilder.control(\n '',\n this.Disabled ? [] : [Validators.required]\n )\n );\n\n if (this.Disabled) {\n this.FormGroup.controls.npmToken.disable();\n }\n }\n } else if (\n this.BuildPipelineFormControl.value === 'github-artifacts-release'\n ) {\n if (this.FormGroup.controls.npmToken) {\n this.FormGroup.removeControl('npmToken');\n }\n }\n }\n}\n","<div [formGroup]=\"FormGroup\" *ngIf=\"!Details?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"\n let hostOption of Details?.HostingOptions;\n let i = index\n \"\n >\n <mat-option [value]=\"hostOption?.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n <ng-container *ngFor=\"let hostOption of Details?.HostingOptions\">\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n\n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n\n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n\n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n\n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access Token\n (PAT) with publish access to the organization used for your NPM\n packages. Learn how to create and view access tokens\n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n</div>\n\n<div *ngIf=\"Details?.Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\">Loading hosting details</h4>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\nimport {\n EaCService,\n SaveEnvironmentAsCodeEventRequest,\n} from '../../../../../services/eac.service';\nimport {\n EaCArtifact,\n EaCDevOpsAction,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { BaseModeledResponse, Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { SourceControlFormControlsComponent } from '../../forms/source-control/source-control.component';\nimport { ProjectHostingDetails } from '../../../../../state/applications-flow.state';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\nimport { HostingDetailsFormGroupComponent } from '../../hosting-details-form-group/hosting-details-form-group.component';\n\n@Component({\n selector: 'lcu-devops',\n templateUrl: './devops.component.html',\n styleUrls: ['./devops.component.scss'],\n})\nexport class DevOpsComponent implements OnInit {\n // Fields\n\n // Properties\n public DevOpsFormGroup: FormGroup;\n\n public get Artifact(): EaCArtifact {\n return this.Data.Environment.Artifacts && this.ArtifactLookup\n ? this.Data.Environment.Artifacts[this.ArtifactLookup] || {}\n : {};\n }\n\n public get ArtifactLookup(): string {\n const artLookup = this.DevOpsAction?.ArtifactLookups\n ? this.DevOpsAction?.ArtifactLookups[0]\n : null;\n\n return artLookup;\n }\n\n @Input('data')\n public Data: {\n Environment: EaCEnvironmentAsCode;\n EnvironmentLookup: string;\n };\n\n public get DefaultFileFormControl(): AbstractControl {\n return this.DevOpsFormGroup?.controls.defaultFile;\n }\n\n public get DevOpsAction(): EaCDevOpsAction {\n return this.Data.Environment.DevOpsActions && this.DevOpsActionLookup\n ? this.Data.Environment.DevOpsActions[this.DevOpsActionLookup] || {}\n : {};\n }\n\n public get DevOpsActionLookup(): string {\n if (!!this.DevOpsActionLookupFormControl?.value) {\n return this.DevOpsActionLookupFormControl.value;\n }\n\n if (!!this.EditingSourceControl?.DevOpsActionTriggerLookups) {\n return this.EditingSourceControl?.DevOpsActionTriggerLookups[0];\n } else {\n return null;\n }\n }\n\n public get DevOpsActionLookups(): Array<string> {\n return Object.keys(this.DevOpsActions || {});\n }\n\n public get DevOpsActionLookupFormControl(): AbstractControl {\n return this.DevOpsFormGroup.get('devOpsActionLookup');\n }\n\n public get DevOpsActions(): { [lookup: string]: EaCDevOpsAction } {\n return this.Data.Environment.DevOpsActions || {};\n }\n\n public get EditingSourceControl(): EaCSourceControl {\n let sc = this.Data?.Environment?.Sources\n ? this.Data?.Environment?.Sources[this.EditingSourceControlLookup]\n : null;\n\n if (sc == null && this.EditingSourceControlLookup) {\n sc = {};\n }\n\n return sc;\n }\n\n public EditingSourceControlLookup: string;\n\n public HostingDetails: ProjectHostingDetails;\n\n @ViewChild(HostingDetailsFormGroupComponent)\n public HostingDetailsFormControls: HostingDetailsFormGroupComponent;\n\n @ViewChild(SourceControlFormControlsComponent)\n public SourceControlFormControls: SourceControlFormControlsComponent;\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Data.Environment.Sources || {};\n }\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.EditingSourceControlLookup = null;\n\n this.HostingDetails = new ProjectHostingDetails();\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.SourceControlLookups?.length <= 0) {\n this.CreateNewSourceControl();\n }\n }\n\n // API Methods\n public BranchesChanged(branches: string[]): void {\n this.loadProjectHostingDetails();\n }\n\n public CreateNewSourceControl(): void {\n this.SetEditingSourceControl(Guid.CreateRaw());\n }\n\n public DeleteSourceControl(scLookup: string): void {\n // if (\n // confirm(`Are you sure you want to delete source control '${scLookup}'?`)\n // ) {\n // this.eacSvc.DeleteSourceControl(scLookup);\n // }\n }\n\n public DevOpsActionLookupChanged(event: MatSelectChange): void {\n this.configureDevOpsAction();\n }\n\n public SaveEnvironment(): void {\n const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {\n Environment: {\n ...this.Data.Environment,\n Artifacts: this.Data.Environment.Artifacts || {},\n DevOpsActions: this.Data.Environment.DevOpsActions || {},\n Secrets: this.Data.Environment.Secrets || {},\n Sources: this.Data.Environment.Sources || {},\n },\n EnvironmentLookup: this.Data.EnvironmentLookup,\n EnterpriseDataTokens: {},\n };\n\n let artifactLookup: string;\n\n let artifact: EaCArtifact = {\n ...this.Artifact,\n ...this.HostingDetailsFormControls\n .SelectedHostingOptionInputControlValues,\n };\n\n if (!this.ArtifactLookup) {\n artifactLookup = Guid.CreateRaw();\n\n artifact = {\n ...artifact,\n Type: this.HostingDetailsFormControls.SelectedHostingOption\n .ArtifactType,\n Name: this.HostingDetailsFormControls.SelectedHostingOption\n .Name,\n NPMRegistry: 'https://registry.npmjs.org/',\n };\n } else {\n artifactLookup = this.ArtifactLookup;\n }\n\n saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;\n\n let devOpsActionLookup: string;\n\n if (!this.DevOpsActionLookup) {\n devOpsActionLookup = Guid.CreateRaw();\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n ArtifactLookups: [artifactLookup],\n Name: this.HostingDetailsFormControls\n .DevOpsActionNameFormControl.value,\n Path: this.HostingDetailsFormControls.SelectedHostingOption\n .Path,\n Templates:\n this.HostingDetailsFormControls.SelectedHostingOption\n .Templates,\n };\n\n if (this.HostingDetailsFormControls.NPMTokenFormControl?.value) {\n const secretLookup = 'npm-access-token';\n\n doa.SecretLookups = [secretLookup];\n\n saveEnvReq.Environment.Secrets[secretLookup] = {\n Name: 'NPM Access Token',\n DataTokenLookup: secretLookup,\n KnownAs: 'NPM_TOKEN',\n };\n\n saveEnvReq.EnterpriseDataTokens[secretLookup] = {\n Name: saveEnvReq.Environment.Secrets[secretLookup].Name,\n Description:\n saveEnvReq.Environment.Secrets[secretLookup].Name,\n Value: this.HostingDetailsFormControls.NPMTokenFormControl\n .value,\n };\n }\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n } else {\n devOpsActionLookup = this.DevOpsActionLookupFormControl.value;\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n Name: this.HostingDetailsFormControls\n .DevOpsActionNameFormControl.value,\n };\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n }\n\n let source: EaCSourceControl = {\n ...this.EditingSourceControl,\n Branches: this.SourceControlFormControls.SelectedBranches,\n MainBranch:\n this.SourceControlFormControls.MainBranchFormControl.value,\n };\n\n source = {\n ...source,\n Type: 'GitHub',\n Name: this.EditingSourceControlLookup,\n DevOpsActionTriggerLookups: [devOpsActionLookup],\n Organization:\n this.SourceControlFormControls.OrganizationFormControl.value,\n Repository:\n this.SourceControlFormControls.RepositoryFormControl.value,\n };\n\n const scLookup = `github://${source.Organization}/${source.Repository}`;\n\n saveEnvReq.Environment.Sources[scLookup] = source;\n\n this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);\n }\n\n public SetEditingSourceControl(scLookup: string): void {\n this.EditingSourceControlLookup = scLookup;\n\n this.setupDevOpsForm();\n }\n\n // Helpers\n protected configureDevOpsAction(): void {\n setTimeout(() => {\n this.DevOpsActionLookupFormControl.setValue(\n this.DevOpsActionLookup\n );\n\n setTimeout(() => {\n const hostOption = this.HostingDetails?.HostingOptions?.find(\n (ho) => ho.Path === this.DevOpsAction.Path\n );\n\n this.HostingDetailsFormControls?.BuildPipelineFormControl.setValue(\n hostOption?.Lookup\n );\n\n this.HostingDetailsFormControls?.BuildPipelineChanged();\n }, 0);\n }, 0);\n }\n\n protected loadProjectHostingDetails(): void {\n if (this.SourceControlFormControls?.SelectedBranches?.length > 0) {\n this.HostingDetails.Loading = true;\n\n this.appsFlowSvc.LoadProjectHostingDetails().subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.configureDevOpsAction();\n },\n (err) => {\n this.HostingDetails.Loading = false;\n }\n );\n }\n }\n\n protected setupDevOpsForm(): void {\n if (this.EditingSourceControl != null) {\n this.DevOpsFormGroup = this.formBldr.group({});\n\n this.setupBuildForm();\n }\n }\n\n protected setupBuildForm(): void {\n this.DevOpsFormGroup.addControl(\n 'devOpsActionLookup',\n this.formBldr.control(this.DevOpsActionLookup || '', [])\n );\n }\n}\n","<div>\n <form\n [formGroup]=\"DevOpsFormGroup\"\n (ngSubmit)=\"SaveEnvironment()\"\n *ngIf=\"EditingSourceControl\"\n >\n <div\n fxLayout=\"row wrap\"\n fxLayoutAlign=\"center start\"\n fxLayout.lt-md=\"column\"\n >\n <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 <lcu-source-control-form-controls\n [branches-disabled]=\"HostingDetails?.Loading\"\n [form-group]=\"DevOpsFormGroup\"\n [org-disabled]=\"HostingDetails?.Loading\"\n [repo-disabled]=\"HostingDetails?.Loading\"\n [source-control]=\"EditingSourceControl\"\n (branches-changed)=\"BranchesChanged($event)\"\n ></lcu-source-control-form-controls>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"form-card\" fxFlex=\"35%\" fxFlex.lt-md=\"100%\">\n <mat-card\n class=\"spread\"\n *ngIf=\"\n SourceControlFormControls?.SelectedBranches?.length >\n 0 || EditingSourceControl?.Branches?.length > 0\n \"\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\n using this DevOpsAction\n </mat-hint>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"devOpsActionLookup\"\n placeholder=\"DevOps Action\"\n [disabled]=\"\n SourceControlLookupFormControl?.value ||\n SourceControlFormControls?.Loading ||\n HostingDetails?.Loading\n \"\n (selectionChange)=\"\n DevOpsActionLookupChanged($event)\n \"\n >\n <ng-container\n *ngFor=\"\n let devOpsActionLookup of DevOpsActionLookups\n \"\n >\n <mat-option\n [value]=\"devOpsActionLookup\"\n *ngIf=\"\n DevOpsActions[devOpsActionLookup];\n let devOpsAction\n \"\n >\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n\n <mat-option value=\"\"\n >-- Create New --</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <ng-container>\n <lcu-hosting-details-form-group\n [artifact]=\"Artifact\"\n [devops-action]=\"\n DevOpsActions[\n DevOpsActionLookupFormControl?.value\n ]\n \"\n [details]=\"HostingDetails\"\n [formGroup]=\"DevOpsFormGroup\"\n [organization]=\"\n SourceControlFormControls\n ?.OrganizationFormControl?.value\n \"\n [disabled]=\"\n !!DevOpsActionLookupFormControl?.value ||\n SourceControlFormControls?.Loading ||\n HostingDetails?.Loading\n \"\n ></lcu-hosting-details-form-group>\n </ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SetEditingSourceControl(null)\"\n >\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!DevOpsFormGroup.valid || !DevOpsFormGroup.dirty\"\n >\n <mat-icon>save</mat-icon> Save Application\n </button>\n\n <div fxFlex></div>\n </div>\n </form>\n\n <div class=\"spread\" *ngIf=\"!EditingSourceControl\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewSourceControl()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\">\n <div *ngIf=\"SourceControlLookups?.length <= 0\">\n <h2>\n No source controls created, create your first source\n control.\n </h2>\n </div>\n\n <div *ngIf=\"SourceControlLookups?.length > 0\">\n <h2>Source Controls</h2>\n\n <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let sourceControlLookup of SourceControlLookups\"\n >\n <mat-card class=\"spread\">\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"sourceControlLookup\"\n >\n {{ sourceControlLookup }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"\n SetEditingSourceControl(\n sourceControlLookup\n )\n \"\n >\n <mat-icon\n matTooltip=\"Edit Source Control\"\n >\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteSourceControl(\n sourceControlLookup\n )\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{\n sourceControlLookup\n }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport {\n EaCService,\n SaveDFSModifierEventRequest,\n} from '../../../../../services/eac.service';\nimport { EaCDFSModifier, EaCProjectAsCode } from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { ApplicationsFlowService } from '../../../../../services/applications-flow.service';\n\n@Component({\n selector: 'lcu-dfs-modifiers',\n templateUrl: './dfs-modifiers.component.html',\n styleUrls: ['./dfs-modifiers.component.scss'],\n})\nexport class DFSModifiersComponent implements OnInit {\n // Fields\n\n // Properties\n public CurrentType: string;\n\n @Input('data')\n public Data: {\n Modifiers: { [lookup: string]: EaCDFSModifier };\n Project: EaCProjectAsCode;\n ProjectLookup: string;\n };\n\n public get DetailsFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.details;\n }\n\n public get EditingModifier(): EaCDFSModifier {\n let mdfr = this.Modifiers\n ? this.Modifiers[this.EditingModifierLookup]\n : null;\n\n if (mdfr == null && this.EditingModifierLookup) {\n mdfr = {};\n }\n\n return mdfr;\n }\n\n public EditingModifierLookup: string;\n\n public get EnabledFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.enabled;\n }\n\n public get LocationFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.location;\n }\n\n public ModifierFormGroup: FormGroup;\n\n public get ModifierLookups(): Array<string> {\n return Object.keys(this.Modifiers || {});\n }\n\n public get Modifiers(): { [lookup: string]: EaCDFSModifier } {\n return this.Data.Modifiers || {};\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.name;\n }\n\n public get PathFilterFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.pathFilter;\n }\n\n public get PriorityFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.priority;\n }\n\n public get Project(): EaCProjectAsCode {\n return this.Data.Project || {};\n }\n\n public get ScriptFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.script;\n }\n\n public get ScriptIDFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.scriptId;\n }\n\n public get StateDataTokenFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.stateDataToken;\n }\n\n public get TypeFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.type;\n }\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.EditingModifierLookup = null;\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.ModifierLookups?.length <= 0) {\n this.CreateNewModifier();\n }\n }\n\n // API Methods\n public CreateNewModifier(): void {\n this.SetEditingModifier(Guid.CreateRaw());\n }\n\n public DeleteModifier(modifierLookup: string, modifierName: string): void {\n this.eacSvc.DeleteModifier(modifierLookup, modifierName).then();\n }\n\n public SaveModifier(projectLookup: string = null): void {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ProjectLookups: [projectLookup],\n };\n\n const details = {};\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['StateDataToken'] =\n this.StateDataTokenFormControl.value;\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['Location'] = this.LocationFormControl.value;\n\n details['Script'] = this.ScriptFormControl.value;\n\n details['ScriptID'] = this.ScriptIDFormControl.value;\n break;\n }\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n\n public SetEditingModifier(modifierLookup: string): void {\n this.EditingModifierLookup = modifierLookup;\n\n this.setupModifierForm();\n }\n\n public SetUseForProject(\n modifierLookup: string,\n change: MatSlideToggleChange\n ): void {\n this.SetEditingModifier(modifierLookup);\n\n this.SaveModifier(this.Data.ProjectLookup);\n }\n\n public TypeChanged(event: MatSelectChange): void {\n this.CurrentType = event.value;\n\n this.setupTypeForm();\n }\n\n // Helpers\n protected setupModifierForm(): void {\n if (this.EditingModifier != null) {\n this.CurrentType = this.EditingModifier?.Type;\n\n this.ModifierFormGroup = this.formBldr.group({\n name: [this.EditingModifier?.Name, Validators.required],\n type: [this.CurrentType, Validators.required],\n priority: [this.EditingModifier?.Priority, Validators.required],\n enabled: [this.EditingModifier?.Enabled, []],\n pathFilter: [\n this.EditingModifier?.PathFilterRegex,\n Validators.required,\n ],\n });\n\n this.setupTypeForm();\n }\n }\n\n protected setupTypeForm(): void {\n this.ModifierFormGroup.removeControl('stateDataToken');\n\n this.ModifierFormGroup.removeControl('location');\n this.ModifierFormGroup.removeControl('script');\n this.ModifierFormGroup.removeControl('scriptId');\n\n const details = JSON.parse(this.EditingModifier?.Details || '{}');\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'stateDataToken',\n this.formBldr.control(details?.StateDataToken || '', [\n Validators.required,\n ])\n );\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'location',\n this.formBldr.control(details?.Location || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [\n Validators.required,\n ])\n );\n break;\n }\n }\n}\n","<div>\n <form\n [formGroup]=\"ModifierFormGroup\"\n (ngSubmit)=\"SaveModifier()\"\n *ngIf=\"EditingModifier\"\n >\n <div class=\"form-card\">\n <mat-card class=\"spread\">\n <mat-card-header>\n <mat-card-title> DFS Modifier </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure modifiers for your DFS files.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"Name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"priority\"\n placeholder=\"Priority\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"pathFilter\"\n placeholder=\"Path Filter (regex)\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"type\"\n placeholder=\"DFS Modifier Type\"\n (selectionChange)=\"TypeChanged($event)\"\n >\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n HTML Base Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n LCU Reg Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n Thrid Party Library Modifier\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"stateDataToken\"\n placeholder=\"State Data Token\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"location\"\n placeholder=\"Location\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"scriptId\"\n placeholder=\"Script ID\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n formControlName=\"script\"\n placeholder=\"Script\"\n required\n ></textarea>\n </mat-form-field>\n </ng-container>\n\n <mat-slide-toggle class=\"spread\" formControlName=\"enabled\">\n Is Enabled?\n </mat-slide-toggle>\n </mat-card-content>\n </mat-card>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button mat-button type=\"button\" (click)=\"SetEditingModifier(null)\">\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"\n !ModifierFormGroup.valid || !ModifierFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon> Save DFS Modifier\n </button>\n\n <div fxFlex></div>\n </div>\n </form>\n\n <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewModifier()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\">\n <div *ngIf=\"ModifierLookups?.length <= 0\">\n <h2>\n No DFS modifiers created, create your first DFS modifier.\n </h2>\n </div>\n\n <div *ngIf=\"ModifierLookups?.length > 0\">\n <h2>DFS Modifiers</h2>\n\n <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let modifierLookup of ModifierLookups\"\n >\n <mat-card\n class=\"spread\"\n *ngIf=\"Modifiers[modifierLookup]; let modifier\"\n >\n <mat-card-header>\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <mat-card-title\n class=\"mat-subheading-2\"\n [matTooltip]=\"modifier.Name\"\n >\n {{ modifier.Name || modifier.Lookup }}\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n class=\"spread\"\n [checked]=\"\n Project?.ModifierLookups.indexOf(\n modifierLookup\n ) >= 0\n \"\n (change)=\"\n SetUseForProject(\n modifierLookup,\n $event\n )\n \"\n matTooltip=\"Use for project?\"\n >\n </mat-slide-toggle>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"data-app-actions\">\n <div fxFlex></div>\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"\n SetEditingModifier(modifierLookup)\n \"\n >\n <mat-icon\n matTooltip=\"Edit DFS Modifier\"\n >\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"\n DeleteModifier(\n modifierLookup,\n modifier.Name\n )\n \"\n >\n <mat-icon\n matTooltip=\"Delete {{\n modifier.Name\n }}\"\n >\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n <div class=\"data-app-fakes\">\n <div fxFlex></div>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n\n <button mat-icon-button disabled>\n <mat-icon>fiber_manual_record</mat-icon>\n </button>\n </div>\n </mat-card-actions>\n </mat-card>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { FormsService } from './../../services/forms.service';\nimport { Subscription } from 'rxjs';\nimport { DynamicTabsModel } from './../../models/dynamic-tabs.model';\nimport {\n AfterViewInit,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\n\n@Component({\n selector: 'lcu-dynamic-tabs',\n templateUrl: './dynamic-tabs.component.html',\n styleUrls: ['./dynamic-tabs.component.scss'],\n})\nexport class DynamicTabsComponent implements OnInit, AfterViewInit {\n /**\n * Container used to display dynamic components\n */\n @ViewChild('container', { read: ViewContainerRef, static: false })\n protected viewContainer: ViewContainerRef;\n\n @Input('background-color')\n public BackgroundColor: string;\n\n @Input('color')\n public Color: string;\n\n /**\n * Form is dirty flag\n */\n public FormIsDirty: boolean;\n\n /**\n * Listener for when any form is dirty\n */\n protected formIsDirtySubscription: Subscription;\n\n /**\n * Components loaded as dynamic components\n */\n @Input('tab-components')\n public TabComponents: Array<DynamicTabsModel>;\n\n constructor(\n protected viewContainerRef: ViewContainerRef,\n protected formsService: FormsService\n ) {}\n\n // Lifecycle hook\n public ngOnInit(): void {\n // listen for any form to be dirty, then disable all tabs except for the current tab\n this.formIsDirtySubscription = this.formsService.FormIsDirty.subscribe(\n (val: boolean) => {\n this.FormIsDirty = val;\n }\n );\n }\n\n public ngAfterViewInit(): void {\n this.renderComponent(0);\n }\n\n /**\n * Tab change event\n *\n * @param index selected tab index\n */\n public TabChanged(evt: MatTabChangeEvent): void {\n setTimeout(() => {\n this.renderComponent(evt.index);\n }, 1000);\n }\n\n /**\n * Render component for the active tab\n *\n * @param index TabComponents index position\n */\n protected renderComponent(index: number): any {\n if (!this.TabComponents) {\n return;\n }\n const componentRef = this.viewContainerRef.createComponent(\n this.TabComponents[index].Component\n );\n\n // factory for creating a dynamic component\n // const factory: ComponentFactory<any> = this.componentFactoryResolver\n // .resolveComponentFactory(this.TabComponents[index].Component);\n\n // component created by a factory\n // const componentRef: ComponentRef<any> = this.viewContainer.createComponent(factory);\n\n // current component instance\n const instance: DynamicTabsComponent =\n componentRef.instance as DynamicTabsComponent;\n\n // find the current component in TabComponents and set the data\n this.TabComponents.find((comp: DynamicTabsModel) => {\n if (comp.Component.name === instance.constructor.name) {\n instance['Data'] = comp.Data;\n }\n });\n }\n}\n","<mat-tab-group\n [color]=\"Color\"\n [backgroundColor]=\"BackgroundColor\"\n (selectedTabChange)=\"TabChanged($event)\"\n>\n <!-- <div>\n\n </div> -->\n <mat-tab\n *ngFor=\"let component of TabComponents\"\n #tab\n [disabled]=\"!tab.isActive && FormIsDirty\"\n >\n <ng-template mat-tab-label>\n <mat-icon [color]=\"Color\" class=\"margin-right-2\">\n {{ component.Icon }}\n </mat-icon>\n {{ component.Label }}\n </ng-template>\n <ng-template matTabContent>\n <div #container class=\"margin-top-3\"></div>\n </ng-template>\n </mat-tab>\n</mat-tab-group>\n","import { DomainsComponent } from './../tabs/domains/domains.component';\nimport { DynamicTabsModel } from './../../../../models/dynamic-tabs.model';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { GeneralComponent } from '../tabs/general/general.component';\nimport {\n EaCApplicationAsCode,\n EaCDFSModifier,\n EaCEnvironmentAsCode,\n EaCHost,\n EaCProjectAsCode,\n} from '@semanticjs/common';\nimport { AppsFlowComponent } from '../tabs/apps-flow/apps-flow.component';\nimport { DevOpsComponent } from '../tabs/devops/devops.component';\nimport { DFSModifiersComponent } from '../tabs/dfs-modifiers/dfs-modifiers.component';\n\n@Component({\n selector: 'lcu-project-tabs',\n templateUrl: './project-tabs.component.html',\n styleUrls: ['./project-tabs.component.scss'],\n})\nexport class ProjectTabsComponent implements OnInit {\n // Fields\n\n // Properties\n public get ApplicationLookups(): Array<string> {\n return Object.keys(this.Applications || {});\n }\n\n @Input('applications')\n public Applications: { [lookup: string]: EaCApplicationAsCode };\n\n @Input('dfs-modifiers')\n public DFSModifiers: { [lookup: string]: EaCDFSModifier };\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Input('environment-lookup')\n public EnvironmentLookup: string;\n\n @Input('hosts')\n public Hosts: { [lookup: string]: EaCHost };\n\n public get PrimaryHost(): string {\n return this.Project.Hosts[this.Project.Hosts.length - 1];\n }\n\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n public TabComponents: Array<DynamicTabsModel>;\n\n constructor() {}\n\n public ngOnInit(): void {\n this.tabsComponents();\n }\n\n protected tabsComponents(): void {\n this.TabComponents = [\n new DynamicTabsModel({\n Component: AppsFlowComponent,\n Data: {\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n Applications: this.Applications,\n Environment: this.Environment,\n PrimaryHost: this.PrimaryHost,\n },\n Label: 'Application Flow',\n Icon: 'account_tree',\n }),\n new DynamicTabsModel({\n Component: DevOpsComponent,\n Data: {\n Environment: this.Environment,\n EnvironmentLookup: this.EnvironmentLookup,\n },\n Label: 'DevOps',\n Icon: 'build',\n }),\n new DynamicTabsModel({\n Component: DFSModifiersComponent,\n Data: {\n Modifiers: this.DFSModifiers,\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n },\n Label: 'Modifiers',\n Icon: 'auto_fix_high',\n }),\n new DynamicTabsModel({\n Component: GeneralComponent,\n Data: {\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n },\n Label: 'General',\n Icon: 'pages',\n }),\n new DynamicTabsModel({\n Component: DomainsComponent,\n Data: {\n Hosts: this.Hosts,\n Project: this.Project,\n ProjectLookup: this.ProjectLookup,\n PrimaryHost: this.PrimaryHost,\n },\n Label: 'Domains',\n Icon: 'domain',\n }),\n ];\n }\n}\n","<lcu-dynamic-tabs color=\"accent\" [tab-components]=\"TabComponents\">\n</lcu-dynamic-tabs>\n","import { Component, OnInit, Injector, OnDestroy } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\nimport {\n LCUElementContext,\n LcuElementComponent,\n BaseResponse,\n} from '@lcu/common';\nimport { ApplicationsFlowState } from './../../state/applications-flow.state';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport { EaCEnvironmentAsCode, EaCProjectAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\n\ndeclare var window: Window;\n\nexport class ApplicationsFlowProjectsElementState {}\n\nexport class ApplicationsFlowProjectsContext extends LCUElementContext<ApplicationsFlowProjectsElementState> {}\n\nexport const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT =\n 'applications-flow-projects-element';\n\n@Component({\n selector: SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT,\n templateUrl: './projects.component.html',\n styleUrls: ['./projects.component.scss'],\n})\nexport class ApplicationsFlowProjectsElementComponent\n extends LcuElementComponent<ApplicationsFlowProjectsContext>\n implements OnDestroy, OnInit\n{\n // Fields\n protected projMon: NodeJS.Timeout;\n\n // Properties\n public get ActiveEnvironment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.ActiveEnvironmentLookup];\n }\n\n public get ActiveEnvironmentLookup(): string {\n // TODO: Eventually support multiple environments\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\n\n return envLookups[0];\n }\n\n public get CreatingProject(): boolean {\n return this.eacSvc.CreatingProject;\n }\n\n public get EditingProject(): EaCProjectAsCode {\n return this.State?.EaC?.Projects\n ? this.State?.EaC?.Projects[this.EditingProjectLookup]\n : null;\n }\n\n public get EditingProjectLookup(): string {\n return this.eacSvc.EditingProjectLookup;\n }\n\n public get ProjectLookups(): Array<string> {\n return Object.keys(this.State?.EaC?.Projects || {});\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n // Constructors\n constructor(\n protected injector: Injector,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n super(injector);\n }\n\n // Life Cycle\n public ngOnDestroy(): void {}\n\n public ngOnInit(): void {\n super.ngOnInit();\n\n this.handleStateChange().then((eac) => {});\n\n // this.setupProjectMonitor();\n }\n\n // API Methods\n public async ActiveEnterpriseChanged(\n event: MatSelectChange\n ): Promise<void> {\n await this.eacSvc.SetActiveEnterprise(event.value);\n }\n\n public ConfigureDevOpsAction(devOpsActionLookup: string): void {\n this.State.Loading = true;\n\n this.appsFlowSvc\n .ConfigureDevOpsAction(devOpsActionLookup)\n .subscribe((response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.eacSvc.LoadEnterpriseAsCode();\n } else {\n this.State.Loading = false;\n }\n });\n }\n\n // Helpers\n protected async handleStateChange(): Promise<void> {\n this.State.Loading = true;\n }\n}\n","<app-host-dashboard-card-element\n [context]=\"{ Title: 'Projects', Icon: 'language' }\"\n>\n <nav>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"State.Enterprises?.length > 1\"\n >\n <mat-select\n placeholder=\"Active Enterprise ({{\n State.ActiveEnterpriseLookup\n }})\"\n [value]=\"State.ActiveEnterpriseLookup\"\n (selectionChange)=\"ActiveEnterpriseChanged($event)\"\n >\n <mat-option\n [value]=\"ent.Lookup\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n {{ ent.Name }}\n </mat-option>\n </mat-select>\n\n <!-- Toggle between Caged Krakyn and Unleashed Krakyn (Flow Tool) -->\n </mat-form-field>\n\n <a\n mat-icon-button\n href=\"/docs/getting-started/setup\"\n target=\"_blank\"\n lcuEvent=\"click\"\n label=\"Projects\"\n category=\"help\"\n >\n <mat-icon matTooltip=\"More info\">help_outline</mat-icon>\n </a>\n </nav>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n class=\"margin-bottom-4\"\n >\n <h2\n class=\"mat-display-2 margin-y-2\"\n *ngIf=\"ProjectLookups?.length <= 0\"\n >\n <span> Thank you for signing up </span>\n </h2>\n </div>\n\n <!-- <lcu-git-auth *ngIf=\"!State.GitHub.HasConnection\"></lcu-git-auth> -->\n\n <!-- *ngIf=\"State.GitHub.HasConnection\" -->\n <ng-container>\n <!-- <div *ngIf=\"!CreatingProject\">\n Creating\n <lcu-create-project-wizard></lcu-create-project-wizard>\n </div> -->\n\n <ng-container *ngIf=\"!State.Unleashed\">\n <ng-container *ngIf=\"State\">\n <lcu-projects-header\n [creating-project]=\"CreatingProject\"\n [projects]=\"State.EaC?.Projects\"\n [selected-project-lookup]=\"EditingProjectLookup\"\n ></lcu-projects-header>\n\n <div *ngIf=\"EditingProject\">\n <div class=\"divider margin-bottom-3\"></div>\n\n <lcu-project-tabs\n [applications]=\"State.EaC?.Applications\"\n [dfs-modifiers]=\"State.EaC?.Modifiers\"\n [hosts]=\"State.EaC?.Hosts\"\n [project]=\"EditingProject\"\n [project-lookup]=\"EditingProjectLookup\"\n [environment]=\"ActiveEnvironment\"\n [environment-lookup]=\"ActiveEnvironmentLookup\"\n class=\"margin-top-3\"\n >\n </lcu-project-tabs>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"State.Unleashed\">\n <!-- Shannon flow tool control implemented -->\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div class=\"loading\" *ngIf=\"State?.Loading\">\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader>\n\n <div class=\"margin-3\">\n <!-- <p *ngIf=\"!State.UserEnterpriseLookup\">Loading your projects</p> -->\n\n <!-- <p *ngIf=\"State.UserEnterpriseLookup\">Loading your Dashboard.</p> -->\n </div>\n </div>\n\n <!-- <div>\n <pre>{{ State | json }}</pre>\n </div> -->\n</app-host-dashboard-card-element>\n","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { MatStepper } from '@angular/material/stepper';\nimport { BaseModeledResponse } from '@lcu/common';\nimport { EaCService } from '../../../../services/eac.service';\nimport { ApplicationsFlowService } from '../../../../services/applications-flow.service';\nimport { ProjectHostingDetails } from '../../../../state/applications-flow.state';\nimport { SourceControlFormControlsComponent } from '../forms/source-control/source-control.component';\n\n@Component({\n selector: 'lcu-create-project-wizard',\n templateUrl: './create-project-wizard.component.html',\n styleUrls: ['./create-project-wizard.component.scss'],\n})\nexport class CreateProjectWizardComponent implements AfterViewInit, OnInit {\n // Fields\n\n // Properties\n public get AreProjectDetailsValid(): boolean {\n return this.ProjectDetailsFormGroup?.valid;\n }\n\n public HostingDetails: ProjectHostingDetails;\n\n public get IsBranchValid(): boolean {\n return this.SourceControl?.SelectedBranches?.length > 0;\n }\n\n public get IsOrganizationValid(): boolean {\n return this.RepoDetailsFormGroup.get('organization')?.valid;\n }\n\n public get IsRepositoryValid(): boolean {\n return this.RepoDetailsFormGroup.get('repository')?.valid;\n }\n\n public Loading?: boolean;\n\n public get ProjectDetailsFormGroup(): FormGroup {\n return this.ProjectFormGroup.get('projectDetails') as FormGroup;\n }\n\n public ProjectFormGroup: FormGroup;\n\n public get RepoDetailsFormGroup(): FormGroup {\n return this.ProjectFormGroup.get('repoDetails') as FormGroup;\n }\n\n @ViewChild(SourceControlFormControlsComponent)\n public SourceControl: SourceControlFormControlsComponent;\n\n @ViewChild('projectStepper')\n public Stepper: MatStepper;\n\n // Constructors\n constructor(\n protected formBuilder: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n this.HostingDetails = new ProjectHostingDetails();\n }\n // Life Cycle\n public ngAfterViewInit(): void {\n this.handleStateChange();\n }\n\n public ngOnInit(): void {\n this.ProjectFormGroup = this.formBuilder.group({\n repoDetails: this.formBuilder.group({}),\n projectDetails: this.formBuilder.group({}),\n });\n }\n\n // API Methods\n public Cancel() {\n this.eacSvc.SetCreatingProject(false);\n }\n\n public ConfigureRepository() {\n this.loadProjectHostingDetails();\n }\n\n public CreateProject(): void {\n this.Loading = true;\n\n // const req: ProjectState = {\n // Branch: this.SourceControl.SelectedBranches.join(','),\n // BuildScript: this.ProjectDetailsFormGroup.get('buildScript').value,\n // // HostingOption: projectDetails.get('hostingOption').value,\n // Organization: this.RepoDetailsFormGroup.get('organization').value,\n // OutputFolder: this.ProjectDetailsFormGroup.get('outputFolder').value,\n // // ProjectName: projectDetails.get('projectName').value,\n // Repository: this.RepoDetailsFormGroup.get('repository').value,\n // };\n\n // const src: EaCSourceControl = {\n // Name: '',\n // Type: 'GitHub',\n // Organization: this.RepoDetailsFormGroup.get('organization').value,\n // Repository: this.RepoDetailsFormGroup.get('repository').value,\n // Branches: this.SourceControl.SelectedBranches.join(','),\n // };\n\n // const doa: EaCDevOpsAction = {\n // Type: 'NPM',\n // Name: 'NPM Deploy',\n // Lookup: 'npm-deploy',\n // Output: this.ProjectDetailsFormGroup.get('outputFolder').value,\n // DeployCommand: 'npm run deploy',\n // InstallCommand: 'npm ci',\n // NPMRegistry: 'https://registry.npmjs.org/',\n // };\n\n // const art: EaCArtifact = {\n // Type: 'NPM',\n // Name: 'NPM Deploy',\n // Lookup: 'npm-deploy',\n // Output: this.ProjectDetailsFormGroup.get('output').value,\n // DeployCommand: 'npm run deploy',\n // InstallCommand: 'npm ci',\n // NPMRegistry: 'https://registry.npmjs.org/',\n // };\n\n // const proj: EaCProjectAsCode = {\n // Project: {\n // Name: `${src.Organization} ${src.Repository} ${src.Branches}`,\n // },\n // };\n\n // this.appsFlowEventsSvc.SaveProject(req);\n }\n\n public SetupRepository(): void {\n this.determineStep();\n }\n\n // Helpers\n protected determineStep(): void {\n let index = 0;\n\n if (\n this.IsOrganizationValid &&\n this.IsRepositoryValid &&\n this.IsBranchValid\n ) {\n index = 1;\n }\n\n setTimeout(() => {\n this.Stepper.selectedIndex = index;\n }, 0);\n }\n\n protected handleStateChange(): void {\n this.determineStep();\n }\n\n protected loadProjectHostingDetails(): void {\n this.HostingDetails.Loading = true;\n\n this.appsFlowSvc\n .LoadProjectHostingDetails()\n .subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.Stepper.next();\n }\n );\n }\n}\n","<div>\n <div [fxHide]=\"Loading\">\n <!-- <div style=\"position: absolute; top: 5px; right: 5px\">\n <button mat-mini-fab (click)=\"Cancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div> -->\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"80%\"\n fxFlex.lt-md=\"100%\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <div\n class=\"welcome margin-x-1\"\n fxFlex=\"40%\"\n fxFlex.lt-md=\"100%\"\n >\n <h3 class=\"mat-title\">\n Let's get your Project setup and running\n </h3>\n\n <div class=\"divider-fill-hor margin-y-4\"></div>\n </div>\n\n <div class=\"setup margin-x-1\" fxFlex=\"90%\" fxFlex.lt-md=\"100%\">\n <form\n [formGroup]=\"ProjectFormGroup\"\n (ngSubmit)=\"CreateProject()\"\n >\n <mat-horizontal-stepper linear #projectStepper>\n <mat-step\n label=\"Connect Repository\"\n formGroupName=\"repoDetails\"\n [completed]=\"\n IsOrganizationValid &&\n IsRepositoryValid &&\n IsBranchValid\n \"\n >\n <div>\n <h3\n class=\"mat-display-1 margin-bottom-4 margin-top-3\"\n >\n Connect your repository\n </h3>\n\n <div [fxShow]=\"!HostingDetails.Loading\">\n <div class=\"margin-y-2\">\n <lcu-source-control-form-controls\n [form-group]=\"\n RepoDetailsFormGroup\n \"\n [source-control]=\"{}\"\n ></lcu-source-control-form-controls>\n </div>\n\n <div class=\"margin-top-4\">\n <button\n mat-button\n color=\"warn\"\n (click)=\"Cancel()\"\n type=\"button\"\n >\n Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"ConfigureRepository()\"\n type=\"button\"\n [disabled]=\"!IsBranchValid\"\n >\n Next\n </button>\n </div>\n </div>\n\n <div\n class=\"margin-3\"\n *ngIf=\"HostingDetails.Loading\"\n >\n <lcu-loader\n style=\"margin: auto\"\n [loading]=\"true\"\n ></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\">\n Configuring\n </h4>\n </div>\n </div>\n </div>\n </mat-step>\n\n <!-- [stepControl]=\"formArray.get([2])\" -->\n <mat-step\n label=\"Configure Project\"\n formGroupName=\"projectDetails\"\n >\n <h3 class=\"mat-display-1 margin-bottom-2\">\n Configure build pipeline for\n </h3>\n\n <h4 class=\"mat-headline margin-bottom-2\">\n <strong>\n @{{\n RepoDetailsFormGroup.get(\n \"organization\"\n )?.value\n }}/{{\n RepoDetailsFormGroup.get(\n \"repository\"\n )?.value\n }}\n\n <br />\n\n <span\n *ngFor=\"\n let selBranch of SourceControl?.SelectedBranches\n \"\n >\n @{{ selBranch }}\n </span>\n </strong>\n </h4>\n\n <div\n class=\"margin-y-2\"\n *ngIf=\"!HostingDetails.Loading\"\n >\n <lcu-hosting-details-form-group\n [formGroup]=\"ProjectDetailsFormGroup\"\n [details]=\"HostingDetails\"\n ></lcu-hosting-details-form-group>\n </div>\n\n <div>\n <button\n mat-button\n matStepperPrevious\n type=\"button\"\n >\n Back\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n color=\"primary\"\n [disabled]=\"!AreProjectDetailsValid\"\n >\n Create Project\n </button>\n </div>\n </mat-step>\n </mat-horizontal-stepper>\n </form>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"loading\" *ngIf=\"Loading\">\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n\n <div class=\"margin-3\">\n <p>Loading</p>\n </div>\n </div>\n</div>\n","import { GitHubWorkflowRun } from './../../../../state/applications-flow.state';\nimport { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { EaCLowCodeUnit, EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-builds',\n templateUrl: './builds.component.html',\n styleUrls: ['./builds.component.scss'],\n})\nexport class BuildsComponent implements OnInit, OnDestroy {\n // Fields\n\n // Properties\n @Input('projects')\n public Projects: Array<EaCProjectAsCode>;\n\n constructor() {}\n\n public ngOnInit(): void {}\n\n public ngOnDestroy(): void {}\n\n public DeployRun(lastrun: GitHubWorkflowRun): void {\n // this.appsFlowEventsSvc.DeployRun(lastrun);\n }\n\n public RetrieveLCU(val: {\n project: EaCProjectAsCode;\n lcuID: string;\n }): EaCLowCodeUnit {\n // this.RetrieveLCUEmitter.emit(lcu);\n return {}; //val.project.LCUs.find((lcu) => lcu.ID === val.lcuID);\n }\n}\n","<mat-accordion>\n <div *ngIf=\"Projects\" class=\"expansion-container\">\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n *ngFor=\"let project of Projects\"\n >\n <div fxFlex fxLayout=\"row\">\n <mat-expansion-panel\n (opened)=\"panelOpenState = true\"\n (closed)=\"panelOpenState = false\"\n [ngClass]=\"panelOpenState === true ? 'active' : 'inactive'\"\n class=\"expansion-panel\"\n >\n <mat-expansion-panel-header\n [collapsedHeight]=\"'75px'\"\n [expandedHeight]=\"'75px'\"\n >\n <div\n fxFlex\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n class=\"margin-right-3\"\n *ngIf=\"project.Runs[0]; let latestRun\"\n >\n <div fxLayout=\"row\">\n <div>\n <div\n fxLayout=\"column\"\n *ngIf=\"\n RetrieveLCU({\n project: project,\n lcuID: latestRun.LCUID\n });\n let lcu\n \"\n >\n <div class=\"workflow-run-status\">\n <a\n mat-icon-button\n href=\"https://github.com/{{\n lcu.Organization\n }}/{{ lcu.Repository }}/actions\"\n target=\"_blank\"\n >\n <div fxLayout=\"row\">\n <div\n fxLayoutAlign=\"center center\"\n class=\"icon-bg\"\n [ngClass]=\"\n latestRun.Conclusion ==\n 'success'\n ? 'success'\n : 'error'\n \"\n >\n <mat-icon\n matTooltip=\"{{\n latestRun.Status\n }} {{\n latestRun.Conclusion\n }}\"\n *ngIf=\"\n latestRun.Conclusion ==\n 'success'\n \"\n >\n {{\n latestRun.Conclusion ==\n \"success\"\n ? \"check_circle\"\n : \"error\"\n }}\n </mat-icon>\n </div>\n\n <div>\n <mat-icon\n class=\"error\"\n *ngIf=\"\n latestRun.Conclusion ==\n 'failure'\n \"\n >\n error_outline\n </mat-icon>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n <div\n fxLayout=\"column\"\n class=\"details margin-left-3\"\n >\n <span\n class=\"name mat-headline mat-body-1\"\n >{{ project.Name }}</span\n >\n </div>\n </div>\n\n <div fxLayout=\"row\" class=\"actions\">\n <a\n mat-button\n color=\"accent\"\n (click)=\"DeployRun(latestRun)\"\n target=\"_blank\"\n matTooltip=\"Deploy Latest\"\n >\n <mat-icon>cloud_upload</mat-icon>\n </a>\n </div>\n </div>\n </mat-expansion-panel-header>\n <span class=\"mat-body-2\">Build Details</span>\n </mat-expansion-panel>\n </div>\n </div>\n </div>\n</mat-accordion>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-recent-activities',\n templateUrl: './recent-activities.component.html',\n styleUrls: ['./recent-activities.component.scss'],\n})\nexport class RecentActivitiesComponent implements OnInit {\n constructor() {}\n\n public ngOnInit(): void {}\n}\n","<p>recent-activities works!</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { FormsService } from '../../../../../../../services/forms.service';\nimport { CardFormConfigModel } from '../../../../../../../models/card-form-config.model';\nimport { EaCService } from '../../../../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-project-details',\n templateUrl: './project-details.component.html',\n styleUrls: ['./project-details.component.scss'],\n})\nexport class ProjectNameComponent implements OnInit {\n /**\n * Form button actions\n */\n public Config: CardFormConfigModel;\n\n /**\n * Access form control for description\n */\n public get Description(): AbstractControl {\n return this.Form.get('description');\n }\n\n /**\n * FormGroup for project name card\n */\n public Form: FormGroup;\n\n /**\n * Name of form\n */\n protected formName: string;\n\n /**\n * When form is dirty, ties into formsService.DisableForms\n */\n public IsDirty: boolean;\n\n /**\n * Access form control for project name\n */\n public get Name(): AbstractControl {\n return this.Form.get('name');\n }\n\n /**\n * Input value for state\n */\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.formName = 'ProjectNameForm';\n\n this.setupForm();\n\n this.config();\n }\n\n /**\n * Form configurations\n */\n protected config(): void {\n this.Config = new CardFormConfigModel({\n Icon: 'house',\n Title: 'Root Directory',\n Subtitle:\n 'The directory within your project, in which your code is located. Leave this field empty if your code is not located in a subdirectory',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Reset',\n Color: 'warn',\n ClickEvent: () => this.resetForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n /**\n * Setup form controls\n */\n protected setupForm(): void {\n this.Form = new FormGroup({\n name: new FormControl(this.Project?.Project?.Name || '', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n description: new FormControl(\n this.Project?.Project?.Description || '',\n {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }\n ),\n });\n\n this.formsService.Form = { Id: this.formName, Form: this.Form };\n\n this.onChange();\n }\n\n /**\n * Save form\n */\n protected save(): void {\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: this.ProjectLookup,\n Project: {\n ...this.Project,\n Project: {\n ...(this.Project || {}),\n Description: this.Description.value,\n Name: this.Name.value,\n },\n },\n });\n\n this.formsService.UpdateValuesReference({\n Id: this.formName,\n Form: this.Form,\n });\n }\n\n /**\n * Reset form controls back to previous values\n */\n protected resetForm(): void {\n // enable all forms\n // this.formsService.DisableForms(false);\n\n this.formsService.ResetFormValues(this.formName);\n }\n\n /**\n * Listen to form changes\n */\n protected onChange(): void {\n this.Form.valueChanges.subscribe((val: object) => {\n if (this.formsService.ForRealThough(this.formName, this.Form)) {\n this.IsDirty = true;\n // disable all forms except the current form being edited\n this.formsService.DisableForms(this.formName);\n } else {\n this.IsDirty = false;\n // enable all forms\n this.formsService.DisableForms(false);\n }\n });\n }\n}\n","<form fxFlex fxLayout=\"row\" fxLayout.lt-md=\"column\" [formGroup]=\"Form\">\n <lcu-form-card fxFlex [config]=\"Config\" [form]=\"Form\" [is-dirty]=\"IsDirty\">\n <div fxLayout=\"column\">\n <mat-form-field\n appearance=\"fill\"\n fxFlex\n class=\"margin-right-1 margin-bottom-2\"\n >\n <mat-icon\n matSuffix\n [ngClass]=\"Name.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Name.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Name.invalid || Name.disabled ? 'Project Name' : ''\n \"\n formControlName=\"name\"\n />\n\n <!-- <mat-hint *ngIf=\"Name.valid\"> Selected Project Name </mat-hint> -->\n\n <mat-error *ngIf=\"Name.hasError('required')\">\n Project Name is required\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex appearance=\"fill\" class=\"margin-right-1\">\n <mat-icon\n matTooltip=\"Brief content that allows users to understand the purpose, objective, goals or problems addressed by the project.\"\n matSuffix\n [ngClass]=\"\n Description.valid ? 'valid-control' : 'invalid-control'\n \"\n >\n {{ Description.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <textarea\n type=\"text\"\n matInput\n rows=\"3\"\n [placeholder]=\"\n Description.invalid || Description.disabled\n ? 'Project Description'\n : ''\n \"\n formControlName=\"description\"\n ></textarea>\n\n <!-- <mat-hint *ngIf=\"Description.valid\">\n Selected Project Description\n </mat-hint> -->\n\n <mat-error *ngIf=\"Description.hasError('required')\">\n Project Description is required\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>\n","import { Subscription } from 'rxjs';\nimport { FormsService } from './../../../../../../../services/forms.service';\nimport { CardFormConfigModel } from './../../../../../../../models/card-form-config.model';\nimport { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCService } from '../../../../../../../services/eac.service';\nimport { EaCProjectAsCode } from '@semanticjs/common';\n\n@Component({\n selector: 'lcu-root-directory',\n templateUrl: './root-directory.component.html',\n styleUrls: ['./root-directory.component.scss'],\n})\nexport class RootDirectoryComponent implements OnInit {\n /**\n * Card / Form Config\n */\n public Config: CardFormConfigModel;\n\n /**\n * FormGroup\n */\n public Form: FormGroup;\n\n protected formIsDirtySubscription: Subscription;\n\n /**\n * Access form control for root directory\n */\n public get Root(): AbstractControl {\n return this.Form.get('root');\n }\n\n /**\n * Access form control for root directory\n */\n public get IncludeSource(): AbstractControl {\n return this.Form.get('includeSource');\n }\n\n /**\n * Input value for state\n */\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.setupForm();\n\n this.config();\n }\n\n /**\n * Setup form controls\n */\n protected setupForm(): void {\n this.Form = new FormGroup({\n root: new FormControl('/', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n includeSource: new FormControl(false),\n });\n\n this.formsService.Form = { Id: 'RootDirectoryForm', Form: this.Form };\n this.onChange();\n }\n\n /**\n * Form configurations\n */\n protected config(): void {\n this.Config = new CardFormConfigModel({\n Icon: 'house',\n Title: 'Root Directory',\n Subtitle:\n 'The directory within your project, in which your code is located. Leave this field empty if your code is not located in a subdirectory',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Clear',\n Color: 'warn',\n ClickEvent: () => this.clearForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n\n /**\n * Save form\n */\n protected save(): void {\n this.eacSvc.SaveProjectAsCode({\n ProjectLookup: this.ProjectLookup,\n Project: {\n ...this.Project,\n // Root: this.Root.value,\n // IncludeSource: this.IncludeSource.value\n },\n });\n // this.formsService.UpdateValuesReference({ Id: 'RootDirectoryForm', Form: this.Form });\n }\n\n /**\n * Clear form controls\n */\n protected clearForm(): void {\n // this.Form.reset();\n\n // enable all forms\n this.formsService.DisableForms(false);\n }\n\n /**\n * Listen to form changes\n */\n protected onChange(): void {\n this.Form.valueChanges.subscribe((val: any) => {\n // disable all forms except the current form being edited\n this.formsService.DisableForms('RootDirectoryForm');\n });\n }\n}\n","<form fxFlex fxLayout=\"row\" fxLayout.lt-md=\"column\" [formGroup]=\"Form\">\n <lcu-form-card [config]=\"Config\" [form]=\"Form\" [disabled]=\"Form.disabled\">\n <div fxLayout=\"column\">\n <mat-form-field appearance=\"fill\" class=\"margin-right-1\">\n <mat-icon\n matSuffix\n [ngClass]=\"Root.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Root.valid ? \"check_circle\" : \"cancel\" }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Root.invalid || Root.disabled ? 'Root Directory' : ''\n \"\n formControlName=\"root\"\n />\n <mat-hint *ngIf=\"Root.valid\">\n Selected Root Directory\n </mat-hint>\n <mat-error *ngIf=\"Root.hasError('required')\">\n Root Directory is required\n </mat-error>\n </mat-form-field>\n <mat-checkbox id=\"includeSource\" formControlName=\"includeSource\">\n Include source files outside of the Root Directory in the build\n step\n </mat-checkbox>\n </div>\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>\n","import { BaseFormConfigModel } from './../../models/base-form-config.model';\nimport { Component, OnInit } from '@angular/core';\nimport { EaCService } from '../../services/eac.service';\nimport { FormsService } from '../../services/forms.service';\n\n@Component({\n selector: 'lcu-base-form',\n templateUrl: './base-form.component.html',\n styleUrls: ['./base-form.component.scss'],\n})\nexport class BaseFormComponent implements OnInit {\n /**\n * FormGroup for project name card\n */\n // public Form: FormGroup;\n\n /**\n * Form name\n */\n // protected formName: string;\n\n /**\n * When form is dirty, ties into formsService.DisableForms\n */\n // public IsDirty: boolean;\n\n public FormConfig: BaseFormConfigModel;\n\n constructor(\n protected formsService: FormsService,\n protected eac: EaCService\n ) {}\n\n public ngOnInit(): void {\n this.setupForm();\n }\n\n protected setupForm(): void {\n this.formsService.Form = {\n Id: this.FormConfig.FormName,\n Form: this.FormConfig.Form,\n };\n\n // this.onChange();\n }\n\n /**\n * Listen to form value changes\n */\n protected onChange(): void {}\n\n protected checkFormForChanges(): void {\n this.FormConfig.Form.valueChanges.subscribe((val: object) => {\n if (\n this.formsService.ForRealThough(\n this.FormConfig.FormName,\n this.FormConfig.Form\n )\n ) {\n this.FormConfig.IsDirty = true;\n // disable all forms except the current form being edited\n this.formsService.DisableForms(this.FormConfig.FormName);\n } else {\n this.FormConfig.IsDirty = false;\n // enable all forms\n this.formsService.DisableForms(false);\n }\n });\n }\n\n /**\n * Update Form value reference\n */\n protected updateValueRef(): void {\n this.formsService.UpdateValuesReference({\n Id: this.FormConfig.FormName,\n Form: this.FormConfig.Form,\n });\n }\n\n protected save(): void {\n console.log('PARENT SAVE');\n }\n\n protected resetForm(): void {}\n}\n","","import { Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CardFormConfigModel } from './card-form-config.model';\n\nexport class BaseFormConfigModel {\n public CardConfig?: CardFormConfigModel;\n public Form?: FormGroup;\n public FormName: string;\n public IsDirty?: boolean;\n\n constructor(opts: BaseFormConfigModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { CardFormConfigModel } from '../../../../../../../models/card-form-config.model';\nimport { FormsService } from '../../../../../../../services/forms.service';\nimport { EaCService } from '../../../../../../../services/eac.service';\nimport { BaseFormComponent } from '../../../../../../base-form/base-form.component';\nimport { Component, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { BaseFormConfigModel } from '../../../../../../../models/base-form-config.model';\n\n@Component({\n selector: 'lcu-base-form-test',\n templateUrl: './base-form-test.component.html',\n styleUrls: ['./base-form-test.component.scss'],\n})\nexport class BaseFormTestComponent extends BaseFormComponent implements OnInit {\n /**\n * Access form control for description\n */\n public get Description(): AbstractControl {\n return this.FormConfig.Form.get('description');\n }\n\n /**\n * Access form control for project name\n */\n public get Name(): AbstractControl {\n return this.FormConfig.Form.get('name');\n }\n\n constructor(\n protected formsService: FormsService,\n protected eacSvc: EaCService\n ) {\n super(formsService, eacSvc);\n }\n\n public ngOnInit(): void {\n this.FormConfig = new BaseFormConfigModel({\n FormName: 'TestFormComponent',\n });\n\n this.setupConfig();\n this.setupMyForm();\n\n super.ngOnInit();\n }\n\n protected setupMyForm(): void {\n this.FormConfig.Form = new FormGroup({\n name: new FormControl('', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n description: new FormControl('', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\n }),\n });\n\n this.checkFormForChanges();\n }\n\n protected setupConfig(): void {\n this.FormConfig.CardConfig = new CardFormConfigModel({\n Icon: 'house',\n Title: 'Test Form',\n Subtitle:\n 'The directory within your project, in which your code is located. Leave this field empty if your code is not located in a subdirectory',\n FormActions: {\n Message: 'Changes will be applied to your next deployment',\n Actions: [\n {\n Label: 'Reset',\n Color: 'warn',\n ClickEvent: () => this.resetForm(),\n // use arrow function, so 'this' refers to ProjectNameComponent\n // if we used ClickeEvent: this.clearForm, then 'this' would refer to this current Actions object\n Type: 'RESET',\n },\n {\n Label: 'Save',\n Color: 'accent',\n ClickEvent: () => this.save(),\n Type: 'SAVE',\n },\n ],\n },\n });\n }\n\n protected save(): void {\n console.log('CHILD SAVE');\n }\n}\n","<form\n fxFlex\n fxLayout=\"row\"\n fxLayout.lt-md=\"column\"\n [formGroup]=\"FormConfig.Form\"\n>\n <lcu-form-card\n fxFlex\n [config]=\"FormConfig.CardConfig\"\n [form]=\"FormConfig.Form\"\n [is-dirty]=\"FormConfig.IsDirty\"\n >\n <div fxLayout=\"column\">\n <mat-form-field\n appearance=\"fill\"\n fxFlex\n class=\"margin-right-1 margin-bottom-2\"\n >\n <mat-icon\n matSuffix\n [ngClass]=\"Name.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Name.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <input\n type=\"text\"\n matInput\n [placeholder]=\"\n Name.invalid || Name.disabled ? 'Project Name' : ''\n \"\n formControlName=\"name\"\n />\n\n <mat-hint *ngIf=\"Name.valid\"> Selected Project Name </mat-hint>\n\n <mat-error *ngIf=\"Name.hasError('required')\">\n Project Name is required\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex appearance=\"fill\" class=\"margin-right-1\">\n <mat-icon\n matSuffix\n [ngClass]=\"\n Description.valid ? 'valid-control' : 'invalid-control'\n \"\n >\n {{ Description.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n\n <textarea\n type=\"text\"\n matInput\n rows=\"3\"\n [placeholder]=\"\n Description.invalid || Description.disabled\n ? 'Project Description'\n : ''\n \"\n formControlName=\"description\"\n ></textarea>\n\n <mat-hint *ngIf=\"Description.valid\">\n Selected Project Description\n </mat-hint>\n\n <mat-error *ngIf=\"Description.hasError('required')\">\n Project Description is required\n </mat-error>\n </mat-form-field>\n </div>\n\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>\n","import { Component, OnInit, AfterViewInit, Input } from '@angular/core';\n\n@Component({\n selector: 'lcu-git-auth',\n templateUrl: './git-auth.component.html',\n styleUrls: ['./git-auth.component.scss'],\n})\nexport class GitAuthComponent implements OnInit, AfterViewInit {\n @Input('size')\n public Size: string;\n // Properties\n public ConnectClicked: boolean;\n\n // Constructors\n constructor() {\n this.Size = 'large';\n }\n\n // Life Cycle\n public ngAfterViewInit(): void {}\n\n public ngOnInit(): void {}\n\n /**\n * Connect Github Provider\n */\n public ConnectGitHubProvider(): void {\n const reidrectUri = location.pathname + location.search;\n\n // window.location.href = `/.oauth/GitHubOAuth?redirectUri=${reidrectUri}`;\n\n // added below line for the new social ui redirectUri wasn't working\n\n window.location.href = '/.oauth/GitHubOAuth?redirectUri=%2Fdashboard';\n\n this.ConnectClicked = true;\n }\n\n /**\n * Listen for State changes\n */\n}\n","<ng-container *ngIf=\"Size === 'large'\">\n <div fxFlex fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <!-- <div\n label=\"Connect Git\"\n [completed]=\"State.GitHub.HasConnection\"\n > -->\n <!-- <div \n label=\"Connect Git\" \n *ngIf=\"!State.GitHub.HasConnection\"> -->\n <div\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n class=\"connect margin-x-3 margin-bottom-3\"\n >\n <h3 class=\"mat-display-1 margin-bottom-4\">\n Connect your git provider\n </h3>\n\n <!-- href=\"/.oauth/github\" -->\n <a\n mat-raised-button\n color=\"primary\"\n class=\"github margin-y-3\"\n [disabled]=\"ConnectClicked\"\n >\n Connect with GitHub\n\n <span class=\"octocat-icon\"></span>\n </a>\n </div>\n <!-- </div> -->\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"Size === 'small'\">\n <button\n mat-raised-button\n (click)=\"ConnectGitHubProvider()\"\n [disabled]=\"ConnectClicked\"\n color=\"primary\"\n >\n <mat-icon>add</mat-icon>\n Connect with GitHub\n </button>\n</ng-container>\n","import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-three-column',\n templateUrl: './three-column.component.html',\n styleUrls: ['./three-column.component.scss'],\n})\nexport class ThreeColumnComponent implements OnInit {\n public SmallScreen: boolean;\n\n constructor(public breakpointObserver: BreakpointObserver) {}\n\n ngOnInit(): void {\n this.breakpointObserver\n .observe(['(max-width: 850px)'])\n .subscribe((state: BreakpointState) => {\n // console.log(\"Breakpoint: \", state.matches)\n if (state.matches) {\n this.SmallScreen = true;\n } else {\n this.SmallScreen = false;\n }\n // console.log(\"SmallScrren = \" ,this.SmallScreen);\n });\n }\n}\n","<div\n class=\"col-container\"\n fxLayout.gt-md=\"row\"\n fxLayout.lt-md=\"column\"\n fxLayoutAlign.lt-md=\"space-evenly center\"\n>\n <!-- LEFT COL -->\n\n <div class=\"col-left\" fxFlex.gt-md=\"25%\" fxFlexOrder.lt-md=\"1\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n\n <!-- CENTER COL -->\n\n <div class=\"col-center\" fxFlex.gt-md=\"50%\" fxFlexOrder.lt-md=\"3\">\n <ng-content></ng-content>\n </div>\n\n <!-- RIGHT COL -->\n\n <div class=\"col-right\" fxFlex.gt-md=\"25%\" fxFlexOrder.lt-md=\"2\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-slotted-card',\n templateUrl: './slotted-card.component.html',\n styleUrls: ['./slotted-card.component.scss'],\n})\nexport class SlottedCardComponent implements OnInit {\n @Input('action-text')\n public ActionText: string;\n\n @Input('action-path')\n public ActionPath: string;\n\n @Input('icon')\n public Icon: string;\n\n @Input('main-slot-description')\n public MainSlotDescription: string;\n\n @Input('main-icon')\n public MainIcon: string;\n\n @Input('show-main-icon')\n public ShowMainIcon: boolean;\n\n @Input('card-title')\n public CardTitle: string;\n\n @Input('secondary-slot-description')\n public SecondarySlotDescription: string;\n\n @Output('main-action-clicked')\n public MainActionClicked: EventEmitter<{}>;\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService) {\n this.MainActionClicked = new EventEmitter();\n this.SkeletonEffect = 'wave';\n\n this.MainIcon = 'add';\n\n this.ShowMainIcon = true;\n }\n\n public ngOnInit(): void {}\n\n public MainActionClickEvent() {\n this.MainActionClicked.emit({});\n }\n}\n","<mat-card class=\"col-info-card\">\n <mat-card-header\n class=\"slotted-card-header\"\n fxLayoutAlign=\"space-between center\"\n >\n <div mat-card-avatar fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n <div class=\"card-title\">{{ CardTitle }}</div>\n </div>\n\n <button\n mat-mini-fab\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n matTooltip=\"Add {{ CardTitle }}\"\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n >\n <mat-icon>\n {{ MainIcon }}\n </mat-icon>\n </button>\n\n <button\n mat-mini-fab\n color=\"accent\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n *ngIf=\"State?.Loading\"\n >\n <mat-icon> add </mat-icon>\n </button>\n </mat-card-header>\n\n <!-- SKELETON CONTENT -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-description\"\n >\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content\n skeleton-block\n [effect]=\"SkeletonEffect\"\n ></ng-content>\n </div>\n </div>\n\n <div\n class=\"slot-secondary\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div class=\"slot-header-container\">\n <div class=\"slot-header\">\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Name of the content\n </div>\n </div>\n\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Description\n </div>\n </div>\n\n <div class=\"slot-actions-container\" fxLayout=\"row\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n edit\n </mat-icon>\n </div>\n </div>\n\n <div\n *ngIf=\"SecondarySlotDescription\"\n class=\"slot-secondary-container\"\n >\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-description\"\n >\n {{ SecondarySlotDescription }}\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n {{ ActionText }}\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <div\n *ngIf=\"SecondarySlotDescription\"\n class=\"slot-secondary-container\"\n >\n <div class=\"header-description\">\n {{ SecondarySlotDescription }}\n </div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a\n mat-button\n *ngIf=\"ActionPath\"\n class=\"slotted-card-action-btn\"\n [href]=\"ActionPath\"\n color=\"primary\"\n >{{ ActionText }}\n </a>\n\n <a\n mat-button\n *ngIf=\"!ActionPath\"\n class=\"slotted-card-action-btn\"\n (click)=\"MainActionClickEvent()\"\n color=\"primary\"\n >\n {{ ActionText }}\n </a>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-project-info-card',\n templateUrl: './project-info-card.component.html',\n styleUrls: ['./project-info-card.component.scss'],\n})\nexport class ProjectInfoCardComponent implements OnInit {\n @Input('description')\n public Description: string;\n\n @Input('image')\n public Image: string;\n\n @Input('is-editable')\n public IsEditable: boolean;\n\n @Input('is-shareable')\n public IsShareable: boolean;\n\n @Input('name')\n public Name: string;\n\n @Input('subtext')\n public Subtext: string;\n\n @Input('version')\n public Version: string;\n\n @Output('left-click-event')\n public LeftClickEvent: EventEmitter<{}>;\n\n @Output('right-click-event')\n public RightClickEvent: EventEmitter<{}>;\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService, protected dialog: MatDialog) {\n this.LeftClickEvent = new EventEmitter();\n\n this.RightClickEvent = new EventEmitter();\n\n this.SkeletonEffect = 'wave';\n }\n\n public ngOnInit(): void {\n // console.log(\"loading = \", this.Loading)\n // console.log(\"is shareable: \", this.IsShareable);\n // console.log(\"is editable: \", this.IsEditable);\n }\n\n public LeftIconClicked() {\n this.LeftClickEvent.emit({});\n }\n\n public RightIconClicked() {\n console.log('share clicked');\n this.RightClickEvent.emit({});\n }\n\n // public UpgradeClicked() {\n // const dialogRef = this.dialog.open(UpgradeDialogComponent, {\n // width: '600px',\n // data: {},\n // });\n\n // dialogRef.afterClosed().subscribe((result) => {\n // // console.log('The dialog was closed');\n // // console.log(\"result:\", result)\n // });\n // }\n}\n","<mat-card class=\"project-info-card\">\n <!-- SKELETON CONTENT -->\n <ng-container *ngIf=\"State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\">\n <skeleton-avatar\n class=\"round-project-img\"\n [effect]=\"SkeletonEffect\"\n [size]=\"75\"\n ></skeleton-avatar>\n </div>\n\n <mat-card-header\n class=\"project-card-header\"\n fxLayoutAlign=\"center center\"\n >\n <mat-card-title\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"project-card-name\"\n >\n Name of card\n </mat-card-title>\n\n <mat-card-subtitle\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"project-card-description\"\n >\n Description Text\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"host-anchor\"\n >\n https://www.fathym.com\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content class=\"card-content-container\">\n <div\n skeleton-block\n [effect]=\"SkeletonEffect\"\n class=\"stats-container\"\n ></div>\n\n <div\n class=\"promo-container-skeleton\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Access exclusive tools & insights\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >emoji_events</mat-icon\n >\n\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n Upgrade to premium now\n </div>\n </div>\n </div>\n </mat-card-content>\n <mat-card-actions\n class=\"actions-container-skeleton\"\n fxLayoutAlign=\"center center\"\n >\n <div\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n action\n mat-button\n >\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >outbox</mat-icon\n >\n Unpack\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"header-img-container\" fxLayout=\"row\">\n <div class=\"round-project-img\" fxLayoutAlign=\"center center\">\n <mat-icon *ngIf=\"!Image\" class=\"temp-icon\"\n >flutter_dash</mat-icon\n >\n <img\n *ngIf=\"Image\"\n [src]=\"Image\"\n [alt]=\"Name\"\n style=\"width: 75px; border-radius: 40px\"\n />\n </div>\n </div>\n\n <div\n class=\"icon-btn-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <button\n *ngIf=\"IsEditable\"\n mat-icon-button\n id=\"left-icon\"\n (click)=\"LeftIconClicked()\"\n >\n <mat-icon>edit</mat-icon>\n </button>\n <button\n *ngIf=\"IsShareable\"\n mat-icon-button\n id=\"right-icon\"\n (click)=\"RightIconClicked()\"\n >\n <mat-icon>share</mat-icon>\n </button>\n </div>\n\n <mat-card-header\n class=\"project-card-header\"\n fxLayoutAlign=\"center center\"\n >\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">\n {{ Name }}\n </mat-card-title>\n\n <mat-card-subtitle\n class=\"project-card-description\"\n *ngIf=\"Description\"\n >\n {{ Description }}\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-version\" *ngIf=\"Version\">\n {{ Version }}\n </mat-card-subtitle>\n\n <mat-card-subtitle class=\"project-card-host\">\n <a\n class=\"host-anchor\"\n *ngIf=\"Subtext\"\n [href]=\"'https://' + Subtext\"\n target=\"_blank\"\n fxLayoutAlign=\"center center\"\n >\n {{ Subtext }}\n <mat-icon>launch</mat-icon>\n </a>\n </mat-card-subtitle>\n </mat-card-header>\n\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 class=\"promo-container\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <div>Access exclusive tools & insights</div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"gold-icon\">emoji_events</mat-icon>\n\n <a class=\"upgrade-text\" href=\"/dashboard/billing\">\n Upgrade to premium now\n </a>\n </div>\n </div>\n <div\n class=\"krakyn-container\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center center\"\n >\n <!-- <div>Release The Krakyn</div> -->\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n class=\"krakyn-link-container\"\n >\n <mat-icon color=\"primary\">account_tree</mat-icon>\n\n <a class=\"upgrade-text\" href=\"/dashboard/krakyn\">\n Release The Krakyn\n </a>\n </div>\n </div>\n <!-- </div> -->\n </mat-card-content>\n <mat-card-actions class=\"actions-container\">\n <ng-content select=\"[action]\"></ng-content>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-analytics-card',\n templateUrl: './analytics-card.component.html',\n styleUrls: ['./analytics-card.component.scss'],\n})\nexport class AnalyticsCardComponent implements OnInit {\n @Input('title')\n public Title: string;\n\n @Input('subtext')\n public Subtext: string;\n\n // TODO update from any to an analytics model\n @Input('analytics')\n public Analytics: any[];\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<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\n class=\"analytic-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div\n class=\"percent-change increase\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n >\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ 0.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","import { Component, Input, OnInit } from '@angular/core';\nimport { FeedItem, FeedItemAction } from '../../models/user-feed.model';\n\n@Component({\n selector: 'lcu-feed-card-sm',\n templateUrl: './feed-card-sm.component.html',\n styleUrls: ['./feed-card-sm.component.scss'],\n})\nexport class FeedCardSmComponent implements OnInit {\n @Input('feed-item')\n public FeedItem: FeedItem;\n\n public IconColor: string;\n\n public Icon: string;\n\n constructor() {}\n\n // Life Cycle\n public ngOnInit(): void {\n this.determineIcon();\n }\n\n // API Methods\n public HandleAction(action: FeedItemAction) {\n console.log('Action clicked');\n }\n\n // Helpers\n protected determineIcon(): void {\n if (this.FeedItem.Status.Code === 0) {\n this.Icon = 'check_circle';\n\n this.IconColor = 'green';\n } else if (this.FeedItem.Status.Code === 1) {\n this.Icon = 'cancel';\n\n this.IconColor = 'red';\n } else if (this.FeedItem.Status.Code === 2) {\n this.Icon = 'sync';\n\n this.IconColor = 'blue';\n }\n }\n}\n","<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=\"FeedItem.Title\">\n {{ FeedItem.Title }}\n </mat-card-title>\n\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\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","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormControl,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseModeledResponse, BaseResponse, Guid, Status } from '@lcu/common';\nimport {\n EaCArtifact,\n EaCDevOpsAction,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport {\n EaCService,\n SaveEnvironmentAsCodeEventRequest,\n} from '../../services/eac.service';\nimport {\n ApplicationsFlowState,\n GitHubBranch,\n GitHubOrganization,\n GitHubRepository,\n ProjectHostingDetails,\n} from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-devops-source-control-form',\n templateUrl: './devops-source-control-form.component.html',\n styleUrls: ['./devops-source-control-form.component.scss'],\n})\nexport class DevopsSourceControlFormComponent\n implements AfterViewInit, OnDestroy, OnInit\n{\n // Fields\n\n @Input('editing-source-control-lookup')\n public EditingSourceControlLookup: string;\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Input('environment-lookup')\n public EnvironmentLookup: string;\n\n @Output('save-status-event')\n public SaveStatusEvent: EventEmitter<Status>;\n\n @ViewChild('branches')\n public BranchesInput: ElementRef<HTMLInputElement>;\n\n //Optional input not being used setting to\n // @Input('build-path')\n public BuildPath: string;\n\n //Optional not being used\n // @Input('build-path-disabled')\n public BuildPathDisabled: boolean;\n\n // this input is not being used anywhere\n // @Input('source-control-root')\n public SourceControlRoot: string;\n\n //not being used set to true by default\n // @Input('use-branches')\n public UseBranches: boolean;\n\n //not being used set to false by default\n // @Input('use-build-path')\n public UseBuildPath: boolean;\n\n // Properties\n\n public get ArtifactLookups(): Array<string> {\n return this.DevOpsAction?.ArtifactLookups;\n }\n\n public get ArtifactLookup(): string {\n const artLookup = this.DevOpsAction?.ArtifactLookups\n ? this.DevOpsAction?.ArtifactLookups[0]\n : null;\n return artLookup;\n }\n\n public get Artifact(): EaCArtifact {\n return this.Environment?.Artifacts && this.ArtifactLookup\n ? this.Environment?.Artifacts[this.ArtifactLookup] || {}\n : {};\n }\n public get BranchesFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'branches'\n );\n }\n\n public get BuildPathFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'buildPath'\n );\n }\n\n public get DevOpsActionLookups(): Array<string> {\n // console.log(this.DevOpsActions);\n return Object.keys(this.DevOpsActions || {});\n }\n\n public get DevOpsAction(): any {\n return this.Environment.DevOpsActions && this.DevOpsActionLookup\n ? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}\n : {};\n }\n\n public get DevOpsActionLookup(): string {\n if (!!this.DevOpsActionLookupFormControl?.value) {\n return this.DevOpsActionLookupFormControl.value;\n }\n\n if (!!this.EditingSourceControl?.DevOpsActionTriggerLookups) {\n return this.EditingSourceControl?.DevOpsActionTriggerLookups[0];\n } else {\n return null;\n }\n }\n\n public get DevOpsActionLookupFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get('devOpsActionLookup');\n }\n\n public get DevOpsActions(): { [lookup: string]: EaCDevOpsAction } {\n return this.Environment.DevOpsActions || {};\n }\n\n public get EditingSourceControl(): EaCSourceControl {\n let sc = this.Environment?.Sources\n ? this.Environment?.Sources[this.EditingSourceControlLookup]\n : null;\n\n if (sc == null && this.EditingSourceControlLookup) {\n sc = {};\n }\n\n return sc;\n }\n\n public get MainBranchFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'mainBranch'\n );\n }\n\n public get OrganizationFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'organization'\n );\n }\n\n public get RepositoryFormControl(): AbstractControl {\n return this.DevOpsSourceControlFormGroup.get(\n this.SourceControlRoot + 'repository'\n );\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public BranchOptions: GitHubBranch[];\n\n public BuildPathOptions: string[];\n\n public CreatingRepository: boolean;\n\n public DevOpsSourceControlFormGroup: FormGroup;\n\n public HostingDetails: ProjectHostingDetails;\n\n public Loading: boolean;\n\n public OrganizationOptions: GitHubOrganization[];\n\n public RepositoryOptions: GitHubRepository[];\n\n public SelectedBranches: string[];\n\n public SkeletonEffect: string;\n\n public readonly SeparatorKeysCodes = [ENTER, COMMA] as const;\n\n // Constructors\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService,\n protected formBuilder: FormBuilder\n ) {\n this.SaveStatusEvent = new EventEmitter();\n\n this.BuildPath = null;\n\n this.HostingDetails = new ProjectHostingDetails();\n\n this.SelectedBranches = [];\n\n this.SourceControlRoot = '';\n\n this.SkeletonEffect = 'wave';\n\n this.UseBranches = true;\n\n this.UseBuildPath = false;\n }\n\n // Life Cycle\n public ngAfterViewInit(): void {}\n\n public ngOnDestroy(): void {\n this.destroyFormControls();\n }\n\n public ngOnInit(): void {\n console.log('source control lookup', this.EditingSourceControlLookup);\n\n if (this.EditingSourceControlLookup === null) {\n this.CreateNewSourceControl();\n }\n console.log('source control', this.EditingSourceControl);\n\n if (this.EditingSourceControl != null) {\n this.DevOpsSourceControlFormGroup = this.formBuilder.group({});\n\n this.setupFormControls();\n }\n\n this.RefreshOrganizations();\n }\n\n // API Methods\n public AddBranchOption(event: MatChipInputEvent): void {\n this.addBranchOption(event.value);\n\n event.input.value = '';\n }\n\n public BranchOptionSelected(event: MatAutocompleteSelectedEvent): void {\n this.addBranchOption(event.option.value);\n }\n\n public BranchesChanged(branches: string[]): void {\n this.loadProjectHostingDetails();\n }\n\n public BuildPathChanged(event: MatSelectChange): void {\n //do something??\n }\n\n public CreateNewSourceControl(): void {\n this.SetEditingSourceControl(Guid.CreateRaw());\n }\n\n public CreateRepository(): void {\n this.CreatingRepository = true;\n\n this.RepositoryFormControl.reset();\n }\n\n public CancelCreateRepository(): void {\n this.CreatingRepository = false;\n }\n\n public DevOpsActionLookupChanged(event: MatSelectChange): void {\n this.configureDevOpsAction();\n }\n\n public MainBranchChanged(event: MatSelectChange): void {\n this.emitBranchesChanged();\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n const org = this.OrganizationFormControl;\n\n this.RepositoryFormControl.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n }\n\n this.listRepositories();\n }\n\n public RefreshOrganizations(): void {\n // this.Loading = true;\n this.listOrganizations();\n\n this.OrganizationFormControl?.reset();\n\n this.RepositoryFormControl?.reset();\n\n if (this.UseBranches) {\n this.BranchesFormControl?.reset();\n }\n }\n\n public RemoveBranchOption(option: string): void {\n const index = this.SelectedBranches.indexOf(option);\n\n if (index >= 0) {\n this.SelectedBranches.splice(index, 1);\n }\n\n this.emitBranchesChanged();\n }\n\n public RepositoryChanged(event: MatSelectChange): void {\n const repo = this.RepositoryFormControl;\n\n if (this.UseBranches) {\n this.BranchesFormControl.reset();\n\n this.SelectedBranches = [];\n\n this.listBranches();\n }\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }\n\n public SaveRepository(): void {\n this.Loading = true;\n\n const org = this.OrganizationFormControl.value;\n\n const repoName = this.RepositoryFormControl.value;\n\n this.appsFlowSvc\n .CreateRepository(org, repoName)\n .subscribe((response: BaseResponse) => {\n if (response.Status.Code === 0) {\n this.listRepositories(repoName);\n\n this.CreatingRepository = false;\n } else {\n // TODO: Need to surface an error to the user...\n\n this.Loading = false;\n }\n });\n }\n\n public SetEditingSourceControl(scLookup: string): void {\n this.EditingSourceControlLookup = scLookup;\n }\n\n public SubmitSourceControl() {\n console.log(\n 'source control submitted: ',\n this.DevOpsSourceControlFormGroup.value\n );\n this.SaveSourceControl();\n }\n\n public SaveSourceControl(): void {\n const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {\n Environment: {\n ...this.Environment,\n Sources: this.Environment.Sources || {},\n },\n EnvironmentLookup: this.EnvironmentLookup,\n EnterpriseDataTokens: {},\n };\n\n let source: EaCSourceControl = {\n ...this.EditingSourceControl,\n Branches: this.SelectedBranches,\n MainBranch: this.MainBranchFormControl.value,\n };\n\n source = {\n ...source,\n Type: 'GitHub',\n Name: `@${this.OrganizationFormControl.value}/${this.RepositoryFormControl.value}`,\n DevOpsActionTriggerLookups: [this.DevOpsActionLookup],\n Organization: this.OrganizationFormControl.value,\n Repository: this.RepositoryFormControl.value,\n };\n\n const scLookup = `github://${source.Organization}/${source.Repository}`;\n\n saveEnvReq.Environment.Sources[scLookup] = source;\n\n console.log('save SC: ', saveEnvReq);\n\n let resp = this.eacSvc.SaveEnvironmentAsCode(saveEnvReq);\n\n resp.then((res) => {\n this.SaveStatusEvent.emit(res);\n });\n }\n\n // Helpers\n\n protected addBranchOption(value: string): void {\n value = (value || '').trim();\n\n if (value && this.SelectedBranches.indexOf(value) < 0) {\n this.SelectedBranches.push(value);\n }\n\n this.BranchesInput.nativeElement.blur();\n\n this.emitBranchesChanged();\n }\n\n protected configureDevOpsAction(): void {\n setTimeout(() => {\n this.DevOpsActionLookupFormControl.setValue(\n this.DevOpsActionLookup\n );\n }, 0);\n }\n\n protected destroyFormControls(): void {\n this.DevOpsSourceControlFormGroup.removeControl(\n [this.SourceControlRoot, 'mainBranch'].join('')\n );\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'branches'].join('')\n );\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'buildPath'].join('')\n );\n\n this.SelectedBranches = [];\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'organization'].join('')\n );\n\n this.DevOpsSourceControlFormGroup?.removeControl(\n [this.SourceControlRoot, 'repository'].join('')\n );\n }\n\n protected emitBranchesChanged(): void {\n if (\n this.SelectedBranches?.length > 0 &&\n (!this.MainBranchFormControl.value ||\n this.SelectedBranches.indexOf(\n this.MainBranchFormControl.value\n ) < 0)\n ) {\n this.MainBranchFormControl.setValue(\n this.SelectedBranches.find(\n (branch) => branch === 'main' || branch === 'master'\n ) || this.SelectedBranches[0]\n );\n } else if (this.SelectedBranches?.length <= 0) {\n this.MainBranchFormControl.reset();\n }\n\n this.BranchesFormControl.setValue(this.SelectedBranches.join(','));\n\n this.BranchesChanged(this.SelectedBranches || []);\n }\n\n protected listBranches(): void {\n if (this.UseBranches) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBranches(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model;\n\n this.Loading = false;\n\n if (this.EditingSourceControl?.Branches?.length > 0) {\n this.SelectedBranches =\n this.EditingSourceControl.Branches;\n } else if (this.BranchOptions?.length === 1) {\n this.BranchesFormControl.setValue(\n this.BranchOptions[0].Name\n );\n\n this.SelectedBranches = [this.BranchOptions[0].Name];\n }\n\n this.emitBranchesChanged();\n\n this.listBuildPaths();\n });\n }\n }\n\n protected listBuildPaths(): void {\n if (this.UseBuildPath) {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.OrganizationFormControl.value,\n this.RepositoryFormControl.value\n )\n .subscribe((response: BaseModeledResponse<string[]>) => {\n this.BuildPathOptions = response.Model;\n\n this.Loading = false;\n\n if (this.BuildPathOptions?.length === 1) {\n this.BuildPathFormControl.setValue(\n this.BuildPathOptions[0]\n );\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe(\n (response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\n 'Organization Options: ',\n this.OrganizationOptions\n );\n\n this.Loading = false;\n\n if (this.EditingSourceControl?.Organization) {\n setTimeout(() => {\n this.OrganizationFormControl.setValue(\n this.EditingSourceControl.Organization\n );\n\n this.listRepositories(\n this.EditingSourceControl?.Repository\n );\n }, 0);\n }\n }\n );\n }\n\n protected listRepositories(activeRepo: string = null): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListRepositories(this.OrganizationFormControl.value)\n .subscribe((response: BaseModeledResponse<GitHubRepository[]>) => {\n this.RepositoryOptions = response.Model;\n\n this.Loading = false;\n\n if (activeRepo) {\n setTimeout(() => {\n this.RepositoryFormControl.setValue(activeRepo);\n\n this.listBranches();\n\n if (!this.UseBranches) {\n this.listBuildPaths();\n }\n }, 0);\n } else if (this.RepositoryOptions?.length <= 0) {\n this.CreatingRepository = true;\n }\n });\n }\n\n protected loadProjectHostingDetails(): void {\n if (this.SelectedBranches?.length > 0) {\n this.HostingDetails.Loading = true;\n\n this.appsFlowSvc.LoadProjectHostingDetails().subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.configureDevOpsAction();\n },\n (err) => {\n this.HostingDetails.Loading = false;\n }\n );\n }\n }\n\n protected setupFormControls(): void {\n this.destroyFormControls();\n\n console.log('Source Control: ', this.EditingSourceControl);\n\n this.DevOpsSourceControlFormGroup.addControl(\n 'devOpsActionLookup',\n new FormControl(this.DevOpsActionLookup || '', [])\n );\n\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'organization'].join(''),\n new FormControl(\n this.EditingSourceControl.Organization ?? '',\n Validators.required\n )\n );\n\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'repository'].join(''),\n new FormControl(\n this.EditingSourceControl.Repository ?? '',\n Validators.required\n )\n );\n\n if (this.UseBranches) {\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'branches'].join(''),\n new FormControl(\n this.EditingSourceControl?.Branches ?? '',\n Validators.required\n )\n );\n\n this.SelectedBranches = this.EditingSourceControl?.Branches;\n\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'mainBranch'].join(''),\n new FormControl(\n this.EditingSourceControl.MainBranch ?? '',\n Validators.required\n )\n );\n }\n\n if (this.UseBuildPath) {\n this.DevOpsSourceControlFormGroup.addControl(\n [this.SourceControlRoot, 'buildPath'].join(''),\n new FormControl(this.BuildPath ?? '', Validators.required)\n );\n }\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"DevOpsSourceControlFormGroup\"\n (ngSubmit)=\"SubmitSourceControl()\"\n>\n <!-- <mat-card class=\"spread\" class=\"sc-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title> Source Control </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon matSuffix matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\">\n info_outline\n </mat-icon>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader>\n\n <!-- <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n [effect]=\"SkeletonEffect\" \n ></skeleton-block> -->\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\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=\"\n DevOpsActions[devOpsActionLookup];\n let devOpsAction\n \"\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 margin-bottom\"\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\n matSuffix\n (click)=\"RefreshOrganizations()\"\n matTooltip=\"Refresh Organization\"\n color=\"accent\"\n >\n refresh\n </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\n color=\"accent\"\n matTooltip=\"Re-authorize Organizations\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a\n new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n class=\"primary-link\"\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 ||\n Loading ||\n 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=\"\n !CreatingRepository && OrganizationFormControl?.valid\n \"\n >\n add_circle\n </mat-icon>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\"\n >\n <mat-icon matSuffix color=\"primary\"> save </mat-icon>\n </button>\n\n <button\n mat-button\n type=\"button\"\n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\"\n >\n <mat-icon matSuffix> cancel </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\n matSuffix\n (click)=\"RefreshOrganizations()\"\n color=\"accent\"\n >\n refresh\n </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"\n >\n launch\n </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a\n new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n class=\"primary-link\"\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\n class=\"mat-title\"\n *ngIf=\"!OrganizationFormControl?.valid\"\n >\n Loading organizations\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid &&\n !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n RepositoryFormControl?.valid &&\n !BranchesFormControl?.valid\n \"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid ||\n BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n </ng-container>\n <!-- </div> -->\n\n <!-- </mat-card-content> -->\n <!-- <mat-card-actions fxLayoutAlign=\"center center\"> -->\n\n <!-- <button \n mat-raised-button \n *ngIf=\"!State?.Loading\"\n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!DevOpsSourceControlFormGroup.valid || !DevOpsSourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Source Control\n </button>\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader> -->\n\n <!-- </mat-card-actions> -->\n <!-- </mat-card> -->\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCEnvironmentAsCode } from '@semanticjs/common';\nimport { DevopsSourceControlFormComponent } from '../../controls/devops-source-control-form/devops-source-control-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface SCDialogData {\n environment: EaCEnvironmentAsCode;\n environmentLookup: string;\n scLookup: string;\n scName: string;\n}\n\n@Component({\n selector: 'lcu-source-control-dialog',\n templateUrl: './source-control-dialog.component.html',\n styleUrls: ['./source-control-dialog.component.scss'],\n})\nexport class SourceControlDialogComponent implements OnInit {\n @ViewChild(DevopsSourceControlFormComponent)\n public DevopsSourceControl: DevopsSourceControlFormComponent;\n\n public get DevOpsSourceControlFormGroup(): FormGroup {\n return this.DevopsSourceControl?.DevOpsSourceControlFormGroup;\n }\n\n public get HasConnection(): boolean {\n return this.State.GitHub.HasConnection;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public dialogRef: MatDialogRef<SourceControlDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: SCDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public DeleteSourceControl(): void {\n this.eacSvc\n .DeleteSourceControl(this.data.scLookup, this.data.scName)\n .then((status) => {\n this.CloseDialog();\n });\n }\n\n public HandleSaveStatusEvent(event: Status) {\n console.log('event to save: ', event);\n if (event.Code === 0) {\n this.snackBar.open('Source Control Succesfully Saved', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveSourceControl() {\n this.DevopsSourceControl.SaveSourceControl();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Source Control</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <ng-container *ngIf=\"!HasConnection\">\n <lcu-git-auth></lcu-git-auth>\n </ng-container>\n\n <ng-conatiner *ngIf=\"HasConnection\" fxLayout=\"column\">\n <div fxLayoutAlign=\"center center\">\n <lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n [editing-source-control-lookup]=\"data.scLookup\"\n (save-status-event)=\"HandleSaveStatusEvent($event)\"\n >\n </lcu-devops-source-control-form>\n </div>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n </ng-conatiner>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteSourceControl()\"\n matTooltip=\"Delete {{ data.scName }}\"\n >\n Delete\n </button>\n </div>\n\n <div fxLayoutAlign=\"end center\">\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"43%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n class=\"action-button\"\n mat-raised-button\n *ngIf=\"!State?.Loading\"\n fxFlex=\"30%\"\n color=\"primary\"\n (click)=\"SaveSourceControl()\"\n [disabled]=\"\n !DevOpsSourceControlFormGroup?.valid ||\n !DevOpsSourceControlFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { FeedItem, FeedItemAction } from '../../models/user-feed.model';\nimport moment from 'moment';\nimport { EaCService } from '../../services/eac.service';\nimport { BaseModeledResponse } from '@lcu/common';\nimport { SourceControlDialogComponent } from '../../dialogs/source-control-dialog/source-control-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { EaCEnvironmentAsCode } from '@semanticjs/common';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'lcu-main-feed-card',\n templateUrl: './main-feed-card.component.html',\n styleUrls: ['./main-feed-card.component.scss'],\n})\nexport class MainFeedCardComponent implements OnDestroy, OnInit {\n protected checkTimeout: any;\n\n public get ActiveEnvironment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.ActiveEnvironmentLookup];\n }\n\n public get ActiveEnvironmentLookup(): string {\n // TODO: Eventually support multiple environments\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\n\n return envLookups[0];\n }\n\n public get CommentControl(): AbstractControl {\n return this.FeedCommentsFormGroup?.controls.comment;\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n // console.log(\"Ent Environment var: \", this.State?.EaC?.Environments[this.State?.EaC?.Enterprise?.PrimaryEnvironment]);\n return this.State?.EaC?.Environments[\n this.State?.EaC?.Enterprise?.PrimaryEnvironment\n ];\n }\n\n @Input('feed-item')\n public FeedItem: FeedItem;\n\n public get Icon(): string {\n if (this.FeedItem.Status.Code === 0) {\n return 'check_circle';\n } else if (this.FeedItem.Status.Code === 1) {\n return 'cancel';\n } else if (this.FeedItem.Status.Code === 2) {\n return 'sync';\n } else {\n return 'help_outline';\n }\n }\n\n public get IconColor(): string {\n if (this.FeedItem.Status.Code === 0) {\n return 'green';\n } else if (this.FeedItem.Status.Code === 1) {\n return 'red';\n } else if (this.FeedItem.Status.Code === 2) {\n return 'blue';\n } else {\n return 'gray';\n }\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public FeedCommentsFormGroup: FormGroup;\n\n constructor(\n protected eacSvc: EaCService,\n protected dialog: MatDialog,\n private sanitizer: DomSanitizer,\n protected formBuilder: FormBuilder\n ) {}\n\n // Life Cycle\n public ngOnDestroy(): void {\n if (this.checkTimeout) {\n clearTimeout(this.checkTimeout);\n }\n }\n\n public ngOnInit(): void {\n this.handleRefresh();\n this.SanitizeVideos();\n this.buildCommentForm();\n }\n\n // API Methods\n public CalculateTimelapse(timestamp: Date) {\n return moment(timestamp).fromNow();\n }\n\n public HandleAction(action: FeedItemAction) {\n if (action.ActionType == 'Link') {\n if (action.Action.startsWith('http')) {\n window.open(action.Action, '_blank');\n } else {\n window.location.href = action.Action;\n }\n } else if (action.ActionType == 'Modal') {\n if (action.Action == 'AddSourceControl') {\n this.OpenSourceControlDialog(null, null);\n } else {\n alert('other modaled ' + action.Action);\n }\n }\n }\n\n public OpenSourceControlDialog(scLookup: string, scName: string): void {\n const dialogRef = this.dialog.open(SourceControlDialogComponent, {\n width: '550px',\n data: {\n environment: this.Environment,\n environmentLookup: this.ActiveEnvironmentLookup,\n scLookup: scLookup,\n scName: scName,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n }\n\n public SafeHtml(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n\n public SanitizeVideos() {\n this.FeedItem?.Tabs?.forEach((tab) => {\n if (tab.Data.Video) {\n tab.Data.Video = this.SafeHtml(tab.Data.Video);\n }\n });\n }\n\n public SubmitComment() {\n console.log('comment: ', this.CommentControl.value);\n }\n\n // Helpers\n protected buildCommentForm() {\n this.FeedCommentsFormGroup = this.formBuilder.group({\n comment: '',\n });\n }\n\n protected handleRefresh(): void {\n if (this.FeedItem?.RefreshLink) {\n this.checkTimeout = setTimeout(() => {\n this.eacSvc.CheckUserFeedItem(this.FeedItem).subscribe(\n async (response: BaseModeledResponse<FeedItem>) => {\n if (response.Status.Code === 0) {\n this.FeedItem = response.Model;\n\n this.handleRefresh();\n } else {\n console.log(response);\n }\n },\n (err) => {\n console.log(err);\n }\n );\n }, 30000);\n }\n }\n}\n","<mat-card class=\"social-card\">\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"FeedItem.Avatar\"\n *ngIf=\"FeedItem.Avatar\"\n />\n\n <mat-card-title *ngIf=\"FeedItem.Title\">{{\n FeedItem.Title\n }}</mat-card-title>\n\n <mat-card-subtitle>\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n\n <div *ngIf=\"FeedItem.Subtext\">{{ FeedItem.Subtext }}</div>\n\n <div *ngIf=\"FeedItem.Status\">\n <mat-icon\n *ngIf=\"Icon\"\n [style.color]=\"IconColor\"\n [class.spin]=\"FeedItem.Status?.Code == 2\"\n >\n {{ Icon }}\n </mat-icon>\n\n <span *ngIf=\"FeedItem.Status?.Message\">\n {{ FeedItem.Status?.Message }}\n </span>\n\n <span *ngIf=\"FeedItem.Timestamp\">\n {{ CalculateTimelapse(FeedItem.Timestamp) }}\n </span>\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n\n <div *ngIf=\"!FeedItem.IsShortForm\">\n <div class=\"feed-card-container\">\n <div class=\"feed-card-main-content\">\n <mat-tab-group>\n <ng-container *ngFor=\"let tab of FeedItem.Tabs\">\n <mat-tab [label]=\"tab.Title\">\n <div class=\"tab\">\n <ng-container *ngIf=\"tab.Data?.Commit?.Message\">\n <div\n class=\"commit-message\"\n [innerHTML]=\"\n SafeHtml(tab.Data?.Commit?.Message)\n \"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Content\">\n <div\n class=\"content\"\n [innerHTML]=\"\n SafeHtml(tab.Data?.Content)\n \"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Video\">\n <div\n class=\"video\"\n [innerHTML]=\"tab.Data.Video\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Comments\">\n <div class=\"comments\">\n <ng-container\n *ngIf=\"\n tab.Data?.Comments?.length <= 0\n \"\n >\n <h4>No comments provided</h4>\n </ng-container>\n\n <mat-card\n *ngFor=\"\n let comment of tab.Data\n ?.Comments\n \"\n >\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"comment.Avatar\"\n *ngIf=\"comment.Avatar\"\n />\n\n <mat-card-title>\n {{ comment.Author }}\n commented on\n {{ comment.UpdatedAt }}\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content\n [innerHTML]=\"\n SafeHtml(comment.Comment)\n \"\n >\n <ng-container\n ngIf=\"comment.Auther === \"\n ></ng-container>\n </mat-card-content>\n </mat-card>\n <!-- <form class=\"feed-comment-form\" \n [formGroup]=\"FeedCommentsFormGroup\"\n (ngSubmit)=\"SubmitComment()\"\n fxLayoutAlign=\"space-around center\">\n <mat-form-field class=\"comment-field\" appearance=\"fill\" >\n <mat-label>Leave a comment</mat-label>\n <textarea matInput formControlName=\"comment\" rows=\"1\" ></textarea>\n </mat-form-field>\n\n <button mat-button type=\"submit\" color=\"primary\">Submit</button>\n </form> -->\n </div>\n </ng-container>\n </div>\n </mat-tab>\n </ng-container>\n </mat-tab-group>\n </div>\n </div>\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div fxFlex></div>\n\n <ng-container *ngFor=\"let action of FeedItem.Actions\">\n <button\n mat-raised-button\n [color]=\"action.Color\"\n (click)=\"HandleAction(action)\"\n >\n <mat-icon *ngIf=\"action.Icon\">{{ action.Icon }}</mat-icon>\n\n {{ action.Text }}\n </button>\n </ng-container>\n </mat-card-actions>\n</mat-card>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-two-column-header',\n templateUrl: './two-column-header.component.html',\n styleUrls: ['./two-column-header.component.scss'],\n})\nexport class TwoColumnHeaderComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<div class=\"col-container\" fxLayout=\"row\">\n <div class=\"col-left\" fxFlex=\"15%\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n\n <div class=\"col-center\" fxFlex=\"85%\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-card-carousel',\n templateUrl: './card-carousel.component.html',\n styleUrls: ['./card-carousel.component.scss'],\n})\nexport class CardCarouselComponent implements OnInit {\n @Input('stats')\n public Stats: any[];\n\n protected carouselIndex: number;\n\n constructor() {\n this.carouselIndex = 0;\n }\n\n ngOnInit(): void {}\n\n public ngAfterViewInit() {\n this.assignCarouselClass();\n }\n\n public LeftChevronClicked() {\n this.removeCarouselClasses();\n\n if (this.carouselIndex === 0) {\n this.carouselIndex = this.Stats.length - 1;\n } else {\n this.carouselIndex--;\n }\n\n this.assignCarouselClass();\n }\n\n public MoreDetailsClicked() {\n console.log(\n 'More details clicked on carousel item',\n this.Stats[this.carouselIndex]\n );\n }\n\n public RightChevronClicked() {\n this.removeCarouselClasses();\n\n if (this.carouselIndex === this.Stats.length - 1) {\n this.carouselIndex = 0;\n } else {\n this.carouselIndex++;\n }\n\n this.assignCarouselClass();\n }\n\n //HELPERS\n\n protected removeCarouselClasses() {\n for (let i = 0; i < this.Stats.length; i++) {\n if (i === this.carouselIndex) {\n (<HTMLElement>(\n document.getElementById('carousel-' + this.carouselIndex)\n )).classList.remove('active');\n } else {\n (<HTMLElement>(\n document.getElementById('carousel-' + i)\n )).classList.remove('hidden');\n }\n }\n }\n\n protected assignCarouselClass() {\n for (let i = 0; i < this.Stats.length; i++) {\n if (i === this.carouselIndex) {\n (<HTMLElement>(\n document.getElementById('carousel-' + this.carouselIndex)\n )).classList.add('active');\n } else {\n (<HTMLElement>(\n document.getElementById('carousel-' + i)\n )).classList.add('hidden');\n }\n }\n }\n}\n","<div stats class=\"carousel-container\">\n <div class=\"chevron-container\" fxLayout=\"row\">\n <button\n mat-icon-button\n class=\"chevron-button\"\n id=\"left-chevron\"\n (click)=\"LeftChevronClicked()\"\n >\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button\n mat-icon-button\n class=\"chevron-button\"\n id=\"right-chevron\"\n (click)=\"RightChevronClicked()\"\n >\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let stat of Stats; let i = index\">\n <div class=\"carousel-item\" [id]=\"'carousel-' + i\">\n <div class=\"carousel-title\">{{ stat.Name }}</div>\n <div class=\"carousel-stat\">{{ stat.Stat }}</div>\n </div>\n </ng-container>\n <div (click)=\"MoreDetailsClicked()\">More details</div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-security-toggle',\n templateUrl: './security-toggle.component.html',\n styleUrls: ['./security-toggle.component.scss'],\n})\nexport class SecurityToggleComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get IsPrivateFormControl(): AbstractControl {\n return this.SecurityFormGroup?.controls.isPrivate;\n }\n\n public get IsTriggerSignInFormControl(): AbstractControl {\n return this.SecurityFormGroup?.controls.isTriggerSignIn;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SecurityFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService, protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n this.SkeletonEffect = 'wave';\n }\n\n public ngOnInit(): void {\n this.setupSecurityFormGroup();\n }\n\n public SecuritySubmit() {\n //save the security settings\n console.log(\n 'submitting security values: ',\n this.SecurityFormGroup.value\n );\n this.SaveFormEvent.emit(this.SecurityFormGroup.value);\n }\n\n protected setupSecurityFormGroup() {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n this.SecurityFormGroup = this.formBldr.group({});\n this.setupSecurityForm();\n }\n\n protected setupSecurityForm(): void {\n this.SecurityFormGroup.addControl(\n 'isPrivate',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsPrivate || false,\n [Validators.required]\n )\n );\n\n this.SecurityFormGroup.addControl(\n 'isTriggerSignIn',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsTriggerSignIn || false,\n [Validators.required]\n )\n );\n }\n}\n","<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { BaseModeledResponse, Guid } from '@lcu/common';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-processor-details-form',\n templateUrl: './processor-details-form.component.html',\n styleUrls: ['./processor-details-form.component.scss'],\n})\nexport class ProcessorDetailsFormComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Input('editing-application-lookup')\n public EditingApplicationLookup: string;\n\n @Input('has-save-button')\n public HasSaveButton: boolean;\n\n @Input('source-control-lookups')\n public SourceControlLookups: Array<string>;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get APIRootFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.apiRoot;\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[\n this.State?.EaC?.Enterprise?.PrimaryEnvironment\n ];\n }\n\n public get BuildFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.build;\n }\n\n public get BuildPathFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.buildPath;\n }\n\n public get ClientIDFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.clientId;\n }\n\n public get ClientSecretFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.clientSecret;\n }\n\n public get DefaultFileFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.defaultFile;\n }\n\n public get DefaultSourceControl(): EaCSourceControl {\n return {\n Organization: this.EditingApplication?.LowCodeUnit?.Organization,\n Repository: this.EditingApplication?.LowCodeUnit?.Repository,\n };\n }\n\n public get InboundPathFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.inboundPath;\n }\n\n public get IncludeRequestFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.includeRequest;\n }\n\n public get MethodsFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.methods;\n }\n\n public get PackageFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.package;\n }\n\n public get PermanentFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.permanent;\n }\n\n public get PreserveMethodFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.preserveMethod;\n }\n\n public get RedirectFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.redirect;\n }\n\n public get ScopesFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.scopes;\n }\n\n public get SecurityFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.security;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SourceControlFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.sourceControl;\n }\n\n public get SPARootFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.spaRoot;\n }\n\n public get TokenLookupFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.tokenLookup;\n }\n\n public get ValidFormControls(): Array<AbstractControl> {\n let vfc: Array<AbstractControl> = new Array<AbstractControl>();\n for (const field in this.ProcessorDetailsFormGroup.controls) {\n const control = this.ProcessorDetailsFormGroup.get(field);\n if (control.valid) {\n vfc.push(control);\n }\n }\n // console.log(\"VFC=\", vfc)\n return vfc;\n }\n\n public get VersionFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.version;\n }\n\n public get ZipFileFormControl(): AbstractControl {\n return this.ProcessorDetailsFormGroup?.controls.zipFile;\n }\n\n public BuildPathOptions: string[];\n\n public IsPermanent: boolean;\n\n public IsPreserve: boolean;\n\n public LCUType: string;\n\n public redirectTooltip: string;\n\n public ProcessorDetailsFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected formBldr: FormBuilder,\n protected eacSvc: EaCService\n ) {\n this.redirectTooltip = '';\n\n this.HasSaveButton = true;\n\n this.SaveFormEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n if (!this.EditingApplication) {\n this.CreateNewApplication();\n } else {\n this.setupProcessorDetailsForm();\n }\n }\n\n public CreateNewApplication(): void {\n this.SetEditingApplication(Guid.CreateRaw());\n }\n\n public DetermineTooltipText() {\n let permanentValue = this.PermanentFormControl.value;\n let preserveValue = this.PreserveMethodFormControl.value;\n\n if (permanentValue === true && preserveValue === false) {\n this.redirectTooltip = '301 – Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === false) {\n this.redirectTooltip = '302 – Not Permanent and Not Preserve';\n } else if (permanentValue === false && preserveValue === true) {\n this.redirectTooltip = '307 – Not Permanent and Preserve';\n } else if (permanentValue === true && preserveValue === true) {\n this.redirectTooltip = '308 – Permanent and Preserve';\n }\n }\n\n public SaveProcessorDetails(): void {\n const app: EaCApplicationAsCode = this.EditingApplication;\n app.LookupConfig.AllowedMethods = this.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v);\n app.Processor.Type = this.ProcessorType;\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.DefaultFile =\n this.DefaultFileFormControl.value || 'index.html';\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHub':\n app.LowCodeUnit.Organization =\n this.SourceControls[\n this.SourceControlFormControl.value\n ]?.Organization;\n\n app.LowCodeUnit.Repository =\n this.SourceControls[\n this.SourceControlFormControl.value\n ]?.Repository;\n\n app.LowCodeUnit.Build = this.BuildFormControl.value;\n\n app.LowCodeUnit.Path = this.BuildPathFormControl.value;\n\n app.LowCodeUnit.SourceControlLookup =\n this.SourceControlFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package = this.PackageFormControl.value;\n\n app.LowCodeUnit.Version = this.VersionFormControl.value;\n break;\n\n case 'WordPress':\n app.LowCodeUnit.APIRoot = this.APIRootFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile = this.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes = this.ScopesFormControl.value.split(' ');\n\n app.Processor.TokenLookup = this.TokenLookupFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHubOAuth':\n app.LowCodeUnit.ClientID =\n this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret =\n this.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath = this.InboundPathFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'API':\n app.LowCodeUnit.APIRoot = this.APIRootFormControl.value;\n\n app.LowCodeUnit.Security =\n this.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot = this.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.IncludeRequest =\n !!this.IncludeRequestFormControl.value;\n\n app.Processor.Permanent = !!this.PermanentFormControl.value;\n\n app.Processor.PreserveMethod =\n !!this.PreserveMethodFormControl.value;\n\n app.Processor.Redirect = this.RedirectFormControl.value;\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Application: app,\n ApplicationLookup:\n this.EditingApplicationLookup || Guid.CreateRaw(),\n };\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.SaveFormEvent.emit(res);\n });\n }\n\n public SetEditingApplication(appLookup: string): void {\n this.EditingApplication = new EaCApplicationAsCode();\n this.EditingApplicationLookup = appLookup;\n\n this.setupProcessorDetailsForm();\n }\n\n public SourceControlChanged(event: any) {\n this.listBuildPaths();\n }\n\n public ProcessorTypeChanged(event: MatSelectChange): void {\n this.ProcessorType = event.value;\n\n this.setupProcessorTypeSubForm();\n }\n\n public LCUTypeChanged(event: MatSelectChange): void {\n this.LCUType = event.value;\n\n this.setupLcuTypeSubForm();\n }\n\n //HELPERS\n\n protected cleanupLcuTypeSubForm(): void {\n this.ProcessorDetailsFormGroup.removeControl('methods');\n this.ProcessorDetailsFormGroup.removeControl('apiRoot');\n this.ProcessorDetailsFormGroup.removeControl('security');\n\n this.ProcessorDetailsFormGroup.removeControl('spaRoot');\n\n this.ProcessorDetailsFormGroup.removeControl('applicationId');\n this.ProcessorDetailsFormGroup.removeControl('sourceControl');\n\n this.ProcessorDetailsFormGroup.removeControl('build');\n\n this.ProcessorDetailsFormGroup.removeControl('clientId');\n this.ProcessorDetailsFormGroup.removeControl('clientSecret');\n this.ProcessorDetailsFormGroup.removeControl('package');\n this.ProcessorDetailsFormGroup.removeControl('version');\n\n this.ProcessorDetailsFormGroup.removeControl('zipFile');\n }\n\n protected cleanupProcessorTypeSubForm(): void {\n this.ProcessorDetailsFormGroup.removeControl('defaultFile');\n\n // this.ApplicationFormGroup.removeControl('dfsLcuType');\n\n // this.ApplicationFormGroup.removeControl('oauthLcuType');\n this.ProcessorDetailsFormGroup.removeControl('scopes');\n this.ProcessorDetailsFormGroup.removeControl('tokenLookup');\n\n this.ProcessorDetailsFormGroup.removeControl('inboundPath');\n this.ProcessorDetailsFormGroup.removeControl('proxyLcuType');\n\n this.ProcessorDetailsFormGroup.removeControl('includeRequest');\n this.ProcessorDetailsFormGroup.removeControl('redirect');\n this.ProcessorDetailsFormGroup.removeControl('permanent');\n this.ProcessorDetailsFormGroup.removeControl('preserveMethod');\n\n this.cleanupLcuTypeSubForm();\n }\n\n protected listBuildPaths(): void {\n this.State.Loading = true;\n\n console.log(\n 'Source Control: ',\n this.SourceControls[this.SourceControlFormControl.value]\n );\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.SourceControls[this.SourceControlFormControl.value]\n ?.Organization,\n this.SourceControls[this.SourceControlFormControl.value]\n ?.Repository\n )\n .subscribe((response: BaseModeledResponse<string[]>) => {\n this.BuildPathOptions = response.Model;\n console.log('build path options: ', this.BuildPathOptions);\n\n this.State.Loading = false;\n\n // if (this.BuildPathOptions?.length === 1) {\n // this.BuildPathFormControl.setValue(this.BuildPathOptions[0]);\n // }\n });\n }\n\n protected setupLcuTypeSubForm(): void {\n this.cleanupLcuTypeSubForm();\n\n if (this.LCUType) {\n switch (this.LCUType) {\n case 'API':\n this.setupLCUAPIForm();\n break;\n\n case 'ApplicationPointer':\n this.setupLCUApplicationPointerForm();\n break;\n\n case 'GitHub':\n this.setupLCUGitHubForm();\n break;\n\n case 'GitHubOAuth':\n this.setupLCUGitHubOAuthForm();\n break;\n\n case 'WordPress':\n this.setupLCUWordPressForm();\n break;\n\n // case 'NPM':\n // this.setupLCUNPMForm();\n // break;\n\n case 'SPA':\n this.setupLCUSPAForm();\n break;\n\n case 'Zip':\n this.setupLCUZipForm();\n break;\n }\n }\n }\n\n protected setupProcessorDetailsForm(): void {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n\n // console.log('EDITING APP = ', this.EditingApplication);\n\n if (this.EditingApplication != null) {\n this.ProcessorDetailsFormGroup = this.formBldr.group({\n procType: [this.ProcessorType, [Validators.required]],\n });\n // this.setupDfsForm();\n\n // this.setupLcuTypeSubForm();\n this.setupProcessorTypeSubForm();\n }\n }\n\n protected setupLCUGitHubForm(): void {\n console.log('EditingApplication: ', this.EditingApplication);\n\n this.ProcessorDetailsFormGroup.addControl(\n 'sourceControl',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SourceControlLookup || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'buildPath',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Path || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'build',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Build || 'latest',\n [Validators.required]\n )\n );\n\n this.listBuildPaths();\n }\n\n protected setupLCUApplicationPointerForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'applicationId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ApplicationID || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUSPAForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'spaRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SPARoot || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUAPIForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'methods',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.AllowedMethods?.join(\n ' '\n ) || '',\n []\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'apiRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.APIRoot || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'security',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.Security || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUGitHubOAuthForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'clientId',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientID || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'clientSecret',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ClientSecret || '',\n [Validators.required]\n )\n );\n }\n\n protected setupLCUWordPressForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'apiRoot',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.APIRoot || '',\n [Validators.required]\n )\n );\n }\n\n protected setupProxyForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ProcessorDetailsFormGroup.addControl(\n 'inboundPath',\n this.formBldr.control(\n this.EditingApplication.Processor?.InboundPath || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupRedirectForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'redirect',\n this.formBldr.control(\n this.EditingApplication.Processor?.Redirect || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'permanent',\n this.formBldr.control(\n this.EditingApplication.Processor?.Permanent || false,\n []\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'preserveMethod',\n this.formBldr.control(\n this.EditingApplication.Processor?.PreserveMethod || false,\n []\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'includeRequest',\n this.formBldr.control(\n this.EditingApplication.Processor?.IncludeRequest || false,\n []\n )\n );\n\n this.DetermineTooltipText();\n }\n\n protected setupOAuthForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ProcessorDetailsFormGroup.addControl(\n 'scopes',\n this.formBldr.control(\n this.EditingApplication.Processor?.Scopes?.Join(' ') || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'tokenLookup',\n this.formBldr.control(\n this.EditingApplication.Processor?.TokenLookup || '',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupLCUZipForm(): void {\n this.ProcessorDetailsFormGroup.addControl(\n 'zipFile',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.ZipFile || '',\n [Validators.required]\n )\n );\n }\n\n protected setupDfsForm(): void {\n this.LCUType = this.EditingApplication.LowCodeUnit?.Type || '';\n\n this.ProcessorDetailsFormGroup.addControl(\n 'defaultFile',\n this.formBldr.control(\n this.EditingApplication.Processor?.DefaultFile || 'index.html',\n [Validators.required]\n )\n );\n\n this.ProcessorDetailsFormGroup.addControl(\n 'lcuType',\n this.formBldr.control(this.LCUType, [Validators.required])\n );\n }\n\n protected setupProcessorTypeSubForm(): void {\n this.cleanupProcessorTypeSubForm();\n\n if (this.ProcessorType) {\n switch (this.ProcessorType) {\n case 'DFS':\n this.setupDfsForm();\n break;\n\n case 'OAuth':\n this.setupOAuthForm();\n break;\n\n case 'Proxy':\n this.setupProxyForm();\n break;\n\n case 'Redirect':\n this.setupRedirectForm();\n break;\n }\n }\n\n this.setupLcuTypeSubForm();\n }\n}\n","<form\n class=\"processor-details-form\"\n [formGroup]=\"ProcessorDetailsFormGroup\"\n (ngSubmit)=\"SaveProcessorDetails()\"\n>\n <!-- <mat-card class=\"spread flow-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header> -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <ng-container *ngFor=\"let fc of ValidFormControls\">\n <skeleton-block\n [id]=\"fc\"\n class=\"s-block\"\n effect=\"wave\"\n ></skeleton-block>\n </ng-container>\n\n <lcu-loader\n *ngIf=\"LCUType === 'Redirect'\"\n [loading]=\"State?.Loading\"\n ></lcu-loader>\n </ng-container>\n <!-- END SKELETON -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <!-- <mat-card-content> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <mat-option value=\"WordPress\">WordPress</mat-option>\n\n <mat-option value=\"Zip\">Zip</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <!-- <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ProcessorDetailsFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls> -->\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Source Control\"\n formControlName=\"sourceControl\"\n (selectionChange)=\"SourceControlChanged($event)\"\n required\n >\n <mat-option\n *ngFor=\"\n let scLookup of SourceControlLookups\n \"\n [value]=\"scLookup\"\n >\n {{ scLookup }}\n </mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width with-hint\"\n *ngIf=\"SourceControlFormControl?.valid\"\n >\n <mat-select\n formControlName=\"buildPath\"\n placeholder=\"Build Path\"\n required\n >\n <ng-container\n *ngFor=\"let buildPath of BuildPathOptions\"\n >\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\n use for your configuration.\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"SourceControlFormControl?.valid\"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{\n EditingApplication?.LowCodeUnit\n ?.CurrentBuild\n }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"\n EditingApplication?.LowCodeUnit?.Package\n \"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{\n EditingApplication?.LowCodeUnit?.CurrentVersion\n }}\n </mat-hint>\n </div>\n\n <div *ngSwitchCase=\"'WordPress'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'Zip'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Zip File\"\n formControlName=\"zipFile\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\"\n >Single Page Application</mat-option\n >\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"permanent\"\n >\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip=\"{{ redirectTooltip }}\"\n >\n info_outline\n </mat-icon>\n </div>\n\n <div>\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"includeRequest\"\n >\n Include Path and Query?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Should the redirect include the path and query?\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n <!-- </mat-card-content> -->\n <!-- <mat-card-actions fxLayoutAlign=\"center center\"> -->\n\n <!-- <button \n *ngIf=\"HasSaveButton && !State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!ProcessorDetailsFormGroup.valid || !ProcessorDetailsFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Processor Details\n </button> -->\n <!-- <lcu-loader *ngIf=\"HasSaveButton\" [loading]=\"State?.Loading\"></lcu-loader> -->\n\n <!-- </mat-card-actions> -->\n </ng-container>\n\n <!-- </mat-card> -->\n</form>\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCProjectAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { SourceControlFormControlsComponent } from '../../elements/projects/controls/forms/source-control/source-control.component';\n\n@Component({\n selector: 'lcu-source-control-form',\n templateUrl: './source-control-form.component.html',\n styleUrls: ['./source-control-form.component.scss'],\n})\nexport class SourceControlFormComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get HasBuildFormControl(): AbstractControl {\n return this.SourceControlFormGroup?.controls.hasBuild;\n }\n\n public get SourceControlLookupFormControl(): AbstractControl {\n return this.SourceControlFormGroup?.controls.sourceControlLookup;\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment.Sources || {};\n }\n\n public SourceControlFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n constructor(protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n this.setupSourceControlForm();\n }\n\n public SourceControlLookupChanged(event: MatSelectChange): void {\n // TODO: Anything to do here on change?\n console.log('sourceControlLookupChanged: ', event);\n }\n\n public SubmitSourceControl() {\n console.log(\n 'submitting source control: ',\n this.SourceControlFormGroup.value\n );\n this.SaveFormEvent.emit(this.SourceControlFormGroup.value);\n }\n\n //HELPER\n\n protected setupSourceControlForm(): void {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n\n this.SourceControlFormGroup = this.formBldr.group({});\n\n this.setupBuildForm();\n }\n\n protected setupBuildForm(): void {\n this.SourceControlFormGroup.addControl(\n 'hasBuild',\n this.formBldr.control(\n !!this.EditingApplication.LowCodeUnit?.SourceControlLookup ||\n false,\n [Validators.required]\n )\n );\n\n this.SourceControlFormGroup.addControl(\n 'sourceControlLookup',\n this.formBldr.control(\n this.EditingApplication.LowCodeUnit?.SourceControlLookup || '',\n []\n )\n );\n }\n}\n","<form\n class=\"source-control-form\"\n [formGroup]=\"SourceControlFormGroup\"\n (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 &&\n SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading ||\n 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\n ?.value || SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl\n ?.value || SourceControl?.Repository\n }}\n </h3>\n\n <p>\n Organization and Repository pulled from build settings\n </p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SourceControlFormGroup.valid ||\n !SourceControlFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save\n </button>\n </mat-card-actions>\n </mat-card>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { BaseModeledResponse, Guid } from '@lcu/common';\nimport {\n EaCArtifact,\n EaCDevOpsAction,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport {\n EaCService,\n SaveEnvironmentAsCodeEventRequest,\n} from '../../services/eac.service';\nimport {\n ApplicationsFlowState,\n ProjectHostingDetails,\n ProjectHostingOption,\n} from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-build-pipeline-form',\n templateUrl: './build-pipeline-form.component.html',\n styleUrls: ['./build-pipeline-form.component.scss'],\n})\nexport class BuildPipelineFormComponent implements OnInit {\n //PROPERTIES\n\n // @Input('build-pipeline')\n public BuildPipeline: string;\n\n @Input('devops-action-lookup')\n public DevOpsActionLookup: string;\n\n @Input('disabled')\n public Disabled: boolean;\n\n @Input('environment')\n public Environment: EaCEnvironmentAsCode;\n\n @Input('environment-lookup')\n public EnvironmentLookup: string;\n\n @Input('hosting-details')\n public HostingDetails: ProjectHostingDetails;\n\n @Output('response-event')\n public ResponseEvent: EventEmitter<any>;\n\n public get Artifact(): EaCArtifact {\n // console.log(\"ARTIFACT: \", this.Environment?.Artifacts[this.ArtifactLookup]);\n return this.Environment?.Artifacts && this.ArtifactLookup\n ? this.Environment?.Artifacts[this.ArtifactLookup] || {}\n : {};\n }\n\n public get ArtifactLookup(): string {\n const artLookup = this.DevOpsAction?.ArtifactLookups\n ? this.DevOpsAction?.ArtifactLookups[0]\n : null;\n\n return artLookup;\n }\n\n public get BuildPipelineFormControl(): AbstractControl {\n return this.BuildPipelineFormGroup?.get('buildPipeline');\n }\n\n public get DevOpsAction(): EaCDevOpsAction {\n return this.Environment.DevOpsActions && this.DevOpsActionLookup\n ? this.Environment.DevOpsActions[this.DevOpsActionLookup] || {}\n : {};\n }\n\n public get DevOpsActions(): { [lookup: string]: EaCDevOpsAction } {\n return this.Environment.DevOpsActions || {};\n }\n\n public get DevOpsActionNameFormControl(): AbstractControl {\n return this.BuildPipelineFormGroup.get('devOpsActionName');\n }\n\n public get NPMTokenFormControl(): AbstractControl {\n return this.BuildPipelineFormGroup.get('npmToken');\n }\n\n // (ho) => ho.Lookup === this.BuildPipeline\n public get SelectedHostingOption(): ProjectHostingOption {\n return this.HostingDetails?.HostingOptions?.find(\n (ho) => ho.Lookup === this.BuildPipeline\n );\n }\n\n public get SelectedHostingOptionInputControlValues(): {\n [lookup: string]: any;\n } {\n return this.SelectedHostingOption?.Inputs?.reduce((prev, cur) => {\n const res = {\n ...prev,\n };\n\n res[cur.Lookup] =\n this.BuildPipelineFormGroup.controls[cur.Lookup].value;\n\n return res;\n }, {});\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment.Sources || {};\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public BuildPipelineFormGroup: FormGroup;\n\n constructor(\n protected eacSvc: EaCService,\n protected formBuilder: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService\n ) {\n this.Disabled = false;\n this.HostingDetails = new ProjectHostingDetails();\n this.ResponseEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n // console.log('BuildPipeline = ', this.BuildPipeline)\n\n // this.BuildPipelineFormGroup = this.formBuilder.group({});\n\n // if (this.BuildPipelineFormGroup != null) {\n // this.BuildPipelineFormGroup.removeControl('hostingDetails');\n // }\n\n // this.BuildPipelineFormGroup.addControl(\n // 'hostingDetails',\n this.BuildPipelineFormGroup = this.formBuilder.group({\n // buildPipeline: [this.BuildPipeline, [Validators.required]],\n });\n // );\n\n this.loadProjectHostingDetails();\n // this.setupControlsForForm();\n }\n\n //API METHODS\n\n public BuildPipelineChanged(): void {\n //for some reason this value is coming back undefined\n // console.log(\"build pipeline value: \", this.BuildPipelineFormControl?.value)\n this.BuildPipeline = this.BuildPipelineFormControl?.value;\n\n this.setupControlsForForm();\n }\n\n public SubmitBuildPipeline() {\n // console.log(\"submitting build pipeline: \", this.BuildPipelineFormGroup.value);\n this.SaveEnvironment();\n }\n\n public SaveEnvironment(): void {\n const saveEnvReq: SaveEnvironmentAsCodeEventRequest = {\n Environment: {\n ...this.Environment,\n Artifacts: this.Environment.Artifacts || {},\n DevOpsActions: this.Environment.DevOpsActions || {},\n Secrets: this.Environment.Secrets || {},\n Sources: this.Environment.Sources || {},\n },\n EnvironmentLookup: this.EnvironmentLookup,\n EnterpriseDataTokens: {},\n };\n\n let artifactLookup: string;\n\n let artifact: EaCArtifact = {\n ...this.Artifact,\n ...this.SelectedHostingOptionInputControlValues,\n };\n\n if (!this.ArtifactLookup) {\n artifactLookup = Guid.CreateRaw();\n\n artifact = {\n ...artifact,\n Type: this.SelectedHostingOption.ArtifactType,\n Name: this.SelectedHostingOption.Name,\n NPMRegistry: 'https://registry.npmjs.org/',\n };\n } else {\n artifactLookup = this.ArtifactLookup;\n }\n\n saveEnvReq.Environment.Artifacts[artifactLookup] = artifact;\n\n let devOpsActionLookup: string;\n\n if (!this.DevOpsActionLookup) {\n devOpsActionLookup = Guid.CreateRaw();\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n ArtifactLookups: [artifactLookup],\n Name: this.DevOpsActionNameFormControl.value,\n Path: this.SelectedHostingOption.Path,\n Templates: this.SelectedHostingOption.Templates,\n };\n\n if (this.NPMTokenFormControl?.value) {\n const secretLookup = 'npm-access-token';\n\n doa.SecretLookups = [secretLookup];\n\n saveEnvReq.Environment.Secrets[secretLookup] = {\n Name: 'NPM Access Token',\n DataTokenLookup: secretLookup,\n KnownAs: 'NPM_TOKEN',\n };\n\n saveEnvReq.EnterpriseDataTokens[secretLookup] = {\n Name: saveEnvReq.Environment.Secrets[secretLookup].Name,\n Description:\n saveEnvReq.Environment.Secrets[secretLookup].Name,\n Value: this.NPMTokenFormControl.value,\n };\n }\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n } else {\n devOpsActionLookup = this.DevOpsActionLookup;\n\n const doa: EaCDevOpsAction = {\n ...this.DevOpsAction,\n Name: this.DevOpsActionNameFormControl.value,\n };\n\n saveEnvReq.Environment.DevOpsActions[devOpsActionLookup] = doa;\n }\n\n this.eacSvc.SaveEnvironmentAsCode(saveEnvReq).then((res) => {\n this.ResponseEvent.emit(res);\n });\n }\n\n // Helpers\n protected setupControlsForForm(): void {\n // this.BuildPipeline =\n // this.BuildPipeline || this.HostingDetails?.HostingOptions\n // ? this.HostingDetails?.HostingOptions[0]?.Lookup\n // : '';\n\n // console.log(\"hosting details: \", this.HostingDetails)\n\n for (const ctrlName in this.BuildPipelineFormGroup.controls) {\n //devOpsAction doesn't exist\n //removes hosting details\n if (ctrlName !== 'buildPipeline' && ctrlName !== 'devOpsAction') {\n // console.log(\"removing control: \", ctrlName)\n this.BuildPipelineFormGroup.removeControl(ctrlName);\n }\n }\n\n this.BuildPipelineFormGroup.addControl(\n 'buildPipeline',\n this.formBuilder.control(this.BuildPipeline || '', [\n Validators.required,\n ])\n );\n\n this.BuildPipelineFormGroup.addControl(\n 'devOpsActionName',\n this.formBuilder.control(\n this.DevOpsAction?.Name ||\n this.SelectedHostingOption?.Name ||\n '',\n [Validators.required]\n )\n );\n\n // console.log(\"selected hosting options: \", this.SelectedHostingOption.Inputs);\n\n this.SelectedHostingOption?.Inputs?.forEach((input) => {\n const validators = input.Required ? [Validators.required] : [];\n\n this.BuildPipelineFormGroup.addControl(\n input.Lookup,\n this.formBuilder.control(\n this.Artifact[input.Lookup] || input.DefaultValue || '',\n validators\n )\n );\n\n // if (this.Disabled) {\n // this.FormGroup.controls[input.Lookup].disable();\n // }\n });\n\n if (this.BuildPipelineFormControl?.value === 'npm-release') {\n console.log('npm release');\n if (!this.BuildPipelineFormGroup?.controls?.npmToken) {\n console.log('npm token if');\n this.BuildPipelineFormGroup.addControl(\n 'npmToken',\n this.formBuilder.control(\n '',\n this.Disabled ? [] : [Validators.required]\n )\n );\n\n if (this.Disabled) {\n this.BuildPipelineFormGroup.controls.npmToken.disable();\n }\n }\n } else if (\n this.BuildPipelineFormControl?.value === 'github-artifacts-release'\n ) {\n if (this.BuildPipelineFormGroup?.controls?.npmToken) {\n this.BuildPipelineFormGroup.removeControl('npmToken');\n }\n }\n }\n\n protected loadProjectHostingDetails(): void {\n this.HostingDetails.Loading = true;\n this.appsFlowSvc.LoadProjectHostingDetails().subscribe(\n (response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n // console.log(\"response: \", response);\n this.HostingDetails.Loading = false;\n\n const hostOption = this.HostingDetails?.HostingOptions?.find(\n (ho) => ho.Path === this.DevOpsAction.Path\n );\n this.BuildPipeline = hostOption?.Lookup;\n\n // console.log(\"Build Pipeline HERE= \", this.BuildPipeline);\n\n this.setupControlsForForm();\n },\n (err) => {\n console.log('ERR: ', err);\n this.HostingDetails.Loading = false;\n }\n );\n // console.log('HOSTING DETAILS: ', this.HostingDetails);\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"BuildPipelineFormGroup\"\n (ngSubmit)=\"SubmitBuildPipeline()\"\n>\n <!-- <mat-card\n class=\"spread\" \n > -->\n <!-- <mat-card-header>\n <mat-card-title> Build Pipeline </mat-card-title>\n\n <mat-hint>\n Changes made here are reflected for all sources using this\n DevOpsAction\n </mat-hint>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n\n <ng-container *ngIf=\"HostingDetails?.Loading || State?.Loading\">\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <ng-container *ngIf=\"SelectedHostingOption?.Inputs\">\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions\"\n >\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n </ng-container>\n\n <skeleton-block *ngIf=\"\" class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n\n <ng-container *ngIf=\"!HostingDetails?.Loading && !State?.Loading\">\n <!-- <div *ngIf=\"!HostingDetails?.Loading\"> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"\n let hostOption of HostingDetails?.HostingOptions;\n let i = index\n \"\n >\n <mat-option [value]=\"hostOption.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions\"\n >\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n\n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n\n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n\n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n\n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access\n Token (PAT) with publish access to the organization used for\n your NPM packages. Learn how to create and view access\n tokens\n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n class=\"primary-link\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n <!-- </div> -->\n\n <!-- <div *ngIf=\"HostingDetails?.Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n \n <div class=\"margin-3\">\n <h4 class=\"mat-title\">Loading hosting details</h4>\n </div>\n </div>\n </div> -->\n </ng-container>\n <!-- </mat-card-content> -->\n\n <!-- <mat-card-actions fxLayoutAlign=\"center center\"> -->\n\n <!-- <button \n *ngIf=\"!State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!BuildPipelineFormGroup.valid || !BuildPipelineFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Build Pipeline\n </button> -->\n <!-- <lcu-loader [loading]=\"State?.Loading\"></lcu-loader> -->\n\n <!-- </mat-card-actions> -->\n <!-- </mat-card> -->\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCEnvironmentAsCode } from '@semanticjs/common';\nimport { BuildPipelineFormComponent } from '../../controls/build-pipeline-form/build-pipeline-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface BPDialogData {\n devopsActionLookup: string;\n doaName: string;\n environment: EaCEnvironmentAsCode;\n environmentLookup: string;\n\n // buildPipeline: string;\n}\n\n@Component({\n selector: 'lcu-build-pipeline-dialog',\n templateUrl: './build-pipeline-dialog.component.html',\n styleUrls: ['./build-pipeline-dialog.component.scss'],\n})\nexport class BuildPipelineDialogComponent implements OnInit {\n @ViewChild(BuildPipelineFormComponent)\n public BuildPipelineControl: BuildPipelineFormComponent;\n\n public get BuildPipelineFormGroup(): FormGroup {\n return this.BuildPipelineControl?.BuildPipelineFormGroup;\n }\n\n public get HasConnection(): boolean {\n return this.State.GitHub.HasConnection;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public dialogRef: MatDialogRef<BuildPipelineDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: BPDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public DeleteDevOpsAction(): void {\n this.eacSvc\n .DeleteDevOpsAction(this.data.devopsActionLookup, this.data.doaName)\n .then((status) => {\n this.CloseDialog();\n });\n }\n\n public HandleResponseEvent(event: Status) {\n console.log('Response Event: ', event);\n if (event.Code === 0) {\n this.snackBar.open(\n 'Build Pipeline Created Succesfully',\n 'Dismiss',\n {\n duration: 5000,\n }\n );\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveBuildPipeline() {\n this.BuildPipelineControl.SaveEnvironment();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Build Pipeline</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <ng-container *ngIf=\"!HasConnection\">\n <lcu-git-auth></lcu-git-auth>\n </ng-container>\n\n <ng-container *ngIf=\"HasConnection\">\n <lcu-build-pipeline-form\n [devops-action-lookup]=\"data.devopsActionLookup\"\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n (response-event)=\"HandleResponseEvent($event)\"\n >\n </lcu-build-pipeline-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n </ng-container>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteDevOpsAction()\"\n matTooltip=\"Delete {{ data.doaName }}\"\n >\n Delete\n </button>\n </div>\n <div fxLayoutAlign=\"end center\">\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"52%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveBuildPipeline()\"\n [disabled]=\"\n !BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-edit-application-form',\n templateUrl: './edit-application-form.component.html',\n styleUrls: ['./edit-application-form.component.scss'],\n})\nexport class EditApplicationFormComponent implements OnInit {\n @Input('application-lookup')\n public ApplicationLookup: string;\n\n @Input('current-route')\n public CurrentRoute: string;\n\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Input('has-save-button')\n public HasSaveButton: boolean;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get DescriptionFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.description;\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.name;\n }\n\n public get RouteFormControl(): AbstractControl {\n return this.ApplicationFormGroup?.controls.route;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ApplicationFormGroup: FormGroup;\n\n constructor(protected formBldr: FormBuilder, protected eacSvc: EaCService) {\n this.SaveFormEvent = new EventEmitter();\n this.HasSaveButton = true;\n }\n\n public ngOnInit(): void {\n this.setupApplicationForm();\n }\n\n public SubmitApplicationControl() {\n console.log('application form: ', this.ApplicationFormGroup.value);\n this.SaveApplication();\n }\n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = this.EditingApplication;\n // console.log(\"APP=\", app);\n app.Application = {\n Name: this.NameFormControl.value,\n Description: this.DescriptionFormControl.value,\n PriorityShift:\n this.EditingApplication?.Application?.PriorityShift || 0,\n };\n\n app.LookupConfig.PathRegex = `${this.RouteFormControl.value}.*`;\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref =\n `${this.RouteFormControl.value}/`.replace('//', '/');\n\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Application: app,\n ApplicationLookup: this.ApplicationLookup,\n };\n\n console.log('processor details being submitted: ', app.Processor);\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.SaveFormEvent.emit(res);\n });\n }\n\n //HELPERS\n protected setupApplicationForm() {\n if (this.EditingApplication != null) {\n this.ApplicationFormGroup = this.formBldr.group({\n name: [\n this.EditingApplication.Application?.Name,\n Validators.required,\n ],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [\n this.CurrentRoute\n ? this.CurrentRoute\n : this.EditingApplication.LookupConfig?.PathRegex.replace(\n '.*',\n ''\n ) || '/',\n Validators.required,\n ],\n // priority: [\n // this.EditingApplication.Application?.Priority || 10000,\n // Validators.required,\n // ],\n });\n }\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"ApplicationFormGroup\"\n (ngSubmit)=\"SubmitApplicationControl()\"\n>\n <!-- <mat-card class=\"spread flow-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title>\n <ng-container *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n <ng-container *ngIf=\"State?.Loading\">\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <!-- </mat-card-content> -->\n <!-- <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n *ngIf=\"HasSaveButton && !State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!ApplicationFormGroup.valid || !ApplicationFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n <lcu-loader *ngIf=\"HasSaveButton\" [loading]=\"State?.Loading\"></lcu-loader>\n \n </mat-card-actions> -->\n <!-- </mat-card> -->\n</form>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n})\nexport class BreadcrumbComponent implements OnInit {\n @Input('application-lookup')\n public ApplicationLookup: string;\n\n public get Enterprise(): any {\n return this.State?.EaC?.Enterprise;\n }\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Input('selected-route')\n public SelectedRoute: string;\n\n public get ApplicationsBank(): { [lookup: string]: EaCApplicationAsCode } {\n return this.State?.EaC?.Applications || {};\n }\n\n public get Applications(): { [lookup: string]: EaCApplicationAsCode } {\n const apps: { [lookup: string]: EaCApplicationAsCode } = {};\n\n this.SelectedProject?.ApplicationLookups?.forEach(\n (appLookup: string) => {\n apps[appLookup] = this.ApplicationsBank[appLookup];\n }\n );\n return apps;\n }\n\n public get SelectedApplication(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.ApplicationLookup] || {};\n }\n\n public get CurrentRouteApplicationLookups(): Array<string> {\n return Object.keys(this.RoutedApplications[this.SelectedRoute] || {});\n }\n\n public get Loading(): boolean {\n return (\n this.State?.LoadingActiveEnterprise ||\n this.State?.LoadingEnterprises\n );\n }\n\n public get Projects(): any {\n return this.State?.EaC?.Projects || {};\n }\n\n public get ProjectLookups(): string[] {\n return Object.keys(this.State?.EaC?.Projects || {});\n }\n\n public get Routes(): Array<string> {\n return Object.keys(this.RoutedApplications || {});\n }\n\n public get RoutedApplications(): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n const appLookups = Object.keys(this.Applications);\n\n const apps = appLookups.map(\n (appLookup) => this.Applications[appLookup]\n );\n\n let appRoutes =\n apps.map((app) => {\n return app?.LookupConfig?.PathRegex.replace('.*', '');\n }) || [];\n\n appRoutes = appRoutes.filter((ar) => ar != null);\n\n let routeBases: string[] = [];\n\n appRoutes?.forEach((appRoute) => {\n const appRouteParts = appRoute.split('/');\n\n const appRouteBase = `/${appRouteParts[1]}`;\n\n if (routeBases.indexOf(appRouteBase) < 0) {\n routeBases.push(appRouteBase);\n }\n });\n\n let workingAppLookups = [...(appLookups || [])];\n\n routeBases = routeBases.sort((a, b) => b.localeCompare(a));\n\n const routeSet =\n routeBases.reduce((prevRouteMap, currentRouteBase) => {\n const routeMap = {\n ...prevRouteMap,\n };\n\n const filteredAppLookups = workingAppLookups.filter((wal) => {\n const wa = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(\n currentRouteBase\n );\n });\n\n routeMap[currentRouteBase] =\n filteredAppLookups.reduce((prevAppMap, appLookup) => {\n const appMap = {\n ...prevAppMap,\n };\n\n appMap[appLookup] = this.Applications[appLookup];\n\n return appMap;\n }, {}) || {};\n\n workingAppLookups = workingAppLookups.filter((wa) => {\n return filteredAppLookups.indexOf(wa) < 0;\n });\n\n return routeMap;\n }, {}) || {};\n\n let routeSetKeys = Object.keys(routeSet);\n\n routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));\n\n const routeSetResult = {};\n\n routeSetKeys?.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));\n\n return routeSetResult;\n }\n\n public get SelectedProject(): any {\n return this.State?.EaC?.Projects[this.ProjectLookup] || {};\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService) {\n this.SkeletonEffect = 'wave';\n }\n\n ngOnInit(): void {\n this.handleStateChange().then((eac) => {});\n\n // console.log(\"state: \", this.State)\n\n // console.log('selected enterprise: ', this.Enterprise);\n\n // console.log('Selected project: ', this.SelectedProject.Project);\n\n // console.log('SelectedRoute:', this.SelectedRoute);\n }\n\n public SetActiveEnterprise(entLookup: string): void {\n this.eacSvc.SetActiveEnterprise(entLookup).then(() => {});\n }\n\n protected async handleStateChange(): Promise<void> {}\n}\n","<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <ng-container *ngIf=\"State.Loading || Loading\">\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">home</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Enterprise Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State.Loading && Enterprise && !Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['']\">\n <mat-icon>home</mat-icon>\n\n {{ Enterprise?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"enterpriseMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #enterpriseMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n [routerLink]=\"['']\"\n (click)=\"SetActiveEnterprise(ent.Lookup)\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n <span>{{ ent.Name }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"ProjectLookup && SelectedProject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Project Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/project', ProjectLookup]\">\n {{ SelectedProject?.Project?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let projectLookup of ProjectLookups\"\n [routerLink]=\"['/project', projectLookup]\"\n >\n <span *ngIf=\"Projects[projectLookup]; let pro\">{{\n pro.Project?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Route Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"['/route', SelectedRoute, ProjectLookup]\"\n >\n {{ SelectedRoute }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appRoute of Routes\"\n [routerLink]=\"['/route', appRoute, ProjectLookup]\"\n >\n <span *ngIf=\"appRoute\">{{ appRoute }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"SelectedApplication && ApplicationLookup\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Application Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"[\n '/application',\n ApplicationLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n {{ SelectedApplication?.Application?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"applicationMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #applicationMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"[\n '/application',\n appLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n <span\n *ngIf=\"\n RoutedApplications[SelectedRoute][appLookup];\n let app\n \"\n >{{ app.Application?.Name }}</span\n >\n </button>\n </mat-menu>\n </ng-container>\n </div>\n</div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { EaCHost, EaCProjectAsCode } from '@semanticjs/common';\n\nexport interface CDDialogData {\n hosts: { [lookup: string]: EaCHost };\n primaryHost: string;\n project: EaCProjectAsCode;\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-custom-domain-dialog',\n templateUrl: './custom-domain-dialog.component.html',\n styleUrls: ['./custom-domain-dialog.component.scss'],\n})\nexport class CustomDomainDialogComponent implements OnInit {\n public DomainData: {};\n\n constructor(\n public dialogRef: MatDialogRef<CustomDomainDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: CDDialogData\n ) {\n this.DomainData = {\n Hosts: this.data.hosts,\n PrimaryHost: this.data.primaryHost,\n Project: this.data.project,\n ProjectLookup: this.data.projectLookup,\n };\n }\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n}\n","<!-- <div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div> -->\n\n<!-- NEW BELOW -->\n<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Custom Domain</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-domains [data]=\"DomainData\"> </lcu-domains>\n\n <!-- <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error> -->\n</mat-dialog-content>\n\n<!-- <mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"end center\"\n>\n <button \n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\">\n Cancel\n\n </button>\n\n\n\n <button \n *ngIf=\"!State?.Loading\"\n mat-raised-button \n type=\"submit\" \n fxFlex=\"25%\" \n color=\"primary\" \n (click)=\"SaveCustomDomain()\"\n [disabled]=\"!BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\">\n Save\n </button>\n\n</mat-dialog-actions> -->\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EditApplicationFormComponent } from '../../controls/edit-application-form/edit-application-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface ApplicationDialogData {\n application: EaCApplicationAsCode;\n applicationLookup: string;\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-edit-application-dialog',\n templateUrl: './edit-application-dialog.component.html',\n styleUrls: ['./edit-application-dialog.component.scss'],\n})\nexport class EditApplicationDialogComponent implements OnInit {\n @ViewChild(EditApplicationFormComponent)\n public EditApplicationControl: EditApplicationFormComponent;\n\n public get ApplicationFormGroup(): FormGroup {\n return this.EditApplicationControl?.ApplicationFormGroup;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public eacSvc: EaCService,\n public dialogRef: MatDialogRef<EditApplicationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ApplicationDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleSaveApplicationEvent(event: Status) {\n console.log('event to save: ', event);\n if (event.Code === 0) {\n this.snackBar.open('Application Succesfully Updated', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveApplication() {\n this.EditApplicationControl.SaveApplication();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>\n Edit Application: {{ data.application?.Application?.Name }}\n </h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-edit-application-form\n [application-lookup]=\"data.applicationLookup\"\n [editing-application]=\"data.application\"\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveApplicationEvent($event)\"\n >\n </lcu-edit-application-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ApplicationFormGroup?.valid || !ApplicationFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Guid, Status } from '@lcu/common';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n EnterpriseAsCode,\n} from '@semanticjs/common';\nimport { EditApplicationFormComponent } from '../../controls/edit-application-form/edit-application-form.component';\nimport { ProcessorDetailsFormComponent } from '../../controls/processor-details-form/processor-details-form.component';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface NewApplicationDialogData {\n environmentLookup: string;\n projectLookup: string;\n currentRoute: string;\n}\n\n@Component({\n selector: 'lcu-new-application-dialog',\n templateUrl: './new-application-dialog.component.html',\n styleUrls: ['./new-application-dialog.component.scss'],\n})\nexport class NewApplicationDialogComponent implements OnInit {\n @ViewChild(EditApplicationFormComponent)\n public ApplicationFormControls: EditApplicationFormComponent;\n\n @ViewChild(ProcessorDetailsFormComponent)\n public ProcessorDetailsFormControls: ProcessorDetailsFormComponent;\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.data.environmentLookup];\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.Environment.Sources || {});\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n public HasSaveButton: boolean;\n\n public NewApplication: EaCApplicationAsCode;\n\n public NewApplicationLookup: string;\n\n constructor(\n protected eacSvc: EaCService,\n public dialogRef: MatDialogRef<NewApplicationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: NewApplicationDialogData,\n protected snackBar: MatSnackBar\n ) {\n this.HasSaveButton = false;\n }\n\n public ngOnInit(): void {\n this.SetupApplication(Guid.CreateRaw());\n }\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public SetupApplication(appLookup: string) {\n this.NewApplication = new EaCApplicationAsCode();\n this.NewApplicationLookup = appLookup;\n }\n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = {\n Application: {\n Name: this.ApplicationFormControls.NameFormControl.value,\n Description:\n this.ApplicationFormControls.DescriptionFormControl.value,\n PriorityShift: 0,\n },\n AccessRightLookups: [],\n DataTokens: {},\n LicenseConfigurationLookups: [],\n LookupConfig: {\n IsPrivate: false,\n IsTriggerSignIn: false,\n PathRegex: `${this.ApplicationFormControls.RouteFormControl.value}.*`,\n QueryRegex: '',\n HeaderRegex: '',\n AllowedMethods:\n this.ProcessorDetailsFormControls.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v),\n },\n Processor: {\n Type: this.ProcessorDetailsFormControls.ProcessorType,\n },\n LowCodeUnit: {},\n };\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref =\n `${this.ApplicationFormControls.RouteFormControl.value}/`.replace(\n '//',\n '/'\n );\n\n app.Processor.DefaultFile =\n this.ProcessorDetailsFormControls.DefaultFileFormControl\n .value || 'index.html';\n\n app.LowCodeUnit = {\n Type: this.ProcessorDetailsFormControls.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHub':\n app.LowCodeUnit.Organization =\n this.SourceControls[\n this.ProcessorDetailsFormControls.SourceControlFormControl.value\n ].Organization;\n\n app.LowCodeUnit.Repository =\n this.SourceControls[\n this.ProcessorDetailsFormControls.SourceControlFormControl.value\n ].Repository;\n\n app.LowCodeUnit.Build =\n this.ProcessorDetailsFormControls.BuildFormControl.value;\n\n app.LowCodeUnit.Path =\n this.ProcessorDetailsFormControls.BuildPathFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package =\n this.ProcessorDetailsFormControls.PackageFormControl.value;\n\n app.LowCodeUnit.Version =\n this.ProcessorDetailsFormControls.VersionFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile =\n this.ProcessorDetailsFormControls.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes =\n this.ProcessorDetailsFormControls.ScopesFormControl.value.split(\n ' '\n );\n\n app.Processor.TokenLookup =\n this.ProcessorDetailsFormControls.TokenLookupFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.ProcessorDetailsFormControls.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'GitHubOAuth':\n app.LowCodeUnit.ClientID =\n this.ProcessorDetailsFormControls.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret =\n this.ProcessorDetailsFormControls.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath =\n this.ProcessorDetailsFormControls.InboundPathFormControl.value;\n\n app.LowCodeUnit = {\n Type: this.ProcessorDetailsFormControls.LCUType,\n };\n\n switch (app.LowCodeUnit.Type) {\n case 'API':\n app.LowCodeUnit.APIRoot =\n this.ProcessorDetailsFormControls.APIRootFormControl.value;\n\n app.LowCodeUnit.Security =\n this.ProcessorDetailsFormControls.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot =\n this.ProcessorDetailsFormControls.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.Permanent =\n !!this.ProcessorDetailsFormControls.PermanentFormControl\n .value;\n\n app.Processor.PreserveMethod =\n !!this.ProcessorDetailsFormControls\n .PreserveMethodFormControl.value;\n\n app.Processor.Redirect =\n this.ProcessorDetailsFormControls.RedirectFormControl.value;\n break;\n }\n\n if (!app.LookupConfig.PathRegex.startsWith('/')) {\n app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;\n }\n\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ProjectLookup: this.data.projectLookup,\n Application: app,\n ApplicationLookup: this.NewApplicationLookup,\n };\n // this.HasBuildFormControl.value && taken out from below if statement\n if (\n this.ProcessorDetailsFormControls.ProcessorType !== 'redirect' &&\n this.ProcessorDetailsFormControls.LCUType === 'GitHub'\n ) {\n if (app) {\n app.LowCodeUnit.SourceControlLookup =\n this.ProcessorDetailsFormControls.SourceControlFormControl.value;\n }\n } else if (app) {\n app.LowCodeUnit.SourceControlLookup = null;\n }\n\n // console.log(\"Save new App request: \", saveAppReq);\n\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.handleSaveStatus(res);\n });\n }\n\n protected handleSaveStatus(status: Status) {\n console.log('event to save: ', status);\n if (status.Code === 0) {\n this.snackBar.open('Application Succesfully Created', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = status.Message;\n }\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Create Application</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-edit-application-form\n [current-route]=\"data.currentRoute\"\n [editing-application]=\"NewApplication\"\n [has-save-button]=\"HasSaveButton\"\n >\n </lcu-edit-application-form>\n\n <lcu-processor-details-form\n [editing-application]=\"NewApplication\"\n [editing-application-lookup]=\"NewApplicationLookup\"\n [has-save-button]=\"HasSaveButton\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n >\n </lcu-processor-details-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"\n ProcessorDetailsFormControls &&\n ApplicationFormControls &&\n !State?.Loading\n \"\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"new-app-submit\"\n (click)=\"SaveApplication()\"\n [disabled]=\"\n !ProcessorDetailsFormControls?.ProcessorDetailsFormGroup?.valid ||\n !ApplicationFormControls?.ApplicationFormGroup?.valid\n \"\n >\n Save Application\n </button>\n</mat-dialog-actions>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport {\n EaCApplicationAsCode,\n EaCEnvironmentAsCode,\n EaCSourceControl,\n} from '@semanticjs/common';\nimport { ProcessorDetailsFormComponent } from '../../controls/processor-details-form/processor-details-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface ProcessorDetailsDialogData {\n applicationLookup: string;\n environmentLookup: string;\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-processor-details-dialog',\n templateUrl: './processor-details-dialog.component.html',\n styleUrls: ['./processor-details-dialog.component.scss'],\n})\nexport class ProcessorDetailsDialogComponent implements OnInit {\n @ViewChild(ProcessorDetailsFormComponent)\n public ProcessorDetailsFormControls: ProcessorDetailsFormComponent;\n\n public get Application(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.data.applicationLookup] || {};\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[this.data.environmentLookup];\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SourceControlLookups(): Array<string> {\n return Object.keys(this.Environment?.Sources || {});\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get ProcessorDetailsFormGroup(): FormGroup {\n return this.ProcessorDetailsFormControls?.ProcessorDetailsFormGroup;\n }\n\n public ErrorMessage: string;\n\n constructor(\n protected eacSvc: EaCService,\n public dialogRef: MatDialogRef<ProcessorDetailsDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ProcessorDetailsDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleSaveFormEvent(event: Status) {\n console.log('event: ', event);\n if (event.Code === 0) {\n this.snackBar.open(\n 'Build Pipeline Created Succesfully',\n 'Dismiss',\n {\n duration: 5000,\n }\n );\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveProcessorDetails() {\n this.ProcessorDetailsFormControls.SaveProcessorDetails();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Processor Details</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-processor-details-form\n more-details\n [editing-application]=\"Application\"\n [editing-application-lookup]=\"data.applicationLookup\"\n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveFormEvent($event)\"\n >\n </lcu-processor-details-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveProcessorDetails()\"\n [disabled]=\"\n !ProcessorDetailsFormGroup?.valid ||\n !ProcessorDetailsFormGroup?.dirty\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lcu-skeleton-feed-card',\n templateUrl: './skeleton-feed-card.component.html',\n styleUrls: ['./skeleton-feed-card.component.scss'],\n})\nexport class SkeletonFeedCardComponent implements OnInit {\n public SkeletonEffect: string;\n\n constructor() {\n this.SkeletonEffect = 'wave';\n }\n\n ngOnInit(): void {}\n}\n","<mat-card class=\"social-card\">\n <mat-card-header>\n <skeleton-avatar\n mat-card-avatar\n size=\"100\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-avatar>\n\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\"\n >FeedItem Title</mat-card-title\n >\n\n <mat-card-subtitle>\n <div skeleton-text [effect]=\"SkeletonEffect\">FeedItem Subtitle</div>\n <div>\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\"\n >check</mat-icon\n >\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Timestamp</div>\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <div skeleton-text [effect]=\"SkeletonEffect\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sit\n amet ante dui. Praesent ut aliquam metus. Phasellus consectetur non\n eros eu gravida. Vestibulum faucibus laoreet leo, ac molestie felis\n tincidunt semper. Vivamus lorem ipsum, sagittis nec blandit sed,\n accumsan sed dolor. Etiam tincidunt vel ligula ut malesuada. Nulla\n sit amet fermentum libero. Quisque magna tellus, pellentesque in\n convallis vitae, aliquet et orci. Pellentesque commodo ante id est\n viverra posuere ac vitae ligula. Ut sed ullamcorper purus. Integer\n sit amet lorem eros.\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Button Text</div>\n </mat-card-actions>\n</mat-card>\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'lcu-upgrade-dialog',\n templateUrl: './upgrade-dialog.component.html',\n styleUrls: ['./upgrade-dialog.component.scss'],\n})\nexport class UpgradeDialogComponent implements OnInit {\n constructor(public dialogRef: MatDialogRef<UpgradeDialogComponent>) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button id=\"close-upgrade-button\" (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<div fxLayout=\"row\" fxLayoutAlign=\"space-around center\" id=\"upgrade-content\">\n <div\n class=\"upgrade-container\"\n fxLayout=\"column\"\n fxLayoutAlign=\"center start\"\n >\n <div class=\"x-large\">Wow!</div>\n <div class=\"x-large\">Fathym Premium is Free During Beta!</div>\n <div class=\"large\">Really...no credit card required.</div>\n </div>\n <div class=\"upgrade-container\">\n <img\n src=\"./assets/images/Happy_Lady.png\"\n id=\"upgrade-promo-image\"\n alt=\"Fathym Premium Free During Beta\"\n />\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-emulated-devices-toggle',\n templateUrl: './emulated-devices-toggle.component.html',\n styleUrls: ['./emulated-devices-toggle.component.scss'],\n})\nexport class EmulatedDevicesToggleComponent implements OnInit {\n @Input('editing-application')\n public EditingApplication: EaCApplicationAsCode;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get IsPrivateFormControl(): AbstractControl {\n return this.EmulatedDevicesFormGroup?.controls.isPrivate;\n }\n\n public get IsTriggerSignInFormControl(): AbstractControl {\n return this.EmulatedDevicesFormGroup?.controls.isTriggerSignIn;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public EmulatedDevicesFormGroup: FormGroup;\n\n public ProcessorType: string;\n\n public SkeletonEffect: string;\n\n constructor(protected eacSvc: EaCService, protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n this.SkeletonEffect = 'wave';\n }\n\n public ngOnInit(): void {\n this.setupEmulatedDevicesFormGroup();\n }\n\n public EmulatedDevicesSubmit() {\n //save the EmulatedDevices settings\n console.log(\n 'submitting EmulatedDevices values: ',\n this.EmulatedDevicesFormGroup.value\n );\n this.SaveFormEvent.emit(this.EmulatedDevicesFormGroup.value);\n }\n\n protected setupEmulatedDevicesFormGroup() {\n this.ProcessorType = this.EditingApplication?.Processor?.Type || '';\n this.EmulatedDevicesFormGroup = this.formBldr.group({});\n this.setupEmulatedDevicesForm();\n }\n\n protected setupEmulatedDevicesForm(): void {\n this.EmulatedDevicesFormGroup.addControl(\n 'isEmulated',\n this.formBldr.control(\n this.EditingApplication.LookupConfig?.IsPrivate || false,\n [Validators.required]\n )\n );\n }\n}\n","<form\n class=\"emulated-devices-form\"\n [formGroup]=\"EmulatedDevicesFormGroup\"\n (ngSubmit)=\"EmulatedDevicesSubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Emulated Devices Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-header>\n <mat-card-title> Emulated Device Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !EmulatedDevicesFormGroup.valid ||\n !EmulatedDevicesFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n","import { Status } from '@lcu/common';\n\nexport class IoTEnsembleState {\n public AccessLicenseType?: string;\n\n public AccessPlanGroup?: string;\n\n public DataInterval?: number;\n\n public DataRetention?: number;\n\n public DevicesConfig?: IoTEnsembleConnectedDevicesConfig;\n\n public Dashboard?: IoTEnsembleDashboardConfiguration;\n\n public Drawers?: IoTEnsembleDrawersConfig;\n\n public Emulated?: EmulatedDeviceInfo;\n\n public Error?: ErrorContext;\n\n public ExpandedPayloadID?: string;\n\n public HasAccess?: boolean;\n\n public Loading?: boolean;\n\n public SelectedDeviceID?: string;\n\n public Storage?: IoTEnsembleStorageConfiguration;\n\n public Telemetry?: IoTEnsembleTelemetry;\n\n public UserEnterpriseLookup?: string;\n}\n\nexport class EmulatedDeviceInfo {\n public Enabled?: boolean;\n\n public Loading?: boolean;\n}\n\nexport class IoTEnsembleDashboardConfiguration {\n public FreeboardConfig?: any;\n\n public PowerBIConfig?: any;\n}\n\nexport class ErrorContext {\n public ActionPath?: string;\n\n public ActionTarget?: string;\n\n public ActionText?: string;\n\n public Message?: string;\n\n public Title?: string;\n}\n\nexport class IoTEnsembleDeviceEnrollment {\n public DeviceName?: string;\n}\n\nexport class IoTEnsembleConnectedDevicesConfig {\n public EnterpriseDevicesCount: number;\n\n public Devices?: IoTEnsembleDeviceInfo[];\n\n public Loading?: boolean;\n\n public MaxDevicesCount?: number;\n\n public Page?: number;\n\n public PageSize?: number;\n\n public SASTokens?: { [deviceName: string]: string };\n\n public Status?: Status;\n\n public TotalDevices?: number;\n}\n\nexport class IoTEnsembleDeviceInfo {\n [prop: string]: any;\n\n public ActivelySendingData?: boolean;\n\n public AuthenticationType?: string;\n\n public CloudToDeviceMessageCount?: number;\n\n public ConnectionString?: string;\n\n public DeviceID?: string;\n\n public DeviceName?: string;\n\n public LastStatusUpdate?: Status;\n}\n\nexport class IoTEnsembleTelemetry {\n public Enabled?: boolean;\n\n public Loading?: boolean;\n\n public Page?: number;\n\n public PageSize?: number;\n\n public Payloads?: IoTEnsembleTelemetryPayload[];\n\n public RefreshRate?: number;\n\n public LastSyncedAt?: string;\n\n public TotalPayloads?: number;\n}\n\nexport class IoTEnsembleTelemetryPayload {\n [prop: string]: any;\n\n public DeviceData?: { [prop: string]: any };\n\n public DeviceID?: string;\n\n public DeviceType?: string;\n\n public ID?: string;\n\n public SensorMetadata?: { [prop: string]: any };\n\n public SensorReadings?: { [prop: string]: any };\n\n public Timestamp?: Date;\n\n public TotalPayloads?: number;\n\n public Version?: string;\n}\n\nexport class IoTEnsembleDrawersConfig {\n public DetailsActive: boolean;\n\n public HasBackdrop: boolean;\n\n public NavActive: boolean;\n}\n\nexport class IoTEnsembleStorageConfiguration {\n public APIKeys: IoTEnsembleAPIKeyData[];\n\n public OpenAPISource: string;\n}\n\nexport class IoTEnsembleAPIKeyData {\n public Key: string;\n\n public KeyName: string;\n}\n\nexport enum ColdQueryDataTypes {\n Telemetry = 'Telemetry',\n Observations = 'Observations',\n SensorMetadata = 'SensorMetadata',\n}\n\nexport enum ColdQueryResultTypes {\n CSV = 'CSV',\n JSON = 'JSON',\n JSONLines = 'JSONLines',\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IoTEnsembleState } from '../state/iot-ensemble.state';\nimport { LCUServiceSettings } from '@lcu/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IoTEnsembleService {\n // Fields\n protected apiRoot: string;\n\n // Properties\n public State: IoTEnsembleState;\n\n // Constructors\n constructor(\n protected http: HttpClient,\n protected settings: LCUServiceSettings\n ) {\n this.apiRoot = settings.APIRoot;\n\n this.State = new IoTEnsembleState();\n }\n\n // API Methods\n public ColdQuery(): Observable<object> {\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/iot/cold-query`, {\n headers: this.loadHeaders(),\n });\n }\n\n public ToggleEmulatedEnabled(): Observable<object> {\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/userfeed`, {\n headers: this.loadHeaders(),\n });\n }\n\n // Helpers\n protected loadHeaders(): { [header: string]: string | string[] } {\n return {};\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\nimport { BaseModeledResponse } from '@lcu/common';\nimport { EaCEnvironmentAsCode, EaCSourceControl } from '@semanticjs/common';\nimport { FeedEntry } from '../../models/user-feed.model';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport { EaCService } from '../../services/eac.service';\nimport {\n ApplicationsFlowState,\n GitHubBranch,\n GitHubOrganization,\n GitHubRepository,\n} from '../../state/applications-flow.state';\n\nexport interface FeedHeaderDialogData {\n // action: FeedItemAction,\n dialogTitle: string;\n type: string;\n}\n\n@Component({\n selector: 'lcu-feed-header-dialog',\n templateUrl: './feed-header-dialog.component.html',\n styleUrls: ['./feed-header-dialog.component.scss'],\n})\nexport class FeedHeaderDialogComponent implements OnInit {\n public get ActionIconControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.actionIcon;\n }\n\n public get ActionLinkControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.actionLink;\n }\n\n public get ActionTextControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.actionText;\n }\n\n public get EditorControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.editor;\n }\n\n public get Environment(): EaCEnvironmentAsCode {\n return this.State?.EaC?.Environments[\n this.State?.EaC?.Enterprise?.PrimaryEnvironment\n ];\n }\n\n public get TargetBranchFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.targetBranch;\n }\n\n public get OrganizationFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.organization;\n }\n\n public get SourceBranchFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.sourceBranch;\n }\n\n public get RepositoryFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.repository;\n }\n\n public get SourceControlFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.sourceControl;\n }\n\n public get SourceControlLookups(): Array<string> {\n return this.State.FeedSourceControlLookups\n ? this.State.FeedSourceControlLookups\n : Object.keys(this.SourceControls || {});\n }\n\n public get SourceControls(): { [lookup: string]: EaCSourceControl } {\n return this.Environment?.Sources || {};\n }\n\n public get SubtitleFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup.controls.subtitle;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get TitleFormControl(): AbstractControl {\n return this.FeedHeaderFormGroup?.controls.title;\n }\n\n public BranchOptions: GitHubBranch[];\n\n public EditorConfig: AngularEditorConfig;\n\n public ErrorMessage: string;\n\n public FeedHeaderFormGroup: FormGroup;\n\n public Loading: boolean;\n\n public OrganizationOptions: GitHubOrganization[];\n\n public RepositoryOptions: GitHubRepository[];\n\n public SourceControl: EaCSourceControl;\n\n public Slices: { [key: string]: number };\n\n public SlicesCount: number;\n\n constructor(\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService,\n protected formBldr: FormBuilder,\n public dialogRef: MatDialogRef<FeedHeaderDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: FeedHeaderDialogData,\n protected snackBar: MatSnackBar\n ) {\n this.EditorConfig = {\n editable: true,\n spellcheck: true,\n height: '250px',\n minHeight: '0',\n maxHeight: 'auto',\n width: 'auto',\n minWidth: '0',\n translate: 'yes',\n enableToolbar: true,\n showToolbar: true,\n placeholder: 'Enter text here...',\n defaultParagraphSeparator: '',\n defaultFontName: '',\n defaultFontSize: '',\n fonts: [\n { class: 'arial', name: 'Arial' },\n { class: 'times-new-roman', name: 'Times New Roman' },\n { class: 'calibri', name: 'Calibri' },\n { class: 'comic-sans-ms', name: 'Comic Sans MS' },\n ],\n customClasses: [\n {\n name: 'quote',\n class: 'quote',\n },\n {\n name: 'redText',\n class: 'redText',\n },\n {\n name: 'titleText',\n class: 'titleText',\n tag: 'h1',\n },\n ],\n sanitize: true,\n toolbarPosition: 'top',\n toolbarHiddenButtons: [['subscript', 'superscript'], ['fontSize']],\n };\n\n this.ErrorMessage = null;\n\n this.Loading = false;\n\n this.SlicesCount = 5;\n\n this.Slices = {\n Sources: this.SlicesCount,\n };\n\n if (this.SourceControlLookups.length === 1) {\n this.SourceControl =\n this.Environment?.Sources[this.SourceControlLookups[0]];\n }\n }\n\n public ngOnInit(): void {\n this.setupFeedHeaderForm();\n }\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleAction() {\n if (this.ActionLinkControl.value.startsWith('http')) {\n window.open(this.ActionLinkControl.value, '_blank');\n } else {\n window.location.href = this.ActionLinkControl.value;\n }\n }\n\n public PullRequestSourceControlChanged(event: MatSelectChange) {\n console.log('sourcecontrol', this.SourceControlFormControl.value);\n this.SourceControl =\n this.SourceControls[this.SourceControlFormControl.value];\n this.listBranches();\n }\n\n public FeatureBranchSourceControlChanged(event: MatSelectChange) {\n this.SourceControl =\n this.SourceControls[this.SourceControlFormControl.value];\n this.listOrganizations();\n }\n\n public IsDisabled(): boolean {\n // console.log(\"valid: \",this.FeedHeaderFormGroup?.valid)\n // console.log(\"loading: \",this.Loading)\n // console.log(\"returning \",(!this.FeedHeaderFormGroup?.valid || this.Loading))\n return !this.FeedHeaderFormGroup?.valid || this.Loading;\n }\n\n public IssueSourceControlChanged(event: MatSelectChange) {\n this.SourceControl =\n this.SourceControls[this.SourceControlFormControl.value];\n }\n\n public Submit() {\n let returnObject: FeedEntry = {\n ActionIcon: this.ActionIconControl\n ? this.ActionIconControl.value\n : null,\n ActionLink: this.ActionLinkControl\n ? this.ActionLinkControl.value\n : null,\n ActionText: this.ActionTextControl\n ? this.ActionTextControl.value\n : null,\n Avatar: null,\n Content: this.EditorControl ? this.EditorControl.value : null,\n ExpiresAt: null,\n Organization: this.OrganizationFormControl\n ? this.OrganizationFormControl.value\n : null,\n Repository: this.RepositoryFormControl\n ? this.RepositoryFormControl.value\n : null,\n SourceBranch: this.SourceBranchFormControl\n ? this.SourceBranchFormControl.value\n : null,\n SourceControlLookup: this.SourceControlFormControl\n ? this.SourceControlFormControl.value\n : null,\n Subtitle: this.SubtitleFormControl\n ? this.SubtitleFormControl.value\n : null,\n TargetBranch: this.TargetBranchFormControl\n ? this.TargetBranchFormControl.value\n : null,\n Type: this.data.type,\n Title: this.TitleFormControl ? this.TitleFormControl.value : null,\n };\n console.log('Control: ', returnObject);\n\n this.eacSvc.SubmitFeedEntry(returnObject).then((res) => {\n if (res.Code === 0) {\n this.snackBar.open(\n ` '${this.data.type}' Succesfully Created`,\n 'Dismiss',\n {\n duration: 5000,\n }\n );\n this.CloseDialog();\n } else {\n this.ErrorMessage = res.Message;\n }\n });\n\n // console.log(\"Editor: \", this.EditorControl.value )\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n this.RepositoryFormControl.reset();\n\n this.listRepositories();\n }\n\n public RepositoryChanged(event: MatSelectChange) {\n this.listBranches();\n }\n\n //HELPERS\n\n protected listBranches(): void {\n this.Loading = true;\n\n console.log('LISTING BRANCHES');\n\n this.appsFlowSvc\n .ListBranches(\n this.SourceControl?.Organization,\n this.SourceControl?.Repository\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model;\n this.Loading = false;\n });\n // console.log(\"Loading = \", this.Loading)\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe(\n (response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\n 'Organization Options: ',\n this.OrganizationOptions\n );\n\n if (this.SourceControl?.Organization) {\n setTimeout(() => {\n this.OrganizationFormControl.setValue(\n this.SourceControl.Organization\n );\n\n this.listRepositories(\n this.SourceControl?.Repository\n );\n }, 0);\n }\n this.Loading = false;\n }\n );\n // console.log(\"Loading = \", this.Loading)\n }\n\n protected listRepositories(activeRepo: string = null): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListRepositories(this.OrganizationFormControl.value)\n .subscribe((response: BaseModeledResponse<GitHubRepository[]>) => {\n this.RepositoryOptions = response.Model;\n\n if (activeRepo) {\n setTimeout(() => {\n this.RepositoryFormControl.setValue(activeRepo);\n\n this.listBranches();\n // this.Loading=true;\n }, 0);\n }\n this.Loading = false;\n });\n // console.log(\"Loading = \", this.Loading)\n }\n\n protected setupFeedHeaderForm() {\n this.FeedHeaderFormGroup = this.formBldr.group({});\n\n switch (this.data.type) {\n case 'Announcement':\n this.setupAnnouncementForm();\n break;\n case 'PullRequest':\n this.setupPRForm();\n break;\n case 'OpenIssue':\n this.setupIssueForm();\n break;\n case 'CreateBranch':\n this.setupFeatureBranchForm();\n break;\n default:\n //\n break;\n }\n }\n\n protected setupAnnouncementForm() {\n this.setupBasicForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'subtitle',\n this.formBldr.control('')\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionText',\n this.formBldr.control('')\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionLink',\n this.formBldr.control('')\n );\n this.FeedHeaderFormGroup.addControl(\n 'actionIcon',\n this.formBldr.control('')\n );\n }\n\n protected setupPRForm() {\n this.listBranches();\n this.setupIssueForm();\n this.setupBranchesForm();\n }\n\n protected setupBasicForm() {\n this.FeedHeaderFormGroup.addControl(\n 'title',\n this.formBldr.control('', [Validators.required])\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'editor',\n this.formBldr.control('')\n );\n }\n\n protected setupIssueForm() {\n this.setupBasicForm();\n\n this.setupSourceControlForm();\n }\n\n protected setupFeatureBranchForm() {\n this.setupSourceControlForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'organization',\n this.formBldr.control('', [Validators.required])\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'repository',\n this.formBldr.control('', [Validators.required])\n );\n\n this.setupBranchesForm();\n }\n\n protected setupSourceControlForm() {\n this.FeedHeaderFormGroup.addControl(\n 'sourceControl',\n this.formBldr.control('', [Validators.required])\n );\n }\n\n protected setupBranchesForm() {\n this.FeedHeaderFormGroup.addControl(\n 'targetBranch',\n this.formBldr.control('', [Validators.required])\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'sourceBranch',\n this.formBldr.control('', [Validators.required])\n );\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>{{ data.dialogTitle }}</h2>\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <form [formGroup]=\"FeedHeaderFormGroup\">\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"issue-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- ANNOUNCEMENT FORM -->\n\n <ng-container *ngIf=\"data.type === 'Announcement'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Subtitle\"\n formControlName=\"subtitle\"\n />\n </mat-form-field>\n\n <angular-editor\n id=\"announcement-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Text\"\n formControlName=\"actionText\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Link\"\n formControlName=\"actionLink\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Action Icon\"\n formControlName=\"actionIcon\"\n />\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button\n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button\n color=\"primary\"\n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{\n ActionIconControl?.value\n }}</mat-icon>\n\n {{ ActionTextControl?.value }}\n </button>\n\n <button\n *ngIf=\"\n !ActionTextControl?.value && !ActionIconControl?.value\n \"\n mat-button\n color=\"primary\"\n >\n <mat-icon>cruelty_free</mat-icon>\n\n Example Button\n </button>\n </div>\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n PullRequestSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-icon>arrow_back</mat-icon>\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Compare</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Title\"\n formControlName=\"title\"\n required\n />\n </mat-form-field>\n\n <angular-editor\n id=\"pr-editor\"\n formControlName=\"editor\"\n [config]=\"EditorConfig\"\n ></angular-editor>\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch'\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-form-field>\n <mat-label>Source Control</mat-label>\n <mat-select\n formControlName=\"sourceControl\"\n (selectionChange)=\"\n FeatureBranchSourceControlChanged($event)\n \"\n required\n >\n <ng-container\n *ngFor=\"let scLookup of SourceControlLookups\"\n >\n <mat-option\n *ngIf=\"SourceControls[scLookup]; let sc\"\n [value]=\"scLookup\"\n >\n {{ sc.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n <mat-select\n formControlName=\"organization\"\n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\"\n required\n >\n <ng-container\n *ngFor=\"let orgOpt of OrganizationOptions\"\n >\n <mat-option [value]=\"orgOpt.Name\">\n {{ orgOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n <mat-select\n formControlName=\"repository\"\n placeholder=\"Repository\"\n (selectionChange)=\"RepositoryChanged($event)\"\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 </mat-form-field>\n </div>\n\n <div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n *ngIf=\"BranchOptions?.length > 0\"\n >\n <mat-form-field>\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required>\n <mat-option\n *ngFor=\"let branchOpt of BranchOptions\"\n [value]=\"branchOpt.Name\"\n >\n {{ branchOpt.Name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field>\n <input\n matInput\n placeholder=\"Create New Branch\"\n formControlName=\"targetBranch\"\n required\n />\n </mat-form-field>\n </div>\n </ng-container>\n\n <lcu-loader [loading]=\"Loading\"></lcu-loader>\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n mat-raised-button\n color=\"primary\"\n fxFlex=\"25%\"\n class=\"submit\"\n (click)=\"Submit()\"\n [disabled]=\"IsDisabled()\"\n >\n Submit\n </button>\n</mat-dialog-actions>\n","import { Input } from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FeedHeaderDialogComponent } from '../../dialogs/feed-header-dialog/feed-header-dialog.component';\nimport { NewApplicationDialogComponent } from '../../dialogs/new-application-dialog/new-application-dialog.component';\nimport { FeedItemAction } from '../../models/user-feed.model';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-feed-header',\n templateUrl: './feed-header.component.html',\n styleUrls: ['./feed-header.component.scss'],\n})\nexport class FeedHeaderComponent implements OnInit {\n @Input('source-control-lookup')\n public SourceControlLookup: string;\n\n public get ActiveEnvironmentLookup(): string {\n // TODO: Eventually support multiple environments\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\n\n return envLookups[0];\n }\n\n public get FeedHeaderActions(): Array<FeedItemAction> {\n return this.State?.FeedActions;\n }\n\n public get HasGHConnection(): boolean {\n return this.State?.GitHub?.HasConnection;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ModalHeader: string;\n\n public SkeletonEffect: string;\n\n protected selectedBtn: string;\n\n public value: string;\n\n constructor(protected eacSvc: EaCService, protected dialog: MatDialog) {\n this.SkeletonEffect = 'wave';\n // this.selectedBtn = \"pr-btn\";\n }\n\n public ngOnInit(): void {}\n\n public ngAfterViewInit() {\n this.addSelectBtn();\n }\n\n public CreateAnnouncement() {\n // this.ModalHeader = \"Create Team Announcement\";\n this.OpenFHDialog('Announcement', 'Create Team Announcement');\n }\n\n // public CreateFeatureBranch(){\n // this.removeSelectedBtn();\n // this.ModalHeader = \"Create Feature Branch\";\n // this.selectedBtn = \"fb-btn\";\n // this.addSelectBtn();\n // console.log(\"create feature branch selected\");\n // this.OpenFHDialog('branch');\n\n // }\n\n // public OpenIssue(){\n // this.removeSelectedBtn();\n // this.ModalHeader = \"Open Issue\";\n // this.selectedBtn = \"oi-btn\";\n // this.addSelectBtn();\n // console.log(\"open issue selected\");\n // this.OpenFHDialog('issue');\n\n // }\n\n // public CreatePullRequest(){\n // this.removeSelectedBtn();\n // this.ModalHeader = \"Create Pull Request\";\n // this.selectedBtn = \"pr-btn\";\n // this.addSelectBtn();\n // console.log(\"create pull request selected\");\n // this.OpenFHDialog('pull-request');\n\n // }\n\n public CreateNewApp() {\n const dialogRef = this.dialog.open(NewApplicationDialogComponent, {\n width: '600px',\n data: {\n environmentLookup: this.ActiveEnvironmentLookup,\n },\n });\n\n dialogRef.afterClosed().subscribe((result: any) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n }\n\n public HandleAction(action: FeedItemAction) {\n if (action.ActionType == 'Link') {\n if (action.Action.startsWith('http')) {\n window.open(action.Action, '_blank');\n } else {\n window.location.href = action.Action;\n }\n } else if (action.ActionType == 'Modal') {\n this.OpenFHDialog(action.Action, action.Text);\n }\n }\n\n public OpenFHDialog(modalType: string, modalHeader: string) {\n const dialogRef = this.dialog.open(FeedHeaderDialogComponent, {\n width: '600px',\n data: {\n dialogTitle: modalHeader,\n type: modalType,\n sourceControlLookup: this.SourceControlLookup\n ? this.SourceControlLookup\n : null,\n },\n });\n\n dialogRef.afterClosed().subscribe((result: any) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n }\n\n public ReloadFeed(): void {\n this.eacSvc.ReloadFeed();\n }\n\n public RouteToPath(path: string): void {\n window.location.href = path;\n }\n\n public Submit() {\n console.log('submitting: ', this.value);\n switch (this.selectedBtn) {\n case 'pr-btn':\n //Pull request\n console.log('creating pull request: ', this.value);\n break;\n case 'oi-btn':\n //Open Issue\n console.log('Open issue: ', this.value);\n break;\n case 'fb-btn':\n //Feature Branch\n console.log('creating feature branch: ', this.value);\n break;\n default:\n console.log('hmm');\n\n break;\n }\n }\n\n //HELPERS\n\n protected addSelectBtn() {\n (<HTMLElement>document.getElementById(this.selectedBtn))?.classList.add(\n 'selected'\n );\n }\n\n protected removeSelectedBtn() {\n (<HTMLElement>(\n document.getElementById(this.selectedBtn)\n ))?.classList.remove('selected');\n }\n}\n","<div>\n <mat-card class=\"social-card\">\n <ng-container *ngIf=\"!State?.LoadingFeed\">\n <div\n class=\"gh-card-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\" color=\"primary\">\n campaign\n </mat-icon>\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <button\n mat-raised-button\n class=\"main-btn\"\n (click)=\"CreateAnnouncement()\"\n color=\"primary\"\n >\n Create Team Announcement\n </button>\n\n <!-- <mat-form-field appearance=\"fill\" class=\"gh-input\">\n <mat-label>{{ InputLabel }}</mat-label>\n <input matInput type=\"text\" [(ngModel)]=\"value\" (click)=\"OpenFHDialog('Announcement')\"/>\n </mat-form-field> -->\n </div>\n\n <!-- <button\n fxFlex=\"15%\"\n mat-button\n (click)=\"Submit()\"\n id=\"submit-btn\"\n color=\"primary\"\n >\n Submit\n </button> -->\n </div>\n\n <mat-card-actions\n fxLayout=\"row\"\n fxLayoutAlign=\"space-around center\"\n >\n <ng-container *ngFor=\"let action of FeedHeaderActions\">\n <button\n mat-raised-button\n [color]=\"action.Color\"\n (click)=\"HandleAction(action)\"\n id=\"pr-btn\"\n >\n <mat-icon *ngIf=\"action.Icon\">{{\n action.Icon\n }}</mat-icon>\n\n {{ action.Text }}\n </button>\n </ng-container>\n </mat-card-actions>\n </ng-container>\n\n <!-- SKELETON -->\n <ng-container *ngIf=\"State?.LoadingFeed\">\n <div\n id=\"gh-card-skeleton\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <skeleton-avatar\n class=\"gh-icon\"\n [showIcon]=\"false\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-avatar>\n\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <skeleton-block\n height=\"60px\"\n [effect]=\"SkeletonEffect\"\n ></skeleton-block>\n </div>\n\n <!-- <div\n skeleton-text\n fxFlex=\"15%\"\n [effect]=\"SkeletonEffect\"\n style=\"margin: 0px 10px\"\n >\n Submit\n </div> -->\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Pull Request</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">Open Issue</div>\n <div skeleton-text [effect]=\"SkeletonEffect\">\n Feature Branch\n </div>\n <!-- <div skeleton-text [effect]=\"SkeletonEffect\">\n <mat-icon>more_horiz</mat-icon>\n </div> -->\n </div>\n </ng-container>\n </mat-card>\n\n <mat-card class=\"social-card reload\" *ngIf=\"State?.FeedCheck\">\n There are new items in your feed.\n\n <button mat-raised-button (click)=\"ReloadFeed()\">Reload Feed</button>\n </mat-card>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\n\nimport { EaCDFSModifier, EaCProjectAsCode } from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport {\n EaCService,\n SaveDFSModifierEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-dfs-modifier-form',\n templateUrl: './dfs-modifiers-form.component.html',\n styleUrls: ['./dfs-modifiers-form.component.scss'],\n})\nexport class DFSModifiersFormComponent implements OnInit {\n // Fields\n\n // Properties\n public CurrentType: string;\n\n // @Input('data')\n // public Data: {\n // Modifiers: { [lookup: string]: EaCDFSModifier };\n // Project: EaCProjectAsCode;\n // ProjectLookup: string;\n // };\n\n @Input('editing-modifier-lookup')\n public EditingModifierLookup: string;\n\n /**Specific Modifiers for either the project or appliaction */\n\n // @Input('modifiers')\n // public Modifiers: { [lookup: string]: EaCDFSModifier };\n\n @Input('application-lookup')\n public ApplicationLookup: string;\n\n @Input('project')\n public Project: EaCProjectAsCode;\n\n @Input('project-lookup')\n public ProjectLookup: string;\n\n /**which level is the dfs modifier being edited ent project or app */\n @Input('level')\n public Level: string;\n\n // public get Details(): any {\n // return JSON.stringify(this.EditingModifier?.Details);\n // }\n\n public get DetailsFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.details;\n }\n\n public get EditingModifier(): EaCDFSModifier {\n let mdfr = this.Modifiers\n ? this.Modifiers[this.EditingModifierLookup]\n : null;\n\n if (mdfr == null && this.EditingModifierLookup) {\n mdfr = {};\n }\n\n return mdfr;\n }\n\n // public EditingModifierLookup: string;\n\n public get EnabledFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.enabled;\n }\n\n public get EnterprisesModifierLookups(): Array<string> {\n return Object.keys(this.Modifiers || {});\n }\n\n public get LocationFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.location;\n }\n\n public get Modifiers(): { [lookup: string]: EaCDFSModifier } {\n return this.State?.EaC?.Modifiers;\n }\n\n public get ModifierLookups(): Array<string> {\n if (this.ProjectLookup) {\n return this.State?.EaC?.Projects[this.ProjectLookup]\n ?.ModifierLookups;\n } else if (this.ApplicationLookup) {\n return this.State.EaC?.Applications[this.ApplicationLookup]\n ?.ModifierLookups;\n } else {\n return Object.keys(this.Modifiers || {});\n }\n }\n\n public get MultiSelectFormControl(): AbstractControl {\n return this.ModifierSelectFormGroup?.controls.multiSelect;\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.name;\n }\n\n public get PathFilterFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.pathFilter;\n }\n\n public get PriorityFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.priority;\n }\n\n // public get Project(): EaCProjectAsCode {\n // return this.Data.Project || {};\n // }\n\n public get ScriptFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.script;\n }\n\n public get ScriptIDFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.scriptId;\n }\n\n public get ScriptTypeFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.scriptType;\n }\n\n public get StateDataTokenFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.stateDataToken;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get TypeFormControl(): AbstractControl {\n return this.ModifierFormGroup?.controls.type;\n }\n\n public ModifierFormGroup: FormGroup;\n\n public ModifierSelectFormGroup: FormGroup;\n\n // Constructors\n constructor(\n protected formBldr: FormBuilder,\n protected appsFlowSvc: ApplicationsFlowService,\n protected eacSvc: EaCService\n ) {\n // this.EditingModifierLookup = null;\n }\n\n // Life Cycle\n public ngOnInit(): void {\n if (this.Level === 'enterprise' && !this.EditingModifierLookup) {\n this.CreateNewModifier();\n } else if (this.EditingModifierLookup) {\n this.setupModifierForm();\n } else {\n this.setupModifierSelectForm();\n }\n }\n\n // API Methods\n public CreateNewModifier(): void {\n this.SetEditingModifier(Guid.CreateRaw());\n }\n\n public DeleteModifier(modifierLookup: string, modifierName: string): void {\n this.eacSvc.DeleteModifier(modifierLookup, modifierName).then();\n }\n\n public SaveModifierForAllProjects(projectLookups: Array<string>) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ProjectLookups: projectLookups,\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n\n public SaveModifierForApplication(applicationLookup: string): void {\n if (this.ModifierFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ApplicationLookup: applicationLookup,\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n } else if (this.ModifierSelectFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n ModifierLookups: this.MultiSelectFormControl.value,\n ApplicationLookup: applicationLookup,\n };\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n }\n\n /**\n *\n * Saves a modifier, saves a modifier to a project\n */\n public SaveModifier(projectLookup: string = null): void {\n if (this.ModifierFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n Modifier: {\n ...this.EditingModifier,\n Name: this.NameFormControl.value,\n Enabled: this.EnabledFormControl.value,\n PathFilterRegex: this.PathFilterFormControl.value,\n Priority: this.PriorityFormControl.value,\n Type: this.CurrentType,\n },\n ModifierLookups: [this.EditingModifierLookup],\n ProjectLookups: [projectLookup],\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n } else if (this.ModifierSelectFormGroup) {\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n ModifierLookups: this.MultiSelectFormControl.value,\n ProjectLookups: [projectLookup],\n };\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n }\n\n public SetEditingModifier(modifierLookup: string): void {\n this.EditingModifierLookup = modifierLookup;\n\n this.setupModifierForm();\n }\n\n public SetUseForProject(\n modifierLookup: string,\n change: MatSlideToggleChange\n ): void {\n this.SetEditingModifier(modifierLookup);\n\n this.SaveModifier(this.ProjectLookup);\n }\n\n public TypeChanged(event: MatSelectChange): void {\n this.CurrentType = event.value;\n\n this.setupTypeForm();\n }\n\n // Helpers\n\n protected getDetails(): any {\n const details = {};\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['StateDataToken'] =\n this.StateDataTokenFormControl.value;\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n details['Location'] = this.LocationFormControl.value;\n\n details['Script'] = this.ScriptFormControl.value;\n\n details['ScriptType'] = this.ScriptTypeFormControl.value;\n\n details['ScriptID'] = this.ScriptIDFormControl.value;\n break;\n }\n return details;\n }\n\n protected setupModifierSelectForm() {\n this.ModifierSelectFormGroup = this.formBldr.group({\n multiSelect: [this.ModifierLookups ? this.ModifierLookups : []],\n });\n }\n\n protected setupModifierForm(): void {\n if (this.EditingModifier != null) {\n this.CurrentType = this.EditingModifier?.Type;\n\n this.ModifierFormGroup = this.formBldr.group({\n name: [this.EditingModifier?.Name, Validators.required],\n type: [this.CurrentType, Validators.required],\n priority: [\n this.EditingModifier?.Priority\n ? this.EditingModifier?.Priority\n : 9000,\n Validators.required,\n ],\n enabled: [this.EditingModifier?.Enabled, []],\n pathFilter: [\n this.EditingModifier?.PathFilterRegex\n ? this.EditingModifier?.PathFilterRegex\n : '*index.html',\n Validators.required,\n ],\n });\n\n this.setupTypeForm();\n }\n }\n\n protected setupTypeForm(): void {\n this.ModifierFormGroup.removeControl('stateDataToken');\n\n this.ModifierFormGroup.removeControl('location');\n this.ModifierFormGroup.removeControl('script');\n this.ModifierFormGroup.removeControl('scriptId');\n this.ModifierFormGroup.removeControl('scriptType');\n\n const details = JSON.parse(this.EditingModifier?.Details || '{}');\n\n switch (this.CurrentType) {\n case 'LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'stateDataToken',\n this.formBldr.control(\n details?.StateDataToken || 'lcu-state-config',\n [Validators.required]\n )\n );\n break;\n\n case 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null':\n this.ModifierFormGroup.addControl(\n 'location',\n this.formBldr.control(details?.Location || 'Head', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [\n Validators.required,\n ])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptType',\n this.formBldr.control(details?.ScriptType || 'Control')\n );\n break;\n }\n }\n}\n","<div>\n <div *ngIf=\"!EditingModifierLookup\">\n Select the modifiers you would like to apply from the list below, or\n create a new modifier.\n </div>\n\n <form\n [formGroup]=\"ModifierFormGroup\"\n (ngSubmit)=\"SaveModifier()\"\n *ngIf=\"EditingModifier\"\n >\n <div class=\"form-card\">\n <!-- <mat-card class=\"spread\"> -->\n <!-- <mat-card-header>\n <mat-card-title> DFS Modifier </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure modifiers for your DFS files.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n\n <!-- end -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"type\"\n placeholder=\"DFS Modifier Type\"\n (selectionChange)=\"TypeChanged($event)\"\n >\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.HTMLBaseDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n HTML Base Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n LCU Reg Modfier\n </mat-option>\n\n <mat-option\n value=\"LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null\"\n >\n Thrid Party Library Modifier\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"Name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"priority\"\n placeholder=\"Priority\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"pathFilter\"\n placeholder=\"Path Filter (regex)\"\n />\n </mat-form-field>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.LCURegDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"stateDataToken\"\n placeholder=\"State Data Token\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <ng-container\n *ngIf=\"\n CurrentType ==\n 'LCU.Runtime.Applications.Modifiers.ThirdPartyLibraryDFSModifierManager, LCU.Runtime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"location\"\n placeholder=\"Location\"\n (selectionChange)=\"LocationChanged($event)\"\n required\n >\n <mat-option value=\"Head\"> Head </mat-option>\n\n <mat-option value=\"Body\"> Body </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"scriptId\"\n placeholder=\"Script ID\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"scriptType\"\n placeholder=\"Script Type\"\n required\n >\n <mat-option value=\"Content\"> Content </mat-option>\n\n <mat-option value=\"Source\"> Source </mat-option>\n </mat-select>\n </mat-form-field>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"ScriptTypeFormControl?.value === 'Content'\"\n >\n <textarea\n matInput\n formControlName=\"script\"\n placeholder=\"Script Content\"\n required\n ></textarea>\n </mat-form-field>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"ScriptTypeFormControl?.value === 'Source'\"\n >\n <input\n matInput\n formControlName=\"script\"\n placeholder=\"Script URL\"\n required\n />\n </mat-form-field>\n </ng-container>\n\n <mat-slide-toggle\n *ngIf=\"ProjectLookup\"\n class=\"spread\"\n formControlName=\"enabled\"\n >\n Is Enabled?\n </mat-slide-toggle>\n <!-- </mat-card-content> -->\n <!-- </mat-card> -->\n </div>\n\n <!-- <div class=\"spread\">\n <div fxFlex></div>\n\n <button mat-button type=\"button\" (click)=\"SetEditingModifier(null)\">\n <mat-icon>cancel</mat-icon> Cancel\n </button>\n\n <div fxFlex></div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"!ModifierFormGroup.valid || !ModifierFormGroup.dirty\"\n >\n <mat-icon>save</mat-icon> Save DFS Modifier\n </button>\n\n <div fxFlex></div>\n </div> -->\n </form>\n\n <form [formGroup]=\"ModifierSelectFormGroup\" *ngIf=\"!EditingModifier\">\n <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button\n mat-raised-button\n color=\"accent\"\n (click)=\"CreateNewModifier()\"\n >\n <mat-icon color=\"primary\">add</mat-icon> Create New\n </button>\n </span>\n\n <div class=\"spread\">\n <div *ngIf=\"EnterprisesModifierLookups?.length <= 0\">\n <h2>\n No DFS modifiers created, create your first DFS\n modifier.\n </h2>\n </div>\n\n <ng-container *ngIf=\"EnterprisesModifierLookups?.length > 0\">\n <!-- <h2>DFS Modifiers</h2> -->\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Modifiers</mat-label>\n <mat-select formControlName=\"multiSelect\" multiple>\n <mat-select-trigger>\n {{\n MultiSelectFormControl?.value\n ? MultiSelectFormControl?.value[0]\n : \"\"\n }}\n <span\n *ngIf=\"\n MultiSelectFormControl?.value?.length >\n 1\n \"\n class=\"modifier-selection\"\n >\n (+{{\n MultiSelectFormControl?.value?.length -\n 1\n }}\n {{\n MultiSelectFormControl?.value\n ?.length === 2\n ? \"other\"\n : \"others\"\n }})\n </span>\n </mat-select-trigger>\n <ng-container\n *ngFor=\"\n let modifierLookup of EnterprisesModifierLookups\n \"\n >\n <mat-option\n *ngIf=\"\n Modifiers[modifierLookup];\n let modifier\n \"\n [value]=\"modifierLookup\"\n >{{ modifier?.Name }}</mat-option\n >\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <!-- <div fxLayout=\"row wrap\" fxLayout.lt-md=\"column\">\n <div\n fxFlex.lt-md=\"100%\"\n *ngFor=\"let modifierLookup of ModifierLookups\"\n >\n \n <ng-container *ngIf=\"Modifiers[modifierLookup]; let modifier\">\n\n <div\n class=\"mat-subheading-2\"\n [matTooltip]=\"modifier.Name\"\n >\n {{ modifier.Name || modifier.Lookup }}\n\n\n <mat-slide-toggle\n class=\"spread\"\n [checked]=\"\n Project?.ModifierLookups.indexOf(modifierLookup) >= 0\n \"\n (change)=\"SetUseForProject(modifierLookup, $event)\"\n [matTooltip]=\"'Use for ' + Level\"\n >\n </mat-slide-toggle>\n </div>\n \n\n <div>\n <div class=\"data-app-actions\">\n\n <button\n mat-icon-button\n color=\"accent\"\n (click)=\"SetEditingModifier(modifierLookup)\"\n >\n <mat-icon matTooltip=\"Edit DFS Modifier\">\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteModifier(modifierLookup, modifier.Name)\"\n >\n <mat-icon matTooltip=\"Delete {{ modifier.Name }}\">\n delete_forever\n </mat-icon>\n </button>\n </div>\n\n \n </div>\n </ng-container>\n </div>\n </div> -->\n </ng-container>\n </div>\n </div>\n </form>\n</div>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { DFSModifiersFormComponent } from '../../controls/dfs-modifiers-form/dfs-modifiers-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface DFSModifiersDialogData {\n applicationLookup?: string;\n modifierLookup?: string;\n modifierName?: string;\n // modifiers: { [lookup: string]: EaCDFSModifier };\n level: string;\n projectLookup?: string;\n}\n\n@Component({\n selector: 'lcu-dfs-modifiers-dialog',\n templateUrl: './dfs-modifiers-dialog.component.html',\n styleUrls: ['./dfs-modifiers-dialog.component.scss'],\n})\nexport class DFSModifiersDialogComponent implements OnInit {\n @ViewChild(DFSModifiersFormComponent)\n public DFSModifersFormControls: DFSModifiersFormComponent;\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get ProjectLookups(): string[] {\n return Object.keys(this.State?.EaC?.Projects || {});\n }\n\n public get DFSModifersFormGroup(): FormGroup {\n return this.DFSModifersFormControls?.ModifierFormGroup;\n }\n\n public get SelectedModifiersFormGroup(): FormGroup {\n return this.DFSModifersFormControls?.ModifierSelectFormGroup;\n }\n\n public ErrorMessage: string;\n\n public ModifierDialogForm: FormGroup;\n\n public SaveDisabled: boolean;\n\n constructor(\n protected eacSvc: EaCService,\n public formbldr: FormBuilder,\n public dialogRef: MatDialogRef<DFSModifiersDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: DFSModifiersDialogData,\n protected snackBar: MatSnackBar\n ) {\n this.ModifierDialogForm = this.formbldr.group({});\n }\n\n public ngOnInit(): void {\n this.determineLevel();\n }\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public DeleteModifier(): void {\n this.eacSvc.DeleteModifier(\n this.data.modifierLookup,\n this.data.modifierName\n );\n }\n\n public HandleSaveFormEvent(event: Status) {\n console.log('event: ', event);\n if (event.Code === 0) {\n this.snackBar.open('DFS Modifier Saved Successfully', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public IsDisabled() {\n this.SaveDisabled = true;\n if (this.DFSModifersFormGroup) {\n this.SaveDisabled =\n !this.DFSModifersFormGroup?.valid ||\n !this.ModifierDialogForm?.valid;\n } else if (this.SelectedModifiersFormGroup) {\n this.SaveDisabled =\n !this.SelectedModifiersFormGroup?.valid ||\n !this.SelectedModifiersFormGroup?.dirty;\n }\n return this.SaveDisabled;\n }\n\n public IsPreconfigured(): boolean {\n if (this.data.modifierLookup) {\n if (\n this.data.modifierLookup === 'html-base' ||\n this.data.modifierLookup === 'lcu-reg'\n ) {\n return true;\n } else {\n return false;\n }\n } else {\n return false;\n }\n }\n\n public SaveDFSModifier() {\n // console.log(\"level at save: \", this.data.level)\n\n switch (this.data.level) {\n case 'enterprise': {\n if (this.ModifierDialogForm.controls.applyToAllProjects.value) {\n //save modifier add it to the ModifierLookups of all projects\n this.DFSModifersFormControls.SaveModifierForAllProjects(\n this.ProjectLookups\n );\n } else {\n //save modifier\n this.DFSModifersFormControls.SaveModifier();\n }\n }\n case 'project': {\n this.DFSModifersFormControls.SaveModifier(\n this.data.projectLookup\n );\n }\n\n case 'application': {\n this.DFSModifersFormControls.SaveModifierForApplication(\n this.data.applicationLookup\n );\n }\n }\n // this.DFSModifersFormControls.SaveModifier();\n }\n\n protected determineLevel() {\n // console.log(\"LEVEL: \", this.data.level)\n switch (this.data.level) {\n case 'enterprise': {\n this.setupEntForm();\n }\n }\n }\n\n protected setupEntForm() {\n this.ModifierDialogForm.addControl(\n 'applyToAllProjects',\n this.formbldr.control(false)\n );\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>DFS Modifiers</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-dfs-modifier-form\n [application-lookup]=\"data.applicationLookup\"\n [project-lookup]=\"data.projectLookup\"\n [editing-modifier-lookup]=\"data.modifierLookup\"\n [level]=\"data.level\"\n >\n </lcu-dfs-modifier-form>\n\n <form [formGroup]=\"ModifierDialogForm\">\n <mat-checkbox\n *ngIf=\"data.level === 'enterprise' && data.modifierLookup\"\n formControlName=\"applyToAllProjects\"\n >Apply to all Projects</mat-checkbox\n >\n </form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n <button\n *ngIf=\"!IsPreconfigured()\"\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteModifier()\"\n matTooltip=\"Delete {{ data.modifierLookup }}\"\n >\n Delete\n </button>\n </div>\n\n <div fxLayoutAlign=\"end center\">\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"52%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n class=\"action-button\"\n mat-raised-button\n *ngIf=\"!State?.Loading\"\n fxFlex=\"30%\"\n color=\"primary\"\n (click)=\"SaveDFSModifier()\"\n [disabled]=\"IsDisabled()\"\n >\n Save\n </button>\n </div>\n</mat-dialog-actions>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Guid, Status } from '@lcu/common';\nimport { EaCApplicationAsCode, EaCDataToken } from '@semanticjs/common';\nimport {\n EaCService,\n SaveApplicationAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-state-config-form',\n templateUrl: './state-config-form.component.html',\n styleUrls: ['./state-config-form.component.scss'],\n})\nexport class StateConfigFormComponent implements OnInit {\n @Input('app-lookup')\n public AppLookup: string;\n\n @Input('config')\n public Config: EaCDataToken;\n\n @Output('status-event')\n public StatusEvent: EventEmitter<Status>;\n\n public get Application(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.AppLookup];\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get StateConfigNameFormControl(): AbstractControl {\n return this.StateConfigForm?.controls.name;\n }\n\n public get StateConfigDescriptionFormControl(): AbstractControl {\n return this.StateConfigForm?.controls.description;\n }\n\n public get StateConfigValueFormControl(): AbstractControl {\n return this.StateConfigForm?.controls.value;\n }\n\n public StateConfigForm: FormGroup;\n\n constructor(protected eacSvc: EaCService, public formbldr: FormBuilder) {\n this.StateConfigForm = this.formbldr.group({});\n\n this.StatusEvent = new EventEmitter();\n }\n\n public ngOnInit(): void {\n this.buildForm();\n }\n\n public SaveStateConfig() {\n let app = this.Application;\n\n console.log('APP = ', app);\n\n app.DataTokens['lcu-state-config'] = {\n Name: this.StateConfigNameFormControl.value,\n Description: this.StateConfigDescriptionFormControl.value,\n Value: this.StateConfigValueFormControl.value,\n };\n const saveAppReq: SaveApplicationAsCodeEventRequest = {\n ApplicationLookup: this.AppLookup || Guid.CreateRaw(),\n Application: app,\n };\n this.eacSvc.SaveApplicationAsCode(saveAppReq).then((res) => {\n this.StatusEvent.emit(res);\n });\n }\n\n protected buildForm() {\n this.StateConfigForm.addControl(\n 'name',\n this.formbldr.control(this.Config?.Name ? this.Config?.Name : '', [\n Validators.required,\n ])\n );\n\n this.StateConfigForm.addControl(\n 'description',\n this.formbldr.control(\n this.Config?.Description ? this.Config?.Description : '',\n [Validators.required]\n )\n );\n\n this.StateConfigForm.addControl(\n 'value',\n this.formbldr.control(\n this.Config?.Value\n ? JSON.stringify(\n JSON.parse(this.Config?.Value),\n undefined,\n 4\n )\n : '',\n [Validators.required]\n )\n );\n }\n}\n","<form [formGroup]=\"StateConfigForm\">\n <mat-form-field appearance=\"fill\" class=\"input-form\">\n <mat-label>Name</mat-label>\n\n <input matInput formControlName=\"name\" required />\n </mat-form-field>\n\n <mat-form-field appearance=\"fill\" class=\"config-text-area\">\n <mat-label>Description</mat-label>\n\n <textarea matInput formControlName=\"description\"> </textarea>\n </mat-form-field>\n <mat-form-field appearance=\"fill\" class=\"config-text-area\">\n <mat-label>Value</mat-label>\n\n <textarea matInput formControlName=\"value\" rows=\"10\" required>\n </textarea>\n </mat-form-field>\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { StateConfigFormComponent } from '../../controls/state-config-form/state-config-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface StateConfigDialogData {\n appLookup: string;\n config: string;\n}\n\n@Component({\n selector: 'lcu-state-config-dialog',\n templateUrl: './state-config-dialog.component.html',\n styleUrls: ['./state-config-dialog.component.scss'],\n})\nexport class StateConfigDialogComponent implements OnInit {\n @ViewChild(StateConfigFormComponent)\n public StateConfigForm: StateConfigFormComponent;\n\n public get Application(): EaCApplicationAsCode {\n return this.State?.EaC?.Applications[this.data.appLookup];\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public get StateConfigFormControl(): AbstractControl {\n return this.StateConfigForm?.StateConfigForm;\n }\n\n public ErrorMessage: string;\n\n constructor(\n protected eacSvc: EaCService,\n public dialogRef: MatDialogRef<StateConfigDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: StateConfigDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleStatusEvent(res: Status) {\n if (res.Code === 0) {\n this.snackBar.open('State Config Succesfully Updated', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = res.Message;\n }\n }\n\n public SaveStateConfig() {\n this.StateConfigForm?.SaveStateConfig();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>State Config</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-state-config-form\n [app-lookup]=\"data.appLookup\"\n [config]=\"data.config\"\n (status-event)=\"HandleStatusEvent($event)\"\n >\n </lcu-state-config-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <!-- -->\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveStateConfig()\"\n [disabled]=\"\n !StateConfigFormControl?.dirty || !StateConfigFormControl?.valid\n \"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { EaCProjectAsCode } from '@semanticjs/common';\nimport {\n EaCService,\n SaveProjectAsCodeEventRequest,\n} from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\n@Component({\n selector: 'lcu-edit-project-form',\n templateUrl: './edit-project-form.component.html',\n styleUrls: ['./edit-project-form.component.scss'],\n})\nexport class EditProjectFormComponent implements OnInit {\n @Input('project-lookup')\n public ProjectLookup: string;\n\n @Output('save-form-event')\n public SaveFormEvent: EventEmitter<{}>;\n\n public get DescriptionFormControl(): AbstractControl {\n return this.ProjectFormGroup.controls.description;\n }\n\n public get Project(): EaCProjectAsCode {\n return this.State?.EaC?.Projects[this.ProjectLookup];\n }\n\n public get NameFormControl(): AbstractControl {\n return this.ProjectFormGroup.controls.name;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ProjectFormGroup: FormGroup;\n\n constructor(protected eacSvc: EaCService, protected formBldr: FormBuilder) {\n this.SaveFormEvent = new EventEmitter();\n }\n\n ngOnInit(): void {\n this.setupProjectForm();\n }\n\n public SaveProject(): void {\n const proj: EaCProjectAsCode = this.Project;\n // console.log(\"APP=\", app);\n proj.Project = {\n Name: this.NameFormControl.value,\n Description: this.DescriptionFormControl.value,\n };\n\n const saveProjReq: SaveProjectAsCodeEventRequest = {\n ProjectLookup: this.ProjectLookup,\n Project: proj,\n };\n\n this.eacSvc.SaveProjectAsCode(saveProjReq).then((res) => {\n this.SaveFormEvent.emit(res);\n });\n }\n\n public SubmitProjectControl() {\n console.log('application form: ', this.ProjectFormGroup.value);\n this.SaveProject();\n }\n\n protected setupProjectForm() {\n if (this.Project != null) {\n this.ProjectFormGroup = this.formBldr.group({\n name: [this.Project?.Project?.Name, Validators.required],\n description: [\n this.Project?.Project?.Description,\n Validators.required,\n ],\n });\n }\n }\n}\n","<form\n class=\"form-card\"\n [formGroup]=\"ProjectFormGroup\"\n (ngSubmit)=\"SubmitProjectControl()\"\n>\n <ng-container *ngIf=\"State?.Loading\">\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n\n <skeleton-block class=\"s-block\" effect=\"wave\"></skeleton-block>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n </ng-container>\n</form>\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Status } from '@lcu/common';\nimport { EaCProjectAsCode } from '@semanticjs/common';\nimport { EditProjectFormComponent } from '../../controls/edit-project-form/edit-project-form.component';\nimport { EaCService } from '../../services/eac.service';\nimport { ApplicationsFlowState } from '../../state/applications-flow.state';\n\nexport interface ProjectDialogData {\n projectLookup: string;\n}\n\n@Component({\n selector: 'lcu-edit-project-dialog',\n templateUrl: './edit-project-dialog.component.html',\n styleUrls: ['./edit-project-dialog.component.scss'],\n})\nexport class EditProjectDialogComponent implements OnInit {\n @ViewChild(EditProjectFormComponent)\n public EditProjectControl: EditProjectFormComponent;\n\n public get Project(): EaCProjectAsCode {\n return this.State?.EaC?.Projects[this.data.projectLookup];\n }\n\n public get ProjectFormGroup(): FormGroup {\n return this.EditProjectControl?.ProjectFormGroup;\n }\n\n public get State(): ApplicationsFlowState {\n return this.eacSvc.State;\n }\n\n public ErrorMessage: string;\n\n constructor(\n public eacSvc: EaCService,\n public dialogRef: MatDialogRef<EditProjectDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ProjectDialogData,\n protected snackBar: MatSnackBar\n ) {}\n\n public ngOnInit(): void {}\n\n public CloseDialog() {\n this.dialogRef.close();\n }\n\n public HandleSaveProjectEvent(event: Status) {\n console.log('event to save: ', event);\n if (event.Code === 0) {\n this.snackBar.open('Project Succesfully Updated', 'Dismiss', {\n duration: 5000,\n });\n this.CloseDialog();\n } else {\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveProject() {\n this.EditProjectControl.SaveProject();\n }\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Edit Project: {{ Project?.Project?.Name }}</h2>\n\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <lcu-edit-project-form\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveProjectEvent($event)\"\n >\n </lcu-edit-project-form>\n\n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\">\n {{ ErrorMessage }}\n </mat-error>\n</mat-dialog-content>\n\n<mat-dialog-actions\n class=\"actions-container\"\n div\n fxLayout=\"row\"\n fxLayoutAlign=\"end center\"\n>\n <button\n class=\"action-button\"\n mat-raised-button\n fxFlex=\"25%\"\n (click)=\"CloseDialog()\"\n >\n Cancel\n </button>\n\n <button\n *ngIf=\"!State?.Loading\"\n mat-raised-button\n type=\"submit\"\n fxFlex=\"25%\"\n color=\"primary\"\n (click)=\"SaveProject()\"\n [disabled]=\"!ProjectFormGroup?.valid || !ProjectFormGroup?.dirty\"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n</mat-dialog-actions>\n","import { FormsService } from './services/forms.service';\nimport { ProjectService } from './services/project.service';\nimport {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA,\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FathymSharedModule, MaterialModule } from '@lcu/common';\nimport { ApplicationsFlowStateContext } from './state/applications-flow-state.context';\nimport { ApplicationsFlowProjectsElementComponent } from './elements/projects/projects.component';\nimport { AppHostModule } from '@lowcodeunit/app-host-common';\nimport { ApplicationsFlowService } from './services/applications-flow.service';\nimport { HostingDetailsFormGroupComponent } from './elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component';\nimport { CreateProjectWizardComponent } from './elements/projects/controls/create-project-wizard/create-project-wizard.component';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { DynamicTabsComponent } from './elements/dynamic-tabs/dynamic-tabs.component';\nimport { HeaderComponent } from './elements/projects/controls/header/header.component';\nimport { ProjectTabsComponent } from './elements/projects/controls/project-tabs/project-tabs.component';\nimport { DomainsComponent } from './elements/projects/controls/tabs/domains/domains.component';\nimport { ProjectItemsComponent } from './elements/projects/controls/project-items/project-items.component';\nimport { BuildsComponent } from './elements/projects/controls/builds/builds.component';\nimport { RecentActivitiesComponent } from './elements/projects/controls/recent-activities/recent-activities.component';\nimport { FormCardComponent } from './elements/form-card/form-card.component';\nimport { ProjectNameComponent } from './elements/projects/controls/tabs/general/forms/project-details/project-details.component';\nimport { RootDirectoryComponent } from './elements/projects/controls/tabs/general/forms/root-directory/root-directory.component';\nimport { BaseFormComponent } from './elements/base-form/base-form.component';\nimport { BaseFormTestComponent } from './elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component';\nimport { GitAuthComponent } from './elements/projects/controls/git-auth/git-auth.component';\nimport { SourceControlFormControlsComponent } from './elements/projects/controls/forms/source-control/source-control.component';\nimport { AppsFlowComponent } from './elements/projects/controls/tabs/apps-flow/apps-flow.component';\nimport { NPMService } from './services/npm.service';\nimport { NpmPackageSelectComponent } from './elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component';\nimport { DevOpsComponent } from './elements/projects/controls/tabs/devops/devops.component';\nimport { DFSModifiersComponent } from './elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component';\nimport { ThreeColumnComponent } from './elements/three-column/three-column.component';\nimport { SlottedCardComponent } from './elements/slotted-card/slotted-card.component';\nimport { ProjectInfoCardComponent } from './elements/project-info-card/project-info-card.component';\nimport { AnalyticsCardComponent } from './elements/analytics-card/analytics-card.component';\nimport { FeedCardSmComponent } from './elements/feed-card-sm/feed-card-sm.component';\nimport { MainFeedCardComponent } from './elements/main-feed-card/main-feed-card.component';\nimport { TwoColumnHeaderComponent } from './elements/two-column-header/two-column-header.component';\nimport { CardCarouselComponent } from './elements/card-carousel/card-carousel.component';\nimport { SecurityToggleComponent } from './controls/security-toggle/security-toggle.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { EaCService } from './services/eac.service';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { ProcessorDetailsFormComponent } from './controls/processor-details-form/processor-details-form.component';\nimport { SourceControlFormComponent } from './controls/source-control-form/source-control-form.component';\nimport { BuildPipelineFormComponent } from './controls/build-pipeline-form/build-pipeline-form.component';\nimport { DevopsSourceControlFormComponent } from './controls/devops-source-control-form/devops-source-control-form.component';\nimport { SourceControlDialogComponent } from './dialogs/source-control-dialog/source-control-dialog.component';\nimport { BuildPipelineDialogComponent } from './dialogs/build-pipeline-dialog/build-pipeline-dialog.component';\nimport { EditApplicationFormComponent } from './controls/edit-application-form/edit-application-form.component';\nimport { BreadcrumbComponent } from './elements/breadcrumb/breadcrumb.component';\nimport { CustomDomainDialogComponent } from './dialogs/custom-domain-dialog/custom-domain-dialog.component';\nimport { EditApplicationDialogComponent } from './dialogs/edit-application-dialog/edit-application-dialog.component';\nimport { NewApplicationDialogComponent } from './dialogs/new-application-dialog/new-application-dialog.component';\nimport { ProcessorDetailsDialogComponent } from './dialogs/processor-details-dialog/processor-details-dialog.component';\nimport { SkeletonElementsModule } from 'skeleton-elements/angular';\nimport { SkeletonFeedCardComponent } from './elements/skeleton-feed-card/skeleton-feed-card.component';\nimport { UpgradeDialogComponent } from './dialogs/upgrade-dialog/upgrade-dialog.component';\nimport { EmulatedDevicesToggleComponent } from './controls/emulated-devices-toggle/emulated-devices-toggle.component';\nimport { IoTEnsembleService } from './services/iot-ensemble.service';\nimport { FeedHeaderComponent } from './elements/feed-header/feed-header.component';\nimport { FeedHeaderDialogComponent } from './dialogs/feed-header-dialog/feed-header-dialog.component';\nimport { AngularEditorModule } from '@kolkov/angular-editor';\nimport { DFSModifiersDialogComponent } from './dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component';\nimport { DFSModifiersFormComponent } from './controls/dfs-modifiers-form/dfs-modifiers-form.component';\nimport { StateConfigDialogComponent } from './dialogs/state-config-dialog/state-config-dialog.component';\nimport { StateConfigFormComponent } from './controls/state-config-form/state-config-form.component';\nimport { EditProjectDialogComponent } from './dialogs/edit-project-dialog/edit-project-dialog.component';\nimport { EditProjectFormComponent } from './controls/edit-project-form/edit-project-form.component';\n\n@NgModule({\n declarations: [\n ApplicationsFlowProjectsElementComponent,\n HostingDetailsFormGroupComponent,\n CreateProjectWizardComponent,\n DynamicTabsComponent,\n HeaderComponent,\n ProjectTabsComponent,\n DomainsComponent,\n ProjectItemsComponent,\n BuildsComponent,\n RecentActivitiesComponent,\n FormCardComponent,\n ProjectNameComponent,\n RootDirectoryComponent,\n BaseFormComponent,\n BaseFormTestComponent,\n GitAuthComponent,\n SourceControlFormControlsComponent,\n AppsFlowComponent,\n DevOpsComponent,\n DFSModifiersComponent,\n NpmPackageSelectComponent,\n DFSModifiersFormComponent,\n ThreeColumnComponent,\n SlottedCardComponent,\n ProjectInfoCardComponent,\n AnalyticsCardComponent,\n FeedCardSmComponent,\n FeedHeaderComponent,\n MainFeedCardComponent,\n TwoColumnHeaderComponent,\n CardCarouselComponent,\n SecurityToggleComponent,\n ProcessorDetailsFormComponent,\n SourceControlFormComponent,\n BuildPipelineFormComponent,\n DevopsSourceControlFormComponent,\n SourceControlDialogComponent,\n BuildPipelineDialogComponent,\n EditApplicationFormComponent,\n BreadcrumbComponent,\n DFSModifiersDialogComponent,\n CustomDomainDialogComponent,\n EditApplicationDialogComponent,\n NewApplicationDialogComponent,\n ProcessorDetailsDialogComponent,\n SkeletonFeedCardComponent,\n UpgradeDialogComponent,\n EmulatedDevicesToggleComponent,\n FeedHeaderDialogComponent,\n StateConfigDialogComponent,\n StateConfigFormComponent,\n EditProjectDialogComponent,\n EditProjectFormComponent,\n ],\n imports: [\n AngularEditorModule,\n ClipboardModule,\n FathymSharedModule,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n MaterialModule,\n AppHostModule,\n MatTooltipModule,\n MatSlideToggleModule,\n SkeletonElementsModule,\n\n // LazyElementModule,\n ],\n exports: [\n ApplicationsFlowProjectsElementComponent,\n HostingDetailsFormGroupComponent,\n CreateProjectWizardComponent,\n DynamicTabsComponent,\n HeaderComponent,\n ProjectTabsComponent,\n DomainsComponent,\n ProjectItemsComponent,\n BuildsComponent,\n RecentActivitiesComponent,\n FormCardComponent,\n ProjectNameComponent,\n RootDirectoryComponent,\n BaseFormComponent,\n BaseFormTestComponent,\n GitAuthComponent,\n SourceControlFormControlsComponent,\n AppsFlowComponent,\n DevOpsComponent,\n DFSModifiersComponent,\n NpmPackageSelectComponent,\n ThreeColumnComponent,\n SlottedCardComponent,\n ProjectInfoCardComponent,\n AnalyticsCardComponent,\n FeedCardSmComponent,\n FeedHeaderComponent,\n FeedHeaderDialogComponent,\n MainFeedCardComponent,\n TwoColumnHeaderComponent,\n CardCarouselComponent,\n SecurityToggleComponent,\n ProcessorDetailsFormComponent,\n SourceControlFormComponent,\n BuildPipelineFormComponent,\n DevopsSourceControlFormComponent,\n SourceControlDialogComponent,\n BuildPipelineDialogComponent,\n EditApplicationFormComponent,\n BreadcrumbComponent,\n CustomDomainDialogComponent,\n EditApplicationDialogComponent,\n NewApplicationDialogComponent,\n ProcessorDetailsDialogComponent,\n SkeletonFeedCardComponent,\n UpgradeDialogComponent,\n EmulatedDevicesToggleComponent,\n FeedHeaderDialogComponent,\n DFSModifiersDialogComponent,\n DFSModifiersFormComponent,\n StateConfigDialogComponent,\n StateConfigFormComponent,\n EditProjectDialogComponent,\n EditProjectFormComponent,\n ],\n entryComponents: [\n ApplicationsFlowProjectsElementComponent,\n DynamicTabsComponent,\n HeaderComponent,\n ProjectTabsComponent,\n DomainsComponent,\n ProjectItemsComponent,\n BuildsComponent,\n RecentActivitiesComponent,\n FormCardComponent,\n ProjectNameComponent,\n RootDirectoryComponent,\n BaseFormComponent,\n BaseFormTestComponent,\n GitAuthComponent,\n SourceControlFormControlsComponent,\n AppsFlowComponent,\n DevOpsComponent,\n DFSModifiersComponent,\n NpmPackageSelectComponent,\n ThreeColumnComponent,\n SlottedCardComponent,\n ProjectInfoCardComponent,\n AnalyticsCardComponent,\n FeedCardSmComponent,\n FeedHeaderComponent,\n MainFeedCardComponent,\n TwoColumnHeaderComponent,\n CardCarouselComponent,\n SecurityToggleComponent,\n ProcessorDetailsFormComponent,\n DFSModifiersFormComponent,\n SourceControlFormComponent,\n BuildPipelineFormComponent,\n DevopsSourceControlFormComponent,\n DFSModifiersDialogComponent,\n SourceControlDialogComponent,\n BuildPipelineDialogComponent,\n EditApplicationFormComponent,\n BreadcrumbComponent,\n CustomDomainDialogComponent,\n EditApplicationDialogComponent,\n EmulatedDevicesToggleComponent,\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA, // Tells Angular we will have custom tags in our templates\n ],\n})\nexport class ApplicationsFlowModule {\n static forRoot(): ModuleWithProviders<ApplicationsFlowModule> {\n return {\n ngModule: ApplicationsFlowModule,\n providers: [\n ApplicationsFlowStateContext,\n ApplicationsFlowService,\n ProjectService,\n NPMService,\n FormsService,\n EaCService,\n IoTEnsembleService,\n ],\n };\n }\n}\n","export class ProjectActionsModel {\n /**\n * Click Action\n */\n public Action?: any;\n /**\n * Mat Icon\n */\n\n public Icon: string;\n\n /**\n * Tooltip\n */\n public Tooltip?: string;\n\n constructor(opts: ProjectActionsModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","import { BaseResponse, Status } from '@lcu/common';\n\nexport class UserFeedResponse extends BaseResponse {\n public Actions: Array<FeedItemAction>;\n\n public Items: Array<FeedItem>;\n\n public SourceControlLookups: Array<string>;\n}\n\nexport class FeedItem {\n [key: string]: any;\n\n public Actions: Array<FeedItemAction>;\n\n public Avatar: string;\n\n public Badge: string;\n\n public Contributors: Array<FeedItemContributor>;\n\n public ID: string;\n\n public IsPinned: boolean;\n\n public IsShortForm: boolean;\n\n public RefreshLink: string;\n\n public Status: Status;\n\n public Subtext: string;\n\n public Subtitle: string;\n\n public Tabs: Array<FeedItemTab>;\n\n public Timestamp: Date;\n\n public Title: string;\n\n public Type: string;\n}\n\nexport class FeedItemContributor {\n [key: string]: any;\n\n public Status: string;\n\n public StatusIcon: string;\n\n public UserImage: string;\n\n public Username: string;\n}\n\nexport class FeedItemAction {\n [key: string]: any;\n\n public Action: string;\n\n public ActionType: string;\n\n public Color: string;\n\n public Icon: string;\n\n public Text: string;\n}\n\nexport class FeedItemTab {\n [key: string]: any;\n\n public Data: { [key: string]: any };\n\n public Title: string;\n}\n\nexport class FeedEntry {\n public ActionIcon: string;\n\n public ActionLink: string;\n\n public ActionText: string;\n\n public Avatar: string;\n\n public Content: string;\n\n public ExpiresAt: Date;\n\n public Organization: string;\n\n public Repository: string;\n\n public SourceBranch: string;\n\n public SourceControlLookup: string;\n\n public Subtitle: string;\n\n public TargetBranch: string;\n\n public Title: string;\n\n public Type: string;\n}\n","type ButtonType = 'GENERIC' | 'RESET' | 'SAVE';\nexport class ActionsModel {\n /**\n * Callback function on button click\n */\n public ClickEvent: any;\n\n /**\n * Angular Material theme color (primary, accent, warn)\n */\n public Color?: string;\n\n /**\n * Button text value\n */\n public Label: string;\n\n /**\n * Style from parent component\n */\n public Style?: string;\n\n /**\n * Type of button functionality (reset, save, generic)\n */\n public Type: ButtonType;\n}\n","import { ActionsModel } from './actions.model';\n\nexport class FormActionsModel {\n /**\n * Button actions\n */\n public Actions: Array<ActionsModel>;\n\n /**\n * Simple text on the same line as the buttons\n */\n public Message?: string;\n}\n","export class DevSettingsPresetModel {\n public Icon: string;\n public ID: number;\n public Label: string;\n}\n","export class DomainModel {\n public Branch: string;\n public Name: string;\n public Host: string;\n public ValidConfig: string;\n}\n","import { FormGroup } from '@angular/forms';\nexport class FormModel {\n /**\n * Form Id\n */\n public Id: string;\n\n /**\n * Form\n */\n public Form: FormGroup;\n\n constructor(opts: FormModel) {\n Object.assign(this, opts); // destructure values\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './lcu.api';\n"],"names":["i1.ApplicationsFlowService","i2","i1.ProjectService","i1.EaCService","i3","i4","i5","i6","i7","i1","i3.EaCService","i4.ProjectItemsComponent","i8","i9","i10","i11","i1.FormsService","i2.EaCService","i3.FormCardComponent","i12","ApplicationsFlowProjectsElementState","ApplicationsFlowProjectsContext","i2.FormsService","i2.ApplicationsFlowService","i13","i14","i1.NPMService","i10.SourceControlFormControlsComponent","i11.NpmPackageSelectComponent","i15","i16","i6.SourceControlFormControlsComponent","i10.HostingDetailsFormGroupComponent","i1.DynamicTabsComponent","i9.HeaderComponent","i10.ProjectTabsComponent","i5.SourceControlFormControlsComponent","i8.HostingDetailsFormGroupComponent","i6.GitAuthComponent","i7.DevopsSourceControlFormComponent","i9.NpmPackageSelectComponent","i3.ApplicationsFlowService","i7.BuildPipelineFormComponent","i4.DomainsComponent","i6.EditApplicationFormComponent","i7.ProcessorDetailsFormComponent","i6.ProcessorDetailsFormComponent","i7.DFSModifiersFormComponent","i6.StateConfigFormComponent","i6.EditProjectFormComponent"],"mappings":"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"}