@lowcodeunit/applications-flow-common 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/esm2020/lcu.api.mjs +80 -0
  2. package/esm2020/lib/applications-flow.module.mjs +352 -0
  3. package/esm2020/lib/controls/build-pipeline-form/build-pipeline-form.component.mjs +251 -0
  4. package/esm2020/lib/controls/devops-source-control-form/devops-source-control-form.component.mjs +432 -0
  5. package/esm2020/lib/controls/edit-application-form/edit-application-form.component.mjs +110 -0
  6. package/esm2020/lib/controls/processor-details-form/processor-details-form.component.mjs +432 -0
  7. package/esm2020/lib/controls/security-toggle/security-toggle.component.mjs +61 -0
  8. package/esm2020/lib/controls/source-control-form/source-control-form.component.mjs +69 -0
  9. package/esm2020/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.mjs +32 -0
  10. package/esm2020/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.mjs +35 -0
  11. package/esm2020/lib/dialogs/edit-application-dialog/edit-application-dialog.component.mjs +33 -0
  12. package/esm2020/lib/dialogs/new-application-dialog/new-application-dialog.component.mjs +170 -0
  13. package/esm2020/lib/dialogs/processor-details-dialog/processor-details-dialog.component.mjs +53 -0
  14. package/esm2020/lib/dialogs/source-control-dialog/source-control-dialog.component.mjs +29 -0
  15. package/esm2020/lib/dialogs/upgrade-dialog/upgrade-dialog.component.mjs +23 -0
  16. package/esm2020/lib/elements/analytics-card/analytics-card.component.mjs +28 -0
  17. package/esm2020/lib/elements/base-form/base-form.component.mjs +57 -0
  18. package/esm2020/lib/elements/breadcrumb/breadcrumb.component.mjs +124 -0
  19. package/esm2020/lib/elements/card-carousel/card-carousel.component.mjs +70 -0
  20. package/esm2020/lib/elements/dynamic-tabs/dynamic-tabs.component.mjs +75 -0
  21. package/esm2020/lib/elements/feed-card-sm/feed-card-sm.component.mjs +42 -0
  22. package/esm2020/lib/elements/flow-tool/flow-tool.component.mjs +75 -0
  23. package/esm2020/lib/elements/form-card/form-card.component.mjs +33 -0
  24. package/esm2020/lib/elements/gh-control/gh-control.component.mjs +78 -0
  25. package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +128 -0
  26. package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +76 -0
  27. package/esm2020/lib/elements/projects/controls/builds/builds.component.mjs +32 -0
  28. package/esm2020/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.mjs +145 -0
  29. package/esm2020/lib/elements/projects/controls/forms/source-control/source-control.component.mjs +285 -0
  30. package/esm2020/lib/elements/projects/controls/git-auth/git-auth.component.mjs +26 -0
  31. package/esm2020/lib/elements/projects/controls/header/header.component.mjs +83 -0
  32. package/esm2020/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.mjs +118 -0
  33. package/esm2020/lib/elements/projects/controls/project-items/project-items.component.mjs +54 -0
  34. package/esm2020/lib/elements/projects/controls/project-tabs/project-tabs.component.mjs +103 -0
  35. package/esm2020/lib/elements/projects/controls/recent-activities/recent-activities.component.mjs +14 -0
  36. package/esm2020/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.mjs +561 -0
  37. package/esm2020/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.mjs +72 -0
  38. package/esm2020/lib/elements/projects/controls/tabs/devops/devops.component.mjs +242 -0
  39. package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +179 -0
  40. package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +140 -0
  41. package/esm2020/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.mjs +90 -0
  42. package/esm2020/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.mjs +142 -0
  43. package/esm2020/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.mjs +124 -0
  44. package/esm2020/lib/elements/projects/controls/tabs/general/general.component.mjs +40 -0
  45. package/esm2020/lib/elements/projects/projects.component.mjs +91 -0
  46. package/esm2020/lib/elements/skeleton-feed-card/skeleton-feed-card.component.mjs +20 -0
  47. package/esm2020/lib/elements/slotted-card/slotted-card.component.mjs +60 -0
  48. package/esm2020/lib/elements/three-column/three-column.component.mjs +30 -0
  49. package/esm2020/lib/elements/two-column-header/two-column-header.component.mjs +15 -0
  50. package/esm2020/lib/models/actions.model.mjs +3 -0
  51. package/esm2020/lib/models/base-form-config.model.mjs +6 -0
  52. package/esm2020/lib/models/card-form-config.model.mjs +6 -0
  53. package/esm2020/lib/models/dev-settings-preset.model.mjs +3 -0
  54. package/esm2020/lib/models/domain.model.mjs +3 -0
  55. package/esm2020/lib/models/dynamic-tabs.model.mjs +6 -0
  56. package/esm2020/lib/models/form-actions.model.mjs +3 -0
  57. package/esm2020/lib/models/form.model.mjs +6 -0
  58. package/esm2020/lib/models/form.values.model.mjs +11 -0
  59. package/esm2020/lib/models/project-actions.model.mjs +6 -0
  60. package/esm2020/lib/models/user-feed.model.mjs +12 -0
  61. package/esm2020/lib/services/applications-flow.service.mjs +142 -0
  62. package/esm2020/lib/services/eac.service.mjs +183 -0
  63. package/esm2020/lib/services/forms.service.mjs +132 -0
  64. package/esm2020/lib/services/npm.service.mjs +77 -0
  65. package/esm2020/lib/services/project.service.mjs +326 -0
  66. package/esm2020/lib/state/applications-flow-state.context.mjs +36 -0
  67. package/esm2020/lib/state/applications-flow.state.mjs +72 -0
  68. package/esm2020/lowcodeunit-applications-flow-common.mjs +5 -0
  69. package/fesm2015/lowcodeunit-applications-flow-common.mjs +6156 -0
  70. package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -0
  71. package/fesm2020/lowcodeunit-applications-flow-common.mjs +6009 -0
  72. package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -0
  73. package/lcu.api.d.ts +58 -4
  74. package/lib/applications-flow.module.d.ts +58 -1
  75. package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +47 -0
  76. package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +86 -0
  77. package/lib/controls/edit-application-form/edit-application-form.component.d.ts +27 -0
  78. package/lib/controls/processor-details-form/processor-details-form.component.d.ts +80 -0
  79. package/lib/controls/security-toggle/security-toggle.component.d.ts +25 -0
  80. package/lib/controls/source-control-form/source-control-form.component.d.ts +27 -0
  81. package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts +19 -0
  82. package/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.d.ts +22 -0
  83. package/lib/dialogs/edit-application-dialog/edit-application-dialog.component.d.ts +17 -0
  84. package/lib/dialogs/new-application-dialog/new-application-dialog.component.d.ts +35 -0
  85. package/lib/dialogs/processor-details-dialog/processor-details-dialog.component.d.ts +31 -0
  86. package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts +18 -0
  87. package/lib/dialogs/upgrade-dialog/upgrade-dialog.component.d.ts +11 -0
  88. package/lib/elements/analytics-card/analytics-card.component.d.ts +11 -0
  89. package/lib/elements/base-form/base-form.component.d.ts +6 -4
  90. package/lib/elements/breadcrumb/breadcrumb.component.d.ts +38 -0
  91. package/lib/elements/card-carousel/card-carousel.component.d.ts +16 -0
  92. package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts +7 -5
  93. package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts +14 -0
  94. package/lib/elements/flow-tool/flow-tool.component.d.ts +28 -0
  95. package/lib/elements/form-card/form-card.component.d.ts +3 -1
  96. package/lib/elements/gh-control/gh-control.component.d.ts +19 -0
  97. package/lib/elements/main-feed-card/main-feed-card.component.d.ts +26 -0
  98. package/lib/elements/project-info-card/project-info-card.component.d.ts +26 -0
  99. package/lib/elements/projects/controls/builds/builds.component.d.ts +9 -13
  100. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts +15 -14
  101. package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts +63 -0
  102. package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts +4 -1
  103. package/lib/elements/projects/controls/header/header.component.d.ts +22 -4
  104. package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts +22 -4
  105. package/lib/elements/projects/controls/project-items/project-items.component.d.ts +29 -0
  106. package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts +19 -4
  107. package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts +3 -1
  108. package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts +113 -0
  109. package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts +23 -0
  110. package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts +53 -0
  111. package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts +51 -0
  112. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +18 -8
  113. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts +6 -4
  114. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts +9 -6
  115. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts +9 -6
  116. package/lib/elements/projects/controls/tabs/general/general.component.d.ts +8 -4
  117. package/lib/elements/projects/projects.component.d.ts +18 -22
  118. package/lib/elements/skeleton-feed-card/skeleton-feed-card.component.d.ts +9 -0
  119. package/lib/elements/slotted-card/slotted-card.component.d.ts +23 -0
  120. package/lib/elements/three-column/three-column.component.d.ts +11 -0
  121. package/lib/elements/two-column-header/two-column-header.component.d.ts +8 -0
  122. package/lib/models/actions.model.d.ts +0 -1
  123. package/lib/models/base-form-config.model.d.ts +0 -1
  124. package/lib/models/card-form-config.model.d.ts +0 -1
  125. package/lib/models/dev-settings-preset.model.d.ts +0 -1
  126. package/lib/models/domain.model.d.ts +0 -1
  127. package/lib/models/dynamic-tabs.model.d.ts +0 -1
  128. package/lib/models/form-actions.model.d.ts +0 -1
  129. package/lib/models/form.model.d.ts +0 -1
  130. package/lib/models/form.values.model.d.ts +0 -1
  131. package/lib/models/project-actions.model.d.ts +0 -1
  132. package/lib/models/user-feed.model.d.ts +42 -0
  133. package/lib/services/applications-flow.service.d.ts +20 -8
  134. package/lib/services/eac.service.d.ts +63 -0
  135. package/lib/services/forms.service.d.ts +3 -1
  136. package/lib/services/npm.service.d.ts +13 -0
  137. package/lib/services/project.service.d.ts +23 -7
  138. package/lib/state/applications-flow-state.context.d.ts +3 -1
  139. package/lib/state/applications-flow.state.d.ts +29 -38
  140. package/lowcodeunit-applications-flow-common.d.ts +1 -13
  141. package/package.json +20 -12
  142. package/bundles/lowcodeunit-applications-flow-common.umd.js +0 -2571
  143. package/bundles/lowcodeunit-applications-flow-common.umd.js.map +0 -1
  144. package/bundles/lowcodeunit-applications-flow-common.umd.min.js +0 -16
  145. package/bundles/lowcodeunit-applications-flow-common.umd.min.js.map +0 -1
  146. package/esm2015/lcu.api.js +0 -25
  147. package/esm2015/lib/applications-flow.module.js +0 -116
  148. package/esm2015/lib/elements/base-form/base-form.component.js +0 -61
  149. package/esm2015/lib/elements/dynamic-tabs/dynamic-tabs.component.js +0 -69
  150. package/esm2015/lib/elements/form-card/form-card.component.js +0 -22
  151. package/esm2015/lib/elements/projects/controls/builds/builds.component.js +0 -37
  152. package/esm2015/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.js +0 -207
  153. package/esm2015/lib/elements/projects/controls/git-auth/git-auth.component.js +0 -26
  154. package/esm2015/lib/elements/projects/controls/header/header.component.js +0 -19
  155. package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +0 -55
  156. package/esm2015/lib/elements/projects/controls/project-item/project-item.component.js +0 -39
  157. package/esm2015/lib/elements/projects/controls/project-settings/project-settings.component.js +0 -44
  158. package/esm2015/lib/elements/projects/controls/project-tabs/project-tabs.component.js +0 -39
  159. package/esm2015/lib/elements/projects/controls/recent-activities/recent-activities.component.js +0 -15
  160. package/esm2015/lib/elements/projects/controls/tabs/domains/domains.component.js +0 -108
  161. package/esm2015/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.js +0 -86
  162. package/esm2015/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.js +0 -122
  163. package/esm2015/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.js +0 -109
  164. package/esm2015/lib/elements/projects/controls/tabs/general/forms/settings/settings.component.js +0 -238
  165. package/esm2015/lib/elements/projects/controls/tabs/general/general.component.js +0 -44
  166. package/esm2015/lib/elements/projects/projects.component.js +0 -145
  167. package/esm2015/lib/models/actions.model.js +0 -3
  168. package/esm2015/lib/models/base-form-config.model.js +0 -6
  169. package/esm2015/lib/models/card-form-config.model.js +0 -6
  170. package/esm2015/lib/models/dev-settings-preset.model.js +0 -3
  171. package/esm2015/lib/models/domain.model.js +0 -3
  172. package/esm2015/lib/models/dynamic-tabs.model.js +0 -6
  173. package/esm2015/lib/models/form-actions.model.js +0 -3
  174. package/esm2015/lib/models/form.model.js +0 -6
  175. package/esm2015/lib/models/form.values.model.js +0 -11
  176. package/esm2015/lib/models/project-actions.model.js +0 -6
  177. package/esm2015/lib/services/applications-flow-events.service.js +0 -28
  178. package/esm2015/lib/services/applications-flow.service.js +0 -96
  179. package/esm2015/lib/services/forms.service.js +0 -131
  180. package/esm2015/lib/services/project.service.js +0 -85
  181. package/esm2015/lib/state/applications-flow-state.context.js +0 -37
  182. package/esm2015/lib/state/applications-flow.state.js +0 -31
  183. package/esm2015/lowcodeunit-applications-flow-common.js +0 -17
  184. package/fesm2015/lowcodeunit-applications-flow-common.js +0 -1966
  185. package/fesm2015/lowcodeunit-applications-flow-common.js.map +0 -1
  186. package/lcu.api.d.ts.map +0 -1
  187. package/lib/applications-flow.module.d.ts.map +0 -1
  188. package/lib/elements/base-form/base-form.component.d.ts.map +0 -1
  189. package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts.map +0 -1
  190. package/lib/elements/form-card/form-card.component.d.ts.map +0 -1
  191. package/lib/elements/projects/controls/builds/builds.component.d.ts.map +0 -1
  192. package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts.map +0 -1
  193. package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts.map +0 -1
  194. package/lib/elements/projects/controls/header/header.component.d.ts.map +0 -1
  195. package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +0 -1
  196. package/lib/elements/projects/controls/project-item/project-item.component.d.ts +0 -23
  197. package/lib/elements/projects/controls/project-item/project-item.component.d.ts.map +0 -1
  198. package/lib/elements/projects/controls/project-settings/project-settings.component.d.ts +0 -16
  199. package/lib/elements/projects/controls/project-settings/project-settings.component.d.ts.map +0 -1
  200. package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts.map +0 -1
  201. package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts.map +0 -1
  202. package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts.map +0 -1
  203. package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts.map +0 -1
  204. package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts.map +0 -1
  205. package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts.map +0 -1
  206. package/lib/elements/projects/controls/tabs/general/forms/settings/settings.component.d.ts +0 -116
  207. package/lib/elements/projects/controls/tabs/general/forms/settings/settings.component.d.ts.map +0 -1
  208. package/lib/elements/projects/controls/tabs/general/general.component.d.ts.map +0 -1
  209. package/lib/elements/projects/projects.component.d.ts.map +0 -1
  210. package/lib/models/actions.model.d.ts.map +0 -1
  211. package/lib/models/base-form-config.model.d.ts.map +0 -1
  212. package/lib/models/card-form-config.model.d.ts.map +0 -1
  213. package/lib/models/dev-settings-preset.model.d.ts.map +0 -1
  214. package/lib/models/domain.model.d.ts.map +0 -1
  215. package/lib/models/dynamic-tabs.model.d.ts.map +0 -1
  216. package/lib/models/form-actions.model.d.ts.map +0 -1
  217. package/lib/models/form.model.d.ts.map +0 -1
  218. package/lib/models/form.values.model.d.ts.map +0 -1
  219. package/lib/models/project-actions.model.d.ts.map +0 -1
  220. package/lib/services/applications-flow-events.service.d.ts +0 -13
  221. package/lib/services/applications-flow-events.service.d.ts.map +0 -1
  222. package/lib/services/applications-flow.service.d.ts.map +0 -1
  223. package/lib/services/forms.service.d.ts.map +0 -1
  224. package/lib/services/project.service.d.ts.map +0 -1
  225. package/lib/state/applications-flow-state.context.d.ts.map +0 -1
  226. package/lib/state/applications-flow.state.d.ts.map +0 -1
  227. package/lowcodeunit-applications-flow-common.d.ts.map +0 -1
  228. package/lowcodeunit-applications-flow-common.metadata.json +0 -1
