@lowcodeunit/applications-flow-common 1.34.54-krakyn-app → 1.34.57-lets-get-social-ish
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.mjs +90 -46
- package/esm2020/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.mjs +17 -19
- package/esm2020/lib/elements/feed-card-sm/feed-card-sm.component.mjs +2 -2
- package/esm2020/lib/elements/feed-header/feed-header.component.mjs +2 -2
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +2 -2
- package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +3 -3
- package/esm2020/lib/elements/skeleton-feed-card/skeleton-feed-card.component.mjs +2 -2
- package/esm2020/lib/services/eac.service.mjs +17 -41
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +140 -122
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +149 -129
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.d.ts +17 -5
- package/lib/dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component.d.ts +3 -4
- package/lib/services/eac.service.d.ts +3 -15
- package/package.json +1 -1
|
@@ -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/dialogs/upgrade-dialog/upgrade-dialog.component.ts","../../../projects/common/src/lib/dialogs/upgrade-dialog/upgrade-dialog.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/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/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 */\n export 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}","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 })\n\nexport class FormsService {\n\n /**\n * List of forms\n */\n private _form: FormModel;\n public set Form(val: FormModel) {\n\n if (!val) { return; }\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\n const preventEvent: {onlySelf: boolean, emitEvent: boolean} = { onlySelf: true, emitEvent: false };\n\n this.forms.forEach((form: FormModel) => {\n\n if (typeof val === 'boolean') {\n val ? form.Form.disable(preventEvent) : 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 /**\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\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\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\n const index: number = this.previousFormValues.findIndex((x: FormValuesModel) => {\n return x.Id === val.Id;\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\n const formVals: FormValuesModel = this.previousFormValues.find((x: FormValuesModel) => {\n return x.Id === id;\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';\r\nimport { Injectable } from '@angular/core';\r\nimport { LCUServiceSettings } from '@lcu/common';\r\nimport { Observable } from 'rxjs';\r\nimport { EnterpriseAsCode } from '@semanticjs/common';\r\nimport { UnpackLowCodeUnitRequest } from '../state/applications-flow.state';\r\nimport { FeedEntry } from '../models/user-feed.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApplicationsFlowService {\r\n // Fields\r\n protected apiRoot: string;\r\n\r\n // Properties\r\n\r\n // Constructors\r\n constructor(\r\n protected http: HttpClient,\r\n protected settings: LCUServiceSettings\r\n ) {\r\n this.apiRoot = settings.APIRoot;\r\n }\r\n\r\n // API Methods\r\n public ConfigureDevOpsAction(actionLookup: string): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/devops/actions/${actionLookup}/configure`,\r\n {},\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public CreateRepository(\r\n organization: string,\r\n repoName: string\r\n ): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\r\n {\r\n Name: repoName,\r\n },\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteApplication(appLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/applications/${appLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteDevOpsAction(doaLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/devops-actions/${doaLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteProject(projectLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/projects/${projectLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteSourceControl(scLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/source-controls/${scLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public EnsureUserEnterprise(): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprise/ensure`,\r\n {},\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public EnterpriseAsCodeRemovals(removals: EnterpriseAsCode): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/eac`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public GetActiveEnterprise(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public HasValidConnection(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/connection/valid`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListProjects(): Observable<object> {\r\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/projects`, {\r\n headers: this.loadHeaders(),\r\n });\r\n }\r\n\r\n public ListBranches(\r\n organization: string,\r\n repository: string\r\n ): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/branches`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListBuildPaths(\r\n organization: string,\r\n repository: string,\r\n branch: string = ''\r\n ): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/build-paths?branch=${branch}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListEnterprises(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/list`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListOrganizations(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListRepositories(organization: string): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public LoadEnterpriseAsCode(): Observable<object> {\r\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/eac`, {\r\n headers: this.loadHeaders(),\r\n });\r\n }\r\n\r\n // public LoadProjectHostingDetails(\r\n // organization: string,\r\n // repository: string,\r\n // branch: string\r\n // ): Observable<object> {\r\n // branch = encodeURIComponent(branch);\r\n\r\n // return this.http.get(\r\n // `${this.apiRoot}/api/lowcodeunit/manage/projects/organizations/${organization}/repositories/${repository}/branches/${branch}/hosting/details`,\r\n // {\r\n // headers: this.loadHeaders(),\r\n // }\r\n // );\r\n // }\r\n\r\n public LoadProjectHostingDetails(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/manage/projects/hosting/details`,\r\n\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public LoadUserFeed(\r\n page: number,\r\n pageSize: number,\r\n project: string,\r\n applications: string[]\r\n ): Observable<object> {\r\n var apps = JSON.stringify(applications || []);\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/userfeed?page=${page}&pageSize=${pageSize}&project=${project}&applications=${apps}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public SaveEnterpriseAsCode(eac: EnterpriseAsCode): Observable<object> {\r\n return this.http.post(`${this.apiRoot}/api/lowcodeunit/manage/eac`, eac, {\r\n headers: this.loadHeaders(),\r\n });\r\n }\r\n\r\n public SetActiveEnterprise(activeEntLookup: string): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\r\n {\r\n ActiveEnterpriseLookup: activeEntLookup,\r\n },\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public SubmitFeedEntry(entry: FeedEntry): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/userfeed/entry`,\r\n entry,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public UnpackLowCodeUnit(req: UnpackLowCodeUnitRequest): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/projects/unpack`,\r\n req,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n // Helpers\r\n protected loadHeaders(): { [header: string]: string | string[] } {\r\n return {};\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { BaseModeledResponse, BaseResponse, Status } from '@lcu/common';\nimport { debug } from 'console';\nimport { EaCApplicationAsCode, EaCProjectAsCode, EnterpriseAsCode } from '@semanticjs/common';\nimport {\n ApplicationsFlowState,\n GitHubWorkflowRun,\n UnpackLowCodeUnitRequest,\n} from '../state/applications-flow.state';\nimport { ApplicationsFlowService } from './applications-flow.service';\nimport { FeedEntry, FeedItem, UserFeedResponse } 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 async DeleteApplication(\n state: ApplicationsFlowState,\n appLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteApplication(appLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 DeleteDevOpsAction(\n state: ApplicationsFlowState,\n doaLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteDevOpsAction(doaLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 DeleteProject(\n state: ApplicationsFlowState,\n projectLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteProject(projectLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 DeleteSourceControl(\n state: ApplicationsFlowState,\n scLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteSourceControl(scLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 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 var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(response.Status);\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(applications: { [lookup: string]: EaCApplicationAsCode }, state: ApplicationsFlowState): {\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(currentRouteBase);\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<{ Name: string; Lookup: string }>\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 state: ApplicationsFlowState\n ): Promise<Array<FeedItem>> {\n return new Promise((resolve, reject) => {\n state.LoadingFeed = true;\n\n let paramMap = this.activatedRoute.snapshot.children[0].paramMap;\n\n let result = this.loadApplicationsForFeed(state, paramMap);\n \n this.appsFlowSvc\n .LoadUserFeed(page, pageSize, result.Project, result.Applications)\n .subscribe(\n async (response: UserFeedResponse) => {\n state.LoadingFeed = false;\n\n if (response.Status.Code === 0) {\n state.Feed = response.Items;\n\n state.FeedSourceControlLookups = response.SourceControlLookups;\n\n state.FeedActions = response.Actions;\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<EnterpriseAsCode> {\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('project service active ent: ', activeEntLookup);\n\n state.ActiveEnterpriseLookup = activeEntLookup;\n\n console.log(\n 'project service State active ent: ',\n state.ActiveEnterpriseLookup\n );\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(results[0]);\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 var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(response.Status);\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 var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(response.Status);\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<EnterpriseAsCode> {\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 const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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(state: ApplicationsFlowState, paramMap: any) {\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}\n","import { Injectable, Injector } from '@angular/core';\r\nimport { StateContext } from '@lcu/common';\r\nimport { ApplicationsFlowState } from './applications-flow.state';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationsFlowStateContext extends StateContext<ApplicationsFlowState> {\r\n\r\n // Constructors\r\n constructor(protected injector: Injector) {\r\n super(injector);\r\n }\r\n\r\n\r\n // API Methods\r\n public AddApplication(): void {\r\n this.Execute({\r\n Arguments: {\r\n },\r\n Type: 'AddApplication'\r\n });\r\n }\r\n\r\n // Helpers\r\n protected defaultValue(): ApplicationsFlowState {\r\n return { Loading: true } as ApplicationsFlowState;\r\n }\r\n\r\n protected loadStateKey(): string {\r\n return 'main';\r\n }\r\n\r\n protected loadStateName(): string {\r\n return 'lcu';\r\n }\r\n}\r\n","import { EnterpriseAsCode } from '@semanticjs/common';\r\nimport { FeedItem, FeedItemAction } from '../models/user-feed.model';\r\n\r\nexport class ApplicationsFlowState {\r\n public ActiveEnterpriseLookup?: string;\r\n\r\n public EaC?: EnterpriseAsCode;\r\n\r\n public Enterprises?: Array<{ Name: string; Lookup: string }>;\r\n\r\n public Feed?: Array<FeedItem>;\r\n\r\n public FeedActions?: Array<FeedItemAction>;\r\n\r\n public FeedSourceControlLookups?: Array<string>;\r\n\r\n public GitHub?: GitHubSetupState;\r\n\r\n public HostingDetails?: ProjectHostingDetails;\r\n\r\n public Loading?: boolean;\r\n\r\n public LoadingActiveEnterprise?: boolean;\r\n\r\n public LoadingEnterprises?: boolean;\r\n \r\n public LoadingFeed?: boolean;\r\n\r\n // public Projects?: ProjectState[];\r\n\r\n public Unleashed?: boolean;\r\n\r\n public UserEnterpriseLookup?: string;\r\n\r\n constructor() {\r\n this.GitHub = {};\r\n\r\n this.HostingDetails = {};\r\n\r\n this.Loading = true;\r\n\r\n this.LoadingActiveEnterprise = true;\r\n\r\n this.LoadingEnterprises = true;\r\n\r\n this.LoadingFeed = true;\r\n\r\n // this.Projects = [];\r\n }\r\n}\r\n\r\n// export class ProjectState {\r\n// public ActionsSet?: { [id: string]: DevOpsAction };\r\n\r\n// public Applications?: ApplicationState[];\r\n\r\n// public Description?: string;\r\n\r\n// public Host?: string;\r\n\r\n// public ID?: string;\r\n\r\n// public Image?: string;\r\n\r\n// public LCUs?: GitHubLowCodeUnit[];\r\n\r\n// public Name?: string;\r\n\r\n// public PreventInheritedApplications?: boolean;\r\n\r\n// public Runs?: GitHubWorkflowRun[];\r\n// }\r\n\r\n// export class ApplicationState {\r\n// public IsPrivate?: boolean;\r\n\r\n// public Name?: string;\r\n\r\n// public Organization?: string;\r\n\r\n// public PathRegex?: string;\r\n\r\n// public Priority?: number;\r\n\r\n// public Repository?: string;\r\n\r\n// public Version?: string;\r\n// }\r\n\r\nexport class GitHubSetupState {\r\n public BranchOptions?: GitHubBranch[];\r\n\r\n public CreatingRepository?: boolean;\r\n\r\n public HasConnection?: boolean;\r\n\r\n public Loading?: boolean;\r\n\r\n public OrganizationOptions?: GitHubOrganization[];\r\n\r\n public RepositoryOptions?: GitHubRepository[];\r\n}\r\n\r\nexport class GitHubBranch {\r\n public Name?: string;\r\n}\r\n\r\n// export class GitHubLowCodeUnit {\r\n// public Branch?: string;\r\n\r\n// public ID?: string;\r\n\r\n// public Lookup?: string;\r\n\r\n// public Organization?: string;\r\n\r\n// public Repository?: string;\r\n// }\r\n\r\nexport class GitHubOrganization {\r\n public Name?: string;\r\n}\r\n\r\nexport class GitHubRepository {\r\n public CloneURL?: string;\r\n\r\n public Name?: string;\r\n}\r\n\r\nexport class GitHubWorkflowRun {\r\n public Conclusion?: string;\r\n\r\n public CreatedAt?: string;\r\n\r\n public ID?: string;\r\n\r\n public LCUID?: string;\r\n\r\n public RunNumber?: number;\r\n\r\n public Status?: string;\r\n\r\n public Workflow?: string;\r\n\r\n public UpdatedAt?: string;\r\n}\r\n\r\nexport class UnpackLowCodeUnitRequest {\r\n public ApplicationLookup?: string;\r\n\r\n public ApplicationName?: string;\r\n\r\n public Version?: string;\r\n}\r\n\r\n// export class DevOpsAction {\r\n// public Details?: string;\r\n\r\n// public ID?: string;\r\n\r\n// public Name?: string;\r\n\r\n// public Overwrite?: boolean;\r\n\r\n// public Path?: string;\r\n\r\n// public Template?: string;\r\n// }\r\n\r\nexport class ProjectHostingDetails {\r\n public HostingOptions?: ProjectHostingOption[];\r\n\r\n public Loading?: boolean;\r\n}\r\n\r\nexport class ProjectHostingOption {\r\n public ArtifactType?: string;\r\n\r\n public Description?: string;\r\n\r\n public Image?: string;\r\n\r\n public Inputs?: ProjectHostingOptionInput[];\r\n\r\n public Lookup?: string;\r\n\r\n public Name?: string;\r\n\r\n public Path?: string;\r\n\r\n public Templates?: string[];\r\n}\r\n\r\nexport class ProjectHostingOptionInput {\r\n public DefaultValue?: string;\r\n\r\n public Hint?: string;\r\n\r\n public Lookup?: string;\r\n\r\n public Placeholder?: string;\r\n\r\n public Required?: boolean;\r\n}\r\n\r\n// export class EstablishProjectRequest {\r\n// public Branch?: string;\r\n\r\n// public BuildScript?: string;\r\n\r\n// public HostingOption?: string;\r\n\r\n// public Organization?: string;\r\n\r\n// public OutputFolder?: string;\r\n\r\n// public ProjectName?: string;\r\n\r\n// public Repository?: string;\r\n// }\r\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 { BaseModeledResponse, 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 SaveDFSModifierForApplicationEventRequest {\n public Modifier: EaCDFSModifier;\n\n public ModifierLookup: string;\n\n public ApplicationLookup?: string;\n}\n\nexport class SaveDFSModifierEventRequest {\n public Modifier: EaCDFSModifier;\n\n public ModifierLookup: string;\n\n public ProjectLookup?: string;\n}\n\nexport class SaveDFSModifierForAllEventRequest {\n public Modifier: EaCDFSModifier;\n\n public ModifierLookup: 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(protected projectService: ProjectService,\n protected http: HttpClient) {\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<void> {\n if (confirm(`Are you sure you want to delete application '${appName}'?`)) {\n await this.projectService.DeleteApplication(this.State, appLookup);\n }\n }\n\n public async DeleteDevOpsAction(doaLookup: string): Promise<void> {\n if (\n confirm(`Are you sure you want to delete DevOps action '${doaLookup}'?`)\n ) {\n await this.projectService.DeleteDevOpsAction(this.State, doaLookup);\n }\n }\n\n public async DeleteProject(projectLookup: string): Promise<void> {\n if (\n confirm(`Are you sure you want to delete Project '${projectLookup}'?`)\n ) {\n await this.projectService.DeleteProject(this.State, projectLookup);\n }\n }\n\n public async DeleteSourceControl(scLookup: string): Promise<void> {\n if (\n confirm(`Are you sure you want to delete Source Control '${scLookup}'?`)\n ) {\n await this.projectService.DeleteSourceControl(this.State, scLookup);\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(eac: EnterpriseAsCode): Promise<Status> {\n return await 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(page: number, pageSize: number): Promise<void> {\n await this.projectService.LoadUserFeed(page, pageSize, this.State);\n }\n \n public GenerateRoutedApplications(applications: { [lookup: string]: EaCApplicationAsCode }): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n return this.projectService.GenerateRoutedApplications(applications, this.State);\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 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 SaveDFSModifierForAllProjects(\n req: SaveDFSModifierForAllEventRequest\n ): Promise<void> {\n await this.handleSaveDFSModifierForAllProjects(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<void> {\n 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(this.State, projectLookup);\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(req: UnpackLowCodeUnitRequest): 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 const existingProj = {\n ...this.State.EaC.Projects[req.ProjectLookup],\n };\n\n if (existingProj.ApplicationLookups?.indexOf(req.ApplicationLookup) < 0) {\n if (!existingProj.ApplicationLookups) {\n existingProj.ApplicationLookups = [];\n }\n\n existingProj.ApplicationLookups.push(req.ApplicationLookup);\n\n saveEaC.Projects[req.ProjectLookup] = existingProj;\n }\n\n if (req.Application) {\n saveEaC.Applications[req.ApplicationLookup] = req.Application;\n }\n\n return await this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);\n }\n\n protected async handleSaveDFSModifierForApplication(\n req: SaveDFSModifierForApplicationEventRequest\n ): Promise<void> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Modifiers: {},\n Applications: {},\n };\n\n if (req.Modifier) {\n saveEaC.Modifiers[req.ModifierLookup] = req.Modifier;\n }\n\n if (req.ApplicationLookup) {\n saveEaC.Applications[req.ApplicationLookup] = {\n ModifierLookups: [req.ModifierLookup],\n };\n }\n\n await this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);\n }\n\n protected async handleSaveDFSModifierForAllProjects(\n req: SaveDFSModifierForAllEventRequest\n ): Promise<void> {\n const saveEaC: EnterpriseAsCode = {\n EnterpriseLookup: this.State.EaC.EnterpriseLookup,\n Modifiers: {},\n Projects: {},\n };\n\n if (req.Modifier) {\n saveEaC.Modifiers[req.ModifierLookup] = req.Modifier;\n }\n\n if (req.ProjectLookups) {\n req.ProjectLookups.forEach(lookup =>{\n saveEaC.Projects[lookup] = {\n ModifierLookups: [req.ModifierLookup],\n };\n })\n \n }\n\n await this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);\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 };\n\n if (req.Modifier) {\n saveEaC.Modifiers[req.ModifierLookup] = req.Modifier;\n }\n\n if (req.ProjectLookup) {\n saveEaC.Projects[req.ProjectLookup] = {\n ModifierLookups: [req.ModifierLookup],\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(this.State, 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) => {\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(this.State, saveEaC);\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\n // API Methods\n public DeleteProject(projectLookup: string, projectName: string): void {\n if (confirm(`Are you sure you want to delete project '${projectName}'?`)) {\n this.eacSvc.DeleteProject(projectLookup);\n }\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\n \n *ngFor=\"let projectLookup of ProjectLookups\"\n class=\"card-container\"\n >\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\">{{ GetPrimaryHost(project) }}</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 >\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\">settings</mat-icon>\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\">cancel</mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteProject(projectLookup, project.Project.Name)\"\n >\n <mat-icon matTooltip=\"Delete {{ project.Project.Name }}\">\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 {\n EaCProjectAsCode,\n} 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.lowcodeunit.com`],\n ModifierLookups: ['html-base', 'lcu-reg'],\n RelyingParty: {\n AccessConfigurations: {\n fathym: {\n AccessRightLookups: ['Fathym.Global.Admin', 'Fathym.User'],\n ProviderLookups: ['ADB2C'],\n Usernames: ['support@fathym.com', this.lcuSettings.User.Email],\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 /**\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\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})\n\nexport class FormCardComponent implements OnInit {\n\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 }\n\n ngOnInit(): void {\n }\n\n}\n","<div\n [ngClass]=\"Disabled ? 'form-disabled' : 'form-enabled'\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon\n color=\"accent\"\n class=\"title-icon\">\n {{ Config.Icon }}\n </mat-icon>\n </div>\n <mat-card-title\n class=\"paragraph-title\">\n {{ Config.Title }}\n </mat-card-title>\n <mat-card-subtitle\n 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\n *ngTemplateOutlet=\"content\">\n </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 <span class=\"mat-small caption-text\">{{ Config.FormActions.Message }}</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 <button\n [disabled]=\"Disabled || (action.Type === 'SAVE' && Form.invalid)\"\n color=\"{{ action.Color }}\"\n mat-flat-button (click)=\"action.ClickEvent()\">\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\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 ' + this.HostDNSInstance + '.',\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 <div>\n <lcu-form-card \n [config]=\"Config\"\n [form]=\"Form\"\n [is-dirty]=\"IsDirty\"\n >\n <div fxLayout=\"column\">\n <div fxLayout=\"row\">\n <div fxFlex fxLayout=\"row\">\n <mat-form-field fxFlex appearance=\"fill\" class=\"margin-right-3\">\n <mat-icon\n matSuffix\n [ngClass]=\"Domain.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Domain.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"Domain.invalid || Domain.disabled ? '/' : ''\"\n formControlName=\"domain\"\n />\n\n <mat-hint>\n These domains are assigned to your deployments. Optionally, \n a different Git branch or a redirection to another domain \n can be configured 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 mat-icon-button [cdkCopyToClipboard]=\"HostDNSInstance\" matTooltip=\"Copy subdomain to clipboard\">\n <mat-icon>content_copy</mat-icon>\n </button>\n\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","\nexport class DynamicTabsModel {\n\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\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([this.SourceControlRoot, 'branches'].join(''));\n\n this.FormGroup.removeControl([this.SourceControlRoot, 'buildPath'].join(''));\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(this.MainBranchFormControl.value) < 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(this.BranchOptions[0].Name);\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(this.BuildPathOptions[0]);\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe((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(this.SourceControl?.Repository);\n }, 0);\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(this.SourceControl.Repository ?? '', Validators.required)\n );\n\n if (this.UseBranches) {\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'branches'].join(''),\n new FormControl(this.SourceControl?.Branches ?? '', Validators.required)\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 matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\"> refresh </mat-icon>\n\n <a\n matSuffix\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'repository'\"\n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \"\n [disabled]=\"\n !OrganizationFormControl?.valid || Loading || 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 mat-button type=\"button\" \n (click)=\"SaveRepository()\" \n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon\n matSuffix\n color=\"primary\"\n >\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" \n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\">\n\n <mat-icon\n matSuffix\n \n >\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-label>Selected Branches</mat-label>\n\n <mat-autocomplete\n (optionSelected)=\"BranchOptionSelected($event)\"\n #branchOptions=\"matAutocomplete\"\n >\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-chip-list #selectedBranches>\n <mat-chip\n [removable]=\"true\"\n (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\"\n >\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input\n matInput\n placeholder=\"New Branch...\"\n [formControlName]=\"SourceControlRoot + 'branches'\"\n #branches\n [matAutocomplete]=\"branchOptions\"\n [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\"\n [disabled]=\"Loading || 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()\"> refresh </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n \n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \"\n >\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'buildPath'\"\n placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\"\n (selectionChange)=\"BuildPathChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n</div>\n","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.get(`https://api.npms.io/v2/search?q=${search}`).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', [Validators.required])\n );\n\n this.FormGroup.controls.package.valueChanges\n .pipe(\n debounceTime(500),\n switchMap((value) => this.npm.Search(value ? value.toString() : '')),\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/' + 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 {EaCService, SaveApplicationAsCodeEventRequest} 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((appLookup) => this.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 = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(currentRouteBase);\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: 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: this.EditingApplication?.LookupConfig?.QueryRegex || '',\n HeaderRegex: 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 = `${this.RouteFormControl.value}/`.replace(\n '//',\n '/'\n );\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 = this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret = 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 = 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 = !!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: this.EditingApplicationLookup || Guid.CreateRaw(),\n };\n\n if (this.HasBuildFormControl.value && this.ProcessorType !== 'redirect') {\n if (app) {\n app.LowCodeUnit.SourceControlLookup = 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(app: EaCApplicationAsCode, appRouteBase: string): 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: [this.EditingApplication.Application?.Name, Validators.required],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [\n this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||\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 || 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 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(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 }} / {{ EditingApplication.Application?.Name }}\n </h2>\n </div>\n <form\n [formGroup]=\"ApplicationFormGroup\"\n (ngSubmit)=\"SaveApplication()\"\n *ngIf=\"EditingApplication\"\n >\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 *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </mat-card-content>\n </mat-card>\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\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ApplicationFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls?.RepositoryFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ApplicationFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 – 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 \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 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 </mat-card>\n\n <mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button mat-button type=\"button\" (click)=\"SetEditingApplication(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]=\"!ApplicationFormGroup.valid || !ApplicationFormGroup.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=\"!EditingApplication\">\n <span class=\"apps-actions\">\n <button mat-raised-button color=\"accent\" (click)=\"CreateNewApplication()\">\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 }}{{ appRoute }}\"\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)=\"EditApplicationRouteClicked(appRoute)\"\n >\n <mat-icon matTooltip=\"Edit Application Route\">\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 *ngFor=\"let appLookup of CurrentRouteApplicationLookups\">\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngIf=\"\n RoutedApplications[CurrentApplicationRoute][appLookup];\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 target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\">launch</mat-icon>\n </a>\n\n <a\n *ngIf=\"GetProcessorType(appLookup) === 'DFS'\"\n mat-icon-button\n (click)=\"Unpack(appLookup, app)\"\n target=\"_blank\"\n matTooltip=\"Unpack {{\n app.LowCodeUnit?.Version || app.LowCodeUnit?.Build\n }}\"\n >\n <mat-icon>cloud_upload</mat-icon>\n </a>\n\n <button\n mat-icon-button\n (click)=\"SetEditingApplication(appLookup)\"\n >\n <mat-icon matTooltip=\"Edit Application\"> edit </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteApplication(appLookup, app.Application.Name)\"\n >\n <mat-icon matTooltip=\"Delete {{ app.Application.Name }}\">\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 mat-icon-button disabled \n *ngIf=\"GetProcessorType(appLookup) === 'DFS'\">\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\n\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 || this.SelectedHostingOption?.Name || '',\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=\"let hostOption of Details?.HostingOptions; let i = index\"\n >\n <mat-option [value]=\"hostOption?.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n <ng-container *ngFor=\"let hostOption of 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 (PAT) with publish access to the organization used for your NPM packages. \n Learn how to create and view access tokens \n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n</div>\n\n<div *ngIf=\"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","\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n} 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.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.DevOpsActionNameFormControl.value,\n Path: this.HostingDetailsFormControls.SelectedHostingOption.Path,\n Templates:\n this.HostingDetailsFormControls.SelectedHostingOption.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: saveEnvReq.Environment.Secrets[secretLookup].Name,\n Value: this.HostingDetailsFormControls.NPMTokenFormControl.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.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: 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: 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(this.DevOpsActionLookup);\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\n .LoadProjectHostingDetails()\n .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 > 0 ||\n 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 using this\n 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)=\"DevOpsActionLookupChanged($event)\"\n >\n <ng-container\n *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\"\n >\n <mat-option\n [value]=\"devOpsActionLookup\"\n *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\"\n >\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n\n <mat-option value=\"\">-- Create New --</mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container>\n <lcu-hosting-details-form-group\n [artifact]=\"Artifact\"\n [devops-action]=\"\n DevOpsActions[DevOpsActionLookupFormControl?.value]\n \"\n [details]=\"HostingDetails\"\n [formGroup]=\"DevOpsFormGroup\"\n [organization]=\"\n SourceControlFormControls?.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 mat-button type=\"button\" (click)=\"SetEditingSourceControl(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]=\"!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>No source controls created, create your first source control.</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)=\"SetEditingSourceControl(sourceControlLookup)\"\n >\n <mat-icon matTooltip=\"Edit Source Control\">\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteSourceControl(sourceControlLookup)\"\n >\n <mat-icon matTooltip=\"Delete {{ sourceControlLookup }}\">\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","\nimport { 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 {\n EaCDFSModifier,\n EaCProjectAsCode,\n} 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 if (\n confirm(`Are you sure you want to delete modifier '${modifierName}'?`)\n ) {\n this.eacSvc.DeleteSourceControl(modifierLookup);\n }\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 ModifierLookup: this.EditingModifierLookup,\n ProjectLookup: 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'] = 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 || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [Validators.required])\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></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]=\"!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 <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button mat-raised-button color=\"accent\" (click)=\"CreateNewModifier()\">\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>No DFS modifiers created, create your first DFS modifier.</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(modifierLookup) >= 0\n \"\n (change)=\"SetUseForProject(modifierLookup, $event)\"\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)=\"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 <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 } 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})\n\nexport class DynamicTabsComponent implements OnInit, AfterViewInit {\n\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 // Lifecycle hook\n public ngOnInit(): void {\n\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 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\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\n if (!this.TabComponents) {\n return;\n }\n const componentRef = this.viewContainerRef.createComponent(this.TabComponents[index].Component);\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 = 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 <!-- <div>\n\n </div> -->\n <mat-tab\n *ngFor=\"let component of TabComponents\"\n #tab\n [disabled]='!tab.isActive && FormIsDirty'>\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>","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: { Project: this.Project, ProjectLookup: this.ProjectLookup },\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 \n color=\"accent\" \n [tab-components]=\"TabComponents\">\n</lcu-dynamic-tabs>\n","import {\r\n Component,\r\n OnInit,\r\n Injector,\r\n \r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport {\r\n LCUElementContext,\r\n LcuElementComponent,\r\n BaseResponse,\r\n} from '@lcu/common';\r\nimport { ApplicationsFlowState } from './../../state/applications-flow.state';\r\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\r\nimport {\r\n EaCEnvironmentAsCode,\r\n EaCProjectAsCode,\r\n} from '@semanticjs/common';\r\nimport { EaCService } from '../../services/eac.service';\r\n\r\ndeclare var window: Window;\r\n\r\nexport class ApplicationsFlowProjectsElementState {}\r\n\r\nexport class ApplicationsFlowProjectsContext extends LCUElementContext<ApplicationsFlowProjectsElementState> {}\r\n\r\nexport const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT =\r\n 'applications-flow-projects-element';\r\n\r\n@Component({\r\n selector: SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT,\r\n templateUrl: './projects.component.html',\r\n styleUrls: ['./projects.component.scss'],\r\n})\r\nexport class ApplicationsFlowProjectsElementComponent\r\n extends LcuElementComponent<ApplicationsFlowProjectsContext>\r\n implements OnDestroy, OnInit\r\n{\r\n // Fields\r\n protected projMon: NodeJS.Timeout;\r\n\r\n // Properties\r\n public get ActiveEnvironment(): EaCEnvironmentAsCode {\r\n return this.State?.EaC?.Environments[this.ActiveEnvironmentLookup];\r\n }\r\n\r\n public get ActiveEnvironmentLookup(): string {\r\n // TODO: Eventually support multiple environments\r\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\r\n\r\n return envLookups[0];\r\n }\r\n\r\n public get CreatingProject(): boolean {\r\n return this.eacSvc.CreatingProject;\r\n }\r\n\r\n public get EditingProject(): EaCProjectAsCode {\r\n return this.State?.EaC?.Projects\r\n ? this.State?.EaC?.Projects[this.EditingProjectLookup]\r\n : null;\r\n }\r\n\r\n public get EditingProjectLookup(): string {\r\n return this.eacSvc.EditingProjectLookup;\r\n }\r\n\r\n public get ProjectLookups(): Array<string> {\r\n return Object.keys(this.State?.EaC?.Projects || {});\r\n }\r\n\r\n public get State(): ApplicationsFlowState {\r\n return this.eacSvc.State;\r\n }\r\n\r\n // Constructors\r\n constructor(\r\n protected injector: Injector,\r\n protected appsFlowSvc: ApplicationsFlowService,\r\n protected eacSvc: EaCService\r\n ) {\r\n super(injector);\r\n }\r\n\r\n // Life Cycle\r\n public ngOnDestroy(): void {}\r\n\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.handleStateChange().then((eac) => {});\r\n\r\n // this.setupProjectMonitor();\r\n }\r\n\r\n // API Methods\r\n public async ActiveEnterpriseChanged(event: MatSelectChange): Promise<void> {\r\n await this.eacSvc.SetActiveEnterprise(event.value);\r\n }\r\n\r\n public ConfigureDevOpsAction(devOpsActionLookup: string): void {\r\n this.State.Loading = true;\r\n\r\n this.appsFlowSvc\r\n .ConfigureDevOpsAction(devOpsActionLookup)\r\n .subscribe((response: BaseResponse) => {\r\n if (response.Status.Code === 0) {\r\n this.eacSvc.LoadEnterpriseAsCode();\r\n } else {\r\n this.State.Loading = false;\r\n }\r\n });\r\n }\r\n\r\n // Helpers\r\n protected async handleStateChange(): Promise<void> {\r\n this.State.Loading = true;\r\n }\r\n}\r\n","<app-host-dashboard-card-element\r\n [context]=\"{ Title: 'Projects', Icon: 'language' }\"\r\n>\r\n <nav>\r\n <mat-form-field\r\n class=\"mat-full-width\"\r\n *ngIf=\"State.Enterprises?.length > 1\"\r\n >\r\n <mat-select\r\n placeholder=\"Active Enterprise ({{ State.ActiveEnterpriseLookup }})\"\r\n [value]=\"State.ActiveEnterpriseLookup\"\r\n (selectionChange)=\"ActiveEnterpriseChanged($event)\"\r\n >\r\n <mat-option [value]=\"ent.Lookup\" *ngFor=\"let ent of State.Enterprises\">\r\n {{ ent.Name }}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <!-- Toggle between Caged Krakyn and Unleashed Krakyn (Flow Tool) -->\r\n </mat-form-field>\r\n\r\n <a\r\n mat-icon-button\r\n href=\"/docs/getting-started/setup\"\r\n target=\"_blank\"\r\n lcuEvent=\"click\"\r\n label=\"Projects\"\r\n category=\"help\"\r\n >\r\n <mat-icon matTooltip=\"More info\">help_outline</mat-icon>\r\n </a>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"!State?.Loading\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n class=\"margin-bottom-4\"\r\n >\r\n <h2 class=\"mat-display-2 margin-y-2\" *ngIf=\"ProjectLookups?.length <= 0\">\r\n <span> Thank you for signing up </span>\r\n </h2>\r\n </div>\r\n\r\n <!-- <lcu-git-auth *ngIf=\"!State.GitHub.HasConnection\"></lcu-git-auth> -->\r\n\r\n <!-- *ngIf=\"State.GitHub.HasConnection\" -->\r\n <ng-container> \r\n <!-- <div *ngIf=\"!CreatingProject\">\r\n Creating\r\n <lcu-create-project-wizard></lcu-create-project-wizard>\r\n </div> -->\r\n\r\n <ng-container *ngIf=\"!State.Unleashed\">\r\n <ng-container *ngIf=\"State\">\r\n <lcu-projects-header\r\n [creating-project]=\"CreatingProject\"\r\n [projects]=\"State.EaC?.Projects\"\r\n [selected-project-lookup]=\"EditingProjectLookup\"\r\n ></lcu-projects-header>\r\n\r\n <div *ngIf=\"EditingProject\">\r\n <div class=\"divider margin-bottom-3\"></div>\r\n\r\n <lcu-project-tabs\r\n [applications]=\"State.EaC?.Applications\"\r\n [dfs-modifiers]=\"State.EaC?.Modifiers\"\r\n [hosts]=\"State.EaC?.Hosts\"\r\n [project]=\"EditingProject\"\r\n [project-lookup]=\"EditingProjectLookup\"\r\n [environment]=\"ActiveEnvironment\"\r\n [environment-lookup]=\"ActiveEnvironmentLookup\"\r\n class=\"margin-top-3\"\r\n >\r\n </lcu-project-tabs>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"State.Unleashed\">\r\n <!-- Shannon flow tool control implemented -->\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div class=\"loading\" *ngIf=\"State?.Loading\">\r\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader>\r\n\r\n <div class=\"margin-3\">\r\n <!-- <p *ngIf=\"!State.UserEnterpriseLookup\">Loading your projects</p> -->\r\n\r\n <!-- <p *ngIf=\"State.UserEnterpriseLookup\">Loading your Dashboard.</p> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div>\r\n <pre>{{ State | json }}</pre>\r\n </div> -->\r\n</app-host-dashboard-card-element>\r\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((response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.Stepper.next();\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 class=\"welcome margin-x-1\" fxFlex=\"40%\" fxFlex.lt-md=\"100%\">\n <h3 class=\"mat-title\">Let's get your Project setup and running</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 [formGroup]=\"ProjectFormGroup\" (ngSubmit)=\"CreateProject()\">\n <mat-horizontal-stepper linear #projectStepper>\n <mat-step\n label=\"Connect Repository\"\n formGroupName=\"repoDetails\"\n [completed]=\"\n IsOrganizationValid && IsRepositoryValid && IsBranchValid\n \"\n >\n <div>\n <h3 class=\"mat-display-1 margin-bottom-4 margin-top-3\">\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]=\"RepoDetailsFormGroup\"\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 class=\"margin-3\" *ngIf=\"HostingDetails.Loading\">\n <lcu-loader\n style=\"margin: auto\"\n [loading]=\"true\"\n ></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\">Configuring</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 @{{ RepoDetailsFormGroup.get(\"organization\")?.value }}/{{\n RepoDetailsFormGroup.get(\"repository\")?.value\n }}\n\n <br />\n\n <span\n *ngFor=\"let selBranch of SourceControl?.SelectedBranches\"\n >\n @{{ selBranch }}\n </span>\n </strong>\n </h4>\n\n <div class=\"margin-y-2\" *ngIf=\"!HostingDetails.Loading\">\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 mat-button matStepperPrevious type=\"button\">\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 {\n GitHubWorkflowRun,\n} from './../../../../state/applications-flow.state';\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy\n} 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\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 \n *ngIf=\"Projects\" \n class=\"expansion-container\">\n <div \n fxLayout=\"row\" \n fxLayoutAlign=\"space-between center\" \n *ngFor=\"let project of Projects\">\n <div \n fxFlex \n fxLayout=\"row\" >\n <mat-expansion-panel (opened)=\"panelOpenState = true;\" (closed)=\"panelOpenState = false\"\n [ngClass]=\"panelOpenState === true ? 'active' : 'inactive'\" class=\"expansion-panel\">\n <mat-expansion-panel-header \n [collapsedHeight]=\"'75px'\" \n [expandedHeight]=\"'75px'\">\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 <div fxLayout=\"row\">\n <div>\n <div fxLayout=\"column\"\n *ngIf=\"RetrieveLCU({project: project, lcuID: latestRun.LCUID}); let lcu\">\n <div class=\"workflow-run-status\">\n <a mat-icon-button\n href=\"https://github.com/{{ lcu.Organization }}/{{lcu.Repository}}/actions\"\n target=\"_blank\">\n <div fxLayout=\"row\">\n <div \n fxLayoutAlign=\"center center\" \n class=\"icon-bg\"\n [ngClass]=\"latestRun.Conclusion == 'success' ? 'success' : 'error'\">\n <mat-icon\n matTooltip=\"{{ latestRun.Status }} {{ latestRun.Conclusion }}\"\n *ngIf=\"latestRun.Conclusion == 'success'\">\n {{ latestRun.Conclusion == 'success' ? 'check_circle' :\n 'error'}}\n </mat-icon>\n </div>\n\n <div>\n <mat-icon class=\"error\"\n *ngIf=\"latestRun.Conclusion == 'failure'\">\n error_outline\n </mat-icon>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n <div fxLayout=\"column\" class=\"details margin-left-3\">\n <span class=\"name mat-headline mat-body-1\">{{ project.Name }}</span>\n </div>\n </div>\n\n <div fxLayout=\"row\" class=\"actions\">\n <a mat-button color=\"accent\" (click)=\"DeployRun(latestRun)\" target=\"_blank\"\n matTooltip=\"Deploy Latest\">\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\n constructor() { }\n\n public ngOnInit(): void {\n }\n\n}\n","<p>recent-activities works!</p>\n","\nimport { 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(this.Project?.Project?.Description || '', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\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\n fxFlex\n [config]=\"Config\"\n [form]=\"Form\"\n [is-dirty]=\"IsDirty\"\n >\n <div fxLayout=\"column\">\n <mat-form-field appearance=\"fill\" fxFlex class=\"margin-right-1 margin-bottom-2\">\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]=\"Name.invalid || Name.disabled ? 'Project Name' : ''\"\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]=\"Description.valid ? 'valid-control' : 'invalid-control'\"\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\n fxFlex\n fxLayout=\"row\"\n fxLayout.lt-md=\"column\"\n [formGroup]=\"Form\">\n <lcu-form-card\n [config]=\"Config\"\n [form]=\"Form\"\n [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 {{ Root.valid ? 'check_circle' : 'cancel' }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"Root.invalid || Root.disabled ? 'Root Directory' : ''\"\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\n id=\"includeSource\"\n formControlName=\"includeSource\">\n Include source files outside of the Root Directory in the build step \n </mat-checkbox>\n </div>\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>","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 /**\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\n this.setupForm();\n }\n\n protected setupForm(): void {\n\n this.formsService.Form = {Id: this.FormConfig.FormName, Form: this.FormConfig.Form};\n\n // this.onChange();\n }\n\n /**\n * Listen to form value changes\n */\n protected onChange(): void {\n \n\n }\n\n protected checkFormForChanges(): void {\n this.FormConfig.Form.valueChanges.subscribe((val: object) => {\n\n if (this.formsService.ForRealThough(this.FormConfig.FormName, this.FormConfig.Form)) {\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\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\n this.formsService.UpdateValuesReference(\n {\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 }\n}\n","\n","import { Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CardFormConfigModel } from './card-form-config.model';\n\nexport class BaseFormConfigModel {\n\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}","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 { AbstractControl, FormControl, FormGroup, Validators } 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\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\n super(formsService, eacSvc);\n \n }\n\n public ngOnInit(): void {\n this.FormConfig = new BaseFormConfigModel({FormName: 'TestFormComponent'});\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}\n","<form \n fxFlex \n fxLayout=\"row\" \n fxLayout.lt-md=\"column\" \n [formGroup]=\"FormConfig.Form\">\n <lcu-form-card\n fxFlex\n [config]=\"FormConfig.CardConfig\"\n [form]=\"FormConfig.Form\"\n [is-dirty]=\"FormConfig.IsDirty\">\n <div fxLayout=\"column\">\n <mat-form-field appearance=\"fill\" fxFlex class=\"margin-right-1 margin-bottom-2\">\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]=\"Name.invalid || Name.disabled ? 'Project Name' : ''\"\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]=\"Description.valid ? 'valid-control' : 'invalid-control'\"\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>","import { Component, OnInit, AfterViewInit, } 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 // Properties\n public ConnectClicked: boolean;\n\n // Constructors\n constructor() {}\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","<div \n fxFlex \n fxLayout=\"column\"\n 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 <h3 class=\"mat-display-1 margin-bottom-4\">\n Connect your git provider\n </h3>\n\n <!-- href=\"/.oauth/github\" -->\n <a \n (click)=\"ConnectGitHubProvider();\" \n mat-raised-button color=\"primary\" \n class=\"github margin-y-3\"\n [disabled]=\"ConnectClicked\">\n Connect with GitHub\n\n <span class=\"octocat-icon\"></span>\n </a>\n </div>\n <!-- </div> -->\n</div>","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\n public SmallScreen:boolean;\n\n\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}\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\n<!-- LEFT COL -->\n\n <div \n class=\"col-left\" \n fxFlex.gt-md=\"25%\"\n fxFlexOrder.lt-md=\"1\"\n >\n <ng-content select=\"[left]\"></ng-content>\n\n </div>\n\n <!-- CENTER COL -->\n\n <div \n class=\"col-center\" \n fxFlex.gt-md=\"50%\" \n fxFlexOrder.lt-md=\"3\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- RIGHT COL -->\n\n <div \n class=\"col-right\" \n fxFlex.gt-md=\"25%\" \n fxFlexOrder.lt-md=\"2\"\n >\n <ng-content select=\"[right]\"></ng-content>\n </div>\n\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\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('title') \n public Title: 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\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\n public MainActionClickEvent(){\n this.MainActionClicked.emit({});\n }\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\">{{ Title }}</div>\n </div>\n\n <mat-icon\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n >\n {{ MainIcon }}\n </mat-icon>\n\n <mat-icon\n *ngIf=\"State?.Loading\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n >\n add\n </mat-icon>\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content skeleton-block [effect]=\"SkeletonEffect\"></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 skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Name of the content\n </div>\n </div>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\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 *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\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 *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div class=\"header-description\">{{ SecondarySlotDescription }}</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, 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\n constructor(public dialogRef: MatDialogRef<UpgradeDialogComponent>,\n ) { }\n\n public ngOnInit(): void {\n }\n\n public CloseDialog(){\n this.dialogRef.close();\n }\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 \n <div class=\"upgrade-container\" fxLayout=\"column\" fxLayoutAlign=\"center start\">\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 src=\"./assets/images/Happy_Lady.png\" id=\"upgrade-promo-image\" alt=\"Fathym Premium Free During Beta\">\n </div>\n</div>\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 \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\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\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\n dialogRef.afterClosed().subscribe((result) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n\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 class=\"project-card-header\" fxLayoutAlign=\"center center\">\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"host-anchor\">\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\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 skeleton-text [effect]=\"SkeletonEffect\" 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\">flutter_dash</mat-icon>\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 class=\"project-card-header\" fxLayoutAlign=\"center center\">\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">\n {{ Name }}\n </mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">\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 (click)=\"UpgradeClicked()\"\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 <div class=\"upgrade-text\" (click)=\"UpgradeClicked()\">\n Upgrade to premium now\n </div>\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\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\n constructor() {\n \n }\n\n ngOnInit(): void {\n }\n\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 class=\"analytic-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div class=\"percent-change increase\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ .16 | percent}}</div>\n </div>\n\n <!-- <div class=\"percent-change decrease\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_down</mat-icon>\n <div>16</div>\n </div> -->\n </div>\n\n <!-- </ng-container> -->\n </mat-card-content>\n <!-- <mat-card-actions>\n <button mat-button>LIKE</button>\n <button mat-button>SHARE</button>\n </mat-card-actions> -->\n </mat-card>\n","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\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(this.DevOpsActionLookup);\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(this.MainBranchFormControl.value) < 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 = this.EditingSourceControl.Branches;\n } else if (this.BranchOptions?.length === 1) {\n this.BranchesFormControl.setValue(this.BranchOptions[0].Name);\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(this.BuildPathOptions[0]);\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe((response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\"Organization Options: \", this.OrganizationOptions);\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(this.EditingSourceControl?.Repository);\n }, 0);\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\n .LoadProjectHostingDetails()\n .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\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\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n\n <div class=\"card\">\n\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 *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\">\n <mat-option \n [value]=\"devOpsActionLookup\" \n *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\">\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n\n <mat-option value=\"\">-- Create New --</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"card\" *ngIf=\"OrganizationFormControl?.valid || !Loading\">\n <mat-form-field \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 matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\" color=\"accent\"> refresh </mat-icon>\n\n <a matSuffix href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a href=\"https://github.com/account/organizations/new\" class=\"primary-link\" target=\"_blank\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \">\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'repository'\" \n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \" [disabled]=\"\n !OrganizationFormControl?.valid || Loading || HostingDetails?.Loading\n \" (selectionChange)=\"RepositoryChanged($event)\" *ngIf=\"!CreatingRepository\" required>\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <input matInput placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\" *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || HostingDetails?.Loading\" required />\n\n <mat-icon matSuffix (click)=\"CreateRepository()\" [fxHide]=\"Loading || HostingDetails?.Loading\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\">\n add_circle\n </mat-icon>\n\n <button mat-button type=\"button\" (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon matSuffix color=\"primary\">\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" (click)=\"CancelCreateRepository()\" *ngIf=\"CreatingRepository\">\n\n <mat-icon matSuffix>\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \">\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-label>Selected Branches</mat-label>\n\n <mat-autocomplete (optionSelected)=\"BranchOptionSelected($event)\" #branchOptions=\"matAutocomplete\">\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-chip-list #selectedBranches>\n <mat-chip [removable]=\"true\" (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\">\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input matInput placeholder=\"New Branch...\" [formControlName]=\"SourceControlRoot + 'branches'\" #branches\n [matAutocomplete]=\"branchOptions\" [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\" [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\" [disabled]=\"Loading || HostingDetails?.Loading\"\n required />\n </mat-chip-list>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width with-hint\" [fxShow]=\"SelectedBranches?.length > 1\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'mainBranch'\" placeholder=\"Main Branch\"\n [disabled]=\"Loading || HostingDetails?.Loading\" (selectionChange)=\"MainBranchChanged($event)\" required>\n <ng-container *ngFor=\"let branch of SelectedBranches\">\n <mat-option [value]=\"branch\">\n {{ branch }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-icon matSuffix (click)=\"RefreshOrganizations()\" color=\"accent\"> refresh </mat-icon>\n\n <a matSuffix mat-icon-button href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\n <mat-icon matTooltip=\"Re-authorize Organizations\" color=\"accent\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a href=\"https://github.com/account/organizations/new\" target=\"_blank\"class=\"primary-link\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \">\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'buildPath'\" placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\" (selectionChange)=\"BuildPathChanged($event)\" required>\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \">\n Loading repositories\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\">\n Loading branches\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \">\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n </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>","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}\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\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\n public ErrorMessage: string;\n\n constructor( public dialogRef: MatDialogRef<SourceControlDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: SCDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n \n }\n\n\n public CloseDialog(){\n this.dialogRef.close();\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 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 }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveSourceControl(){\n this.DevopsSourceControl.SaveSourceControl();\n }\n\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\n <ng-container *ngIf=\"!HasConnection\">\n \n <lcu-git-auth></lcu-git-auth>\n\n </ng-container>\n\n <ng-conatiner *ngIf=\"HasConnection\" fxLayout=\"column\">\n\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 </lcu-devops-source-control-form>\n </div>\n \n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error>\n\n </ng-conatiner>\n\n</mat-dialog-content>\n\n<mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"space-between center\"\n \n>\n <div fxLayoutAlign=\"start center\">\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteSourceControl(data.scLookup)\"\n matTooltip=\"Delete {{ data.scLookup }}\"\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 Cancel\n\n </button>\n\n\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]=\"!DevOpsSourceControlFormGroup?.valid || !DevOpsSourceControlFormGroup?.dirty\">\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n\n</mat-dialog-actions>\n\n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FeedItem, FeedItemAction } from '../../models/user-feed.model';\nimport moment from 'moment';\nimport { JsonHubProtocol } from '@aspnet/signalr';\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';\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 OnInit {\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 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 ) {}\n\n // Life Cycle\n public ngOnInit(): void {\n this.handleRefresh();\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);\n } else {\n alert('other modaled ' + action.Action);\n }\n }\n }\n\n public OpenSourceControlDialog(scLookup: 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 },\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 // Helpers\n protected handleRefresh(): void {\n if (this.FeedItem?.RefreshLink) {\n 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 }, 5000);\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\">{{ FeedItem.Title }}</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.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 class=\"commit-message\">\n {{ tab.Data?.Commit?.Message }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Content\">\n <div class=\"content\">\n {{ tab.Data?.Content }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Video\">\n <div\n class=\"video\"\n [innerHTML]=\"SafeHtml(tab.Data.Video)\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Comments\">\n <div class=\"comments\">\n <ng-container *ngIf=\"tab.Data?.Comments?.length <= 0\">\n <h4>No comments provided</h4>\n </ng-container>\n\n <mat-card *ngFor=\"let comment of tab.Data?.Comments\">\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 {{ comment.Comment }}\n </mat-card-content>\n </mat-card>\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 mat-button [color]=\"action.Color\" (click)=\"HandleAction(action)\">\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\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"col-container\" fxLayout=\"row\">\n\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\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\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\n public ngAfterViewInit(){\n this.assignCarouselClass();\n }\n\n public LeftChevronClicked(){\n\n this.removeCarouselClasses();\n \n if(this.carouselIndex === 0){\n this.carouselIndex = this.Stats.length-1;\n }\n else{\n this.carouselIndex--;\n }\n \n this.assignCarouselClass();\n \n }\n\n public MoreDetailsClicked(){\n console.log(\"More details clicked on carousel item\", this.Stats[this.carouselIndex]);\n }\n \n public RightChevronClicked(){\n this.removeCarouselClasses();\n \n if(this.carouselIndex === this.Stats.length-1){\n this.carouselIndex = 0;\n }\n else{\n this.carouselIndex++;\n }\n \n this.assignCarouselClass();\n }\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>document.getElementById(\"carousel-\"+this.carouselIndex)).classList.remove('active');\n }\n else{\n (<HTMLElement>document.getElementById(\"carousel-\"+i)).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>document.getElementById(\"carousel-\"+this.carouselIndex)).classList.add('active');\n }\n else{\n (<HTMLElement>document.getElementById(\"carousel-\"+i)).classList.add('hidden');\n }\n }\n }\n\n}\n","<div stats class=\"carousel-container\">\n <div class=\"chevron-container\" fxLayout=\"row\">\n <button mat-icon-button class=\"chevron-button\" id=\"left-chevron\" (click)=\"LeftChevronClicked()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button mat-icon-button class=\"chevron-button\" id=\"right-chevron\" (click)=\"RightChevronClicked()\">\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 { AbstractControl, FormBuilder, FormGroup, Validators } 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\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,\n 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(\"submitting security values: \", this.SecurityFormGroup.value);\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}\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\"> save </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]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\"\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 = this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret = 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 = 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 = !!this.IncludeRequestFormControl.value;\n\n app.Processor.Permanent = !!this.PermanentFormControl.value;\n\n app.Processor.PreserveMethod = !!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: this.EditingApplicationLookup || Guid.CreateRaw(),\n };\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\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(\"Source Control: \", this.SourceControls[this.SourceControlFormControl.value])\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.SourceControls[this.SourceControlFormControl.value]?.Organization,\n this.SourceControls[this.SourceControlFormControl.value]?.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(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 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(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 class=\"processor-details-form\" [formGroup]=\"ProcessorDetailsFormGroup\" (ngSubmit)=\"SaveProcessorDetails()\">\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\n <ng-container *ngFor=\"let fc of ValidFormControls\">\n\n <skeleton-block \n [id]=\"fc\"\n class=\"s-block\" \n effect=\"wave\"\n ></skeleton-block>\n \n </ng-container>\n\n <lcu-loader *ngIf=\"LCUType === 'Redirect'\" [loading]=\"State?.Loading\"></lcu-loader>\n\n </ng-container>\n <!-- END SKELETON -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n\n <!-- <mat-card-content> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <mat-option value=\"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=\"let scLookup of SourceControlLookups\" \n [value]=\"scLookup\">\n {{scLookup}}\n </mat-option>\n \n \n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width with-hint\"\n *ngIf=\"\n SourceControlFormControl?.valid\n \"\n > \n <mat-select\n formControlName=\"buildPath\"\n placeholder=\"Build Path\"\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\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n\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 </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n \n </div>\n \n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"includeRequest\">\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\n </ng-container>\n \n<!-- </mat-card> -->\n</form>\n \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { EaCApplicationAsCode, EaCEnvironmentAsCode, EaCProjectAsCode, EaCSourceControl } 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\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(\"submitting source control: \", this.SourceControlFormGroup.value);\n this.SaveFormEvent.emit(this.SourceControlFormGroup.value);\n\n }\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\n protected setupBuildForm(): void {\n this.SourceControlFormGroup.addControl(\n 'hasBuild',\n this.formBldr.control(\n !!this.EditingApplication.LowCodeUnit?.SourceControlLookup || 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}\n","<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n","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] = 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: 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 \n this.eacSvc.SaveEnvironmentAsCode(saveEnvReq).then(res =>{\n this.ResponseEvent.emit(res);\n });\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(\n this.BuildPipeline || '',\n [Validators.required]\n )\n );\n\n this.BuildPipelineFormGroup.addControl(\n 'devOpsActionName',\n this.formBuilder.control(\n this.DevOpsAction?.Name || this.SelectedHostingOption?.Name || '',\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\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <ng-container *ngIf=\"SelectedHostingOption?.Inputs\">\n <ng-container *ngFor=\"let hostOption of HostingDetails?.HostingOptions\">\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n </ng-container>\n\n </ng-container>\n\n <skeleton-block \n *ngIf=\"\"\n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n </ng-container>\n\n <ng-container *ngIf=\"!HostingDetails?.Loading && !State?.Loading\">\n\n <!-- <div *ngIf=\"!HostingDetails?.Loading\"> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions; let i = index\"\n >\n <mat-option [value]=\"hostOption.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-hint>\n <ng-container *ngFor=\"let hostOption of HostingDetails?.HostingOptions\">\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n \n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n \n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n \n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n \n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n \n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc;\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access Token (PAT) with publish access to the organization used for your NPM packages. \n Learn how to create and view access tokens \n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n 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\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})\n\nexport class BuildPipelineDialogComponent implements OnInit {\n\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\nconstructor( public dialogRef: MatDialogRef<BuildPipelineDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: BPDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n }\n\n public CloseDialog(){\n this.dialogRef.close();\n }\n\n public DeleteDevOpsAction(): void {\n if (\n confirm(`Are you sure you want to delete build pipeline '${this.data.doaName}'?`)\n ) {\n this.eacSvc.DeleteDevOpsAction(this.data.devopsActionLookup);\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(\"Build Pipeline Created Succesfully\", \"Dismiss\",{\n duration: 5000\n });\n this.CloseDialog();\n }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveBuildPipeline(){\n this.BuildPipelineControl.SaveEnvironment();\n }\n\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\n<ng-container *ngIf=\"!HasConnection\">\n \n <lcu-git-auth></lcu-git-auth>\n\n</ng-container>\n\n<ng-container *ngIf=\"HasConnection\">\n\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\n</lcu-build-pipeline-form>\n\n<mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n</mat-error>\n\n</ng-container>\n</mat-dialog-content>\n\n\n<mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n\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 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)=\"SaveBuildPipeline()\"\n [disabled]=\"!BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\">\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n\n</mat-dialog-actions>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService, SaveApplicationAsCodeEventRequest } 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\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,\n 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: 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 = `${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\n //HELPERS\n protected setupApplicationForm(){\n if (this.EditingApplication != null) {\n this.ApplicationFormGroup = this.formBldr.group({\n name: [this.EditingApplication.Application?.Name, Validators.required],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [this.CurrentRoute ? this.CurrentRoute :\n this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||\n '/',\n Validators.required,\n ],\n // priority: [\n // this.EditingApplication.Application?.Priority || 10000,\n // Validators.required,\n // ],\n });\n }\n }\n\n \n\n}\n","<form class=\"form-card\" [formGroup]=\"ApplicationFormGroup\" (ngSubmit)=\"SubmitApplicationControl()\" >\n <!-- <mat-card class=\"spread flow-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title>\n <ng-container *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n <ng-container *ngIf=\"State?.Loading\">\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\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 \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((appLookup: string) => {\n apps[appLookup] = this.ApplicationsBank[appLookup];\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 || 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((appLookup) => this.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 = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(currentRouteBase);\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 *ngIf=\"RoutedApplications[SelectedRoute][appLookup]; let app\">{{\n app.Application?.Name\n }}</span>\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})\n\nexport class CustomDomainDialogComponent implements OnInit {\n\n public DomainData: {};\n\n constructor(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\n public ngOnInit(): void {\n }\n\n public CloseDialog(){\n this.dialogRef.close();\n }\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\n\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\n\n\n <lcu-domains\n [data]=\"DomainData\"\n >\n \n </lcu-domains>\n\n <!-- <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error> -->\n\n</mat-dialog-content>\n\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\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(public eacSvc: EaCService,\n public dialogRef: MatDialogRef<EditApplicationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ApplicationDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n }\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 }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveApplication(){\n this.EditApplicationControl.SaveApplication();\n }\n\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Edit Application:\n {{ data.application?.Application?.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\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</lcu-edit-application-form>\n\n<mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n</mat-error>\n\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)=\"SaveApplication()\"\n [disabled]=\"!ApplicationFormGroup?.valid || !ApplicationFormGroup?.dirty\">\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n\n</mat-dialog-actions>\n\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 { EaCApplicationAsCode, EaCEnvironmentAsCode, EaCSourceControl, EnterpriseAsCode } 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 { EaCService, SaveApplicationAsCodeEventRequest } 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})\n\nexport class NewApplicationDialogComponent implements OnInit {\n\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\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\n this.SetupApplication(Guid.CreateRaw());\n \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\n \n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = {\n Application: {\n Name: this.ApplicationFormControls.NameFormControl.value,\n Description: 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: this.ProcessorDetailsFormControls.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v),\n },\n Processor: {\n Type: this.ProcessorDetailsFormControls.ProcessorType,\n },\n };\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref = `${this.ApplicationFormControls.RouteFormControl.value}/`.replace(\n '//',\n '/'\n );\n\n app.Processor.DefaultFile =\n this.ProcessorDetailsFormControls.DefaultFileFormControl.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 = this.ProcessorDetailsFormControls.BuildFormControl.value;\n\n app.LowCodeUnit.Path =\n this.ProcessorDetailsFormControls.BuildPathFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package = this.ProcessorDetailsFormControls.PackageFormControl.value;\n\n app.LowCodeUnit.Version = this.ProcessorDetailsFormControls.VersionFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile = this.ProcessorDetailsFormControls.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes = this.ProcessorDetailsFormControls.ScopesFormControl.value.split(' ');\n\n app.Processor.TokenLookup = 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 = this.ProcessorDetailsFormControls.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret = this.ProcessorDetailsFormControls.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath = 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 = this.ProcessorDetailsFormControls.APIRootFormControl.value;\n\n app.LowCodeUnit.Security = this.ProcessorDetailsFormControls.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot = this.ProcessorDetailsFormControls.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.Permanent = !!this.ProcessorDetailsFormControls.PermanentFormControl.value;\n\n app.Processor.PreserveMethod = !!this.ProcessorDetailsFormControls.PreserveMethodFormControl.value;\n\n app.Processor.Redirect = 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 (this.ProcessorDetailsFormControls.ProcessorType !== 'redirect' && this.ProcessorDetailsFormControls.LCUType === 'GitHub') {\n if (app) {\n app.LowCodeUnit.SourceControlLookup = 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\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 }\n else{\n this.ErrorMessage = status.Message;\n }\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\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 fxLayout=\"row\" \n fxLayoutAlign=\"end center\"\n>\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=\"ProcessorDetailsFormControls && ApplicationFormControls && !State?.Loading\"\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 || \n !ApplicationFormControls?.ApplicationFormGroup?.valid\n \"\n >\n Save Application\n </button>\n</mat-dialog-actions>\n\n\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, EaCEnvironmentAsCode, EaCSourceControl } 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\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})\n\nexport class ProcessorDetailsDialogComponent implements OnInit {\n\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(protected eacSvc: EaCService, \n public dialogRef: MatDialogRef<ProcessorDetailsDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ProcessorDetailsDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n }\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(\"Build Pipeline Created Succesfully\", \"Dismiss\",{\n duration: 5000\n });\n this.CloseDialog();\n }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveProcessorDetails(){\n this.ProcessorDetailsFormControls.SaveProcessorDetails();\n\n }\n\n\n \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\n\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\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)=\"SaveProcessorDetails()\"\n [disabled]=\"!ProcessorDetailsFormGroup?.valid || !ProcessorDetailsFormGroup?.dirty\"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n\n</mat-dialog-actions>\n\n\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\n public SkeletonEffect: string;\n\n constructor() { \n this.SkeletonEffect = 'wave';\n }\n\n ngOnInit(): void {\n }\n\n}\n","<mat-card class=\"social-card\">\n <mat-card-header>\n \n <skeleton-avatar mat-card-avatar size=\"100\" [effect]=\"SkeletonEffect\"></skeleton-avatar>\n \n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">FeedItem Title</mat-card-title>\n \n <mat-card-subtitle>\n <div skeleton-text [effect]=\"SkeletonEffect\">FeedItem Subtitle</div>\n <div >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">check</mat-icon>\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 amet\n ante dui. Praesent ut aliquam metus. Phasellus consectetur non eros eu\n gravida. Vestibulum faucibus laoreet leo, ac molestie felis tincidunt\n semper. Vivamus lorem ipsum, sagittis nec blandit sed, accumsan sed\n dolor. Etiam tincidunt vel ligula ut malesuada. Nulla sit amet fermentum\n libero. Quisque magna tellus, pellentesque in convallis vitae, aliquet\n et orci. Pellentesque commodo ante id est viverra posuere ac vitae\n ligula. Ut sed ullamcorper purus. Integer 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, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } 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\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,\n 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(\"submitting EmulatedDevices values: \", this.EmulatedDevicesFormGroup.value);\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}\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\"> save </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]=\"!EmulatedDevicesFormGroup.valid || !EmulatedDevicesFormGroup.dirty\"\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';\r\n\r\nexport class IoTEnsembleState {\r\n public AccessLicenseType?: string;\r\n\r\n public AccessPlanGroup?: string;\r\n\r\n public DataInterval?: number;\r\n\r\n public DataRetention?: number;\r\n\r\n public DevicesConfig?: IoTEnsembleConnectedDevicesConfig;\r\n\r\n public Dashboard?: IoTEnsembleDashboardConfiguration;\r\n\r\n public Drawers?: IoTEnsembleDrawersConfig;\r\n\r\n public Emulated?: EmulatedDeviceInfo;\r\n\r\n public Error?: ErrorContext;\r\n\r\n public ExpandedPayloadID?: string;\r\n\r\n public HasAccess?: boolean;\r\n\r\n public Loading?: boolean;\r\n\r\n public SelectedDeviceID?: string;\r\n\r\n public Storage?: IoTEnsembleStorageConfiguration;\r\n\r\n public Telemetry?: IoTEnsembleTelemetry;\r\n\r\n public UserEnterpriseLookup?: string;\r\n}\r\n\r\nexport class EmulatedDeviceInfo {\r\n public Enabled?: boolean;\r\n\r\n public Loading?: boolean;\r\n}\r\n\r\nexport class IoTEnsembleDashboardConfiguration {\r\n public FreeboardConfig?: any;\r\n\r\n public PowerBIConfig?: any;\r\n}\r\n\r\nexport class ErrorContext {\r\n public ActionPath?: string;\r\n\r\n public ActionTarget?: string;\r\n\r\n public ActionText?: string;\r\n\r\n public Message?: string;\r\n\r\n public Title?: string;\r\n}\r\n\r\nexport class IoTEnsembleDeviceEnrollment {\r\n public DeviceName?: string;\r\n}\r\n\r\nexport class IoTEnsembleConnectedDevicesConfig {\r\n public EnterpriseDevicesCount: number;\r\n\r\n public Devices?: IoTEnsembleDeviceInfo[];\r\n\r\n public Loading?: boolean;\r\n\r\n public MaxDevicesCount?: number;\r\n\r\n public Page?: number;\r\n\r\n public PageSize?: number;\r\n\r\n public SASTokens?: { [deviceName: string]: string };\r\n\r\n public Status?: Status;\r\n\r\n public TotalDevices?: number;\r\n}\r\n\r\nexport class IoTEnsembleDeviceInfo {\r\n [prop: string]: any;\r\n\r\n public ActivelySendingData?: boolean;\r\n\r\n public AuthenticationType?: string;\r\n\r\n public CloudToDeviceMessageCount?: number;\r\n\r\n public ConnectionString?: string;\r\n\r\n public DeviceID?: string;\r\n\r\n public DeviceName?: string;\r\n\r\n public LastStatusUpdate?: Status;\r\n\r\n}\r\n\r\nexport class IoTEnsembleTelemetry {\r\n\r\n public Enabled?: boolean;\r\n\r\n public Loading?: boolean;\r\n\r\n public Page?: number;\r\n\r\n public PageSize?: number;\r\n\r\n public Payloads?: IoTEnsembleTelemetryPayload[];\r\n\r\n public RefreshRate?: number;\r\n\r\n public LastSyncedAt?: string;\r\n\r\n public TotalPayloads?: number;\r\n}\r\n\r\nexport class IoTEnsembleTelemetryPayload {\r\n [prop: string]: any;\r\n\r\n public DeviceData?: { [prop: string]: any };\r\n\r\n public DeviceID?: string;\r\n\r\n public DeviceType?: string;\r\n\r\n public ID?: string;\r\n\r\n public SensorMetadata?: { [prop: string]: any };\r\n\r\n public SensorReadings?: { [prop: string]: any };\r\n\r\n public Timestamp?: Date;\r\n\r\n public TotalPayloads?: number;\r\n\r\n public Version?: string;\r\n}\r\n\r\nexport class IoTEnsembleDrawersConfig {\r\n public DetailsActive: boolean;\r\n\r\n public HasBackdrop: boolean;\r\n\r\n public NavActive: boolean;\r\n}\r\n\r\nexport class IoTEnsembleStorageConfiguration {\r\n public APIKeys: IoTEnsembleAPIKeyData[];\r\n\r\n public OpenAPISource: string;\r\n}\r\n\r\nexport class IoTEnsembleAPIKeyData {\r\n public Key: string;\r\n\r\n public KeyName: string;\r\n}\r\n\r\nexport enum ColdQueryDataTypes {\r\n Telemetry = 'Telemetry',\r\n Observations = 'Observations',\r\n SensorMetadata = 'SensorMetadata',\r\n}\r\n\r\nexport enum ColdQueryResultTypes {\r\n CSV = 'CSV',\r\n JSON = 'JSON',\r\n JSONLines = 'JSONLines',\r\n}\r\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(\n `${this.apiRoot}/api/lowcodeunit/iot/cold-query`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n \n public ToggleEmulatedEnabled(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/userfeed`,\n {\n headers: this.loadHeaders(),\n }\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 { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSelectChange } from '@angular/material/select';\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 { ApplicationsFlowState, GitHubBranch, GitHubOrganization, GitHubRepository } 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})\n\nexport class FeedHeaderDialogComponent implements OnInit {\n\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\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 FeedHeaderFormGroup: FormGroup;\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\n\n\n constructor(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 \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: [\n ['subscript', 'superscript'],\n ['fontSize']\n ]\n };\n\n this.SlicesCount = 5;\n\n this.Slices = {\n Sources: this.SlicesCount,\n };\n\n if(this.SourceControlLookups.length === 1){\n this.SourceControl = 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 this.SourceControl = this.SourceControls[this.SourceControlFormControl.value];\n this.listBranches();\n\n }\n\n public FeatureBranchSourceControlChanged(event: MatSelectChange){\n this.SourceControl = this.SourceControls[this.SourceControlFormControl.value];\n this.listOrganizations();\n\n }\n\n public IssueSourceControlChanged(event: MatSelectChange){\n this.SourceControl = this.SourceControls[this.SourceControlFormControl.value];\n\n }\n\n public Submit(){\n let returnObject: FeedEntry = {\n ActionIcon: this.ActionIconControl ? this.ActionIconControl.value : null,\n ActionLink: this.ActionLinkControl ? this.ActionLinkControl.value : null,\n ActionText: this.ActionTextControl ? this.ActionTextControl.value : null,\n Avatar: null,\n Content: this.EditorControl ? this.EditorControl.value : null,\n ExpiresAt: null,\n Organization: this.OrganizationFormControl ? this.OrganizationFormControl.value : null,\n Repositroy: this.RepositoryFormControl ? this.RepositoryFormControl.value : null,\n SourceBranch: this.SourceBranchFormControl ? this.SourceBranchFormControl.value : null,\n SourceControlLookup: this.SourceControlFormControl ? this.SourceBranchFormControl.value : null,\n Subtitle: this.SubtitleFormControl ? this.SubtitleFormControl.value : null,\n TargetBranch: this.TargetBranchFormControl ? this.TargetBranchFormControl.value: null,\n Type: this.data.type,\n Title: this.TitleFormControl ? this.TitleFormControl.value : null,\n\n }\n console.log(\"Control: \", returnObject );\n\n let status = this.eacSvc.SubmitFeedEntry(returnObject);\n console.log(\"feed entry status: \", status);\n\n // console.log(\"Editor: \", this.EditorControl.value )\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n\n this.RepositoryFormControl.reset();\n\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 this.appsFlowSvc\n .ListBranches(\n this.SourceControl?.Organization,\n this.SourceControl?.Repository\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model; \n\n });\n \n }\n\n protected listOrganizations(): void {\n // this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe((response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\"Organization Options: \", this.OrganizationOptions);\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(this.SourceControl?.Repository);\n }, 0);\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 }, 0);\n } \n });\n }\n\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\n protected setupAnnouncementForm(){\n this.setupBasicForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'subtitle',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionText',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionLink',\n this.formBldr.control(\n ''\n )\n );\n this.FeedHeaderFormGroup.addControl(\n 'actionIcon',\n this.formBldr.control(\n ''\n )\n );\n\n\n }\n\n protected setupPRForm(){\n this.listBranches();\n this.setupIssueForm();\n this.setupBranchesForm();\n\n\n }\n\nprotected setupBasicForm(){\n this.FeedHeaderFormGroup.addControl(\n 'title',\n this.formBldr.control(\n '',[Validators.required]\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'editor',\n this.formBldr.control(\n ''\n )\n );\n}\n\n\n protected setupIssueForm(){\n this.setupBasicForm();\n \n this.setupSourceControlForm();\n\n }\n\n protected setupFeatureBranchForm(){\n\n this.setupSourceControlForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'organization',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'repository',\n this.formBldr.control(\n ''\n )\n );\n\n this.setupBranchesForm();\n\n }\n\n protected setupSourceControlForm(){\n this.FeedHeaderFormGroup.addControl(\n 'sourceControl',\n this.formBldr.control(\n ''\n )\n );\n }\n\n protected setupBranchesForm(){\n this.FeedHeaderFormGroup.addControl(\n 'targetBranch',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'sourceBranch',\n this.formBldr.control(\n ''\n )\n );\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\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue' \">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select \n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n\n >\n <ng-container *ngFor=\"let scLookup of SourceControlLookups | slice: 0:Slices.Sources\">\n <mat-option *ngIf=\"SourceControls[scLookup]; let sc\" [value]=\"scLookup\">\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\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\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\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button \n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button color=\"primary\" \n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{ ActionIconControl?.value }}</mat-icon>\n \n {{ ActionTextControl?.value }}\n </button>\n\n <button \n *ngIf=\"!ActionTextControl?.value && !ActionIconControl?.value\"\n mat-button color=\"primary\" \n >\n <mat-icon>cruelty_free</mat-icon>\n \n Example Button\n </button>\n </div>\n\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest' \">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select \n formControlName=\"sourceControl\"\n (selectionChange)=\"PullRequestSourceControlChanged($event)\"\n >\n <ng-container *ngFor=\"let scLookup of SourceControlLookups | slice: 0:Slices.Sources\">\n <mat-option *ngIf=\"SourceControls[scLookup]; let sc\" [value]=\"scLookup\">\n {{sc.Name}}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" *ngIf=\"BranchOptions?.length > 0\">\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required\n >\n <mat-option *ngFor=\"let branchOpt of BranchOptions\" [value]=\"branchOpt.Name\">\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 >\n <mat-option *ngFor=\"let branchOpt of BranchOptions\" [value]=\"branchOpt.Name\">\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\n <angular-editor \n id=\"pr-editor\"\n formControlName=\"editor\" \n [config]=\"EditorConfig\"\n ></angular-editor>\n\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch' \">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <mat-form-field >\n <mat-label>Source Control</mat-label>\n <mat-select \n formControlName=\"sourceControl\"\n (selectionChange)=\"FeatureBranchSourceControlChanged($event)\"\n >\n <ng-container *ngFor=\"let scLookup of SourceControlLookups | slice: 0:Slices.Sources\">\n <mat-option *ngIf=\"SourceControls[scLookup]; let sc\" [value]=\"scLookup\">\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\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n\n <mat-select \n formControlName=\"organization\" \n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\" \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\n\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n\n <mat-select 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\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\" *ngIf=\"BranchOptions?.length > 0\">\n\n <mat-form-field >\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required\n >\n <mat-option *ngFor=\"let branchOpt of BranchOptions\" [value]=\"branchOpt.Name\">\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\n </ng-container>\n\n </form>\n \n \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\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]=\"\n !FeedHeaderFormGroup?.valid \n\"\n \n >\n Submit\n </button>\n</mat-dialog-actions>\n\n\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\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 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( \n protected eacSvc: EaCService,\n protected dialog: MatDialog) { \n\n this.SkeletonEffect = \"wave\";\n // this.selectedBtn = \"pr-btn\";\n\n }\n\n public ngOnInit(): void {\n \n }\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\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 \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 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 ? this.SourceControlLookup : 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 RouteToPath(path: string): void {\n window.location.href = path;\n }\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('selected');\n }\n\n protected removeSelectedBtn(){\n (<HTMLElement>document.getElementById(this.selectedBtn))?.classList.remove('selected');\n }\n\n}\n","<mat-card class=\"social-card\">\n <ng-container *ngIf=\"!State?.LoadingFeed\">\n <div class=\"gh-card-container\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\" color=\"primary\">error_outline</mat-icon>\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <button \n mat-button \n class=\"main-btn\"\n (click)=\"CreateAnnouncement()\" \n color=\"primary\"\n >Create Team Announcement</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 fxLayout=\"row\" fxLayoutAlign=\"space-around center\" \n >\n <button \n *ngFor=\"let action of FeedHeaderActions\"\n mat-button \n (click)=\"OpenFHDialog(action.Action, action.Text)\" \n id=\"pr-btn\" \n color=\"primary\"\n >\n <mat-icon>{{action.Icon}}</mat-icon>\n {{action.Text}}\n </button>\n\n <!-- <button \n mat-button \n (click)=\"OpenIssue()\" \n id=\"oi-btn\" \n color=\"primary\"\n >\n Open Issue\n </button>\n\n <button \n mat-button \n (click)=\"CreateFeatureBranch()\" \n id=\"fb-btn\" \n color=\"primary\"\n >\n Feature Branch\n </button> -->\n\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button class=\"gh-menu-action\" mat-menu-item (click)=\"CreateNewApp()\">\n Create New App\n </button>\n\n <button\n class=\"gh-menu-action\"\n mat-menu-item\n (click)=\"RouteToPath('/dashboard/create-project')\"\n >\n Create Project\n </button>\n </mat-menu> -->\n </mat-card-actions>\n </ng-container>\n\n <!-- SKELETON -->\n <ng-container *ngIf=\"State?.LoadingFeed\">\n <div id=\"gh-card-skeleton\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\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\">Feature Branch</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","\nimport { 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 {\n EaCDFSModifier,\n EaCProjectAsCode,\n} from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { EaCService, SaveDFSModifierEventRequest, SaveDFSModifierForAllEventRequest, SaveDFSModifierForApplicationEventRequest } from '../../services/eac.service';\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\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 @Input('modifiers')\n public Modifiers: { [lookup: string]: EaCDFSModifier };\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 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\n console.log(\"mod lookups: \", this.ModifierLookups);\n\n if (this.ModifierLookups?.length <= 0) {\n this.CreateNewModifier();\n }\n else{\n this.setupModifierForm();\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 if (\n confirm(`Are you sure you want to delete modifier '${modifierName}'?`)\n ) {\n this.eacSvc.DeleteSourceControl(modifierLookup);\n }\n }\n\n public SaveModifierForAllProjects(projectLookups: Array<string>){\n const saveMdfrReq: SaveDFSModifierForAllEventRequest = {\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 ModifierLookup: this.EditingModifierLookup,\n ProjectLookups: projectLookups,\n };\n\n let details = this.getDetails();\n\n saveMdfrReq.Modifier.Details = JSON.stringify(details);\n\n this.eacSvc.SaveDFSModifierForAllProjects(saveMdfrReq);\n }\n\n public SaveModifierForApplication(applicationLookup: string): void{\n const saveMdfrReq: SaveDFSModifierForApplicationEventRequest = {\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 ModifierLookup: 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 }\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 ModifierLookup: this.EditingModifierLookup,\n ProjectLookup: projectLookup,\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 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'] = 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 return details;\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: [this.EditingModifier?.Priority ? this.EditingModifier?.Priority : 9000, Validators.required],\n enabled: [this.EditingModifier?.Enabled, []],\n pathFilter: [\n this.EditingModifier?.PathFilterRegex ? this.EditingModifier?.PathFilterRegex : \"*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\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 || '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 || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [Validators.required])\n );\n break;\n }\n }\n\n \n \n\n \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 <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 \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></textarea>\n </mat-form-field>\n </ng-container>\n\n\n <mat-slide-toggle *ngIf=\"ProjectLookup\" 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]=\"!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 <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button mat-raised-button color=\"accent\" (click)=\"CreateNewModifier()\">\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>No DFS modifiers created, create your first DFS modifier.</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.lt-md=\"100%\"\n *ngFor=\"let modifierLookup of ModifierLookups\"\n >\n <!-- <mat-card\n class=\"spread\"\n *ngIf=\"Modifiers[modifierLookup]; let modifier\"\n > -->\n <ng-container *ngIf=\"Modifiers[modifierLookup]; let modifier\">\n <!-- <mat-card-header> -->\n <!-- <img mat-card-avatar=\"/assets/images/project-icon.png\" /> -->\n\n <div\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(modifierLookup) >= 0\n \"\n (change)=\"SetUseForProject(modifierLookup, $event)\"\n [matTooltip]=\"'Use for ' + Level\"\n >\n </mat-slide-toggle>\n </div>\n <!-- </mat-card-header> -->\n\n <!-- <mat-card-content>\n <div class=\"spread\"></div>\n </mat-card-content> -->\n\n <div>\n <div class=\"data-app-actions\">\n <!-- <div fxFlex></div> -->\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 <!-- <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 </div>\n </ng-container>\n <!-- </mat-card> -->\n </div>\n </div>\n </div>\n </div>\n </div>\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 { EaCDFSModifier } from '@semanticjs/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\n\nexport interface DFSModifiersDialogData {\n applicationLookup?: string,\n modifierLookup?: 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})\n\nexport class DFSModifiersDialogComponent implements OnInit {\n\n @ViewChild(DFSModifiersFormComponent)\n public DFSModifersFormControls: DFSModifiersFormComponent;\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 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 ErrorMessage: string;\n\n public ModifierDialogForm: FormGroup;\n\n constructor(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 this.ModifierDialogForm = this.formbldr.group({});\n \n }\n\n public ngOnInit(): void {\n console.log(\"MDF lookup at dialog: \", this.data.modifierLookup);\n console.log(\"MODS: \", this.data.modifiers);\n this.determineLevel();\n }\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(\"DFS Modifier Saved Successfully\", \"Dismiss\",{\n duration: 5000\n });\n this.CloseDialog();\n }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n \n\n public SaveDFSModifier(){\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(this.ProjectLookups)\n }\n else{\n //save modifier\n this.DFSModifersFormControls.SaveModifier();\n }\n }\n case \"project\": {\n this.DFSModifersFormControls.SaveModifier(this.data.projectLookup);\n\n }\n\n case \"application\": {\n //apply modifier to application\n this.DFSModifersFormControls.SaveModifierForApplication(this.data.applicationLookup)\n\n }\n }\n this.DFSModifersFormControls.SaveModifier();\n\n }\n\n protected determineLevel(){\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}\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\n\n <lcu-dfs-modifier-form\n [editing-modifier-lookup]=\"data.modifierLookup\"\n [modifiers]=\"data.modifiers\"\n [level]=\"data.level\"\n >\n\n </lcu-dfs-modifier-form>\n\n <form\n [formGroup]=\"ModifierDialogForm\"\n >\n\n <mat-checkbox *ngIf=\"data.level === 'enterprise'\" formControlName=\"applyToAllProjects\">Apply to all Projects</mat-checkbox>\n </form>\n\n<mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n</mat-error>\n\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)=\"SaveDFSModifier()\"\n [disabled]=\"(!this.DFSModifersFormGroup?.valid || !this.ModifierDialogForm?.valid)\"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n\n</mat-dialog-actions>\n\n\n","import { FormsService } from './services/forms.service';\r\nimport { ProjectService } from './services/project.service';\r\nimport {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n} from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FathymSharedModule, MaterialModule } from '@lcu/common';\r\nimport { ApplicationsFlowStateContext } from './state/applications-flow-state.context';\r\nimport { ApplicationsFlowProjectsElementComponent } from './elements/projects/projects.component';\r\nimport { AppHostModule } from '@lowcodeunit/app-host-common';\r\nimport { ApplicationsFlowService } from './services/applications-flow.service';\r\nimport { HostingDetailsFormGroupComponent } from './elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component';\r\nimport { CreateProjectWizardComponent } from './elements/projects/controls/create-project-wizard/create-project-wizard.component';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\r\nimport { DynamicTabsComponent } from './elements/dynamic-tabs/dynamic-tabs.component';\r\nimport { HeaderComponent } from './elements/projects/controls/header/header.component';\r\nimport { ProjectTabsComponent } from './elements/projects/controls/project-tabs/project-tabs.component';\r\nimport { DomainsComponent } from './elements/projects/controls/tabs/domains/domains.component';\r\nimport { ProjectItemsComponent } from './elements/projects/controls/project-items/project-items.component';\r\nimport { BuildsComponent } from './elements/projects/controls/builds/builds.component';\r\nimport { RecentActivitiesComponent } from './elements/projects/controls/recent-activities/recent-activities.component';\r\nimport { FormCardComponent } from './elements/form-card/form-card.component';\r\nimport { ProjectNameComponent } from './elements/projects/controls/tabs/general/forms/project-details/project-details.component';\r\nimport { RootDirectoryComponent } from './elements/projects/controls/tabs/general/forms/root-directory/root-directory.component';\r\nimport { BaseFormComponent } from './elements/base-form/base-form.component';\r\nimport { BaseFormTestComponent } from './elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component';\r\nimport { GitAuthComponent } from './elements/projects/controls/git-auth/git-auth.component';\r\nimport { SourceControlFormControlsComponent } from './elements/projects/controls/forms/source-control/source-control.component';\r\nimport { AppsFlowComponent } from './elements/projects/controls/tabs/apps-flow/apps-flow.component';\r\nimport { NPMService } from './services/npm.service';\r\nimport { NpmPackageSelectComponent } from './elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component';\r\nimport { DevOpsComponent } from './elements/projects/controls/tabs/devops/devops.component';\r\nimport { DFSModifiersComponent } from './elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component';\r\nimport { ThreeColumnComponent } from './elements/three-column/three-column.component';\r\nimport { SlottedCardComponent } from './elements/slotted-card/slotted-card.component';\r\nimport { ProjectInfoCardComponent } from './elements/project-info-card/project-info-card.component';\r\nimport { AnalyticsCardComponent } from './elements/analytics-card/analytics-card.component';\r\nimport { FeedCardSmComponent } from './elements/feed-card-sm/feed-card-sm.component';\r\nimport { MainFeedCardComponent } from './elements/main-feed-card/main-feed-card.component';\r\nimport { TwoColumnHeaderComponent } from './elements/two-column-header/two-column-header.component';\r\nimport { CardCarouselComponent } from './elements/card-carousel/card-carousel.component';\r\nimport { SecurityToggleComponent } from './controls/security-toggle/security-toggle.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { EaCService } from './services/eac.service';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { ProcessorDetailsFormComponent } from './controls/processor-details-form/processor-details-form.component';\r\nimport { SourceControlFormComponent } from './controls/source-control-form/source-control-form.component';\r\nimport { BuildPipelineFormComponent } from './controls/build-pipeline-form/build-pipeline-form.component';\r\nimport { DevopsSourceControlFormComponent } from './controls/devops-source-control-form/devops-source-control-form.component';\r\nimport { SourceControlDialogComponent } from './dialogs/source-control-dialog/source-control-dialog.component';\r\nimport { BuildPipelineDialogComponent } from './dialogs/build-pipeline-dialog/build-pipeline-dialog.component';\r\nimport { EditApplicationFormComponent } from './controls/edit-application-form/edit-application-form.component';\r\nimport { BreadcrumbComponent } from './elements/breadcrumb/breadcrumb.component';\r\nimport { CustomDomainDialogComponent } from './dialogs/custom-domain-dialog/custom-domain-dialog.component';\r\nimport { EditApplicationDialogComponent } from './dialogs/edit-application-dialog/edit-application-dialog.component';\r\nimport { NewApplicationDialogComponent } from './dialogs/new-application-dialog/new-application-dialog.component';\r\nimport { ProcessorDetailsDialogComponent } from './dialogs/processor-details-dialog/processor-details-dialog.component';\r\nimport { SkeletonElementsModule } from 'skeleton-elements/angular';\r\nimport { SkeletonFeedCardComponent } from './elements/skeleton-feed-card/skeleton-feed-card.component';\r\nimport { UpgradeDialogComponent } from './dialogs/upgrade-dialog/upgrade-dialog.component';\r\nimport { EmulatedDevicesToggleComponent } from './controls/emulated-devices-toggle/emulated-devices-toggle.component';\r\nimport { IoTEnsembleService } from './services/iot-ensemble.service';\r\nimport { FeedHeaderComponent } from './elements/feed-header/feed-header.component';\r\nimport { FeedHeaderDialogComponent } from './dialogs/feed-header-dialog/feed-header-dialog.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { DFSModifiersDialogComponent } from './dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component';\r\nimport { DFSModifiersFormComponent } from './controls/dfs-modifiers-form/dfs-modifiers-form.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ApplicationsFlowProjectsElementComponent,\r\n HostingDetailsFormGroupComponent,\r\n CreateProjectWizardComponent,\r\n DynamicTabsComponent,\r\n HeaderComponent,\r\n ProjectTabsComponent,\r\n DomainsComponent,\r\n ProjectItemsComponent,\r\n BuildsComponent,\r\n RecentActivitiesComponent,\r\n FormCardComponent,\r\n ProjectNameComponent,\r\n RootDirectoryComponent,\r\n BaseFormComponent,\r\n BaseFormTestComponent,\r\n GitAuthComponent,\r\n SourceControlFormControlsComponent,\r\n AppsFlowComponent,\r\n DevOpsComponent,\r\n DFSModifiersComponent,\r\n NpmPackageSelectComponent,\r\n DFSModifiersFormComponent,\r\n ThreeColumnComponent,\r\n SlottedCardComponent,\r\n ProjectInfoCardComponent,\r\n AnalyticsCardComponent,\r\n FeedCardSmComponent,\r\n FeedHeaderComponent,\r\n MainFeedCardComponent,\r\n TwoColumnHeaderComponent,\r\n CardCarouselComponent,\r\n SecurityToggleComponent,\r\n ProcessorDetailsFormComponent,\r\n SourceControlFormComponent,\r\n BuildPipelineFormComponent,\r\n DevopsSourceControlFormComponent,\r\n SourceControlDialogComponent,\r\n BuildPipelineDialogComponent,\r\n EditApplicationFormComponent,\r\n BreadcrumbComponent,\r\n DFSModifiersDialogComponent,\r\n CustomDomainDialogComponent,\r\n EditApplicationDialogComponent,\r\n NewApplicationDialogComponent,\r\n ProcessorDetailsDialogComponent,\r\n SkeletonFeedCardComponent,\r\n UpgradeDialogComponent,\r\n EmulatedDevicesToggleComponent,\r\n FeedHeaderDialogComponent,\r\n ],\r\n imports: [\r\n AngularEditorModule,\r\n ClipboardModule,\r\n FathymSharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n MaterialModule,\r\n AppHostModule,\r\n MatTooltipModule,\r\n MatSlideToggleModule,\r\n SkeletonElementsModule,\r\n\r\n // LazyElementModule,\r\n ],\r\n exports: [\r\n ApplicationsFlowProjectsElementComponent,\r\n HostingDetailsFormGroupComponent,\r\n CreateProjectWizardComponent,\r\n DynamicTabsComponent,\r\n HeaderComponent,\r\n ProjectTabsComponent,\r\n DomainsComponent,\r\n ProjectItemsComponent,\r\n BuildsComponent,\r\n RecentActivitiesComponent,\r\n FormCardComponent,\r\n ProjectNameComponent,\r\n RootDirectoryComponent,\r\n BaseFormComponent,\r\n BaseFormTestComponent,\r\n GitAuthComponent,\r\n SourceControlFormControlsComponent,\r\n AppsFlowComponent,\r\n DevOpsComponent,\r\n DFSModifiersComponent,\r\n NpmPackageSelectComponent,\r\n ThreeColumnComponent,\r\n SlottedCardComponent,\r\n ProjectInfoCardComponent,\r\n AnalyticsCardComponent,\r\n FeedCardSmComponent,\r\n FeedHeaderComponent,\r\n FeedHeaderDialogComponent,\r\n MainFeedCardComponent,\r\n TwoColumnHeaderComponent,\r\n CardCarouselComponent,\r\n SecurityToggleComponent,\r\n ProcessorDetailsFormComponent,\r\n SourceControlFormComponent,\r\n BuildPipelineFormComponent,\r\n DevopsSourceControlFormComponent,\r\n SourceControlDialogComponent,\r\n BuildPipelineDialogComponent,\r\n EditApplicationFormComponent,\r\n BreadcrumbComponent,\r\n CustomDomainDialogComponent,\r\n EditApplicationDialogComponent,\r\n NewApplicationDialogComponent,\r\n ProcessorDetailsDialogComponent,\r\n SkeletonFeedCardComponent,\r\n UpgradeDialogComponent,\r\n EmulatedDevicesToggleComponent,\r\n FeedHeaderDialogComponent,\r\n DFSModifiersDialogComponent,\r\n DFSModifiersFormComponent\r\n ],\r\n entryComponents: [\r\n ApplicationsFlowProjectsElementComponent,\r\n DynamicTabsComponent,\r\n HeaderComponent,\r\n ProjectTabsComponent,\r\n DomainsComponent,\r\n ProjectItemsComponent,\r\n BuildsComponent,\r\n RecentActivitiesComponent,\r\n FormCardComponent,\r\n ProjectNameComponent,\r\n RootDirectoryComponent,\r\n BaseFormComponent,\r\n BaseFormTestComponent,\r\n GitAuthComponent,\r\n SourceControlFormControlsComponent,\r\n AppsFlowComponent,\r\n DevOpsComponent,\r\n DFSModifiersComponent,\r\n NpmPackageSelectComponent,\r\n ThreeColumnComponent,\r\n SlottedCardComponent,\r\n ProjectInfoCardComponent,\r\n AnalyticsCardComponent,\r\n FeedCardSmComponent,\r\n FeedHeaderComponent,\r\n MainFeedCardComponent,\r\n TwoColumnHeaderComponent,\r\n CardCarouselComponent,\r\n SecurityToggleComponent,\r\n ProcessorDetailsFormComponent,\r\n DFSModifiersFormComponent,\r\n SourceControlFormComponent,\r\n BuildPipelineFormComponent,\r\n DevopsSourceControlFormComponent,\r\n DFSModifiersDialogComponent,\r\n SourceControlDialogComponent,\r\n BuildPipelineDialogComponent,\r\n EditApplicationFormComponent,\r\n BreadcrumbComponent,\r\n CustomDomainDialogComponent,\r\n EditApplicationDialogComponent,\r\n EmulatedDevicesToggleComponent,\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA, // Tells Angular we will have custom tags in our templates\r\n ],\r\n})\r\nexport class ApplicationsFlowModule {\r\n static forRoot(): ModuleWithProviders<ApplicationsFlowModule> {\r\n return {\r\n ngModule: ApplicationsFlowModule,\r\n providers: [\r\n ApplicationsFlowStateContext,\r\n ApplicationsFlowService,\r\n ProjectService,\r\n NPMService,\r\n FormsService,\r\n EaCService,\r\n IoTEnsembleService,\r\n ],\r\n };\r\n }\r\n}\r\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}","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 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\npublic ActionIcon: string; \n\npublic ActionLink: string; \n\npublic ActionText: string;\n\npublic Avatar: string;\n\npublic Content: string; \n\npublic ExpiresAt: Date;\n\npublic Organization: string; \n\npublic Repositroy: string; \n\npublic SourceBranch: string;\n\npublic SourceControlLookup: string; \n\npublic Subtitle: string; \n\npublic TargetBranch: string; \n\npublic Title: string; \n\npublic Type: string; \n \n }\n","type ButtonType = 'GENERIC' | 'RESET' | 'SAVE';\nexport class ActionsModel {\n\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 /**\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}","export class DomainModel {\n public Branch: string;\n public Name: string;\n public Host: string;\n public ValidConfig: string;\n}","import { FormGroup } from '@angular/forms';\nexport class FormModel {\n\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 * 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"],"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/dialogs/upgrade-dialog/upgrade-dialog.component.ts","../../../projects/common/src/lib/dialogs/upgrade-dialog/upgrade-dialog.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/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/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 */\n export 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}","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 })\n\nexport class FormsService {\n\n /**\n * List of forms\n */\n private _form: FormModel;\n public set Form(val: FormModel) {\n\n if (!val) { return; }\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\n const preventEvent: {onlySelf: boolean, emitEvent: boolean} = { onlySelf: true, emitEvent: false };\n\n this.forms.forEach((form: FormModel) => {\n\n if (typeof val === 'boolean') {\n val ? form.Form.disable(preventEvent) : 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 /**\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\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\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\n const index: number = this.previousFormValues.findIndex((x: FormValuesModel) => {\n return x.Id === val.Id;\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\n const formVals: FormValuesModel = this.previousFormValues.find((x: FormValuesModel) => {\n return x.Id === id;\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';\r\nimport { Injectable } from '@angular/core';\r\nimport { LCUServiceSettings } from '@lcu/common';\r\nimport { Observable } from 'rxjs';\r\nimport { EnterpriseAsCode } from '@semanticjs/common';\r\nimport { UnpackLowCodeUnitRequest } from '../state/applications-flow.state';\r\nimport { FeedEntry } from '../models/user-feed.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApplicationsFlowService {\r\n // Fields\r\n protected apiRoot: string;\r\n\r\n // Properties\r\n\r\n // Constructors\r\n constructor(\r\n protected http: HttpClient,\r\n protected settings: LCUServiceSettings\r\n ) {\r\n this.apiRoot = settings.APIRoot;\r\n }\r\n\r\n // API Methods\r\n public ConfigureDevOpsAction(actionLookup: string): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/devops/actions/${actionLookup}/configure`,\r\n {},\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public CreateRepository(\r\n organization: string,\r\n repoName: string\r\n ): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\r\n {\r\n Name: repoName,\r\n },\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteApplication(appLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/applications/${appLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteDevOpsAction(doaLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/devops-actions/${doaLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteProject(projectLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/projects/${projectLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public DeleteSourceControl(scLookup: string): Observable<object> {\r\n return this.http.delete(\r\n `${this.apiRoot}/api/lowcodeunit/manage/source-controls/${scLookup}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public EnsureUserEnterprise(): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprise/ensure`,\r\n {},\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public EnterpriseAsCodeRemovals(removals: EnterpriseAsCode): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/eac`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public GetActiveEnterprise(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public HasValidConnection(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/connection/valid`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListProjects(): Observable<object> {\r\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/projects`, {\r\n headers: this.loadHeaders(),\r\n });\r\n }\r\n\r\n public ListBranches(\r\n organization: string,\r\n repository: string\r\n ): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/branches`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListBuildPaths(\r\n organization: string,\r\n repository: string,\r\n branch: string = ''\r\n ): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories/${repository}/build-paths?branch=${branch}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListEnterprises(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/list`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListOrganizations(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public ListRepositories(organization: string): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/github/organizations/${organization}/repositories`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public LoadEnterpriseAsCode(): Observable<object> {\r\n return this.http.get(`${this.apiRoot}/api/lowcodeunit/manage/eac`, {\r\n headers: this.loadHeaders(),\r\n });\r\n }\r\n\r\n // public LoadProjectHostingDetails(\r\n // organization: string,\r\n // repository: string,\r\n // branch: string\r\n // ): Observable<object> {\r\n // branch = encodeURIComponent(branch);\r\n\r\n // return this.http.get(\r\n // `${this.apiRoot}/api/lowcodeunit/manage/projects/organizations/${organization}/repositories/${repository}/branches/${branch}/hosting/details`,\r\n // {\r\n // headers: this.loadHeaders(),\r\n // }\r\n // );\r\n // }\r\n\r\n public LoadProjectHostingDetails(): Observable<object> {\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/manage/projects/hosting/details`,\r\n\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public LoadUserFeed(\r\n page: number,\r\n pageSize: number,\r\n project: string,\r\n applications: string[]\r\n ): Observable<object> {\r\n var apps = JSON.stringify(applications || []);\r\n return this.http.get(\r\n `${this.apiRoot}/api/lowcodeunit/userfeed?page=${page}&pageSize=${pageSize}&project=${project}&applications=${apps}`,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public SaveEnterpriseAsCode(eac: EnterpriseAsCode): Observable<object> {\r\n return this.http.post(`${this.apiRoot}/api/lowcodeunit/manage/eac`, eac, {\r\n headers: this.loadHeaders(),\r\n });\r\n }\r\n\r\n public SetActiveEnterprise(activeEntLookup: string): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/enterprises/active`,\r\n {\r\n ActiveEnterpriseLookup: activeEntLookup,\r\n },\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public SubmitFeedEntry(entry: FeedEntry): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/userfeed/entry`,\r\n entry,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n public UnpackLowCodeUnit(req: UnpackLowCodeUnitRequest): Observable<object> {\r\n return this.http.post(\r\n `${this.apiRoot}/api/lowcodeunit/manage/projects/unpack`,\r\n req,\r\n {\r\n headers: this.loadHeaders(),\r\n }\r\n );\r\n }\r\n\r\n // Helpers\r\n protected loadHeaders(): { [header: string]: string | string[] } {\r\n return {};\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { BaseModeledResponse, BaseResponse, Status } from '@lcu/common';\nimport { debug } from 'console';\nimport { EaCApplicationAsCode, EaCProjectAsCode, EnterpriseAsCode } from '@semanticjs/common';\nimport {\n ApplicationsFlowState,\n GitHubWorkflowRun,\n UnpackLowCodeUnitRequest,\n} from '../state/applications-flow.state';\nimport { ApplicationsFlowService } from './applications-flow.service';\nimport { FeedEntry, FeedItem, UserFeedResponse } 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 async DeleteApplication(\n state: ApplicationsFlowState,\n appLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteApplication(appLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 DeleteDevOpsAction(\n state: ApplicationsFlowState,\n doaLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteDevOpsAction(doaLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 DeleteProject(\n state: ApplicationsFlowState,\n projectLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteProject(projectLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 DeleteSourceControl(\n state: ApplicationsFlowState,\n scLookup: string\n ): Promise<EnterpriseAsCode> {\n return new Promise((resolve, reject) => {\n state.Loading = true;\n\n this.appsFlowSvc.DeleteSourceControl(scLookup).subscribe(\n async (response: BaseResponse) => {\n if (response.Status.Code === 0) {\n const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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 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 var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(response.Status);\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(applications: { [lookup: string]: EaCApplicationAsCode }, state: ApplicationsFlowState): {\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(currentRouteBase);\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<{ Name: string; Lookup: string }>\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 state: ApplicationsFlowState\n ): Promise<Array<FeedItem>> {\n return new Promise((resolve, reject) => {\n state.LoadingFeed = true;\n\n let paramMap = this.activatedRoute.snapshot.children[0].paramMap;\n\n let result = this.loadApplicationsForFeed(state, paramMap);\n \n this.appsFlowSvc\n .LoadUserFeed(page, pageSize, result.Project, result.Applications)\n .subscribe(\n async (response: UserFeedResponse) => {\n state.LoadingFeed = false;\n\n if (response.Status.Code === 0) {\n state.Feed = response.Items;\n\n state.FeedSourceControlLookups = response.SourceControlLookups;\n\n state.FeedActions = response.Actions;\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<EnterpriseAsCode> {\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('project service active ent: ', activeEntLookup);\n\n state.ActiveEnterpriseLookup = activeEntLookup;\n\n console.log(\n 'project service State active ent: ',\n state.ActiveEnterpriseLookup\n );\n\n var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(results[0]);\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 var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(response.Status);\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 var results = await Promise.all([\n this.LoadEnterpriseAsCode(state),\n this.LoadUserFeed(1, 25, state),\n ]);\n\n resolve(response.Status);\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<EnterpriseAsCode> {\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 const eac = await this.LoadEnterpriseAsCode(state);\n\n resolve(eac);\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(state: ApplicationsFlowState, paramMap: any) {\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}\n","import { Injectable, Injector } from '@angular/core';\r\nimport { StateContext } from '@lcu/common';\r\nimport { ApplicationsFlowState } from './applications-flow.state';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApplicationsFlowStateContext extends StateContext<ApplicationsFlowState> {\r\n\r\n // Constructors\r\n constructor(protected injector: Injector) {\r\n super(injector);\r\n }\r\n\r\n\r\n // API Methods\r\n public AddApplication(): void {\r\n this.Execute({\r\n Arguments: {\r\n },\r\n Type: 'AddApplication'\r\n });\r\n }\r\n\r\n // Helpers\r\n protected defaultValue(): ApplicationsFlowState {\r\n return { Loading: true } as ApplicationsFlowState;\r\n }\r\n\r\n protected loadStateKey(): string {\r\n return 'main';\r\n }\r\n\r\n protected loadStateName(): string {\r\n return 'lcu';\r\n }\r\n}\r\n","import { EnterpriseAsCode } from '@semanticjs/common';\r\nimport { FeedItem, FeedItemAction } from '../models/user-feed.model';\r\n\r\nexport class ApplicationsFlowState {\r\n public ActiveEnterpriseLookup?: string;\r\n\r\n public EaC?: EnterpriseAsCode;\r\n\r\n public Enterprises?: Array<{ Name: string; Lookup: string }>;\r\n\r\n public Feed?: Array<FeedItem>;\r\n\r\n public FeedActions?: Array<FeedItemAction>;\r\n\r\n public FeedSourceControlLookups?: Array<string>;\r\n\r\n public GitHub?: GitHubSetupState;\r\n\r\n public HostingDetails?: ProjectHostingDetails;\r\n\r\n public Loading?: boolean;\r\n\r\n public LoadingActiveEnterprise?: boolean;\r\n\r\n public LoadingEnterprises?: boolean;\r\n \r\n public LoadingFeed?: boolean;\r\n\r\n // public Projects?: ProjectState[];\r\n\r\n public Unleashed?: boolean;\r\n\r\n public UserEnterpriseLookup?: string;\r\n\r\n constructor() {\r\n this.GitHub = {};\r\n\r\n this.HostingDetails = {};\r\n\r\n this.Loading = true;\r\n\r\n this.LoadingActiveEnterprise = true;\r\n\r\n this.LoadingEnterprises = true;\r\n\r\n this.LoadingFeed = true;\r\n\r\n // this.Projects = [];\r\n }\r\n}\r\n\r\n// export class ProjectState {\r\n// public ActionsSet?: { [id: string]: DevOpsAction };\r\n\r\n// public Applications?: ApplicationState[];\r\n\r\n// public Description?: string;\r\n\r\n// public Host?: string;\r\n\r\n// public ID?: string;\r\n\r\n// public Image?: string;\r\n\r\n// public LCUs?: GitHubLowCodeUnit[];\r\n\r\n// public Name?: string;\r\n\r\n// public PreventInheritedApplications?: boolean;\r\n\r\n// public Runs?: GitHubWorkflowRun[];\r\n// }\r\n\r\n// export class ApplicationState {\r\n// public IsPrivate?: boolean;\r\n\r\n// public Name?: string;\r\n\r\n// public Organization?: string;\r\n\r\n// public PathRegex?: string;\r\n\r\n// public Priority?: number;\r\n\r\n// public Repository?: string;\r\n\r\n// public Version?: string;\r\n// }\r\n\r\nexport class GitHubSetupState {\r\n public BranchOptions?: GitHubBranch[];\r\n\r\n public CreatingRepository?: boolean;\r\n\r\n public HasConnection?: boolean;\r\n\r\n public Loading?: boolean;\r\n\r\n public OrganizationOptions?: GitHubOrganization[];\r\n\r\n public RepositoryOptions?: GitHubRepository[];\r\n}\r\n\r\nexport class GitHubBranch {\r\n public Name?: string;\r\n}\r\n\r\n// export class GitHubLowCodeUnit {\r\n// public Branch?: string;\r\n\r\n// public ID?: string;\r\n\r\n// public Lookup?: string;\r\n\r\n// public Organization?: string;\r\n\r\n// public Repository?: string;\r\n// }\r\n\r\nexport class GitHubOrganization {\r\n public Name?: string;\r\n}\r\n\r\nexport class GitHubRepository {\r\n public CloneURL?: string;\r\n\r\n public Name?: string;\r\n}\r\n\r\nexport class GitHubWorkflowRun {\r\n public Conclusion?: string;\r\n\r\n public CreatedAt?: string;\r\n\r\n public ID?: string;\r\n\r\n public LCUID?: string;\r\n\r\n public RunNumber?: number;\r\n\r\n public Status?: string;\r\n\r\n public Workflow?: string;\r\n\r\n public UpdatedAt?: string;\r\n}\r\n\r\nexport class UnpackLowCodeUnitRequest {\r\n public ApplicationLookup?: string;\r\n\r\n public ApplicationName?: string;\r\n\r\n public Version?: string;\r\n}\r\n\r\n// export class DevOpsAction {\r\n// public Details?: string;\r\n\r\n// public ID?: string;\r\n\r\n// public Name?: string;\r\n\r\n// public Overwrite?: boolean;\r\n\r\n// public Path?: string;\r\n\r\n// public Template?: string;\r\n// }\r\n\r\nexport class ProjectHostingDetails {\r\n public HostingOptions?: ProjectHostingOption[];\r\n\r\n public Loading?: boolean;\r\n}\r\n\r\nexport class ProjectHostingOption {\r\n public ArtifactType?: string;\r\n\r\n public Description?: string;\r\n\r\n public Image?: string;\r\n\r\n public Inputs?: ProjectHostingOptionInput[];\r\n\r\n public Lookup?: string;\r\n\r\n public Name?: string;\r\n\r\n public Path?: string;\r\n\r\n public Templates?: string[];\r\n}\r\n\r\nexport class ProjectHostingOptionInput {\r\n public DefaultValue?: string;\r\n\r\n public Hint?: string;\r\n\r\n public Lookup?: string;\r\n\r\n public Placeholder?: string;\r\n\r\n public Required?: boolean;\r\n}\r\n\r\n// export class EstablishProjectRequest {\r\n// public Branch?: string;\r\n\r\n// public BuildScript?: string;\r\n\r\n// public HostingOption?: string;\r\n\r\n// public Organization?: string;\r\n\r\n// public OutputFolder?: string;\r\n\r\n// public ProjectName?: string;\r\n\r\n// public Repository?: string;\r\n// }\r\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 { BaseModeledResponse, 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\n// export class SaveDFSModifierForApplicationEventRequest {\n// public Modifier: EaCDFSModifier;\n\n// public ModifierLookup: string;\n\n// public ApplicationLookup?: string;\n// }\n\nexport class SaveDFSModifierEventRequest {\n\n public ApplicationLookup?: string;\n\n public Modifier?: EaCDFSModifier;\n\n public ModifierLookups?: Array<string>;\n\n // public ModifierLookup?: string;\n\n // public ProjectLookup?: string;\n\n public ProjectLookups?: Array<string>;\n\n\n \n}\n\n// export class SaveDFSModifierForAllEventRequest {\n// public Modifier: EaCDFSModifier;\n\n// public ModifierLookup: 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(protected projectService: ProjectService,\n protected http: HttpClient) {\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<void> {\n if (confirm(`Are you sure you want to delete application '${appName}'?`)) {\n await this.projectService.DeleteApplication(this.State, appLookup);\n }\n }\n\n public async DeleteDevOpsAction(doaLookup: string): Promise<void> {\n if (\n confirm(`Are you sure you want to delete DevOps action '${doaLookup}'?`)\n ) {\n await this.projectService.DeleteDevOpsAction(this.State, doaLookup);\n }\n }\n\n public async DeleteProject(projectLookup: string): Promise<void> {\n if (\n confirm(`Are you sure you want to delete Project '${projectLookup}'?`)\n ) {\n await this.projectService.DeleteProject(this.State, projectLookup);\n }\n }\n\n public async DeleteSourceControl(scLookup: string): Promise<void> {\n if (\n confirm(`Are you sure you want to delete Source Control '${scLookup}'?`)\n ) {\n await this.projectService.DeleteSourceControl(this.State, scLookup);\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(eac: EnterpriseAsCode): Promise<Status> {\n return await 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(page: number, pageSize: number): Promise<void> {\n await this.projectService.LoadUserFeed(page, pageSize, this.State);\n }\n \n public GenerateRoutedApplications(applications: { [lookup: string]: EaCApplicationAsCode }): {\n [route: string]: { [lookup: string]: EaCApplicationAsCode };\n } {\n return this.projectService.GenerateRoutedApplications(applications, this.State);\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 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\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<void> {\n 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(this.State, projectLookup);\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(req: UnpackLowCodeUnitRequest): 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 const existingProj = {\n ...this.State.EaC.Projects[req.ProjectLookup],\n };\n\n if (existingProj.ApplicationLookups?.indexOf(req.ApplicationLookup) < 0) {\n if (!existingProj.ApplicationLookups) {\n existingProj.ApplicationLookups = [];\n }\n\n existingProj.ApplicationLookups.push(req.ApplicationLookup);\n\n saveEaC.Projects[req.ProjectLookup] = existingProj;\n }\n\n if (req.Application) {\n saveEaC.Applications[req.ApplicationLookup] = req.Application;\n }\n\n return await this.projectService.SaveEnterpriseAsCode(this.State, 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 };\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\n if (req.ApplicationLookup) {\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(this.State, 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(this.State, saveEaC);\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\n // API Methods\n public DeleteProject(projectLookup: string, projectName: string): void {\n if (confirm(`Are you sure you want to delete project '${projectName}'?`)) {\n this.eacSvc.DeleteProject(projectLookup);\n }\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\n \n *ngFor=\"let projectLookup of ProjectLookups\"\n class=\"card-container\"\n >\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\">{{ GetPrimaryHost(project) }}</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 >\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\">settings</mat-icon>\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\">cancel</mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteProject(projectLookup, project.Project.Name)\"\n >\n <mat-icon matTooltip=\"Delete {{ project.Project.Name }}\">\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 {\n EaCProjectAsCode,\n} 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.lowcodeunit.com`],\n ModifierLookups: ['html-base', 'lcu-reg'],\n RelyingParty: {\n AccessConfigurations: {\n fathym: {\n AccessRightLookups: ['Fathym.Global.Admin', 'Fathym.User'],\n ProviderLookups: ['ADB2C'],\n Usernames: ['support@fathym.com', this.lcuSettings.User.Email],\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 /**\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\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})\n\nexport class FormCardComponent implements OnInit {\n\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 }\n\n ngOnInit(): void {\n }\n\n}\n","<div\n [ngClass]=\"Disabled ? 'form-disabled' : 'form-enabled'\">\n <mat-card>\n <mat-card-header>\n <div mat-card-avatar>\n <mat-icon\n color=\"accent\"\n class=\"title-icon\">\n {{ Config.Icon }}\n </mat-icon>\n </div>\n <mat-card-title\n class=\"paragraph-title\">\n {{ Config.Title }}\n </mat-card-title>\n <mat-card-subtitle\n 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\n *ngTemplateOutlet=\"content\">\n </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 <span class=\"mat-small caption-text\">{{ Config.FormActions.Message }}</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 <button\n [disabled]=\"Disabled || (action.Type === 'SAVE' && Form.invalid)\"\n color=\"{{ action.Color }}\"\n mat-flat-button (click)=\"action.ClickEvent()\">\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\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 ' + this.HostDNSInstance + '.',\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 <div>\n <lcu-form-card \n [config]=\"Config\"\n [form]=\"Form\"\n [is-dirty]=\"IsDirty\"\n >\n <div fxLayout=\"column\">\n <div fxLayout=\"row\">\n <div fxFlex fxLayout=\"row\">\n <mat-form-field fxFlex appearance=\"fill\" class=\"margin-right-3\">\n <mat-icon\n matSuffix\n [ngClass]=\"Domain.valid ? 'valid-control' : 'invalid-control'\"\n >\n {{ Domain.valid ? \"check_circle\" : \"error_outline\" }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"Domain.invalid || Domain.disabled ? '/' : ''\"\n formControlName=\"domain\"\n />\n\n <mat-hint>\n These domains are assigned to your deployments. Optionally, \n a different Git branch or a redirection to another domain \n can be configured 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 mat-icon-button [cdkCopyToClipboard]=\"HostDNSInstance\" matTooltip=\"Copy subdomain to clipboard\">\n <mat-icon>content_copy</mat-icon>\n </button>\n\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","\nexport class DynamicTabsModel {\n\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\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([this.SourceControlRoot, 'branches'].join(''));\n\n this.FormGroup.removeControl([this.SourceControlRoot, 'buildPath'].join(''));\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(this.MainBranchFormControl.value) < 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(this.BranchOptions[0].Name);\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(this.BuildPathOptions[0]);\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe((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(this.SourceControl?.Repository);\n }, 0);\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(this.SourceControl.Repository ?? '', Validators.required)\n );\n\n if (this.UseBranches) {\n this.FormGroup.addControl(\n [this.SourceControlRoot, 'branches'].join(''),\n new FormControl(this.SourceControl?.Branches ?? '', Validators.required)\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 matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\"> refresh </mat-icon>\n\n <a\n matSuffix\n href=\"/.oauth/github?oauth-force-edit=true\"\n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'repository'\"\n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \"\n [disabled]=\"\n !OrganizationFormControl?.valid || Loading || 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 mat-button type=\"button\" \n (click)=\"SaveRepository()\" \n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon\n matSuffix\n color=\"primary\"\n >\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" \n (click)=\"CancelCreateRepository()\"\n *ngIf=\"CreatingRepository\">\n\n <mat-icon\n matSuffix\n \n >\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \"\n >\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-label>Selected Branches</mat-label>\n\n <mat-autocomplete\n (optionSelected)=\"BranchOptionSelected($event)\"\n #branchOptions=\"matAutocomplete\"\n >\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-chip-list #selectedBranches>\n <mat-chip\n [removable]=\"true\"\n (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\"\n >\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input\n matInput\n placeholder=\"New Branch...\"\n [formControlName]=\"SourceControlRoot + 'branches'\"\n #branches\n [matAutocomplete]=\"branchOptions\"\n [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\"\n [disabled]=\"Loading || 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()\"> refresh </mat-icon>\n\n <a\n matSuffix\n mat-icon-button\n href=\"/.oauth/github?oauth-force-edit=true\"\n \n target=\"_blank\"\n color=\"accent\"\n >\n <mat-icon\n matTooltip=\"Re-authorize Organizations\"\n color=\"accent\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a\n href=\"https://github.com/account/organizations/new\"\n target=\"_blank\"\n >\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div\n class=\"card\"\n *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \"\n >\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n\n <mat-select\n [formControlName]=\"SourceControlRoot + 'buildPath'\"\n placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\"\n (selectionChange)=\"BuildPathChanged($event)\"\n required\n >\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \"\n >\n Loading repositories\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\"\n >\n Loading branches\n </h4>\n\n <h4\n class=\"mat-title\"\n *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \"\n >\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n</div>\n","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.get(`https://api.npms.io/v2/search?q=${search}`).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', [Validators.required])\n );\n\n this.FormGroup.controls.package.valueChanges\n .pipe(\n debounceTime(500),\n switchMap((value) => this.npm.Search(value ? value.toString() : '')),\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/' + 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 {EaCService, SaveApplicationAsCodeEventRequest} 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((appLookup) => this.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 = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(currentRouteBase);\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: 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: this.EditingApplication?.LookupConfig?.QueryRegex || '',\n HeaderRegex: 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 = `${this.RouteFormControl.value}/`.replace(\n '//',\n '/'\n );\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 = this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret = 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 = 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 = !!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: this.EditingApplicationLookup || Guid.CreateRaw(),\n };\n\n if (this.HasBuildFormControl.value && this.ProcessorType !== 'redirect') {\n if (app) {\n app.LowCodeUnit.SourceControlLookup = 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(app: EaCApplicationAsCode, appRouteBase: string): 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: [this.EditingApplication.Application?.Name, Validators.required],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [\n this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||\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 || 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 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(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 }} / {{ EditingApplication.Application?.Name }}\n </h2>\n </div>\n <form\n [formGroup]=\"ApplicationFormGroup\"\n (ngSubmit)=\"SaveApplication()\"\n *ngIf=\"EditingApplication\"\n >\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 *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Name\"\n formControlName=\"name\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <textarea\n matInput\n placeholder=\"Description\"\n formControlName=\"description\"\n rows=\"3\"\n required\n ></textarea>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Route\"\n formControlName=\"route\"\n required\n />\n </mat-form-field>\n </mat-card-content>\n </mat-card>\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\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ApplicationFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls?.RepositoryFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ApplicationFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 – 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 \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 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 </mat-card>\n\n <mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n\n <div class=\"spread\">\n <div fxFlex></div>\n\n <button mat-button type=\"button\" (click)=\"SetEditingApplication(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]=\"!ApplicationFormGroup.valid || !ApplicationFormGroup.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=\"!EditingApplication\">\n <span class=\"apps-actions\">\n <button mat-raised-button color=\"accent\" (click)=\"CreateNewApplication()\">\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 }}{{ appRoute }}\"\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)=\"EditApplicationRouteClicked(appRoute)\"\n >\n <mat-icon matTooltip=\"Edit Application Route\">\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 *ngFor=\"let appLookup of CurrentRouteApplicationLookups\">\n <div\n fxFlex=\"30%\"\n fxFlex.lt-md=\"100%\"\n *ngIf=\"\n RoutedApplications[CurrentApplicationRoute][appLookup];\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 target=\"_blank\"\n >\n <mat-icon matTooltip=\"Launch\">launch</mat-icon>\n </a>\n\n <a\n *ngIf=\"GetProcessorType(appLookup) === 'DFS'\"\n mat-icon-button\n (click)=\"Unpack(appLookup, app)\"\n target=\"_blank\"\n matTooltip=\"Unpack {{\n app.LowCodeUnit?.Version || app.LowCodeUnit?.Build\n }}\"\n >\n <mat-icon>cloud_upload</mat-icon>\n </a>\n\n <button\n mat-icon-button\n (click)=\"SetEditingApplication(appLookup)\"\n >\n <mat-icon matTooltip=\"Edit Application\"> edit </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteApplication(appLookup, app.Application.Name)\"\n >\n <mat-icon matTooltip=\"Delete {{ app.Application.Name }}\">\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 mat-icon-button disabled \n *ngIf=\"GetProcessorType(appLookup) === 'DFS'\">\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\n\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 || this.SelectedHostingOption?.Name || '',\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=\"let hostOption of Details?.HostingOptions; let i = index\"\n >\n <mat-option [value]=\"hostOption?.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n <ng-container *ngFor=\"let hostOption of 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 (PAT) with publish access to the organization used for your NPM packages. \n Learn how to create and view access tokens \n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n >\n here.\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n</div>\n\n<div *ngIf=\"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","\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n} 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.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.DevOpsActionNameFormControl.value,\n Path: this.HostingDetailsFormControls.SelectedHostingOption.Path,\n Templates:\n this.HostingDetailsFormControls.SelectedHostingOption.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: saveEnvReq.Environment.Secrets[secretLookup].Name,\n Value: this.HostingDetailsFormControls.NPMTokenFormControl.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.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: 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: 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(this.DevOpsActionLookup);\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\n .LoadProjectHostingDetails()\n .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 > 0 ||\n 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 using this\n 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)=\"DevOpsActionLookupChanged($event)\"\n >\n <ng-container\n *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\"\n >\n <mat-option\n [value]=\"devOpsActionLookup\"\n *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\"\n >\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n\n <mat-option value=\"\">-- Create New --</mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container>\n <lcu-hosting-details-form-group\n [artifact]=\"Artifact\"\n [devops-action]=\"\n DevOpsActions[DevOpsActionLookupFormControl?.value]\n \"\n [details]=\"HostingDetails\"\n [formGroup]=\"DevOpsFormGroup\"\n [organization]=\"\n SourceControlFormControls?.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 mat-button type=\"button\" (click)=\"SetEditingSourceControl(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]=\"!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>No source controls created, create your first source control.</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)=\"SetEditingSourceControl(sourceControlLookup)\"\n >\n <mat-icon matTooltip=\"Edit Source Control\">\n settings\n </mat-icon>\n </button>\n\n <button\n mat-icon-button\n color=\"warn\"\n (click)=\"DeleteSourceControl(sourceControlLookup)\"\n >\n <mat-icon matTooltip=\"Delete {{ sourceControlLookup }}\">\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","\nimport { 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 {\n EaCDFSModifier,\n EaCProjectAsCode,\n} 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 if (\n confirm(`Are you sure you want to delete modifier '${modifierName}'?`)\n ) {\n this.eacSvc.DeleteSourceControl(modifierLookup);\n }\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'] = 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 || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [Validators.required])\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></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]=\"!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 <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button mat-raised-button color=\"accent\" (click)=\"CreateNewModifier()\">\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>No DFS modifiers created, create your first DFS modifier.</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(modifierLookup) >= 0\n \"\n (change)=\"SetUseForProject(modifierLookup, $event)\"\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)=\"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 <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 } 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})\n\nexport class DynamicTabsComponent implements OnInit, AfterViewInit {\n\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 // Lifecycle hook\n public ngOnInit(): void {\n\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 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\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\n if (!this.TabComponents) {\n return;\n }\n const componentRef = this.viewContainerRef.createComponent(this.TabComponents[index].Component);\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 = 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 <!-- <div>\n\n </div> -->\n <mat-tab\n *ngFor=\"let component of TabComponents\"\n #tab\n [disabled]='!tab.isActive && FormIsDirty'>\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>","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: { Project: this.Project, ProjectLookup: this.ProjectLookup },\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 \n color=\"accent\" \n [tab-components]=\"TabComponents\">\n</lcu-dynamic-tabs>\n","import {\r\n Component,\r\n OnInit,\r\n Injector,\r\n \r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport {\r\n LCUElementContext,\r\n LcuElementComponent,\r\n BaseResponse,\r\n} from '@lcu/common';\r\nimport { ApplicationsFlowState } from './../../state/applications-flow.state';\r\nimport { ApplicationsFlowService } from '../../services/applications-flow.service';\r\nimport {\r\n EaCEnvironmentAsCode,\r\n EaCProjectAsCode,\r\n} from '@semanticjs/common';\r\nimport { EaCService } from '../../services/eac.service';\r\n\r\ndeclare var window: Window;\r\n\r\nexport class ApplicationsFlowProjectsElementState {}\r\n\r\nexport class ApplicationsFlowProjectsContext extends LCUElementContext<ApplicationsFlowProjectsElementState> {}\r\n\r\nexport const SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT =\r\n 'applications-flow-projects-element';\r\n\r\n@Component({\r\n selector: SELECTOR_APPLICATIONS_FLOW_PROJECTS_ELEMENT,\r\n templateUrl: './projects.component.html',\r\n styleUrls: ['./projects.component.scss'],\r\n})\r\nexport class ApplicationsFlowProjectsElementComponent\r\n extends LcuElementComponent<ApplicationsFlowProjectsContext>\r\n implements OnDestroy, OnInit\r\n{\r\n // Fields\r\n protected projMon: NodeJS.Timeout;\r\n\r\n // Properties\r\n public get ActiveEnvironment(): EaCEnvironmentAsCode {\r\n return this.State?.EaC?.Environments[this.ActiveEnvironmentLookup];\r\n }\r\n\r\n public get ActiveEnvironmentLookup(): string {\r\n // TODO: Eventually support multiple environments\r\n const envLookups = Object.keys(this.State?.EaC?.Environments || {});\r\n\r\n return envLookups[0];\r\n }\r\n\r\n public get CreatingProject(): boolean {\r\n return this.eacSvc.CreatingProject;\r\n }\r\n\r\n public get EditingProject(): EaCProjectAsCode {\r\n return this.State?.EaC?.Projects\r\n ? this.State?.EaC?.Projects[this.EditingProjectLookup]\r\n : null;\r\n }\r\n\r\n public get EditingProjectLookup(): string {\r\n return this.eacSvc.EditingProjectLookup;\r\n }\r\n\r\n public get ProjectLookups(): Array<string> {\r\n return Object.keys(this.State?.EaC?.Projects || {});\r\n }\r\n\r\n public get State(): ApplicationsFlowState {\r\n return this.eacSvc.State;\r\n }\r\n\r\n // Constructors\r\n constructor(\r\n protected injector: Injector,\r\n protected appsFlowSvc: ApplicationsFlowService,\r\n protected eacSvc: EaCService\r\n ) {\r\n super(injector);\r\n }\r\n\r\n // Life Cycle\r\n public ngOnDestroy(): void {}\r\n\r\n public ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n this.handleStateChange().then((eac) => {});\r\n\r\n // this.setupProjectMonitor();\r\n }\r\n\r\n // API Methods\r\n public async ActiveEnterpriseChanged(event: MatSelectChange): Promise<void> {\r\n await this.eacSvc.SetActiveEnterprise(event.value);\r\n }\r\n\r\n public ConfigureDevOpsAction(devOpsActionLookup: string): void {\r\n this.State.Loading = true;\r\n\r\n this.appsFlowSvc\r\n .ConfigureDevOpsAction(devOpsActionLookup)\r\n .subscribe((response: BaseResponse) => {\r\n if (response.Status.Code === 0) {\r\n this.eacSvc.LoadEnterpriseAsCode();\r\n } else {\r\n this.State.Loading = false;\r\n }\r\n });\r\n }\r\n\r\n // Helpers\r\n protected async handleStateChange(): Promise<void> {\r\n this.State.Loading = true;\r\n }\r\n}\r\n","<app-host-dashboard-card-element\r\n [context]=\"{ Title: 'Projects', Icon: 'language' }\"\r\n>\r\n <nav>\r\n <mat-form-field\r\n class=\"mat-full-width\"\r\n *ngIf=\"State.Enterprises?.length > 1\"\r\n >\r\n <mat-select\r\n placeholder=\"Active Enterprise ({{ State.ActiveEnterpriseLookup }})\"\r\n [value]=\"State.ActiveEnterpriseLookup\"\r\n (selectionChange)=\"ActiveEnterpriseChanged($event)\"\r\n >\r\n <mat-option [value]=\"ent.Lookup\" *ngFor=\"let ent of State.Enterprises\">\r\n {{ ent.Name }}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <!-- Toggle between Caged Krakyn and Unleashed Krakyn (Flow Tool) -->\r\n </mat-form-field>\r\n\r\n <a\r\n mat-icon-button\r\n href=\"/docs/getting-started/setup\"\r\n target=\"_blank\"\r\n lcuEvent=\"click\"\r\n label=\"Projects\"\r\n category=\"help\"\r\n >\r\n <mat-icon matTooltip=\"More info\">help_outline</mat-icon>\r\n </a>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"!State?.Loading\">\r\n <div\r\n fxLayout=\"column\"\r\n fxLayoutAlign=\"center center\"\r\n class=\"margin-bottom-4\"\r\n >\r\n <h2 class=\"mat-display-2 margin-y-2\" *ngIf=\"ProjectLookups?.length <= 0\">\r\n <span> Thank you for signing up </span>\r\n </h2>\r\n </div>\r\n\r\n <!-- <lcu-git-auth *ngIf=\"!State.GitHub.HasConnection\"></lcu-git-auth> -->\r\n\r\n <!-- *ngIf=\"State.GitHub.HasConnection\" -->\r\n <ng-container> \r\n <!-- <div *ngIf=\"!CreatingProject\">\r\n Creating\r\n <lcu-create-project-wizard></lcu-create-project-wizard>\r\n </div> -->\r\n\r\n <ng-container *ngIf=\"!State.Unleashed\">\r\n <ng-container *ngIf=\"State\">\r\n <lcu-projects-header\r\n [creating-project]=\"CreatingProject\"\r\n [projects]=\"State.EaC?.Projects\"\r\n [selected-project-lookup]=\"EditingProjectLookup\"\r\n ></lcu-projects-header>\r\n\r\n <div *ngIf=\"EditingProject\">\r\n <div class=\"divider margin-bottom-3\"></div>\r\n\r\n <lcu-project-tabs\r\n [applications]=\"State.EaC?.Applications\"\r\n [dfs-modifiers]=\"State.EaC?.Modifiers\"\r\n [hosts]=\"State.EaC?.Hosts\"\r\n [project]=\"EditingProject\"\r\n [project-lookup]=\"EditingProjectLookup\"\r\n [environment]=\"ActiveEnvironment\"\r\n [environment-lookup]=\"ActiveEnvironmentLookup\"\r\n class=\"margin-top-3\"\r\n >\r\n </lcu-project-tabs>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"State.Unleashed\">\r\n <!-- Shannon flow tool control implemented -->\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div class=\"loading\" *ngIf=\"State?.Loading\">\r\n <lcu-loader [loading]=\"State?.Loading\"></lcu-loader>\r\n\r\n <div class=\"margin-3\">\r\n <!-- <p *ngIf=\"!State.UserEnterpriseLookup\">Loading your projects</p> -->\r\n\r\n <!-- <p *ngIf=\"State.UserEnterpriseLookup\">Loading your Dashboard.</p> -->\r\n </div>\r\n </div>\r\n\r\n <!-- <div>\r\n <pre>{{ State | json }}</pre>\r\n </div> -->\r\n</app-host-dashboard-card-element>\r\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((response: BaseModeledResponse<ProjectHostingDetails>) => {\n this.HostingDetails = response.Model;\n\n this.HostingDetails.Loading = false;\n\n this.Stepper.next();\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 class=\"welcome margin-x-1\" fxFlex=\"40%\" fxFlex.lt-md=\"100%\">\n <h3 class=\"mat-title\">Let's get your Project setup and running</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 [formGroup]=\"ProjectFormGroup\" (ngSubmit)=\"CreateProject()\">\n <mat-horizontal-stepper linear #projectStepper>\n <mat-step\n label=\"Connect Repository\"\n formGroupName=\"repoDetails\"\n [completed]=\"\n IsOrganizationValid && IsRepositoryValid && IsBranchValid\n \"\n >\n <div>\n <h3 class=\"mat-display-1 margin-bottom-4 margin-top-3\">\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]=\"RepoDetailsFormGroup\"\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 class=\"margin-3\" *ngIf=\"HostingDetails.Loading\">\n <lcu-loader\n style=\"margin: auto\"\n [loading]=\"true\"\n ></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\">Configuring</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 @{{ RepoDetailsFormGroup.get(\"organization\")?.value }}/{{\n RepoDetailsFormGroup.get(\"repository\")?.value\n }}\n\n <br />\n\n <span\n *ngFor=\"let selBranch of SourceControl?.SelectedBranches\"\n >\n @{{ selBranch }}\n </span>\n </strong>\n </h4>\n\n <div class=\"margin-y-2\" *ngIf=\"!HostingDetails.Loading\">\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 mat-button matStepperPrevious type=\"button\">\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 {\n GitHubWorkflowRun,\n} from './../../../../state/applications-flow.state';\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy\n} 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\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 \n *ngIf=\"Projects\" \n class=\"expansion-container\">\n <div \n fxLayout=\"row\" \n fxLayoutAlign=\"space-between center\" \n *ngFor=\"let project of Projects\">\n <div \n fxFlex \n fxLayout=\"row\" >\n <mat-expansion-panel (opened)=\"panelOpenState = true;\" (closed)=\"panelOpenState = false\"\n [ngClass]=\"panelOpenState === true ? 'active' : 'inactive'\" class=\"expansion-panel\">\n <mat-expansion-panel-header \n [collapsedHeight]=\"'75px'\" \n [expandedHeight]=\"'75px'\">\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 <div fxLayout=\"row\">\n <div>\n <div fxLayout=\"column\"\n *ngIf=\"RetrieveLCU({project: project, lcuID: latestRun.LCUID}); let lcu\">\n <div class=\"workflow-run-status\">\n <a mat-icon-button\n href=\"https://github.com/{{ lcu.Organization }}/{{lcu.Repository}}/actions\"\n target=\"_blank\">\n <div fxLayout=\"row\">\n <div \n fxLayoutAlign=\"center center\" \n class=\"icon-bg\"\n [ngClass]=\"latestRun.Conclusion == 'success' ? 'success' : 'error'\">\n <mat-icon\n matTooltip=\"{{ latestRun.Status }} {{ latestRun.Conclusion }}\"\n *ngIf=\"latestRun.Conclusion == 'success'\">\n {{ latestRun.Conclusion == 'success' ? 'check_circle' :\n 'error'}}\n </mat-icon>\n </div>\n\n <div>\n <mat-icon class=\"error\"\n *ngIf=\"latestRun.Conclusion == 'failure'\">\n error_outline\n </mat-icon>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n <div fxLayout=\"column\" class=\"details margin-left-3\">\n <span class=\"name mat-headline mat-body-1\">{{ project.Name }}</span>\n </div>\n </div>\n\n <div fxLayout=\"row\" class=\"actions\">\n <a mat-button color=\"accent\" (click)=\"DeployRun(latestRun)\" target=\"_blank\"\n matTooltip=\"Deploy Latest\">\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\n constructor() { }\n\n public ngOnInit(): void {\n }\n\n}\n","<p>recent-activities works!</p>\n","\nimport { 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(this.Project?.Project?.Description || '', {\n validators: [Validators.required, Validators.minLength(1)],\n updateOn: 'change',\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\n fxFlex\n [config]=\"Config\"\n [form]=\"Form\"\n [is-dirty]=\"IsDirty\"\n >\n <div fxLayout=\"column\">\n <mat-form-field appearance=\"fill\" fxFlex class=\"margin-right-1 margin-bottom-2\">\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]=\"Name.invalid || Name.disabled ? 'Project Name' : ''\"\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]=\"Description.valid ? 'valid-control' : 'invalid-control'\"\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\n fxFlex\n fxLayout=\"row\"\n fxLayout.lt-md=\"column\"\n [formGroup]=\"Form\">\n <lcu-form-card\n [config]=\"Config\"\n [form]=\"Form\"\n [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 {{ Root.valid ? 'check_circle' : 'cancel' }}\n </mat-icon>\n <input\n type=\"text\"\n matInput\n [placeholder]=\"Root.invalid || Root.disabled ? 'Root Directory' : ''\"\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\n id=\"includeSource\"\n formControlName=\"includeSource\">\n Include source files outside of the Root Directory in the build step \n </mat-checkbox>\n </div>\n <div class=\"card-divider\"></div>\n </lcu-form-card>\n</form>","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 /**\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\n this.setupForm();\n }\n\n protected setupForm(): void {\n\n this.formsService.Form = {Id: this.FormConfig.FormName, Form: this.FormConfig.Form};\n\n // this.onChange();\n }\n\n /**\n * Listen to form value changes\n */\n protected onChange(): void {\n \n\n }\n\n protected checkFormForChanges(): void {\n this.FormConfig.Form.valueChanges.subscribe((val: object) => {\n\n if (this.formsService.ForRealThough(this.FormConfig.FormName, this.FormConfig.Form)) {\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\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\n this.formsService.UpdateValuesReference(\n {\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 }\n}\n","\n","import { Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CardFormConfigModel } from './card-form-config.model';\n\nexport class BaseFormConfigModel {\n\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}","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 { AbstractControl, FormControl, FormGroup, Validators } 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\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\n super(formsService, eacSvc);\n \n }\n\n public ngOnInit(): void {\n this.FormConfig = new BaseFormConfigModel({FormName: 'TestFormComponent'});\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}\n","<form \n fxFlex \n fxLayout=\"row\" \n fxLayout.lt-md=\"column\" \n [formGroup]=\"FormConfig.Form\">\n <lcu-form-card\n fxFlex\n [config]=\"FormConfig.CardConfig\"\n [form]=\"FormConfig.Form\"\n [is-dirty]=\"FormConfig.IsDirty\">\n <div fxLayout=\"column\">\n <mat-form-field appearance=\"fill\" fxFlex class=\"margin-right-1 margin-bottom-2\">\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]=\"Name.invalid || Name.disabled ? 'Project Name' : ''\"\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]=\"Description.valid ? 'valid-control' : 'invalid-control'\"\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>","import { Component, OnInit, AfterViewInit, } 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 // Properties\n public ConnectClicked: boolean;\n\n // Constructors\n constructor() {}\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","<div \n fxFlex \n fxLayout=\"column\"\n 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 <h3 class=\"mat-display-1 margin-bottom-4\">\n Connect your git provider\n </h3>\n\n <!-- href=\"/.oauth/github\" -->\n <a \n (click)=\"ConnectGitHubProvider();\" \n mat-raised-button color=\"primary\" \n class=\"github margin-y-3\"\n [disabled]=\"ConnectClicked\">\n Connect with GitHub\n\n <span class=\"octocat-icon\"></span>\n </a>\n </div>\n <!-- </div> -->\n</div>","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\n public SmallScreen:boolean;\n\n\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}\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\n<!-- LEFT COL -->\n\n <div \n class=\"col-left\" \n fxFlex.gt-md=\"25%\"\n fxFlexOrder.lt-md=\"1\"\n >\n <ng-content select=\"[left]\"></ng-content>\n\n </div>\n\n <!-- CENTER COL -->\n\n <div \n class=\"col-center\" \n fxFlex.gt-md=\"50%\" \n fxFlexOrder.lt-md=\"3\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- RIGHT COL -->\n\n <div \n class=\"col-right\" \n fxFlex.gt-md=\"25%\" \n fxFlexOrder.lt-md=\"2\"\n >\n <ng-content select=\"[right]\"></ng-content>\n </div>\n\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\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('title') \n public Title: 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\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\n public MainActionClickEvent(){\n this.MainActionClicked.emit({});\n }\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\">{{ Title }}</div>\n </div>\n\n <mat-icon\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n >\n {{ MainIcon }}\n </mat-icon>\n\n <mat-icon\n *ngIf=\"State?.Loading\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n >\n add\n </mat-icon>\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content skeleton-block [effect]=\"SkeletonEffect\"></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 skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Name of the content\n </div>\n </div>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\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 *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\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 *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div class=\"header-description\">{{ SecondarySlotDescription }}</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, 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\n constructor(public dialogRef: MatDialogRef<UpgradeDialogComponent>,\n ) { }\n\n public ngOnInit(): void {\n }\n\n public CloseDialog(){\n this.dialogRef.close();\n }\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 \n <div class=\"upgrade-container\" fxLayout=\"column\" fxLayoutAlign=\"center start\">\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 src=\"./assets/images/Happy_Lady.png\" id=\"upgrade-promo-image\" alt=\"Fathym Premium Free During Beta\">\n </div>\n</div>\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 \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\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\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\n dialogRef.afterClosed().subscribe((result) => {\n // console.log('The dialog was closed');\n // console.log(\"result:\", result)\n });\n\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 class=\"project-card-header\" fxLayoutAlign=\"center center\">\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"host-anchor\">\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\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 skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\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 skeleton-text [effect]=\"SkeletonEffect\" 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\">flutter_dash</mat-icon>\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 class=\"project-card-header\" fxLayoutAlign=\"center center\">\n <mat-card-title class=\"project-card-name\" *ngIf=\"Name\">\n {{ Name }}\n </mat-card-title>\n\n <mat-card-subtitle class=\"project-card-description\" *ngIf=\"Description\">\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 (click)=\"UpgradeClicked()\"\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 <div class=\"upgrade-text\" (click)=\"UpgradeClicked()\">\n Upgrade to premium now\n </div>\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\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\n constructor() {\n \n }\n\n ngOnInit(): void {\n }\n\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 class=\"analytic-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div class=\"percent-change increase\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ .16 | percent}}</div>\n </div>\n\n <!-- <div class=\"percent-change decrease\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_down</mat-icon>\n <div>16</div>\n </div> -->\n </div>\n\n <!-- </ng-container> -->\n </mat-card-content>\n <!-- <mat-card-actions>\n <button mat-button>LIKE</button>\n <button mat-button>SHARE</button>\n </mat-card-actions> -->\n </mat-card>\n","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\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(this.DevOpsActionLookup);\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(this.MainBranchFormControl.value) < 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 = this.EditingSourceControl.Branches;\n } else if (this.BranchOptions?.length === 1) {\n this.BranchesFormControl.setValue(this.BranchOptions[0].Name);\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(this.BuildPathOptions[0]);\n }\n });\n }\n }\n\n protected listOrganizations(): void {\n this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe((response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\"Organization Options: \", this.OrganizationOptions);\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(this.EditingSourceControl?.Repository);\n }, 0);\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\n .LoadProjectHostingDetails()\n .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\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\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n\n <div class=\"card\">\n\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 *ngFor=\"let devOpsActionLookup of DevOpsActionLookups\">\n <mat-option \n [value]=\"devOpsActionLookup\" \n *ngIf=\"DevOpsActions[devOpsActionLookup]; let devOpsAction\">\n {{ devOpsAction.Name }}\n </mat-option>\n </ng-container>\n\n <mat-option value=\"\">-- Create New --</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"card\" *ngIf=\"OrganizationFormControl?.valid || !Loading\">\n <mat-form-field \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 matSuffix (click)=\"RefreshOrganizations()\" matTooltip=\"Refresh Organization\" color=\"accent\"> refresh </mat-icon>\n\n <a matSuffix href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\n <mat-icon color=\"accent\" matTooltip=\"Re-authorize Organizations\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a href=\"https://github.com/account/organizations/new\" class=\"primary-link\" target=\"_blank\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n RepositoryFormControl?.valid ||\n (OrganizationFormControl?.valid && !Loading)\n \">\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>description</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'repository'\" \n [placeholder]=\"\n OrganizationFormControl?.valid\n ? 'Repository'\n : 'Repository (select organization first)'\n \" [disabled]=\"\n !OrganizationFormControl?.valid || Loading || HostingDetails?.Loading\n \" (selectionChange)=\"RepositoryChanged($event)\" *ngIf=\"!CreatingRepository\" required>\n <ng-container *ngFor=\"let repoOpt of RepositoryOptions\">\n <mat-option [value]=\"repoOpt.Name\">\n {{ repoOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <input matInput placeholder=\"Repository (creates new if does not exist)\"\n [formControlName]=\"SourceControlRoot + 'repository'\" *ngIf=\"CreatingRepository\"\n [fxHide]=\"Loading || HostingDetails?.Loading\" required />\n\n <mat-icon matSuffix (click)=\"CreateRepository()\" [fxHide]=\"Loading || HostingDetails?.Loading\"\n *ngIf=\"!CreatingRepository && OrganizationFormControl?.valid\">\n add_circle\n </mat-icon>\n\n <button mat-button type=\"button\" (click)=\"SaveRepository()\"\n *ngIf=\"CreatingRepository && RepositoryFormControl?.valid\">\n\n <mat-icon matSuffix color=\"primary\">\n save\n </mat-icon>\n </button>\n\n <button mat-button type=\"button\" (click)=\"CancelCreateRepository()\" *ngIf=\"CreatingRepository\">\n\n <mat-icon matSuffix>\n cancel\n </mat-icon>\n </button>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BranchesFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBranches\n \">\n <mat-form-field class=\"mat-full-width\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-label>Selected Branches</mat-label>\n\n <mat-autocomplete (optionSelected)=\"BranchOptionSelected($event)\" #branchOptions=\"matAutocomplete\">\n <ng-container *ngFor=\"let branchOpt of BranchOptions\">\n <mat-option [value]=\"branchOpt.Name\">\n {{ branchOpt.Name }}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n\n <mat-chip-list #selectedBranches>\n <mat-chip [removable]=\"true\" (removed)=\"RemoveBranchOption(selBranch)\"\n *ngFor=\"let selBranch of SelectedBranches\">\n {{ selBranch }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input matInput placeholder=\"New Branch...\" [formControlName]=\"SourceControlRoot + 'branches'\" #branches\n [matAutocomplete]=\"branchOptions\" [matChipInputFor]=\"selectedBranches\"\n [matChipInputSeparatorKeyCodes]=\"SeparatorKeysCodes\" [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"AddBranchOption($event)\" [disabled]=\"Loading || HostingDetails?.Loading\"\n required />\n </mat-chip-list>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width with-hint\" [fxShow]=\"SelectedBranches?.length > 1\">\n <mat-icon class=\"org-icon\" matPrefix>account_tree</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'mainBranch'\" placeholder=\"Main Branch\"\n [disabled]=\"Loading || HostingDetails?.Loading\" (selectionChange)=\"MainBranchChanged($event)\" required>\n <ng-container *ngFor=\"let branch of SelectedBranches\">\n <mat-option [value]=\"branch\">\n {{ branch }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-icon matSuffix (click)=\"RefreshOrganizations()\" color=\"accent\"> refresh </mat-icon>\n\n <a matSuffix mat-icon-button href=\"/.oauth/github?oauth-force-edit=true\" target=\"_blank\" color=\"accent\">\n <mat-icon matTooltip=\"Re-authorize Organizations\" color=\"accent\"> launch </mat-icon>\n </a>\n\n <mat-hint>\n If you don't have an organization or would like to create a new one,\n <a href=\"https://github.com/account/organizations/new\" target=\"_blank\"class=\"primary-link\">\n start here\n </a>\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"card\" *ngIf=\"\n (BuildPathFormControl?.valid ||\n (OrganizationFormControl?.valid &&\n RepositoryFormControl?.valid &&\n !Loading)) &&\n !CreatingRepository &&\n UseBuildPath\n \">\n <mat-form-field class=\"mat-full-width with-hint\">\n <mat-icon class=\"org-icon\" matPrefix>build</mat-icon>\n\n <mat-select [formControlName]=\"SourceControlRoot + 'buildPath'\" placeholder=\"Build Path\"\n [disabled]=\"Loading || BuildPathDisabled\" (selectionChange)=\"BuildPathChanged($event)\" required>\n <ng-container *ngFor=\"let buildPath of BuildPathOptions\">\n <mat-option [value]=\"buildPath\">\n {{ buildPath }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <mat-hint>\n The build path identifies which build action to use for your\n configuration.\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngIf=\"Loading\">\n <div class=\"spread\">\n <lcu-loader style=\"margin: auto\" [loading]=\"true\"></lcu-loader>\n\n <div class=\"margin-3\">\n <h4 class=\"mat-title\" *ngIf=\"!OrganizationFormControl?.valid\">\n Loading organizations\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"\n OrganizationFormControl?.valid && !RepositoryFormControl?.valid\n \">\n Loading repositories\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"RepositoryFormControl?.valid && !BranchesFormControl?.valid\">\n Loading branches\n </h4>\n\n <h4 class=\"mat-title\" *ngIf=\"\n (RepositoryFormControl?.valid || BranchesFormControl?.valid) &&\n !BuildPathFormControl?.valid\n \">\n Loading build paths\n </h4>\n </div>\n </div>\n </div>\n </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>","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}\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\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\n public ErrorMessage: string;\n\n constructor( public dialogRef: MatDialogRef<SourceControlDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: SCDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n \n }\n\n\n public CloseDialog(){\n this.dialogRef.close();\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 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 }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveSourceControl(){\n this.DevopsSourceControl.SaveSourceControl();\n }\n\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\n <ng-container *ngIf=\"!HasConnection\">\n \n <lcu-git-auth></lcu-git-auth>\n\n </ng-container>\n\n <ng-conatiner *ngIf=\"HasConnection\" fxLayout=\"column\">\n\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 </lcu-devops-source-control-form>\n </div>\n \n <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error>\n\n </ng-conatiner>\n\n</mat-dialog-content>\n\n<mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"space-between center\"\n \n>\n <div fxLayoutAlign=\"start center\">\n <button\n mat-raised-button\n color=\"warn\"\n (click)=\"DeleteSourceControl(data.scLookup)\"\n matTooltip=\"Delete {{ data.scLookup }}\"\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 Cancel\n\n </button>\n\n\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]=\"!DevOpsSourceControlFormGroup?.valid || !DevOpsSourceControlFormGroup?.dirty\">\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n\n</mat-dialog-actions>\n\n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FeedItem, FeedItemAction } from '../../models/user-feed.model';\nimport moment from 'moment';\nimport { JsonHubProtocol } from '@aspnet/signalr';\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';\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 OnInit {\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 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 ) {}\n\n // Life Cycle\n public ngOnInit(): void {\n this.handleRefresh();\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);\n } else {\n alert('other modaled ' + action.Action);\n }\n }\n }\n\n public OpenSourceControlDialog(scLookup: 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 },\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 // Helpers\n protected handleRefresh(): void {\n if (this.FeedItem?.RefreshLink) {\n 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 }, 5000);\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\">{{ FeedItem.Title }}</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.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 class=\"commit-message\">\n {{ tab.Data?.Commit?.Message }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Content\">\n <div class=\"content\">\n {{ tab.Data?.Content }}\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Video\">\n <div\n class=\"video\"\n [innerHTML]=\"SafeHtml(tab.Data.Video)\"\n ></div>\n </ng-container>\n\n <ng-container *ngIf=\"tab.Data?.Comments\">\n <div class=\"comments\">\n <ng-container *ngIf=\"tab.Data?.Comments?.length <= 0\">\n <h4>No comments provided</h4>\n </ng-container>\n\n <mat-card *ngFor=\"let comment of tab.Data?.Comments\">\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 {{ comment.Comment }}\n </mat-card-content>\n </mat-card>\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 mat-button [color]=\"action.Color\" (click)=\"HandleAction(action)\">\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\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"col-container\" fxLayout=\"row\">\n\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\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\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\n public ngAfterViewInit(){\n this.assignCarouselClass();\n }\n\n public LeftChevronClicked(){\n\n this.removeCarouselClasses();\n \n if(this.carouselIndex === 0){\n this.carouselIndex = this.Stats.length-1;\n }\n else{\n this.carouselIndex--;\n }\n \n this.assignCarouselClass();\n \n }\n\n public MoreDetailsClicked(){\n console.log(\"More details clicked on carousel item\", this.Stats[this.carouselIndex]);\n }\n \n public RightChevronClicked(){\n this.removeCarouselClasses();\n \n if(this.carouselIndex === this.Stats.length-1){\n this.carouselIndex = 0;\n }\n else{\n this.carouselIndex++;\n }\n \n this.assignCarouselClass();\n }\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>document.getElementById(\"carousel-\"+this.carouselIndex)).classList.remove('active');\n }\n else{\n (<HTMLElement>document.getElementById(\"carousel-\"+i)).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>document.getElementById(\"carousel-\"+this.carouselIndex)).classList.add('active');\n }\n else{\n (<HTMLElement>document.getElementById(\"carousel-\"+i)).classList.add('hidden');\n }\n }\n }\n\n}\n","<div stats class=\"carousel-container\">\n <div class=\"chevron-container\" fxLayout=\"row\">\n <button mat-icon-button class=\"chevron-button\" id=\"left-chevron\" (click)=\"LeftChevronClicked()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button mat-icon-button class=\"chevron-button\" id=\"right-chevron\" (click)=\"RightChevronClicked()\">\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 { AbstractControl, FormBuilder, FormGroup, Validators } 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\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,\n 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(\"submitting security values: \", this.SecurityFormGroup.value);\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}\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\"> save </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]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\"\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 = this.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret = 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 = 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 = !!this.IncludeRequestFormControl.value;\n\n app.Processor.Permanent = !!this.PermanentFormControl.value;\n\n app.Processor.PreserveMethod = !!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: this.EditingApplicationLookup || Guid.CreateRaw(),\n };\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\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(\"Source Control: \", this.SourceControls[this.SourceControlFormControl.value])\n\n this.appsFlowSvc\n .ListBuildPaths(\n this.SourceControls[this.SourceControlFormControl.value]?.Organization,\n this.SourceControls[this.SourceControlFormControl.value]?.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(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 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(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 class=\"processor-details-form\" [formGroup]=\"ProcessorDetailsFormGroup\" (ngSubmit)=\"SaveProcessorDetails()\">\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\n <ng-container *ngFor=\"let fc of ValidFormControls\">\n\n <skeleton-block \n [id]=\"fc\"\n class=\"s-block\" \n effect=\"wave\"\n ></skeleton-block>\n \n </ng-container>\n\n <lcu-loader *ngIf=\"LCUType === 'Redirect'\" [loading]=\"State?.Loading\"></lcu-loader>\n\n </ng-container>\n <!-- END SKELETON -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n\n <!-- <mat-card-content> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <mat-option value=\"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=\"let scLookup of SourceControlLookups\" \n [value]=\"scLookup\">\n {{scLookup}}\n </mat-option>\n \n \n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width with-hint\"\n *ngIf=\"\n SourceControlFormControl?.valid\n \"\n > \n <mat-select\n formControlName=\"buildPath\"\n placeholder=\"Build Path\"\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\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n\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 </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n \n </div>\n \n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"includeRequest\">\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\n </ng-container>\n \n<!-- </mat-card> -->\n</form>\n \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatSelectChange } from '@angular/material/select';\nimport { EaCApplicationAsCode, EaCEnvironmentAsCode, EaCProjectAsCode, EaCSourceControl } 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\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(\"submitting source control: \", this.SourceControlFormGroup.value);\n this.SaveFormEvent.emit(this.SourceControlFormGroup.value);\n\n }\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\n protected setupBuildForm(): void {\n this.SourceControlFormGroup.addControl(\n 'hasBuild',\n this.formBldr.control(\n !!this.EditingApplication.LowCodeUnit?.SourceControlLookup || 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}\n","<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n","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] = 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: 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 \n this.eacSvc.SaveEnvironmentAsCode(saveEnvReq).then(res =>{\n this.ResponseEvent.emit(res);\n });\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(\n this.BuildPipeline || '',\n [Validators.required]\n )\n );\n\n this.BuildPipelineFormGroup.addControl(\n 'devOpsActionName',\n this.formBuilder.control(\n this.DevOpsAction?.Name || this.SelectedHostingOption?.Name || '',\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\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <ng-container *ngIf=\"SelectedHostingOption?.Inputs\">\n <ng-container *ngFor=\"let hostOption of HostingDetails?.HostingOptions\">\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n </ng-container>\n\n </ng-container>\n\n <skeleton-block \n *ngIf=\"\"\n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n </ng-container>\n\n <ng-container *ngIf=\"!HostingDetails?.Loading && !State?.Loading\">\n\n <!-- <div *ngIf=\"!HostingDetails?.Loading\"> -->\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n formControlName=\"buildPipeline\"\n placeholder=\"Build Pipeline\"\n [disabled]=\"Disabled\"\n (selectionChange)=\"BuildPipelineChanged()\"\n required\n >\n <ng-container\n *ngFor=\"let hostOption of HostingDetails?.HostingOptions; let i = index\"\n >\n <mat-option [value]=\"hostOption.Lookup\">\n {{ hostOption.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n \n <mat-hint>\n <ng-container *ngFor=\"let hostOption of HostingDetails?.HostingOptions\">\n <span *ngIf=\"BuildPipeline == hostOption?.Lookup\">\n {{ hostOption.Description }}\n </span>\n </ng-container>\n </mat-hint>\n </mat-form-field>\n \n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n formControlName=\"devOpsActionName\"\n placeholder=\"Name of DevOps Action\"\n required=\"true\"\n />\n </mat-form-field>\n \n <ng-container *ngFor=\"let input of SelectedHostingOption?.Inputs\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n [formControlName]=\"input.Lookup\"\n [placeholder]=\"input.Placeholder\"\n [required]=\"input.Required\"\n />\n \n <mat-hint>{{ input.Hint }}</mat-hint>\n </mat-form-field>\n </ng-container>\n \n <div *ngIf=\"BuildPipeline == 'npm-release'\">\n <mat-form-field class=\"mat-full-width with-hint padding-bottom-4\">\n <mat-icon matPrefix>security</mat-icon>\n \n <input\n id=\"npm-token\"\n matInput\n type=\"text\"\n formControlName=\"npmToken\"\n placeholder=\"NPM token\"\n [required]=\"!Disabled\"\n style=\"-webkit-text-security: disc;\"\n />\n <mat-hint>\n Securely publish to NPM, provide an NPM Personal Access Token (PAT) with publish access to the organization used for your NPM packages. \n Learn how to create and view access tokens \n <a\n href=\"https://docs.npmjs.com/creating-and-viewing-access-tokens\"\n target=\"_blank\"\n 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\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})\n\nexport class BuildPipelineDialogComponent implements OnInit {\n\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\nconstructor( public dialogRef: MatDialogRef<BuildPipelineDialogComponent>,\n protected eacSvc: EaCService,\n @Inject(MAT_DIALOG_DATA) public data: BPDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n }\n\n public CloseDialog(){\n this.dialogRef.close();\n }\n\n public DeleteDevOpsAction(): void {\n if (\n confirm(`Are you sure you want to delete build pipeline '${this.data.doaName}'?`)\n ) {\n this.eacSvc.DeleteDevOpsAction(this.data.devopsActionLookup);\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(\"Build Pipeline Created Succesfully\", \"Dismiss\",{\n duration: 5000\n });\n this.CloseDialog();\n }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveBuildPipeline(){\n this.BuildPipelineControl.SaveEnvironment();\n }\n\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\n<ng-container *ngIf=\"!HasConnection\">\n \n <lcu-git-auth></lcu-git-auth>\n\n</ng-container>\n\n<ng-container *ngIf=\"HasConnection\">\n\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\n</lcu-build-pipeline-form>\n\n<mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n</mat-error>\n\n</ng-container>\n</mat-dialog-content>\n\n\n<mat-dialog-actions \n class=\"actions-container\" \n div fxLayout=\"row\" \n fxLayoutAlign=\"space-between center\"\n>\n <div fxLayoutAlign=\"start center\">\n\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 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)=\"SaveBuildPipeline()\"\n [disabled]=\"!BuildPipelineFormGroup?.valid || !BuildPipelineFormGroup?.dirty\">\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n </div>\n\n</mat-dialog-actions>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { EaCApplicationAsCode } from '@semanticjs/common';\nimport { EaCService, SaveApplicationAsCodeEventRequest } 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\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,\n 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: 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 = `${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\n //HELPERS\n protected setupApplicationForm(){\n if (this.EditingApplication != null) {\n this.ApplicationFormGroup = this.formBldr.group({\n name: [this.EditingApplication.Application?.Name, Validators.required],\n description: [\n this.EditingApplication.Application?.Description,\n Validators.required,\n ],\n route: [this.CurrentRoute ? this.CurrentRoute :\n this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||\n '/',\n Validators.required,\n ],\n // priority: [\n // this.EditingApplication.Application?.Priority || 10000,\n // Validators.required,\n // ],\n });\n }\n }\n\n \n\n}\n","<form class=\"form-card\" [formGroup]=\"ApplicationFormGroup\" (ngSubmit)=\"SubmitApplicationControl()\" >\n <!-- <mat-card class=\"spread flow-card\"> -->\n <!-- <mat-card-header>\n <mat-card-title>\n <ng-container *ngIf=\"EditingApplication?.Application\">\n Edit Application:\n {{ EditingApplication.Application?.Name }}\n </ng-container>\n\n <ng-container *ngIf=\"!EditingApplication?.Application\">\n Create an Application\n </ng-container>\n </mat-card-title>\n </mat-card-header> -->\n\n <!-- <mat-card-content> -->\n <ng-container *ngIf=\"State?.Loading\">\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\n <skeleton-block \n class=\"s-block\"\n effect=\"wave\" \n ></skeleton-block>\n\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 \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((appLookup: string) => {\n apps[appLookup] = this.ApplicationsBank[appLookup];\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 || 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((appLookup) => this.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 = this.Applications[wal];\n\n return wa?.LookupConfig?.PathRegex.startsWith(currentRouteBase);\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 *ngIf=\"RoutedApplications[SelectedRoute][appLookup]; let app\">{{\n app.Application?.Name\n }}</span>\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})\n\nexport class CustomDomainDialogComponent implements OnInit {\n\n public DomainData: {};\n\n constructor(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\n public ngOnInit(): void {\n }\n\n public CloseDialog(){\n this.dialogRef.close();\n }\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\n\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\n\n\n <lcu-domains\n [data]=\"DomainData\"\n >\n \n </lcu-domains>\n\n <!-- <mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n </mat-error> -->\n\n</mat-dialog-content>\n\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\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(public eacSvc: EaCService,\n public dialogRef: MatDialogRef<EditApplicationDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ApplicationDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n }\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 }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveApplication(){\n this.EditApplicationControl.SaveApplication();\n }\n\n}\n","<div class=\"dialog-header\" fxLayoutAlign=\"space-between center\">\n <h2 mat-dialog-title>Edit Application:\n {{ data.application?.Application?.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\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</lcu-edit-application-form>\n\n<mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n</mat-error>\n\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)=\"SaveApplication()\"\n [disabled]=\"!ApplicationFormGroup?.valid || !ApplicationFormGroup?.dirty\">\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n\n</mat-dialog-actions>\n\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 { EaCApplicationAsCode, EaCEnvironmentAsCode, EaCSourceControl, EnterpriseAsCode } 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 { EaCService, SaveApplicationAsCodeEventRequest } 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})\n\nexport class NewApplicationDialogComponent implements OnInit {\n\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\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\n this.SetupApplication(Guid.CreateRaw());\n \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\n \n\n public SaveApplication(): void {\n const app: EaCApplicationAsCode = {\n Application: {\n Name: this.ApplicationFormControls.NameFormControl.value,\n Description: 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: this.ProcessorDetailsFormControls.MethodsFormControl?.value\n ?.split(' ')\n .filter((v: string) => !!v),\n },\n Processor: {\n Type: this.ProcessorDetailsFormControls.ProcessorType,\n },\n };\n\n switch (app.Processor.Type) {\n case 'DFS':\n app.Processor.BaseHref = `${this.ApplicationFormControls.RouteFormControl.value}/`.replace(\n '//',\n '/'\n );\n\n app.Processor.DefaultFile =\n this.ProcessorDetailsFormControls.DefaultFileFormControl.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 = this.ProcessorDetailsFormControls.BuildFormControl.value;\n\n app.LowCodeUnit.Path =\n this.ProcessorDetailsFormControls.BuildPathFormControl.value;\n break;\n\n case 'NPM':\n app.LowCodeUnit.Package = this.ProcessorDetailsFormControls.PackageFormControl.value;\n\n app.LowCodeUnit.Version = this.ProcessorDetailsFormControls.VersionFormControl.value;\n break;\n\n case 'Zip':\n app.LowCodeUnit.ZipFile = this.ProcessorDetailsFormControls.ZipFileFormControl.value;\n break;\n }\n break;\n\n case 'OAuth':\n app.Processor.Scopes = this.ProcessorDetailsFormControls.ScopesFormControl.value.split(' ');\n\n app.Processor.TokenLookup = 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 = this.ProcessorDetailsFormControls.ClientIDFormControl.value;\n\n app.LowCodeUnit.ClientSecret = this.ProcessorDetailsFormControls.ClientSecretFormControl.value;\n break;\n }\n break;\n\n case 'Proxy':\n app.Processor.InboundPath = 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 = this.ProcessorDetailsFormControls.APIRootFormControl.value;\n\n app.LowCodeUnit.Security = this.ProcessorDetailsFormControls.SecurityFormControl.value;\n\n break;\n\n case 'SPA':\n app.LowCodeUnit.SPARoot = this.ProcessorDetailsFormControls.SPARootFormControl.value;\n break;\n }\n break;\n\n case 'Redirect':\n app.Processor.Permanent = !!this.ProcessorDetailsFormControls.PermanentFormControl.value;\n\n app.Processor.PreserveMethod = !!this.ProcessorDetailsFormControls.PreserveMethodFormControl.value;\n\n app.Processor.Redirect = 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 (this.ProcessorDetailsFormControls.ProcessorType !== 'redirect' && this.ProcessorDetailsFormControls.LCUType === 'GitHub') {\n if (app) {\n app.LowCodeUnit.SourceControlLookup = 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\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 }\n else{\n this.ErrorMessage = status.Message;\n }\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\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 fxLayout=\"row\" \n fxLayoutAlign=\"end center\"\n>\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=\"ProcessorDetailsFormControls && ApplicationFormControls && !State?.Loading\"\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 || \n !ApplicationFormControls?.ApplicationFormGroup?.valid\n \"\n >\n Save Application\n </button>\n</mat-dialog-actions>\n\n\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, EaCEnvironmentAsCode, EaCSourceControl } 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\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})\n\nexport class ProcessorDetailsDialogComponent implements OnInit {\n\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(protected eacSvc: EaCService, \n public dialogRef: MatDialogRef<ProcessorDetailsDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ProcessorDetailsDialogData,\n protected snackBar: MatSnackBar) { }\n\n public ngOnInit(): void {\n }\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(\"Build Pipeline Created Succesfully\", \"Dismiss\",{\n duration: 5000\n });\n this.CloseDialog();\n }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public SaveProcessorDetails(){\n this.ProcessorDetailsFormControls.SaveProcessorDetails();\n\n }\n\n\n \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\n\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\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)=\"SaveProcessorDetails()\"\n [disabled]=\"!ProcessorDetailsFormGroup?.valid || !ProcessorDetailsFormGroup?.dirty\"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n\n</mat-dialog-actions>\n\n\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\n public SkeletonEffect: string;\n\n constructor() { \n this.SkeletonEffect = 'wave';\n }\n\n ngOnInit(): void {\n }\n\n}\n","<mat-card class=\"social-card\">\n <mat-card-header>\n \n <skeleton-avatar mat-card-avatar size=\"100\" [effect]=\"SkeletonEffect\"></skeleton-avatar>\n \n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">FeedItem Title</mat-card-title>\n \n <mat-card-subtitle>\n <div skeleton-text [effect]=\"SkeletonEffect\">FeedItem Subtitle</div>\n <div >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">check</mat-icon>\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 amet\n ante dui. Praesent ut aliquam metus. Phasellus consectetur non eros eu\n gravida. Vestibulum faucibus laoreet leo, ac molestie felis tincidunt\n semper. Vivamus lorem ipsum, sagittis nec blandit sed, accumsan sed\n dolor. Etiam tincidunt vel ligula ut malesuada. Nulla sit amet fermentum\n libero. Quisque magna tellus, pellentesque in convallis vitae, aliquet\n et orci. Pellentesque commodo ante id est viverra posuere ac vitae\n ligula. Ut sed ullamcorper purus. Integer 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, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } 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\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,\n 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(\"submitting EmulatedDevices values: \", this.EmulatedDevicesFormGroup.value);\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}\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\"> save </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]=\"!EmulatedDevicesFormGroup.valid || !EmulatedDevicesFormGroup.dirty\"\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';\r\n\r\nexport class IoTEnsembleState {\r\n public AccessLicenseType?: string;\r\n\r\n public AccessPlanGroup?: string;\r\n\r\n public DataInterval?: number;\r\n\r\n public DataRetention?: number;\r\n\r\n public DevicesConfig?: IoTEnsembleConnectedDevicesConfig;\r\n\r\n public Dashboard?: IoTEnsembleDashboardConfiguration;\r\n\r\n public Drawers?: IoTEnsembleDrawersConfig;\r\n\r\n public Emulated?: EmulatedDeviceInfo;\r\n\r\n public Error?: ErrorContext;\r\n\r\n public ExpandedPayloadID?: string;\r\n\r\n public HasAccess?: boolean;\r\n\r\n public Loading?: boolean;\r\n\r\n public SelectedDeviceID?: string;\r\n\r\n public Storage?: IoTEnsembleStorageConfiguration;\r\n\r\n public Telemetry?: IoTEnsembleTelemetry;\r\n\r\n public UserEnterpriseLookup?: string;\r\n}\r\n\r\nexport class EmulatedDeviceInfo {\r\n public Enabled?: boolean;\r\n\r\n public Loading?: boolean;\r\n}\r\n\r\nexport class IoTEnsembleDashboardConfiguration {\r\n public FreeboardConfig?: any;\r\n\r\n public PowerBIConfig?: any;\r\n}\r\n\r\nexport class ErrorContext {\r\n public ActionPath?: string;\r\n\r\n public ActionTarget?: string;\r\n\r\n public ActionText?: string;\r\n\r\n public Message?: string;\r\n\r\n public Title?: string;\r\n}\r\n\r\nexport class IoTEnsembleDeviceEnrollment {\r\n public DeviceName?: string;\r\n}\r\n\r\nexport class IoTEnsembleConnectedDevicesConfig {\r\n public EnterpriseDevicesCount: number;\r\n\r\n public Devices?: IoTEnsembleDeviceInfo[];\r\n\r\n public Loading?: boolean;\r\n\r\n public MaxDevicesCount?: number;\r\n\r\n public Page?: number;\r\n\r\n public PageSize?: number;\r\n\r\n public SASTokens?: { [deviceName: string]: string };\r\n\r\n public Status?: Status;\r\n\r\n public TotalDevices?: number;\r\n}\r\n\r\nexport class IoTEnsembleDeviceInfo {\r\n [prop: string]: any;\r\n\r\n public ActivelySendingData?: boolean;\r\n\r\n public AuthenticationType?: string;\r\n\r\n public CloudToDeviceMessageCount?: number;\r\n\r\n public ConnectionString?: string;\r\n\r\n public DeviceID?: string;\r\n\r\n public DeviceName?: string;\r\n\r\n public LastStatusUpdate?: Status;\r\n\r\n}\r\n\r\nexport class IoTEnsembleTelemetry {\r\n\r\n public Enabled?: boolean;\r\n\r\n public Loading?: boolean;\r\n\r\n public Page?: number;\r\n\r\n public PageSize?: number;\r\n\r\n public Payloads?: IoTEnsembleTelemetryPayload[];\r\n\r\n public RefreshRate?: number;\r\n\r\n public LastSyncedAt?: string;\r\n\r\n public TotalPayloads?: number;\r\n}\r\n\r\nexport class IoTEnsembleTelemetryPayload {\r\n [prop: string]: any;\r\n\r\n public DeviceData?: { [prop: string]: any };\r\n\r\n public DeviceID?: string;\r\n\r\n public DeviceType?: string;\r\n\r\n public ID?: string;\r\n\r\n public SensorMetadata?: { [prop: string]: any };\r\n\r\n public SensorReadings?: { [prop: string]: any };\r\n\r\n public Timestamp?: Date;\r\n\r\n public TotalPayloads?: number;\r\n\r\n public Version?: string;\r\n}\r\n\r\nexport class IoTEnsembleDrawersConfig {\r\n public DetailsActive: boolean;\r\n\r\n public HasBackdrop: boolean;\r\n\r\n public NavActive: boolean;\r\n}\r\n\r\nexport class IoTEnsembleStorageConfiguration {\r\n public APIKeys: IoTEnsembleAPIKeyData[];\r\n\r\n public OpenAPISource: string;\r\n}\r\n\r\nexport class IoTEnsembleAPIKeyData {\r\n public Key: string;\r\n\r\n public KeyName: string;\r\n}\r\n\r\nexport enum ColdQueryDataTypes {\r\n Telemetry = 'Telemetry',\r\n Observations = 'Observations',\r\n SensorMetadata = 'SensorMetadata',\r\n}\r\n\r\nexport enum ColdQueryResultTypes {\r\n CSV = 'CSV',\r\n JSON = 'JSON',\r\n JSONLines = 'JSONLines',\r\n}\r\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(\n `${this.apiRoot}/api/lowcodeunit/iot/cold-query`,\n {\n headers: this.loadHeaders(),\n }\n );\n }\n \n public ToggleEmulatedEnabled(): Observable<object> {\n return this.http.get(\n `${this.apiRoot}/api/lowcodeunit/userfeed`,\n {\n headers: this.loadHeaders(),\n }\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 { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSelectChange } from '@angular/material/select';\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 { ApplicationsFlowState, GitHubBranch, GitHubOrganization, GitHubRepository } 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})\n\nexport class FeedHeaderDialogComponent implements OnInit {\n\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\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 FeedHeaderFormGroup: FormGroup;\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\n\n\n constructor(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 \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: [\n ['subscript', 'superscript'],\n ['fontSize']\n ]\n };\n\n this.SlicesCount = 5;\n\n this.Slices = {\n Sources: this.SlicesCount,\n };\n\n if(this.SourceControlLookups.length === 1){\n this.SourceControl = 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 this.SourceControl = this.SourceControls[this.SourceControlFormControl.value];\n this.listBranches();\n\n }\n\n public FeatureBranchSourceControlChanged(event: MatSelectChange){\n this.SourceControl = this.SourceControls[this.SourceControlFormControl.value];\n this.listOrganizations();\n\n }\n\n public IssueSourceControlChanged(event: MatSelectChange){\n this.SourceControl = this.SourceControls[this.SourceControlFormControl.value];\n\n }\n\n public Submit(){\n let returnObject: FeedEntry = {\n ActionIcon: this.ActionIconControl ? this.ActionIconControl.value : null,\n ActionLink: this.ActionLinkControl ? this.ActionLinkControl.value : null,\n ActionText: this.ActionTextControl ? this.ActionTextControl.value : null,\n Avatar: null,\n Content: this.EditorControl ? this.EditorControl.value : null,\n ExpiresAt: null,\n Organization: this.OrganizationFormControl ? this.OrganizationFormControl.value : null,\n Repositroy: this.RepositoryFormControl ? this.RepositoryFormControl.value : null,\n SourceBranch: this.SourceBranchFormControl ? this.SourceBranchFormControl.value : null,\n SourceControlLookup: this.SourceControlFormControl ? this.SourceBranchFormControl.value : null,\n Subtitle: this.SubtitleFormControl ? this.SubtitleFormControl.value : null,\n TargetBranch: this.TargetBranchFormControl ? this.TargetBranchFormControl.value: null,\n Type: this.data.type,\n Title: this.TitleFormControl ? this.TitleFormControl.value : null,\n\n }\n console.log(\"Control: \", returnObject );\n\n let status = this.eacSvc.SubmitFeedEntry(returnObject);\n console.log(\"feed entry status: \", status);\n\n // console.log(\"Editor: \", this.EditorControl.value )\n }\n\n public OrganizationChanged(event: MatSelectChange): void {\n\n this.RepositoryFormControl.reset();\n\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 this.appsFlowSvc\n .ListBranches(\n this.SourceControl?.Organization,\n this.SourceControl?.Repository\n )\n .subscribe((response: BaseModeledResponse<GitHubBranch[]>) => {\n this.BranchOptions = response.Model; \n\n });\n \n }\n\n protected listOrganizations(): void {\n // this.Loading = true;\n\n this.appsFlowSvc\n .ListOrganizations()\n .subscribe((response: BaseModeledResponse<GitHubOrganization[]>) => {\n this.OrganizationOptions = response.Model;\n console.log(\"Organization Options: \", this.OrganizationOptions);\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(this.SourceControl?.Repository);\n }, 0);\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 }, 0);\n } \n });\n }\n\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\n protected setupAnnouncementForm(){\n this.setupBasicForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'subtitle',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionText',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'actionLink',\n this.formBldr.control(\n ''\n )\n );\n this.FeedHeaderFormGroup.addControl(\n 'actionIcon',\n this.formBldr.control(\n ''\n )\n );\n\n\n }\n\n protected setupPRForm(){\n this.listBranches();\n this.setupIssueForm();\n this.setupBranchesForm();\n\n\n }\n\nprotected setupBasicForm(){\n this.FeedHeaderFormGroup.addControl(\n 'title',\n this.formBldr.control(\n '',[Validators.required]\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'editor',\n this.formBldr.control(\n ''\n )\n );\n}\n\n\n protected setupIssueForm(){\n this.setupBasicForm();\n \n this.setupSourceControlForm();\n\n }\n\n protected setupFeatureBranchForm(){\n\n this.setupSourceControlForm();\n\n this.FeedHeaderFormGroup.addControl(\n 'organization',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'repository',\n this.formBldr.control(\n ''\n )\n );\n\n this.setupBranchesForm();\n\n }\n\n protected setupSourceControlForm(){\n this.FeedHeaderFormGroup.addControl(\n 'sourceControl',\n this.formBldr.control(\n ''\n )\n );\n }\n\n protected setupBranchesForm(){\n this.FeedHeaderFormGroup.addControl(\n 'targetBranch',\n this.formBldr.control(\n ''\n )\n );\n\n this.FeedHeaderFormGroup.addControl(\n 'sourceBranch',\n this.formBldr.control(\n ''\n )\n );\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\n <!-- ISSUE FORM -->\n <ng-container *ngIf=\"data.type === 'OpenIssue' \">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select \n formControlName=\"sourceControl\"\n (selectionChange)=\"IssueSourceControlChanged($event)\"\n\n >\n <ng-container *ngFor=\"let scLookup of SourceControlLookups | slice: 0:Slices.Sources\">\n <mat-option *ngIf=\"SourceControls[scLookup]; let sc\" [value]=\"scLookup\">\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\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\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\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <button \n *ngIf=\"ActionTextControl?.value || ActionIconControl?.value\"\n mat-button color=\"primary\" \n (click)=\"HandleAction(ActionLinkControl?.value)\"\n >\n <mat-icon *ngIf=\"ActionIconControl?.value\">{{ ActionIconControl?.value }}</mat-icon>\n \n {{ ActionTextControl?.value }}\n </button>\n\n <button \n *ngIf=\"!ActionTextControl?.value && !ActionIconControl?.value\"\n mat-button color=\"primary\" \n >\n <mat-icon>cruelty_free</mat-icon>\n \n Example Button\n </button>\n </div>\n\n </ng-container>\n\n <!-- PR FORM -->\n\n <ng-container *ngIf=\"data.type === 'PullRequest' \">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Source Control</mat-label>\n <mat-select \n formControlName=\"sourceControl\"\n (selectionChange)=\"PullRequestSourceControlChanged($event)\"\n >\n <ng-container *ngFor=\"let scLookup of SourceControlLookups | slice: 0:Slices.Sources\">\n <mat-option *ngIf=\"SourceControls[scLookup]; let sc\" [value]=\"scLookup\">\n {{sc.Name}}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" *ngIf=\"BranchOptions?.length > 0\">\n\n <mat-form-field appearance=\"fill\">\n <mat-label>Base</mat-label>\n <mat-select formControlName=\"targetBranch\" required\n >\n <mat-option *ngFor=\"let branchOpt of BranchOptions\" [value]=\"branchOpt.Name\">\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 >\n <mat-option *ngFor=\"let branchOpt of BranchOptions\" [value]=\"branchOpt.Name\">\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\n <angular-editor \n id=\"pr-editor\"\n formControlName=\"editor\" \n [config]=\"EditorConfig\"\n ></angular-editor>\n\n </ng-container>\n\n <!-- Feature Branch form -->\n\n <ng-container *ngIf=\"data.type === 'CreateBranch' \">\n\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <mat-form-field >\n <mat-label>Source Control</mat-label>\n <mat-select \n formControlName=\"sourceControl\"\n (selectionChange)=\"FeatureBranchSourceControlChanged($event)\"\n >\n <ng-container *ngFor=\"let scLookup of SourceControlLookups | slice: 0:Slices.Sources\">\n <mat-option *ngIf=\"SourceControls[scLookup]; let sc\" [value]=\"scLookup\">\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\n <mat-form-field *ngIf=\"OrganizationOptions?.length > 0\">\n\n <mat-select \n formControlName=\"organization\" \n placeholder=\"Organization\"\n (selectionChange)=\"OrganizationChanged($event)\" \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\n\n </mat-form-field>\n\n <mat-form-field *ngIf=\"RepositoryOptions?.length > 0\">\n\n <mat-select 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\n </div>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"space-around center\" *ngIf=\"BranchOptions?.length > 0\">\n\n <mat-form-field >\n <mat-label>Base Branch</mat-label>\n <mat-select formControlName=\"sourceBranch\" required\n >\n <mat-option *ngFor=\"let branchOpt of BranchOptions\" [value]=\"branchOpt.Name\">\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\n </ng-container>\n\n </form>\n \n \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\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]=\"\n !FeedHeaderFormGroup?.valid \n\"\n \n >\n Submit\n </button>\n</mat-dialog-actions>\n\n\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\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 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( \n protected eacSvc: EaCService,\n protected dialog: MatDialog) { \n\n this.SkeletonEffect = \"wave\";\n // this.selectedBtn = \"pr-btn\";\n\n }\n\n public ngOnInit(): void {\n \n }\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\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 \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 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 ? this.SourceControlLookup : 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 RouteToPath(path: string): void {\n window.location.href = path;\n }\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('selected');\n }\n\n protected removeSelectedBtn(){\n (<HTMLElement>document.getElementById(this.selectedBtn))?.classList.remove('selected');\n }\n\n}\n","<mat-card class=\"social-card\">\n <ng-container *ngIf=\"!State?.LoadingFeed\">\n <div class=\"gh-card-container\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <mat-icon fxFlex=\"15%\" class=\"gh-icon\" color=\"primary\">error_outline</mat-icon>\n <div fxFlex=\"85%\" class=\"gh-card-main-content\">\n <button \n mat-button \n class=\"main-btn\"\n (click)=\"CreateAnnouncement()\" \n color=\"primary\"\n >Create Team Announcement</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 fxLayout=\"row\" fxLayoutAlign=\"space-around center\" \n >\n <button \n *ngFor=\"let action of FeedHeaderActions\"\n mat-button \n (click)=\"OpenFHDialog(action.Action, action.Text)\" \n id=\"pr-btn\" \n color=\"primary\"\n >\n <mat-icon>{{action.Icon}}</mat-icon>\n {{action.Text}}\n </button>\n\n <!-- <button \n mat-button \n (click)=\"OpenIssue()\" \n id=\"oi-btn\" \n color=\"primary\"\n >\n Open Issue\n </button>\n\n <button \n mat-button \n (click)=\"CreateFeatureBranch()\" \n id=\"fb-btn\" \n color=\"primary\"\n >\n Feature Branch\n </button> -->\n\n <!-- <button mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"menu\">\n <mat-icon>more_horiz</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button class=\"gh-menu-action\" mat-menu-item (click)=\"CreateNewApp()\">\n Create New App\n </button>\n\n <button\n class=\"gh-menu-action\"\n mat-menu-item\n (click)=\"RouteToPath('/dashboard/create-project')\"\n >\n Create Project\n </button>\n </mat-menu> -->\n </mat-card-actions>\n </ng-container>\n\n <!-- SKELETON -->\n <ng-container *ngIf=\"State?.LoadingFeed\">\n <div id=\"gh-card-skeleton\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\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\">Feature Branch</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","\nimport { 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 {\n EaCDFSModifier,\n EaCProjectAsCode,\n} from '@semanticjs/common';\nimport { Guid } from '@lcu/common';\nimport { MatSelectChange } from '@angular/material/select';\nimport { EaCService, SaveDFSModifierEventRequest } 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 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\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\n public get ModifierLookups(): Array<string> {\n if(this.ProjectLookup){\n return this.State?.EaC?.Projects[this.ProjectLookup]?.ModifierLookups;\n }\n else if(this.ApplicationLookup){\n return this.State.EaC?.Applications[this.ApplicationLookup]?.ModifierLookups;\n }\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 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\n if(this.Level === \"enterprise\" && !this.EditingModifierLookup){\n this.CreateNewModifier();\n }\n \n else if(this.EditingModifierLookup){\n this.setupModifierForm();\n }\n\n else{\n this.setupModifierSelectForm();\n }\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 if (\n confirm(`Are you sure you want to delete modifier '${modifierName}'?`)\n ) {\n this.eacSvc.DeleteSourceControl(modifierLookup);\n }\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 }\n else if(this.ModifierSelectFormGroup){\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n \n ModifierLookups: this.MultiSelectFormControl.value,\n ApplicationLookup: applicationLookup,\n };\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n\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\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n }\n else if(this.ModifierSelectFormGroup){\n const saveMdfrReq: SaveDFSModifierEventRequest = {\n \n ModifierLookups: this.MultiSelectFormControl.value,\n ProjectLookups: [projectLookup],\n };\n this.eacSvc.SaveDFSModifier(saveMdfrReq);\n\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'] = 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 return details;\n }\n\n protected setupModifierSelectForm(){\n this.ModifierSelectFormGroup = this.formBldr.group({\n multiSelect: [this.ModifierLookups ? this.ModifierLookups : []]\n });\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: [this.EditingModifier?.Priority ? this.EditingModifier?.Priority : 9000, Validators.required],\n enabled: [this.EditingModifier?.Enabled, []],\n pathFilter: [\n this.EditingModifier?.PathFilterRegex ? this.EditingModifier?.PathFilterRegex : \"*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\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 || '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 || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'script',\n this.formBldr.control(details?.Script || '', [Validators.required])\n );\n\n this.ModifierFormGroup.addControl(\n 'scriptId',\n this.formBldr.control(details?.ScriptID || '', [Validators.required])\n );\n break;\n }\n }\n\n \n \n\n \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 <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 \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></textarea>\n </mat-form-field>\n </ng-container>\n\n\n <mat-slide-toggle *ngIf=\"ProjectLookup\" 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]=\"!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\n [formGroup]=\"ModifierSelectFormGroup\"\n *ngIf=\"!EditingModifier\"\n >\n\n <div class=\"spread\" *ngIf=\"!EditingModifier\">\n <span class=\"apps-actions\">\n <button mat-raised-button color=\"accent\" (click)=\"CreateNewModifier()\">\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>No DFS modifiers created, create your first DFS modifier.</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 {{MultiSelectFormControl?.value ? MultiSelectFormControl?.value[0] : ''}}\n <span *ngIf=\"MultiSelectFormControl?.value?.length > 1\" class=\"modifier-selection\">\n (+{{MultiSelectFormControl?.value?.length - 1}} {{MultiSelectFormControl?.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger>\n <ng-container *ngFor=\"let modifierLookup of EnterprisesModifierLookups\">\n <mat-option *ngIf=\"Modifiers[modifierLookup]; let modifier\" [value]=\"modifierLookup\">{{modifier?.Name}}</mat-option>\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 { EaCDFSModifier } from '@semanticjs/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\n\nexport interface DFSModifiersDialogData {\n applicationLookup?: string,\n modifierLookup?: 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})\n\nexport class DFSModifiersDialogComponent implements OnInit {\n\n @ViewChild(DFSModifiersFormComponent)\n public DFSModifersFormControls: DFSModifiersFormComponent;\n\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(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 this.ModifierDialogForm = this.formbldr.group({});\n \n }\n\n public ngOnInit(): void {\n this.determineLevel();\n }\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(\"DFS Modifier Saved Successfully\", \"Dismiss\",{\n duration: 5000\n });\n this.CloseDialog();\n }\n else{\n this.ErrorMessage = event.Message;\n }\n }\n\n public IsDisabled(){\n this.SaveDisabled=true;\n if(this.DFSModifersFormGroup){\n\n this.SaveDisabled = (!this.DFSModifersFormGroup?.valid || !this.ModifierDialogForm?.valid)\n }\n \n else if(this.SelectedModifiersFormGroup){\n this.SaveDisabled = (!this.SelectedModifiersFormGroup?.valid || !this.SelectedModifiersFormGroup?.dirty);\n }\n return this.SaveDisabled;\n }\n\n \n\n public SaveDFSModifier(){\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(this.ProjectLookups)\n }\n else{\n //save modifier\n this.DFSModifersFormControls.SaveModifier();\n }\n }\n case \"project\": {\n this.DFSModifersFormControls.SaveModifier(this.data.projectLookup);\n\n }\n\n case \"application\": {\n this.DFSModifersFormControls.SaveModifierForApplication(this.data.applicationLookup);\n\n }\n }\n // this.DFSModifersFormControls.SaveModifier();\n\n }\n\n protected determineLevel(){\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}\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\n\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\n </lcu-dfs-modifier-form>\n\n <form\n [formGroup]=\"ModifierDialogForm\"\n >\n\n <mat-checkbox *ngIf=\"data.level === 'enterprise' && data.modifierLookup\" formControlName=\"applyToAllProjects\">Apply to all Projects</mat-checkbox>\n </form>\n\n<mat-error *ngIf=\"ErrorMessage\" fxLayoutAlign=\"center center\" >\n {{ ErrorMessage }}\n</mat-error>\n\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)=\"SaveDFSModifier()\"\n [disabled]=\"IsDisabled()\"\n >\n <!-- <mat-icon>save</mat-icon> -->\n Save\n </button>\n\n</mat-dialog-actions>\n\n\n","import { FormsService } from './services/forms.service';\r\nimport { ProjectService } from './services/project.service';\r\nimport {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n} from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FathymSharedModule, MaterialModule } from '@lcu/common';\r\nimport { ApplicationsFlowStateContext } from './state/applications-flow-state.context';\r\nimport { ApplicationsFlowProjectsElementComponent } from './elements/projects/projects.component';\r\nimport { AppHostModule } from '@lowcodeunit/app-host-common';\r\nimport { ApplicationsFlowService } from './services/applications-flow.service';\r\nimport { HostingDetailsFormGroupComponent } from './elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component';\r\nimport { CreateProjectWizardComponent } from './elements/projects/controls/create-project-wizard/create-project-wizard.component';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\r\nimport { DynamicTabsComponent } from './elements/dynamic-tabs/dynamic-tabs.component';\r\nimport { HeaderComponent } from './elements/projects/controls/header/header.component';\r\nimport { ProjectTabsComponent } from './elements/projects/controls/project-tabs/project-tabs.component';\r\nimport { DomainsComponent } from './elements/projects/controls/tabs/domains/domains.component';\r\nimport { ProjectItemsComponent } from './elements/projects/controls/project-items/project-items.component';\r\nimport { BuildsComponent } from './elements/projects/controls/builds/builds.component';\r\nimport { RecentActivitiesComponent } from './elements/projects/controls/recent-activities/recent-activities.component';\r\nimport { FormCardComponent } from './elements/form-card/form-card.component';\r\nimport { ProjectNameComponent } from './elements/projects/controls/tabs/general/forms/project-details/project-details.component';\r\nimport { RootDirectoryComponent } from './elements/projects/controls/tabs/general/forms/root-directory/root-directory.component';\r\nimport { BaseFormComponent } from './elements/base-form/base-form.component';\r\nimport { BaseFormTestComponent } from './elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component';\r\nimport { GitAuthComponent } from './elements/projects/controls/git-auth/git-auth.component';\r\nimport { SourceControlFormControlsComponent } from './elements/projects/controls/forms/source-control/source-control.component';\r\nimport { AppsFlowComponent } from './elements/projects/controls/tabs/apps-flow/apps-flow.component';\r\nimport { NPMService } from './services/npm.service';\r\nimport { NpmPackageSelectComponent } from './elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component';\r\nimport { DevOpsComponent } from './elements/projects/controls/tabs/devops/devops.component';\r\nimport { DFSModifiersComponent } from './elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component';\r\nimport { ThreeColumnComponent } from './elements/three-column/three-column.component';\r\nimport { SlottedCardComponent } from './elements/slotted-card/slotted-card.component';\r\nimport { ProjectInfoCardComponent } from './elements/project-info-card/project-info-card.component';\r\nimport { AnalyticsCardComponent } from './elements/analytics-card/analytics-card.component';\r\nimport { FeedCardSmComponent } from './elements/feed-card-sm/feed-card-sm.component';\r\nimport { MainFeedCardComponent } from './elements/main-feed-card/main-feed-card.component';\r\nimport { TwoColumnHeaderComponent } from './elements/two-column-header/two-column-header.component';\r\nimport { CardCarouselComponent } from './elements/card-carousel/card-carousel.component';\r\nimport { SecurityToggleComponent } from './controls/security-toggle/security-toggle.component';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { EaCService } from './services/eac.service';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { ProcessorDetailsFormComponent } from './controls/processor-details-form/processor-details-form.component';\r\nimport { SourceControlFormComponent } from './controls/source-control-form/source-control-form.component';\r\nimport { BuildPipelineFormComponent } from './controls/build-pipeline-form/build-pipeline-form.component';\r\nimport { DevopsSourceControlFormComponent } from './controls/devops-source-control-form/devops-source-control-form.component';\r\nimport { SourceControlDialogComponent } from './dialogs/source-control-dialog/source-control-dialog.component';\r\nimport { BuildPipelineDialogComponent } from './dialogs/build-pipeline-dialog/build-pipeline-dialog.component';\r\nimport { EditApplicationFormComponent } from './controls/edit-application-form/edit-application-form.component';\r\nimport { BreadcrumbComponent } from './elements/breadcrumb/breadcrumb.component';\r\nimport { CustomDomainDialogComponent } from './dialogs/custom-domain-dialog/custom-domain-dialog.component';\r\nimport { EditApplicationDialogComponent } from './dialogs/edit-application-dialog/edit-application-dialog.component';\r\nimport { NewApplicationDialogComponent } from './dialogs/new-application-dialog/new-application-dialog.component';\r\nimport { ProcessorDetailsDialogComponent } from './dialogs/processor-details-dialog/processor-details-dialog.component';\r\nimport { SkeletonElementsModule } from 'skeleton-elements/angular';\r\nimport { SkeletonFeedCardComponent } from './elements/skeleton-feed-card/skeleton-feed-card.component';\r\nimport { UpgradeDialogComponent } from './dialogs/upgrade-dialog/upgrade-dialog.component';\r\nimport { EmulatedDevicesToggleComponent } from './controls/emulated-devices-toggle/emulated-devices-toggle.component';\r\nimport { IoTEnsembleService } from './services/iot-ensemble.service';\r\nimport { FeedHeaderComponent } from './elements/feed-header/feed-header.component';\r\nimport { FeedHeaderDialogComponent } from './dialogs/feed-header-dialog/feed-header-dialog.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { DFSModifiersDialogComponent } from './dialogs/dfs-modifiers-dialog/dfs-modifiers-dialog.component';\r\nimport { DFSModifiersFormComponent } from './controls/dfs-modifiers-form/dfs-modifiers-form.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ApplicationsFlowProjectsElementComponent,\r\n HostingDetailsFormGroupComponent,\r\n CreateProjectWizardComponent,\r\n DynamicTabsComponent,\r\n HeaderComponent,\r\n ProjectTabsComponent,\r\n DomainsComponent,\r\n ProjectItemsComponent,\r\n BuildsComponent,\r\n RecentActivitiesComponent,\r\n FormCardComponent,\r\n ProjectNameComponent,\r\n RootDirectoryComponent,\r\n BaseFormComponent,\r\n BaseFormTestComponent,\r\n GitAuthComponent,\r\n SourceControlFormControlsComponent,\r\n AppsFlowComponent,\r\n DevOpsComponent,\r\n DFSModifiersComponent,\r\n NpmPackageSelectComponent,\r\n DFSModifiersFormComponent,\r\n ThreeColumnComponent,\r\n SlottedCardComponent,\r\n ProjectInfoCardComponent,\r\n AnalyticsCardComponent,\r\n FeedCardSmComponent,\r\n FeedHeaderComponent,\r\n MainFeedCardComponent,\r\n TwoColumnHeaderComponent,\r\n CardCarouselComponent,\r\n SecurityToggleComponent,\r\n ProcessorDetailsFormComponent,\r\n SourceControlFormComponent,\r\n BuildPipelineFormComponent,\r\n DevopsSourceControlFormComponent,\r\n SourceControlDialogComponent,\r\n BuildPipelineDialogComponent,\r\n EditApplicationFormComponent,\r\n BreadcrumbComponent,\r\n DFSModifiersDialogComponent,\r\n CustomDomainDialogComponent,\r\n EditApplicationDialogComponent,\r\n NewApplicationDialogComponent,\r\n ProcessorDetailsDialogComponent,\r\n SkeletonFeedCardComponent,\r\n UpgradeDialogComponent,\r\n EmulatedDevicesToggleComponent,\r\n FeedHeaderDialogComponent,\r\n ],\r\n imports: [\r\n AngularEditorModule,\r\n ClipboardModule,\r\n FathymSharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n MaterialModule,\r\n AppHostModule,\r\n MatTooltipModule,\r\n MatSlideToggleModule,\r\n SkeletonElementsModule,\r\n\r\n // LazyElementModule,\r\n ],\r\n exports: [\r\n ApplicationsFlowProjectsElementComponent,\r\n HostingDetailsFormGroupComponent,\r\n CreateProjectWizardComponent,\r\n DynamicTabsComponent,\r\n HeaderComponent,\r\n ProjectTabsComponent,\r\n DomainsComponent,\r\n ProjectItemsComponent,\r\n BuildsComponent,\r\n RecentActivitiesComponent,\r\n FormCardComponent,\r\n ProjectNameComponent,\r\n RootDirectoryComponent,\r\n BaseFormComponent,\r\n BaseFormTestComponent,\r\n GitAuthComponent,\r\n SourceControlFormControlsComponent,\r\n AppsFlowComponent,\r\n DevOpsComponent,\r\n DFSModifiersComponent,\r\n NpmPackageSelectComponent,\r\n ThreeColumnComponent,\r\n SlottedCardComponent,\r\n ProjectInfoCardComponent,\r\n AnalyticsCardComponent,\r\n FeedCardSmComponent,\r\n FeedHeaderComponent,\r\n FeedHeaderDialogComponent,\r\n MainFeedCardComponent,\r\n TwoColumnHeaderComponent,\r\n CardCarouselComponent,\r\n SecurityToggleComponent,\r\n ProcessorDetailsFormComponent,\r\n SourceControlFormComponent,\r\n BuildPipelineFormComponent,\r\n DevopsSourceControlFormComponent,\r\n SourceControlDialogComponent,\r\n BuildPipelineDialogComponent,\r\n EditApplicationFormComponent,\r\n BreadcrumbComponent,\r\n CustomDomainDialogComponent,\r\n EditApplicationDialogComponent,\r\n NewApplicationDialogComponent,\r\n ProcessorDetailsDialogComponent,\r\n SkeletonFeedCardComponent,\r\n UpgradeDialogComponent,\r\n EmulatedDevicesToggleComponent,\r\n FeedHeaderDialogComponent,\r\n DFSModifiersDialogComponent,\r\n DFSModifiersFormComponent\r\n ],\r\n entryComponents: [\r\n ApplicationsFlowProjectsElementComponent,\r\n DynamicTabsComponent,\r\n HeaderComponent,\r\n ProjectTabsComponent,\r\n DomainsComponent,\r\n ProjectItemsComponent,\r\n BuildsComponent,\r\n RecentActivitiesComponent,\r\n FormCardComponent,\r\n ProjectNameComponent,\r\n RootDirectoryComponent,\r\n BaseFormComponent,\r\n BaseFormTestComponent,\r\n GitAuthComponent,\r\n SourceControlFormControlsComponent,\r\n AppsFlowComponent,\r\n DevOpsComponent,\r\n DFSModifiersComponent,\r\n NpmPackageSelectComponent,\r\n ThreeColumnComponent,\r\n SlottedCardComponent,\r\n ProjectInfoCardComponent,\r\n AnalyticsCardComponent,\r\n FeedCardSmComponent,\r\n FeedHeaderComponent,\r\n MainFeedCardComponent,\r\n TwoColumnHeaderComponent,\r\n CardCarouselComponent,\r\n SecurityToggleComponent,\r\n ProcessorDetailsFormComponent,\r\n DFSModifiersFormComponent,\r\n SourceControlFormComponent,\r\n BuildPipelineFormComponent,\r\n DevopsSourceControlFormComponent,\r\n DFSModifiersDialogComponent,\r\n SourceControlDialogComponent,\r\n BuildPipelineDialogComponent,\r\n EditApplicationFormComponent,\r\n BreadcrumbComponent,\r\n CustomDomainDialogComponent,\r\n EditApplicationDialogComponent,\r\n EmulatedDevicesToggleComponent,\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA, // Tells Angular we will have custom tags in our templates\r\n ],\r\n})\r\nexport class ApplicationsFlowModule {\r\n static forRoot(): ModuleWithProviders<ApplicationsFlowModule> {\r\n return {\r\n ngModule: ApplicationsFlowModule,\r\n providers: [\r\n ApplicationsFlowStateContext,\r\n ApplicationsFlowService,\r\n ProjectService,\r\n NPMService,\r\n FormsService,\r\n EaCService,\r\n IoTEnsembleService,\r\n ],\r\n };\r\n }\r\n}\r\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}","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 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\npublic ActionIcon: string; \n\npublic ActionLink: string; \n\npublic ActionText: string;\n\npublic Avatar: string;\n\npublic Content: string; \n\npublic ExpiresAt: Date;\n\npublic Organization: string; \n\npublic Repositroy: string; \n\npublic SourceBranch: string;\n\npublic SourceControlLookup: string; \n\npublic Subtitle: string; \n\npublic TargetBranch: string; \n\npublic Title: string; \n\npublic Type: string; \n \n }\n","type ButtonType = 'GENERIC' | 'RESET' | 'SAVE';\nexport class ActionsModel {\n\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 /**\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}","export class DomainModel {\n public Branch: string;\n public Name: string;\n public Host: string;\n public ValidConfig: string;\n}","import { FormGroup } from '@angular/forms';\nexport class FormModel {\n\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 * 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"],"mappings":"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"}
|