@@ -0,0 +1,61 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/eac.service";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/material/card";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/slide-toggle";
9
+ import * as i6 from "@angular/material/button";
10
+ import * as i7 from "@angular/common";
11
+ import * as i8 from "@angular/flex-layout/flex";
12
+ import * as i9 from "skeleton-elements/angular";
13
+ import * as i10 from "@angular/material/tooltip";
14
+ import * as i11 from "@angular/material/form-field";
15
+ export class SecurityToggleComponent {
16
+ constructor(eacSvc, formBldr) {
17
+ this.eacSvc = eacSvc;
18
+ this.formBldr = formBldr;
19
+ this.SaveFormEvent = new EventEmitter;
20
+ this.SkeletonEffect = 'wave';
21
+ }
22
+ get IsPrivateFormControl() {
23
+ return this.SecurityFormGroup?.controls.isPrivate;
24
+ }
25
+ get IsTriggerSignInFormControl() {
26
+ return this.SecurityFormGroup?.controls.isTriggerSignIn;
27
+ }
28
+ get State() {
29
+ return this.eacSvc.State;
30
+ }
31
+ ngOnInit() {
32
+ this.setupSecurityFormGroup();
33
+ }
34
+ SecuritySubmit() {
35
+ //save the security settings
36
+ console.log("submitting security values: ", this.SecurityFormGroup.value);
37
+ this.SaveFormEvent.emit(this.SecurityFormGroup.value);
38
+ }
39
+ setupSecurityFormGroup() {
40
+ this.ProcessorType = this.EditingApplication?.Processor?.Type || '';
41
+ this.SecurityFormGroup = this.formBldr.group({});
42
+ this.setupSecurityForm();
43
+ }
44
+ setupSecurityForm() {
45
+ this.SecurityFormGroup.addControl('isPrivate', this.formBldr.control(this.EditingApplication.LookupConfig?.IsPrivate || false, [Validators.required]));
46
+ this.SecurityFormGroup.addControl('isTriggerSignIn', this.formBldr.control(this.EditingApplication.LookupConfig?.IsTriggerSignIn || false, [Validators.required]));
47
+ }
48
+ }
49
+ SecurityToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SecurityToggleComponent, deps: [{ token: i1.EaCService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
50
+ SecurityToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SecurityToggleComponent, selector: "lcu-security-toggle", inputs: { EditingApplication: ["editing-application", "EditingApplication"] }, outputs: { SaveFormEvent: "save-form-event" }, ngImport: i0, template: "<form class=\"security-form\" [formGroup]=\"SecurityFormGroup\" (ngSubmit)=\"SecuritySubmit()\">\n <mat-card class=\"flow-card\">\n\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title \n skeleton-text \n [effect]=\"SkeletonEffect\" \n > \n Security Settings \n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div\n skeleton-text \n [effect]=\"SkeletonEffect\" \n >\n XXX\n </div>\n\n <mat-icon\n skeleton-text \n [effect]=\"SkeletonEffect\" \n >\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <div \n fxFlex=\"100%\" \n skeleton-text \n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\" \n >\n <mat-icon \n skeleton-text \n [effect]=\"SkeletonEffect\" \n >\n save\n </mat-icon>\n\n Save Settings\n </div>\n\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\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: ["::ng-deep .mat-tooltip{color:#000!important}.flow-card{margin:32px 20px}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i9.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i11.MatSuffix, selector: "[matSuffix]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SecurityToggleComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'lcu-security-toggle', template: "<form class=\"security-form\" [formGroup]=\"SecurityFormGroup\" (ngSubmit)=\"SecuritySubmit()\">\n <mat-card class=\"flow-card\">\n\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title \n skeleton-text \n [effect]=\"SkeletonEffect\" \n > \n Security Settings \n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div\n skeleton-text \n [effect]=\"SkeletonEffect\" \n >\n XXX\n </div>\n\n <mat-icon\n skeleton-text \n [effect]=\"SkeletonEffect\" \n >\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <div \n fxFlex=\"100%\" \n skeleton-text \n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\" \n >\n <mat-icon \n skeleton-text \n [effect]=\"SkeletonEffect\" \n >\n save\n </mat-icon>\n\n Save Settings\n </div>\n\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\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: ["::ng-deep .mat-tooltip{color:#000!important}.flow-card{margin:32px 20px}\n"] }]
54
+ }], ctorParameters: function () { return [{ type: i1.EaCService }, { type: i2.FormBuilder }]; }, propDecorators: { EditingApplication: [{
55
+ type: Input,
56
+ args: ['editing-application']
57
+ }], SaveFormEvent: [{
58
+ type: Output,
59
+ args: ['save-form-event']
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL3NlY3VyaXR5LXRvZ2dsZS9zZWN1cml0eS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvc2VjdXJpdHktdG9nZ2xlL3NlY3VyaXR5LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMkMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFVckYsTUFBTSxPQUFPLHVCQUF1QjtJQTBCbEMsWUFBc0IsTUFBa0IsRUFDNUIsUUFBcUI7UUFEWCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBdEJELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWNNLFFBQVE7UUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sY0FBYztRQUNuQiw0QkFBNEI7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxzQkFBc0I7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FDL0IsV0FBVyxFQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLFNBQVMsSUFBSSxLQUFLLEVBQ3hELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUMvQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsZUFBZSxJQUFJLEtBQUssRUFDOUQsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ3RCLENBQ0YsQ0FBQztJQUNKLENBQUM7O29IQWhFVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5TENYcEMsbXVHQTRHQTsyRkRqR2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjsySEFPeEIsa0JBQWtCO3NCQUR4QixLQUFLO3VCQUFDLHFCQUFxQjtnQkFJckIsYUFBYTtzQkFEbkIsTUFBTTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3Utc2VjdXJpdHktdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlY3VyaXR5LXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlY3VyaXR5LXRvZ2dsZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5VG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ2VkaXRpbmctYXBwbGljYXRpb24nKVxuICBwdWJsaWMgRWRpdGluZ0FwcGxpY2F0aW9uOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICBAT3V0cHV0KCdzYXZlLWZvcm0tZXZlbnQnKVxuICBwdWJsaWMgU2F2ZUZvcm1FdmVudDogRXZlbnRFbWl0dGVyPHt9PjtcblxuICBwdWJsaWMgZ2V0IElzUHJpdmF0ZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXA/LmNvbnRyb2xzLmlzUHJpdmF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgSXNUcmlnZ2VyU2lnbkluRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5TZWN1cml0eUZvcm1Hcm91cD8uY29udHJvbHMuaXNUcmlnZ2VyU2lnbkluO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGV7XG4gICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICB9XG5cbiAgcHVibGljIFNlY3VyaXR5Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIFByb2Nlc3NvclR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgU2tlbGV0b25FZmZlY3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBmb3JtQmxkcjogRm9ybUJ1aWxkZXIpIHsgXG4gICAgdGhpcy5TYXZlRm9ybUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjtcbiAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBTZWN1cml0eUZvcm1Hcm91cCgpO1xuICB9XG5cbiAgcHVibGljIFNlY3VyaXR5U3VibWl0KCkge1xuICAgIC8vc2F2ZSB0aGUgc2VjdXJpdHkgc2V0dGluZ3NcbiAgICBjb25zb2xlLmxvZyhcInN1Ym1pdHRpbmcgc2VjdXJpdHkgdmFsdWVzOiBcIiwgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC52YWx1ZSk7XG4gICAgdGhpcy5TYXZlRm9ybUV2ZW50LmVtaXQodGhpcy5TZWN1cml0eUZvcm1Hcm91cC52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBTZWN1cml0eUZvcm1Hcm91cCgpIHtcbiAgICB0aGlzLlByb2Nlc3NvclR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uUHJvY2Vzc29yPy5UeXBlIHx8ICcnO1xuICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHt9KTtcbiAgICB0aGlzLnNldHVwU2VjdXJpdHlGb3JtKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBTZWN1cml0eUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2lzUHJpdmF0ZScsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvb2t1cENvbmZpZz8uSXNQcml2YXRlIHx8IGZhbHNlLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2lzVHJpZ2dlclNpZ25JbicsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvb2t1cENvbmZpZz8uSXNUcmlnZ2VyU2lnbkluIHx8IGZhbHNlLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbn1cbiIsIjxmb3JtIGNsYXNzPVwic2VjdXJpdHktZm9ybVwiIFtmb3JtR3JvdXBdPVwiU2VjdXJpdHlGb3JtR3JvdXBcIiAobmdTdWJtaXQpPVwiU2VjdXJpdHlTdWJtaXQoKVwiPlxuICAgIDxtYXQtY2FyZCBjbGFzcz1cImZsb3ctY2FyZFwiPlxuXG4gICAgICA8IS0tIFNLRUxFVE9OIExPQURJTkcgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgXG4gICAgICAgICAgICBza2VsZXRvbi10ZXh0IFxuICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIFxuICAgICAgICAgID4gXG4gICAgICAgICAgICBTZWN1cml0eSBTZXR0aW5ncyBcbiAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgc2tlbGV0b24tdGV4dCBcbiAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiICAgXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICBYWFhcbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBza2VsZXRvbi10ZXh0IFxuICAgICAgICAgICAgICBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG5cbiAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgIGZ4RmxleD1cIjEwMCVcIiBcbiAgICAgICAgICAgICAgc2tlbGV0b24tdGV4dCBcbiAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBcbiAgICAgICAgICAgICAgICBza2VsZXRvbi10ZXh0IFxuICAgICAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHNhdmVcbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICBTYXZlIFNldHRpbmdzXG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gRU5EIFNLRUxFVE9OIExPQURJTkcgLS0+XG5cbiAgICAgIDwhLS0gQkVHSU4gQUNUVUFMIENPTlRFTlQgLS0+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IFNlY3VyaXR5IFNldHRpbmdzIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNQcml2YXRlXCJcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIklzIFNlY3VyZSBBcHBsaWNhdGlvbj9cIlxuICAgICAgICAgICAgPlxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG5cbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkEgU2VjdXJlZCBBcHBsaWNhdGlvbiBpcyBvbmUgdGhhdCByZXF1aXJlcyB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkIHRvIHVzZSB0aGUgYXBwbGljYXRpb24uIFRoZSBhcHBsaWNhdGlvbiBpcyBob3N0ZWQgYmVoaW5kIGFuIGlkZW50aXR5IHdhbGwuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiSXNQcml2YXRlRm9ybUNvbnRyb2wudmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiaXNUcmlnZ2VyU2lnbkluXCI+XG4gICAgICAgICAgICAgICAgICAgIElzIFRyaWdnZXIgU2lnbiBJbiBBcHBsaWNhdGlvbj9cbiAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cblxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiQSBUcmlnZ2VyIFNpZ24gSW4gQXBwbGljYXRpb24gd2lsbCBkaXJlY3QgdGhlIHVzZXIgdG8gc2lnbiBpbiBpZiB0aGV5IGFyZSBub3QgYWxyZWFkeS5cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cblxuICAgICAgICAgICAgPGJ1dHRvbiBcbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIiBcbiAgICAgICAgICAgICAgZnhGbGV4PVwiMTAwJVwiIFxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIiBcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFTZWN1cml0eUZvcm1Hcm91cC52YWxpZCB8fCAhU2VjdXJpdHlGb3JtR3JvdXAuZGlydHlcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICBTYXZlIFNldHRpbmdzXG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtY2FyZD5cbjwvZm9ybT5cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@angular/material/card";
6
+ import * as i3 from "@angular/material/slide-toggle";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/form-field";
9
+ import * as i6 from "@angular/material/select";
10
+ import * as i7 from "@angular/material/core";
11
+ import * as i8 from "@angular/material/button";
12
+ import * as i9 from "@angular/common";
13
+ import * as i10 from "@angular/flex-layout/flex";
14
+ import * as i11 from "@angular/material/tooltip";
15
+ export class SourceControlFormComponent {
16
+ constructor(formBldr) {
17
+ this.formBldr = formBldr;
18
+ this.SaveFormEvent = new EventEmitter;
19
+ }
20
+ get HasBuildFormControl() {
21
+ return this.SourceControlFormGroup?.controls.hasBuild;
22
+ }
23
+ get SourceControlLookupFormControl() {
24
+ return this.SourceControlFormGroup?.controls.sourceControlLookup;
25
+ }
26
+ get SourceControlLookups() {
27
+ return Object.keys(this.SourceControls || {});
28
+ }
29
+ get SourceControls() {
30
+ return this.Environment.Sources || {};
31
+ }
32
+ ngOnInit() {
33
+ this.setupSourceControlForm();
34
+ }
35
+ SourceControlLookupChanged(event) {
36
+ // TODO: Anything to do here on change?
37
+ console.log("sourceControlLookupChanged: ", event);
38
+ }
39
+ SubmitSourceControl() {
40
+ console.log("submitting source control: ", this.SourceControlFormGroup.value);
41
+ this.SaveFormEvent.emit(this.SourceControlFormGroup.value);
42
+ }
43
+ //HELPER
44
+ setupSourceControlForm() {
45
+ this.ProcessorType = this.EditingApplication?.Processor?.Type || '';
46
+ this.SourceControlFormGroup = this.formBldr.group({});
47
+ this.setupBuildForm();
48
+ }
49
+ setupBuildForm() {
50
+ this.SourceControlFormGroup.addControl('hasBuild', this.formBldr.control(!!this.EditingApplication.LowCodeUnit?.SourceControlLookup || false, [Validators.required]));
51
+ this.SourceControlFormGroup.addControl('sourceControlLookup', this.formBldr.control(this.EditingApplication.LowCodeUnit?.SourceControlLookup || '', []));
52
+ }
53
+ }
54
+ SourceControlFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SourceControlFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
55
+ SourceControlFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SourceControlFormComponent, selector: "lcu-source-control-form", inputs: { EditingApplication: ["editing-application", "EditingApplication"], Environment: ["environment", "Environment"] }, outputs: { SaveFormEvent: "save-form-event" }, ngImport: i0, template: "<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n", styles: [""], components: [{ type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2.MatCardHeader, selector: "mat-card-header" }, { type: i3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i5.MatSuffix, selector: "[matSuffix]" }, { type: i2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SourceControlFormComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'lcu-source-control-form', template: "<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions fxLayoutAlign=\"center center\">\n\n <button \n mat-raised-button \n type=\"submit\" \n fxFlex=\"100%\" \n color=\"primary\" \n [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\">\n <mat-icon>save</mat-icon>\n Save\n </button>\n \n </mat-card-actions>\n </mat-card>\n</form>\n", styles: [""] }]
59
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { EditingApplication: [{
60
+ type: Input,
61
+ args: ['editing-application']
62
+ }], Environment: [{
63
+ type: Input,
64
+ args: ['environment']
65
+ }], SaveFormEvent: [{
66
+ type: Output,
67
+ args: ['save-form-event']
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9jb250cm9scy9zb3VyY2UtY29udHJvbC1mb3JtL3NvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvc291cmNlLWNvbnRyb2wtZm9ybS9zb3VyY2UtY29udHJvbC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUEyQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVVyRixNQUFNLE9BQU8sMEJBQTBCO0lBK0JyQyxZQUFzQixRQUFxQjtRQUFyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLENBQUM7SUFDdkMsQ0FBQztJQXRCRixJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFXLDhCQUE4QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQVVNLFFBQVE7UUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsS0FBc0I7UUFDdEQseUNBQXlDO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0QsQ0FBQztJQUdELFFBQVE7SUFFRSxzQkFBc0I7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFFcEUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUV4QixDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUNwQyxVQUFVLEVBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixJQUFJLEtBQUssRUFDbkUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ3RCLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQ3BDLHFCQUFxQixFQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxtQkFBbUIsSUFBSSxFQUFFLEVBQzlELEVBQUUsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzt1SEE5RVUsMEJBQTBCOzJHQUExQiwwQkFBMEIsME9DWHZDLGcwRkFnR0E7MkZEckZhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7a0dBTzVCLGtCQUFrQjtzQkFEeEIsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBSXJCLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsYUFBYTtnQkFJYixhQUFhO3NCQURuQixNQUFNO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNFbnZpcm9ubWVudEFzQ29kZSwgRWFDUHJvamVjdEFzQ29kZSwgRWFDU291cmNlQ29udHJvbCB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBTb3VyY2VDb250cm9sRm9ybUNvbnRyb2xzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvcHJvamVjdHMvY29udHJvbHMvZm9ybXMvc291cmNlLWNvbnRyb2wvc291cmNlLWNvbnRyb2wuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LXNvdXJjZS1jb250cm9sLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTb3VyY2VDb250cm9sRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCdlZGl0aW5nLWFwcGxpY2F0aW9uJylcbiAgcHVibGljIEVkaXRpbmdBcHBsaWNhdGlvbjogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgQElucHV0KCdlbnZpcm9ubWVudCcpXG4gIHB1YmxpYyBFbnZpcm9ubWVudDogRWFDRW52aXJvbm1lbnRBc0NvZGU7XG5cbiAgQE91dHB1dCgnc2F2ZS1mb3JtLWV2ZW50JylcbiAgcHVibGljIFNhdmVGb3JtRXZlbnQ6IEV2ZW50RW1pdHRlcjx7fT5cblxuICBwdWJsaWMgZ2V0IEhhc0J1aWxkRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Tb3VyY2VDb250cm9sRm9ybUdyb3VwPy5jb250cm9scy5oYXNCdWlsZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU291cmNlQ29udHJvbExvb2t1cEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuU291cmNlQ29udHJvbEZvcm1Hcm91cD8uY29udHJvbHMuc291cmNlQ29udHJvbExvb2t1cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU291cmNlQ29udHJvbExvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuU291cmNlQ29udHJvbHMgfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9scygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfSB7XG4gICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQuU291cmNlcyB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIFByb2Nlc3NvclR5cGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZm9ybUJsZHI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5TYXZlRm9ybUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjtcbiAgIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXR1cFNvdXJjZUNvbnRyb2xGb3JtKCk7XG4gIH1cblxuICBwdWJsaWMgU291cmNlQ29udHJvbExvb2t1cENoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIC8vICBUT0RPOiAgQW55dGhpbmcgdG8gZG8gaGVyZSBvbiBjaGFuZ2U/XG4gICAgY29uc29sZS5sb2coXCJzb3VyY2VDb250cm9sTG9va3VwQ2hhbmdlZDogXCIsIGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBTdWJtaXRTb3VyY2VDb250cm9sKCkge1xuICAgIGNvbnNvbGUubG9nKFwic3VibWl0dGluZyBzb3VyY2UgY29udHJvbDogXCIsIHRoaXMuU291cmNlQ29udHJvbEZvcm1Hcm91cC52YWx1ZSk7XG4gICAgdGhpcy5TYXZlRm9ybUV2ZW50LmVtaXQodGhpcy5Tb3VyY2VDb250cm9sRm9ybUdyb3VwLnZhbHVlKTtcblxuICB9XG5cblxuICAvL0hFTFBFUlxuXG4gIHByb3RlY3RlZCBzZXR1cFNvdXJjZUNvbnRyb2xGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuUHJvY2Vzc29yVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5Qcm9jZXNzb3I/LlR5cGUgfHwgJyc7XG5cbiAgICB0aGlzLlNvdXJjZUNvbnRyb2xGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHt9KTtcblxuICAgIHRoaXMuc2V0dXBCdWlsZEZvcm0oKTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQnVpbGRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2hhc0J1aWxkJyxcbiAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgISF0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU291cmNlQ29udHJvbExvb2t1cCB8fCBmYWxzZSxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ3NvdXJjZUNvbnRyb2xMb29rdXAnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU291cmNlQ29udHJvbExvb2t1cCB8fCAnJyxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApO1xuICB9XG5cbn1cbiIsIjxmb3JtIGNsYXNzPVwic291cmNlLWNvbnRyb2wtZm9ybVwiIFtmb3JtR3JvdXBdPVwiU291cmNlQ29udHJvbEZvcm1Hcm91cFwiIChuZ1N1Ym1pdCk9XCJTdWJtaXRTb3VyY2VDb250cm9sKClcIj5cblxuPG1hdC1jYXJkIGNsYXNzPVwic3ByZWFkIGZsb3ctY2FyZFwiICpuZ0lmPVwiUHJvY2Vzc29yVHlwZSAhPSAnUmVkaXJlY3QnXCI+XG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgIDxtYXQtY2FyZC10aXRsZSAqbmdJZj1cIiFIYXNCdWlsZEZvcm1Db250cm9sLnZhbHVlXCI+XG4gICAgICAgIEJ1aWxkICYgU291cmNlXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICA8bWF0LWNhcmQtdGl0bGUgKm5nSWY9XCJIYXNCdWlsZEZvcm1Db250cm9sLnZhbHVlXCI+XG4gICAgICAgIFNvdXJjZSBDb250cm9sXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaGFzQnVpbGRcIlxuICAgICAgICBtYXRUb29sdGlwPVwiSGFzIEJ1aWxkP1wiXG4gICAgICA+XG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgbWF0VG9vbHRpcD1cIkNvbmZpZ3VyZSBzb3VyY2UgY29udHJvbCwgRGV2T3BzIENJL0NELCBhbmQgYXJ0aWZhY3RzLlwiXG4gICAgICA+XG4gICAgICAgIGluZm9fb3V0bGluZVxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICAgIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIEhhc0J1aWxkRm9ybUNvbnRyb2wudmFsdWUgJiYgU291cmNlQ29udHJvbExvb2t1cHM/Lmxlbmd0aCA+IDBcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzb3VyY2VDb250cm9sTG9va3VwXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNvdXJjZSBDb250cm9sXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIlNvdXJjZUNvbnRyb2xMb29rdXBDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgIFNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbHM/LkxvYWRpbmcgfHwgSG9zdGluZ0RldGFpbHM/LkxvYWRpbmdcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNyY0N0cmxMb29rdXAgb2YgU291cmNlQ29udHJvbExvb2t1cHNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzcmNDdHJsTG9va3VwXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJTb3VyY2VDb250cm9sc1tzcmNDdHJsTG9va3VwXTsgbGV0IHNyY0N0cmxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzcmNDdHJsLk5hbWUgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJIYXNCdWlsZEZvcm1Db250cm9sPy52YWx1ZVwiPlxuICAgICAgICAgIDxoMz5cbiAgICAgICAgICAgIEB7e1xuICAgICAgICAgICAgICBTb3VyY2VDb250cm9sRm9ybUNvbnRyb2xzPy5Pcmdhbml6YXRpb25Gb3JtQ29udHJvbD8udmFsdWUgfHxcbiAgICAgICAgICAgICAgICBTb3VyY2VDb250cm9sPy5Pcmdhbml6YXRpb25cbiAgICAgICAgICAgIH19L3t7XG4gICAgICAgICAgICAgIFNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbHM/LlJlcG9zaXRvcnlGb3JtQ29udHJvbD8udmFsdWUgfHxcbiAgICAgICAgICAgICAgICBTb3VyY2VDb250cm9sPy5SZXBvc2l0b3J5XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvaDM+XG5cbiAgICAgICAgICA8cD5Pcmdhbml6YXRpb24gYW5kIFJlcG9zaXRvcnkgcHVsbGVkIGZyb20gYnVpbGQgc2V0dGluZ3M8L3A+XG5cbiAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICBDdXJyZW50QnVpbGQ6XG4gICAgICAgICAgICB7eyBFZGl0aW5nQXBwbGljYXRpb24/Lkxvd0NvZGVVbml0Py5DdXJyZW50QnVpbGQgfX1cbiAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJTb3VyY2VDb250cm9sTG9va3Vwcz8ubGVuZ3RoIDwgMFwiPlxuICAgICAgICA8aDM+XG4gICAgICAgICAgQ3JlYXRlIHNvdXJjZSBjb250cm9sIGxvY2F0aW9ucyB1bmRlciB0aGUgRGV2T3BzIHRhYiBhYm92ZS5cbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuXG4gICAgICA8YnV0dG9uIFxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiIFxuICAgICAgICBmeEZsZXg9XCIxMDAlXCIgXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxuICAgICAgICBbZGlzYWJsZWRdPVwiIVNvdXJjZUNvbnRyb2xGb3JtR3JvdXAudmFsaWQgfHwgIVNvdXJjZUNvbnRyb2xGb3JtR3JvdXAuZGlydHlcIj5cbiAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICBTYXZlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIFxuICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gIDwvbWF0LWNhcmQ+XG48L2Zvcm0+XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "../../controls/build-pipeline-form/build-pipeline-form.component";
8
+ import * as i5 from "@angular/flex-layout/flex";
9
+ export class BuildPipelineDialogComponent {
10
+ constructor(dialogRef, data) {
11
+ this.dialogRef = dialogRef;
12
+ this.data = data;
13
+ }
14
+ ngOnInit() {
15
+ }
16
+ CloseDialog() {
17
+ this.dialogRef.close();
18
+ }
19
+ HandleResponseEvent(event) {
20
+ console.log("Response Event: ", event);
21
+ }
22
+ }
23
+ BuildPipelineDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BuildPipelineDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
24
+ BuildPipelineDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BuildPipelineDialogComponent, selector: "lcu-build-pipeline-dialog", ngImport: i0, template: "<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<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>", styles: [".dialog-header{width:100%}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.BuildPipelineFormComponent, selector: "lcu-build-pipeline-form", inputs: ["devops-action-lookup", "disabled", "environment", "environment-lookup", "hosting-details"], outputs: ["response-event"] }], directives: [{ type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BuildPipelineDialogComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'lcu-build-pipeline-dialog', template: "<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<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>", styles: [".dialog-header{width:100%}\n"] }]
28
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
29
+ type: Inject,
30
+ args: [MAT_DIALOG_DATA]
31
+ }] }]; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcGlwZWxpbmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2RpYWxvZ3MvYnVpbGQtcGlwZWxpbmUtZGlhbG9nL2J1aWxkLXBpcGVsaW5lLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2J1aWxkLXBpcGVsaW5lLWRpYWxvZy9idWlsZC1waXBlbGluZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQWdCekUsTUFBTSxPQUFPLDRCQUE0QjtJQUl6QyxZQUFvQixTQUFxRCxFQUN2QyxJQUFrQjtRQURoQyxjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUN2QyxTQUFJLEdBQUosSUFBSSxDQUFjO0lBQUksQ0FBQztJQUVoRCxRQUFRO0lBQ2YsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBVTtRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3lIQWhCVSw0QkFBNEIsOENBSy9CLGVBQWU7NkdBTFosNEJBQTRCLGlFQ2pCekMsa2NBYTBCOzJGREliLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQVNwQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFYUNFbnZpcm9ubWVudEFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBCUERpYWxvZ0RhdGEge1xuICBkZXZvcHNBY3Rpb25Mb29rdXA6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuICBlbnZpcm9ubWVudExvb2t1cDogc3RyaW5nO1xuICAvLyBidWlsZFBpcGVsaW5lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1idWlsZC1waXBlbGluZS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vYnVpbGQtcGlwZWxpbmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnVpbGQtcGlwZWxpbmUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnVpbGRQaXBlbGluZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgXG5cbmNvbnN0cnVjdG9yKCBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QnVpbGRQaXBlbGluZURpYWxvZ0NvbXBvbmVudD4sXG4gIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQlBEaWFsb2dEYXRhKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgQ2xvc2VEaWFsb2coKXtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIEhhbmRsZVJlc3BvbnNlRXZlbnQoZXZlbnQ6IGFueSl7XG4gICAgY29uc29sZS5sb2coXCJSZXNwb25zZSBFdmVudDogXCIsIGV2ZW50KTtcbiAgfVxuXG4gXG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIkNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxsY3UtYnVpbGQtcGlwZWxpbmUtZm9ybSBcbiAgICBbZGV2b3BzLWFjdGlvbi1sb29rdXBdPVwiZGF0YS5kZXZvcHNBY3Rpb25Mb29rdXBcIlxuICAgIFtlbnZpcm9ubWVudF09XCJkYXRhLmVudmlyb25tZW50XCIgXG4gICAgW2Vudmlyb25tZW50LWxvb2t1cF09XCJkYXRhLmVudmlyb25tZW50TG9va3VwXCJcbiAgICAocmVzcG9uc2UtZXZlbnQpPVwiSGFuZGxlUmVzcG9uc2VFdmVudCgkZXZlbnQpXCJcbiAgICA+XG5cbjwvbGN1LWJ1aWxkLXBpcGVsaW5lLWZvcm0+Il19
@@ -0,0 +1,35 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "../../elements/projects/controls/tabs/domains/domains.component";
8
+ import * as i5 from "@angular/flex-layout/flex";
9
+ export class CustomDomainDialogComponent {
10
+ constructor(dialogRef, data) {
11
+ this.dialogRef = dialogRef;
12
+ this.data = data;
13
+ this.DomainData = {
14
+ Hosts: this.data.hosts,
15
+ PrimaryHost: this.data.primaryHost,
16
+ Project: this.data.project,
17
+ ProjectLookup: this.data.projectLookup
18
+ };
19
+ }
20
+ ngOnInit() {
21
+ }
22
+ CloseDialog() {
23
+ this.dialogRef.close();
24
+ }
25
+ }
26
+ CustomDomainDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CustomDomainDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
27
+ CustomDomainDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: CustomDomainDialogComponent, selector: "lcu-custom-domain-dialog", ngImport: i0, template: "<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<lcu-domains\n[data]=\"DomainData\"\n>\n\n</lcu-domains>\n", styles: [""], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.DomainsComponent, selector: "lcu-domains", inputs: ["data"] }], directives: [{ type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CustomDomainDialogComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'lcu-custom-domain-dialog', template: "<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<lcu-domains\n[data]=\"DomainData\"\n>\n\n</lcu-domains>\n", styles: [""] }]
31
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
32
+ type: Inject,
33
+ args: [MAT_DIALOG_DATA]
34
+ }] }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRvbWFpbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9jdXN0b20tZG9tYWluLWRpYWxvZy9jdXN0b20tZG9tYWluLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2N1c3RvbS1kb21haW4tZGlhbG9nL2N1c3RvbS1kb21haW4tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFnQnpFLE1BQU0sT0FBTywyQkFBMkI7SUFJdEMsWUFBbUIsU0FBb0QsRUFDckMsSUFBa0I7UUFEakMsY0FBUyxHQUFULFNBQVMsQ0FBMkM7UUFDckMsU0FBSSxHQUFKLElBQUksQ0FBYztRQUVoRCxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNsQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQzFCLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7U0FDdkMsQ0FBQTtJQUVGLENBQUM7SUFFRyxRQUFRO0lBQ2YsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzt3SEFyQlUsMkJBQTJCLDhDQUs1QixlQUFlOzRHQUxkLDJCQUEyQixnRUNqQnhDLGtQQVdBOzJGRE1hLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwwQkFBMEI7OzBCQVVqQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFYUNIb3N0LCBFYUNQcm9qZWN0QXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDRERpYWxvZ0RhdGEge1xuICAgIGhvc3RzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0hvc3QgfTtcbiAgICBwcmltYXJ5SG9zdDogc3RyaW5nO1xuICAgIHByb2plY3Q6IEVhQ1Byb2plY3RBc0NvZGU7XG4gICAgcHJvamVjdExvb2t1cDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3UtY3VzdG9tLWRvbWFpbi1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLWRvbWFpbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tZG9tYWluLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tRG9tYWluRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgRG9tYWluRGF0YToge307XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEN1c3RvbURvbWFpbkRpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBDRERpYWxvZ0RhdGEpIHtcblxuICAgICAgdGhpcy5Eb21haW5EYXRhID0ge1xuICAgICAgICBIb3N0czogdGhpcy5kYXRhLmhvc3RzLFxuICAgICAgICBQcmltYXJ5SG9zdDogdGhpcy5kYXRhLnByaW1hcnlIb3N0LFxuICAgICAgICBQcm9qZWN0OiB0aGlzLmRhdGEucHJvamVjdCxcbiAgICAgICAgUHJvamVjdExvb2t1cDogdGhpcy5kYXRhLnByb2plY3RMb29rdXBcbiAgICAgIH1cbiAgICAgIFxuICAgICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIENsb3NlRGlhbG9nKCl7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIkNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxsY3UtZG9tYWluc1xuW2RhdGFdPVwiRG9tYWluRGF0YVwiXG4+XG5cbjwvbGN1LWRvbWFpbnM+XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/dialog";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "../../controls/edit-application-form/edit-application-form.component";
8
+ import * as i5 from "@angular/flex-layout/flex";
9
+ export class EditApplicationDialogComponent {
10
+ constructor(dialogRef, data) {
11
+ this.dialogRef = dialogRef;
12
+ this.data = data;
13
+ }
14
+ ngOnInit() {
15
+ }
16
+ CloseDialog() {
17
+ this.dialogRef.close();
18
+ }
19
+ SaveApplication(appEvent) {
20
+ console.log("event to save: ", appEvent);
21
+ this.dialogRef.close({ event: appEvent });
22
+ }
23
+ }
24
+ EditApplicationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: EditApplicationDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
25
+ EditApplicationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: EditApplicationDialogComponent, selector: "lcu-edit-application-dialog", ngImport: i0, template: "<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<lcu-edit-application-form \n [editing-application]=\"data.application\"\n (save-form-event)=\"SaveApplication($event)\">\n</lcu-edit-application-form>\n", styles: [""], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.EditApplicationFormComponent, selector: "lcu-edit-application-form", inputs: ["application-lookup", "editing-application", "has-save-button", "project-lookup"], outputs: ["save-form-event"] }], directives: [{ type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: EditApplicationDialogComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'lcu-edit-application-dialog', template: "<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<lcu-edit-application-form \n [editing-application]=\"data.application\"\n (save-form-event)=\"SaveApplication($event)\">\n</lcu-edit-application-form>\n", styles: [""] }]
29
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
30
+ type: Inject,
31
+ args: [MAT_DIALOG_DATA]
32
+ }] }]; } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hcHBsaWNhdGlvbi1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy9lZGl0LWFwcGxpY2F0aW9uLWRpYWxvZy9lZGl0LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2VkaXQtYXBwbGljYXRpb24tZGlhbG9nL2VkaXQtYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFhekUsTUFBTSxPQUFPLDhCQUE4QjtJQUV6QyxZQUFtQixTQUF1RCxFQUN4QyxJQUEyQjtRQUQxQyxjQUFTLEdBQVQsU0FBUyxDQUE4QztRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUF1QjtJQUFJLENBQUM7SUFFM0QsUUFBUTtJQUNmLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxRQUFhO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDOzsySEFmVSw4QkFBOEIsOENBRy9CLGVBQWU7K0dBSGQsOEJBQThCLG1FQ2QzQyx1VkFVQTsyRkRJYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsNkJBQTZCOzswQkFPcEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRWFDQXBwbGljYXRpb25Bc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uRGlhbG9nRGF0YSB7XG4gIGFwcGxpY2F0aW9uOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcbiBcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWVkaXQtYXBwbGljYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1hcHBsaWNhdGlvbi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxFZGl0QXBwbGljYXRpb25EaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQXBwbGljYXRpb25EaWFsb2dEYXRhKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgQ2xvc2VEaWFsb2coKXtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFNhdmVBcHBsaWNhdGlvbihhcHBFdmVudDogYW55KXtcbiAgICBjb25zb2xlLmxvZyhcImV2ZW50IHRvIHNhdmU6IFwiLCBhcHBFdmVudCk7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe2V2ZW50OiBhcHBFdmVudH0pO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCIgZnhMYXlvdXRBbGlnbj1cImVuZCBjZW50ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cblxuPGxjdS1lZGl0LWFwcGxpY2F0aW9uLWZvcm0gXG4gICAgW2VkaXRpbmctYXBwbGljYXRpb25dPVwiZGF0YS5hcHBsaWNhdGlvblwiXG4gICAgKHNhdmUtZm9ybS1ldmVudCk9XCJTYXZlQXBwbGljYXRpb24oJGV2ZW50KVwiPlxuPC9sY3UtZWRpdC1hcHBsaWNhdGlvbi1mb3JtPlxuIl19
@@ -0,0 +1,170 @@
1
+ import { Component, Inject, ViewChild } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { Guid } from '@lcu/common';
4
+ import { EaCApplicationAsCode } from '@semanticjs/common';
5
+ import { EditApplicationFormComponent } from '../../controls/edit-application-form/edit-application-form.component';
6
+ import { ProcessorDetailsFormComponent } from '../../controls/processor-details-form/processor-details-form.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/eac.service";
9
+ import * as i2 from "@angular/material/dialog";
10
+ import * as i3 from "@angular/material/button";
11
+ import * as i4 from "@angular/material/icon";
12
+ import * as i5 from "../../controls/edit-application-form/edit-application-form.component";
13
+ import * as i6 from "../../controls/processor-details-form/processor-details-form.component";
14
+ import * as i7 from "@angular/flex-layout/flex";
15
+ import * as i8 from "@angular/common";
16
+ export class NewApplicationDialogComponent {
17
+ constructor(eacSvc, dialogRef, data) {
18
+ this.eacSvc = eacSvc;
19
+ this.dialogRef = dialogRef;
20
+ this.data = data;
21
+ this.HasSaveButton = false;
22
+ }
23
+ get Environment() {
24
+ return this.State?.EaC?.Environments[this.data.environmentLookup];
25
+ }
26
+ get SourceControls() {
27
+ return this.Environment?.Sources || {};
28
+ }
29
+ get SourceControlLookups() {
30
+ return Object.keys(this.Environment.Sources || {});
31
+ }
32
+ get State() {
33
+ return this.eacSvc.State;
34
+ }
35
+ ngOnInit() {
36
+ this.SetupApplication(Guid.CreateRaw());
37
+ }
38
+ CloseDialog() {
39
+ this.dialogRef.close();
40
+ }
41
+ SetupApplication(appLookup) {
42
+ this.NewApplication = new EaCApplicationAsCode;
43
+ this.NewApplicationLookup = appLookup;
44
+ }
45
+ SaveApplication() {
46
+ const app = new EaCApplicationAsCode;
47
+ app.Application = {
48
+ Name: this.ApplicationFormControls.NameFormControl.value,
49
+ Description: this.ApplicationFormControls.DescriptionFormControl.value,
50
+ PriorityShift: 0,
51
+ };
52
+ app.LookupConfig.PathRegex = `${this.ApplicationFormControls.RouteFormControl.value}.*`;
53
+ app.LookupConfig.AllowedMethods =
54
+ this.ProcessorDetailsFormControls.MethodsFormControl?.value
55
+ ?.split(' ')
56
+ .filter((v) => !!v);
57
+ app.Processor.Type = this.ProcessorDetailsFormControls.ProcessorType;
58
+ switch (app.Processor.Type) {
59
+ case 'DFS':
60
+ app.Processor.DefaultFile =
61
+ this.ProcessorDetailsFormControls.DefaultFileFormControl.value ||
62
+ 'index.html';
63
+ app.Processor.BaseHref = `${this.ApplicationFormControls.RouteFormControl.value}/`.replace('//', '/');
64
+ app.LowCodeUnit = {
65
+ Type: this.ProcessorDetailsFormControls.LCUType,
66
+ };
67
+ switch (app.LowCodeUnit.Type) {
68
+ case 'GitHub':
69
+ app.LowCodeUnit.Organization =
70
+ this.SourceControls[this.ProcessorDetailsFormControls.SourceControlFormControl.value].Organization;
71
+ app.LowCodeUnit.Repository =
72
+ this.SourceControls[this.ProcessorDetailsFormControls.SourceControlFormControl.value].Repository;
73
+ app.LowCodeUnit.Build =
74
+ this.ProcessorDetailsFormControls.BuildFormControl.value;
75
+ app.LowCodeUnit.Path =
76
+ this.Environment.DevOpsActions[this.SourceControls[this.ProcessorDetailsFormControls.SourceControlFormControl.value].DevOpsActionTriggerLookups[0]].Path;
77
+ // console.log("sourceControl lookup: ", this.ProcessorDetailsFormControls.SourceControlFormControl.value);
78
+ app.LowCodeUnit.SourceControlLookup =
79
+ this.ProcessorDetailsFormControls.SourceControlFormControl.value;
80
+ break;
81
+ case 'NPM':
82
+ app.LowCodeUnit.Package =
83
+ this.ProcessorDetailsFormControls.PackageFormControl.value;
84
+ app.LowCodeUnit.Version =
85
+ this.ProcessorDetailsFormControls.VersionFormControl.value;
86
+ break;
87
+ case 'WordPress':
88
+ app.LowCodeUnit.APIRoot =
89
+ this.ProcessorDetailsFormControls.APIRootFormControl.value;
90
+ break;
91
+ case 'Zip':
92
+ app.LowCodeUnit.ZipFile =
93
+ this.ProcessorDetailsFormControls.ZipFileFormControl.value;
94
+ break;
95
+ }
96
+ break;
97
+ case 'OAuth':
98
+ app.Processor.Scopes =
99
+ this.ProcessorDetailsFormControls.ScopesFormControl.value.split(' ');
100
+ app.Processor.TokenLookup =
101
+ this.ProcessorDetailsFormControls.TokenLookupFormControl.value;
102
+ app.LowCodeUnit = {
103
+ Type: this.ProcessorDetailsFormControls.LCUType,
104
+ };
105
+ switch (app.LowCodeUnit.Type) {
106
+ case 'GitHubOAuth':
107
+ app.LowCodeUnit.ClientID =
108
+ this.ProcessorDetailsFormControls.ClientIDFormControl.value;
109
+ app.LowCodeUnit.ClientSecret =
110
+ this.ProcessorDetailsFormControls.ClientSecretFormControl.value;
111
+ break;
112
+ }
113
+ break;
114
+ case 'Proxy':
115
+ app.Processor.InboundPath =
116
+ this.ProcessorDetailsFormControls.InboundPathFormControl.value;
117
+ app.LowCodeUnit = {
118
+ Type: this.ProcessorDetailsFormControls.LCUType,
119
+ };
120
+ switch (app.LowCodeUnit.Type) {
121
+ case 'API':
122
+ app.LowCodeUnit.APIRoot =
123
+ this.ProcessorDetailsFormControls.APIRootFormControl.value;
124
+ app.LowCodeUnit.Security =
125
+ this.ProcessorDetailsFormControls.SecurityFormControl.value;
126
+ break;
127
+ case 'SPA':
128
+ app.LowCodeUnit.SPARoot =
129
+ this.ProcessorDetailsFormControls.SPARootFormControl.value;
130
+ break;
131
+ }
132
+ break;
133
+ case 'Redirect':
134
+ app.Processor.IncludeRequest =
135
+ !!this.ProcessorDetailsFormControls.IncludeRequestFormControl.value;
136
+ app.Processor.Permanent =
137
+ !!this.ProcessorDetailsFormControls.PermanentFormControl.value;
138
+ app.Processor.PreserveMethod =
139
+ !!this.ProcessorDetailsFormControls.PreserveMethodFormControl.value;
140
+ app.Processor.Redirect =
141
+ this.ProcessorDetailsFormControls.RedirectFormControl.value;
142
+ break;
143
+ }
144
+ if (!app.LookupConfig.PathRegex.startsWith('/')) {
145
+ app.LookupConfig.PathRegex = `/${app.LookupConfig.PathRegex}`;
146
+ }
147
+ const saveAppReq = {
148
+ ProjectLookup: this.data.projectLookup,
149
+ Application: app,
150
+ ApplicationLookup: Guid.CreateRaw(),
151
+ };
152
+ this.eacSvc.SaveApplicationAsCode(saveAppReq);
153
+ }
154
+ }
155
+ NewApplicationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NewApplicationDialogComponent, deps: [{ token: i1.EaCService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
156
+ NewApplicationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: NewApplicationDialogComponent, selector: "lcu-new-application-dialog", viewQueries: [{ propertyName: "ApplicationFormControls", first: true, predicate: EditApplicationFormComponent, descendants: true }, { propertyName: "ProcessorDetailsFormControls", first: true, predicate: ProcessorDetailsFormComponent, descendants: true }], ngImport: i0, template: "<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<lcu-edit-application-form \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<button \n *ngIf=\"ProcessorDetailsFormControls && ApplicationFormControls\"\n mat-raised-button \n color=\"primary\"\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>", styles: [".new-app-submit{width:100%}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.EditApplicationFormComponent, selector: "lcu-edit-application-form", inputs: ["application-lookup", "editing-application", "has-save-button", "project-lookup"], outputs: ["save-form-event"] }, { type: i6.ProcessorDetailsFormComponent, selector: "lcu-processor-details-form", inputs: ["editing-application", "editing-application-lookup", "has-save-button", "source-control-lookups", "project-lookup"], outputs: ["save-form-event"] }], directives: [{ type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: NewApplicationDialogComponent, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'lcu-new-application-dialog', template: "<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<lcu-edit-application-form \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<button \n *ngIf=\"ProcessorDetailsFormControls && ApplicationFormControls\"\n mat-raised-button \n color=\"primary\"\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>", styles: [".new-app-submit{width:100%}\n"] }]
160
+ }], ctorParameters: function () { return [{ type: i1.EaCService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
161
+ type: Inject,
162
+ args: [MAT_DIALOG_DATA]
163
+ }] }]; }, propDecorators: { ApplicationFormControls: [{
164
+ type: ViewChild,
165
+ args: [EditApplicationFormComponent]
166
+ }], ProcessorDetailsFormControls: [{
167
+ type: ViewChild,
168
+ args: [ProcessorDetailsFormComponent]
169
+ }] } });
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cvbmV3LWFwcGxpY2F0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxvQkFBb0IsRUFBNEQsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNwSCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7Ozs7Ozs7OztBQWV2SCxNQUFNLE9BQU8sNkJBQTZCO0lBZ0N4QyxZQUNZLE1BQWtCLEVBQ3JCLFNBQXNELEVBQzdCLElBQThCO1FBRnBELFdBQU0sR0FBTixNQUFNLENBQVk7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBNkM7UUFDN0IsU0FBSSxHQUFKLElBQUksQ0FBMEI7UUFFOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7SUFDNUIsQ0FBQztJQTlCRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FB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TTsyQkFBQyxlQUFlOzRDQWhDbEIsdUJBQXVCO3NCQUQ3QixTQUFTO3VCQUFDLDRCQUE0QjtnQkFJaEMsNEJBQTRCO3NCQURsQyxTQUFTO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgR3VpZCB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNFbnZpcm9ubWVudEFzQ29kZSwgRWFDU291cmNlQ29udHJvbCwgRW50ZXJwcmlzZUFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBFZGl0QXBwbGljYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvZWRpdC1hcHBsaWNhdGlvbi1mb3JtL2VkaXQtYXBwbGljYXRpb24tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9wcm9jZXNzb3ItZGV0YWlscy1mb3JtL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UsIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXdBcHBsaWNhdGlvbkRpYWxvZ0RhdGEge1xuICBlbnZpcm9ubWVudExvb2t1cDogc3RyaW5nO1xuICBwcm9qZWN0TG9va3VwOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1uZXctYXBwbGljYXRpb24tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25ldy1hcHBsaWNhdGlvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uZXctYXBwbGljYXRpb24tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBOZXdBcHBsaWNhdGlvbkRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZChFZGl0QXBwbGljYXRpb25Gb3JtQ29tcG9uZW50KVxuICBwdWJsaWMgQXBwbGljYXRpb25Gb3JtQ29udHJvbHM6IEVkaXRBcHBsaWNhdGlvbkZvcm1Db21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudClcbiAgcHVibGljIFByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHM6IFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50O1xuXG4gIHB1YmxpYyBnZXQgRW52aXJvbm1lbnQoKTogRWFDRW52aXJvbm1lbnRBc0NvZGUge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50c1t0aGlzLmRhdGEuZW52aXJvbm1lbnRMb29rdXBdO1xuICB9XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9scygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfSB7XG4gICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLkVudmlyb25tZW50LlNvdXJjZXMgfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGV7XG4gICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICB9XG5cblxuICBwdWJsaWMgSGFzU2F2ZUJ1dHRvbjogYm9vbGVhbjtcblxuICBwdWJsaWMgTmV3QXBwbGljYXRpb246IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gIHB1YmxpYyBOZXdBcHBsaWNhdGlvbkxvb2t1cDogc3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSwgXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5ld0FwcGxpY2F0aW9uRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IE5ld0FwcGxpY2F0aW9uRGlhbG9nRGF0YSkgeyBcblxuICAgIHRoaXMuSGFzU2F2ZUJ1dHRvbiA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLlNldHVwQXBwbGljYXRpb24oR3VpZC5DcmVhdGVSYXcoKSk7XG4gICAgXG4gIH1cblxuICBwdWJsaWMgQ2xvc2VEaWFsb2coKXtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIFNldHVwQXBwbGljYXRpb24oYXBwTG9va3VwOiBzdHJpbmcpe1xuICAgIHRoaXMuTmV3QXBwbGljYXRpb24gPSBuZXcgRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gICAgdGhpcy5OZXdBcHBsaWNhdGlvbkxvb2t1cCA9IGFwcExvb2t1cDtcblxuICB9XG5cbiAgcHVibGljIFNhdmVBcHBsaWNhdGlvbigpOiB2b2lkIHtcblxuICAgIGNvbnN0IGFwcDogRWFDQXBwbGljYXRpb25Bc0NvZGUgPSBuZXcgRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBhcHAuQXBwbGljYXRpb24gPSB7XG4gICAgICBOYW1lOiB0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgIERlc2NyaXB0aW9uOiB0aGlzLkFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLkRlc2NyaXB0aW9uRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICBQcmlvcml0eVNoaWZ0OiAwLFxuICAgIH07XG5cbiAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleCA9IGAke3RoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuUm91dGVGb3JtQ29udHJvbC52YWx1ZX0uKmA7XG4gICAgYXBwLkxvb2t1cENvbmZpZy5BbGxvd2VkTWV0aG9kcyA9XG4gICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTWV0aG9kc0Zvcm1Db250cm9sPy52YWx1ZVxuICAgICAgICA/LnNwbGl0KCcgJylcbiAgICAgICAgLmZpbHRlcigodjogc3RyaW5nKSA9PiAhIXYpO1xuICAgIGFwcC5Qcm9jZXNzb3IuVHlwZSA9IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Qcm9jZXNzb3JUeXBlO1xuXG4gICAgc3dpdGNoIChhcHAuUHJvY2Vzc29yLlR5cGUpIHtcbiAgICAgIGNhc2UgJ0RGUyc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuRGVmYXVsdEZpbGUgPVxuICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5EZWZhdWx0RmlsZUZvcm1Db250cm9sLnZhbHVlIHx8XG4gICAgICAgICAgJ2luZGV4Lmh0bWwnO1xuXG4gICAgICAgICAgYXBwLlByb2Nlc3Nvci5CYXNlSHJlZiA9IGAke3RoaXMuQXBwbGljYXRpb25Gb3JtQ29udHJvbHMuUm91dGVGb3JtQ29udHJvbC52YWx1ZX0vYC5yZXBsYWNlKCcvLycsICcvJyk7XG5cbiAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICBjYXNlICdHaXRIdWInOlxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0Lk9yZ2FuaXphdGlvbiA9XG4gICAgICAgICAgICAgIHRoaXMuU291cmNlQ29udHJvbHNbXG4gICAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICBdLk9yZ2FuaXphdGlvbjtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlJlcG9zaXRvcnkgPVxuICAgICAgICAgICAgICB0aGlzLlNvdXJjZUNvbnRyb2xzW1xuICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgXS5SZXBvc2l0b3J5O1xuXG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQnVpbGQgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQnVpbGRGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlBhdGggPVxuICAgICAgICAgICAgICB0aGlzLkVudmlyb25tZW50LkRldk9wc0FjdGlvbnNbXG4gICAgICAgICAgICAgICAgdGhpcy5Tb3VyY2VDb250cm9sc1tcbiAgICAgICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Tb3VyY2VDb250cm9sRm9ybUNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICBdLkRldk9wc0FjdGlvblRyaWdnZXJMb29rdXBzWzBdXG4gICAgICAgICAgICAgIF0uUGF0aDtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwic291cmNlQ29udHJvbCBsb29rdXA6IFwiLCB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlKTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNvdXJjZUNvbnRyb2xMb29rdXAgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuU291cmNlQ29udHJvbEZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdOUE0nOlxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlBhY2thZ2UgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuUGFja2FnZUZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuVmVyc2lvbiA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5WZXJzaW9uRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1dvcmRQcmVzcyc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQVBJUm9vdCA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5BUElSb290Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ1ppcCc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuWmlwRmlsZSA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5aaXBGaWxlRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnT0F1dGgnOlxuICAgICAgICBhcHAuUHJvY2Vzc29yLlNjb3BlcyA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNjb3Blc0Zvcm1Db250cm9sLnZhbHVlLnNwbGl0KCcgJyk7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5Ub2tlbkxvb2t1cCA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlRva2VuTG9va3VwRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLkxvd0NvZGVVbml0ID0ge1xuICAgICAgICAgIFR5cGU6IHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5MQ1VUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHN3aXRjaCAoYXBwLkxvd0NvZGVVbml0LlR5cGUpIHtcbiAgICAgICAgICBjYXNlICdHaXRIdWJPQXV0aCc6XG4gICAgICAgICAgICBhcHAuTG93Q29kZVVuaXQuQ2xpZW50SUQgPVxuICAgICAgICAgICAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuQ2xpZW50SURGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LkNsaWVudFNlY3JldCA9XG4gICAgICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5DbGllbnRTZWNyZXRGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdQcm94eSc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuSW5ib3VuZFBhdGggPVxuICAgICAgICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5JbmJvdW5kUGF0aEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGFwcC5Mb3dDb2RlVW5pdCA9IHtcbiAgICAgICAgICBUeXBlOiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMuTENVVHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICBzd2l0Y2ggKGFwcC5Mb3dDb2RlVW5pdC5UeXBlKSB7XG4gICAgICAgICAgY2FzZSAnQVBJJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5BUElSb290ID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkFQSVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICAgICAgYXBwLkxvd0NvZGVVbml0LlNlY3VyaXR5ID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNlY3VyaXR5Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnU1BBJzpcbiAgICAgICAgICAgIGFwcC5Mb3dDb2RlVW5pdC5TUEFSb290ID1cbiAgICAgICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlNQQVJvb3RGb3JtQ29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdSZWRpcmVjdCc6XG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuSW5jbHVkZVJlcXVlc3QgPVxuICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLkluY2x1ZGVSZXF1ZXN0Rm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5QZXJtYW5lbnQgPVxuICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlBlcm1hbmVudEZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGFwcC5Qcm9jZXNzb3IuUHJlc2VydmVNZXRob2QgPVxuICAgICAgICAgICEhdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlByZXNlcnZlTWV0aG9kRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgYXBwLlByb2Nlc3Nvci5SZWRpcmVjdCA9XG4gICAgICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzLlJlZGlyZWN0Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICghYXBwLkxvb2t1cENvbmZpZy5QYXRoUmVnZXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICBhcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleCA9IGAvJHthcHAuTG9va3VwQ29uZmlnLlBhdGhSZWdleH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHNhdmVBcHBSZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCA9IHtcbiAgICAgIFByb2plY3RMb29rdXA6IHRoaXMuZGF0YS5wcm9qZWN0TG9va3VwLFxuICAgICAgQXBwbGljYXRpb246IGFwcCxcbiAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBHdWlkLkNyZWF0ZVJhdygpLFxuICAgIH07XG5cbiAgICB0aGlzLmVhY1N2Yy5TYXZlQXBwbGljYXRpb25Bc0NvZGUoc2F2ZUFwcFJlcSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJDbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bGN1LWVkaXQtYXBwbGljYXRpb24tZm9ybSBcbiAgICBbZWRpdGluZy1hcHBsaWNhdGlvbl09XCJOZXdBcHBsaWNhdGlvblwiXG4gICAgW2hhcy1zYXZlLWJ1dHRvbl09XCJIYXNTYXZlQnV0dG9uXCJcbj5cbjwvbGN1LWVkaXQtYXBwbGljYXRpb24tZm9ybT5cblxuPGxjdS1wcm9jZXNzb3ItZGV0YWlscy1mb3JtIFxuICAgIFtlZGl0aW5nLWFwcGxpY2F0aW9uXT1cIk5ld0FwcGxpY2F0aW9uXCJcbiAgICBbZWRpdGluZy1hcHBsaWNhdGlvbi1sb29rdXBdPVwiTmV3QXBwbGljYXRpb25Mb29rdXBcIlxuICAgIFtoYXMtc2F2ZS1idXR0b25dPVwiSGFzU2F2ZUJ1dHRvblwiXG4gICAgW3NvdXJjZS1jb250cm9sLWxvb2t1cHNdPVwiU291cmNlQ29udHJvbExvb2t1cHNcIlxuICAgIFtwcm9qZWN0LWxvb2t1cF09XCJkYXRhLnByb2plY3RMb29rdXBcIlxuPlxuPC9sY3UtcHJvY2Vzc29yLWRldGFpbHMtZm9ybT5cblxuPGJ1dHRvbiBcbiAgICAqbmdJZj1cIlByb2Nlc3NvckRldGFpbHNGb3JtQ29udHJvbHMgJiYgQXBwbGljYXRpb25Gb3JtQ29udHJvbHNcIlxuICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgY2xhc3M9XCJuZXctYXBwLXN1Ym1pdFwiIFxuICAgIChjbGljayk9XCJTYXZlQXBwbGljYXRpb24oKVwiXG4gICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAhUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db250cm9scy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnZhbGlkIFxuICAgICAgICB8fCBcbiAgICAgICAgIUFwcGxpY2F0aW9uRm9ybUNvbnRyb2xzLkFwcGxpY2F0aW9uRm9ybUdyb3VwLnZhbGlkXG4gICAgXCJcbj5cbiAgICBTYXZlIEFwcGxpY2F0aW9uXG48L2J1dHRvbj4iXX0=