@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,53 @@
1
+ import { Component, Inject, ViewChild } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { ProcessorDetailsFormComponent } from '../../controls/processor-details-form/processor-details-form.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/eac.service";
6
+ import * as i2 from "@angular/material/dialog";
7
+ import * as i3 from "@angular/material/button";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "../../controls/processor-details-form/processor-details-form.component";
10
+ import * as i6 from "@angular/flex-layout/flex";
11
+ export class ProcessorDetailsDialogComponent {
12
+ constructor(eacSvc, dialogRef, data) {
13
+ this.eacSvc = eacSvc;
14
+ this.dialogRef = dialogRef;
15
+ this.data = data;
16
+ }
17
+ get Application() {
18
+ return this.State?.EaC?.Applications[this.data.applicationLookup] || {};
19
+ }
20
+ get Environment() {
21
+ return this.State?.EaC?.Environments[this.data.environmentLookup];
22
+ }
23
+ get SourceControls() {
24
+ return this.Environment?.Sources || {};
25
+ }
26
+ get SourceControlLookups() {
27
+ return Object.keys(this.Environment?.Sources || {});
28
+ }
29
+ get State() {
30
+ return this.eacSvc.State;
31
+ }
32
+ ngOnInit() {
33
+ }
34
+ CloseDialog() {
35
+ this.dialogRef.close();
36
+ }
37
+ HandleSaveFormEvent(event) {
38
+ console.log("event: ", event);
39
+ }
40
+ }
41
+ ProcessorDetailsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ProcessorDetailsDialogComponent, deps: [{ token: i1.EaCService }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
42
+ ProcessorDetailsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ProcessorDetailsDialogComponent, selector: "lcu-processor-details-dialog", viewQueries: [{ 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-processor-details-form \n more-details \n [editing-application]=\"Application\"\n [editing-application-lookup]=\"data.applicationLookup\" \n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveFormEvent($event)\"\n>\n</lcu-processor-details-form>\n", styles: [""], 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.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: i6.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"] }] });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ProcessorDetailsDialogComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: 'lcu-processor-details-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-processor-details-form \n more-details \n [editing-application]=\"Application\"\n [editing-application-lookup]=\"data.applicationLookup\" \n [source-control-lookups]=\"SourceControlLookups\"\n [project-lookup]=\"data.projectLookup\"\n (save-form-event)=\"HandleSaveFormEvent($event)\"\n>\n</lcu-processor-details-form>\n", styles: [""] }]
46
+ }], ctorParameters: function () { return [{ type: i1.EaCService }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
47
+ type: Inject,
48
+ args: [MAT_DIALOG_DATA]
49
+ }] }]; }, propDecorators: { ProcessorDetailsFormControls: [{
50
+ type: ViewChild,
51
+ args: [ProcessorDetailsFormComponent]
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLWRldGFpbHMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2RpYWxvZ3MvcHJvY2Vzc29yLWRldGFpbHMtZGlhbG9nL3Byb2Nlc3Nvci1kZXRhaWxzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL3Byb2Nlc3Nvci1kZXRhaWxzLWRpYWxvZy9wcm9jZXNzb3ItZGV0YWlscy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7Ozs7Ozs7O0FBaUJ2SCxNQUFNLE9BQU8sK0JBQStCO0lBeUIxQyxZQUFzQixNQUFrQixFQUMvQixTQUF3RCxFQUMvQixJQUFnQztRQUY1QyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQStDO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQTRCO0lBQUksQ0FBQztJQXRCdkUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFNTSxRQUFRO0lBQ2YsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBVTtRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs0SEF0Q1UsK0JBQStCLHdFQTJCaEMsZUFBZTtnSEEzQmQsK0JBQStCLGtJQUUvQiw2QkFBNkIsZ0RDdkIxQywrZ0JBZUE7MkZETWEsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNFLDhCQUE4Qjs7MEJBZ0NyQyxNQUFNOzJCQUFDLGVBQWU7NENBeEJsQiw0QkFBNEI7c0JBRGxDLFNBQVM7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBHdWlkIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgRWFDQXBwbGljYXRpb25Bc0NvZGUsIEVhQ0Vudmlyb25tZW50QXNDb2RlLCBFYUNTb3VyY2VDb250cm9sIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IFByb2Nlc3NvckRldGFpbHNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcHJvY2Vzc29yLWRldGFpbHMtZm9ybS9wcm9jZXNzb3ItZGV0YWlscy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlLCBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3QgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzb3JEZXRhaWxzRGlhbG9nRGF0YSB7XG4gIGFwcGxpY2F0aW9uTG9va3VwOiBzdHJpbmc7XG4gIGVudmlyb25tZW50TG9va3VwOiBzdHJpbmc7XG4gIHByb2plY3RMb29rdXA6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LXByb2Nlc3Nvci1kZXRhaWxzLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzb3ItZGV0YWlscy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzb3ItZGV0YWlscy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFByb2Nlc3NvckRldGFpbHNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoUHJvY2Vzc29yRGV0YWlsc0Zvcm1Db21wb25lbnQpXG4gIHB1YmxpYyBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbnRyb2xzOiBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudDtcblxuICBwdWJsaWMgZ2V0IEFwcGxpY2F0aW9uKCk6IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5BcHBsaWNhdGlvbnNbdGhpcy5kYXRhLmFwcGxpY2F0aW9uTG9va3VwXSB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRW52aXJvbm1lbnQoKTogRWFDRW52aXJvbm1lbnRBc0NvZGUge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50c1t0aGlzLmRhdGEuZW52aXJvbm1lbnRMb29rdXBdO1xuICB9XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9scygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ1NvdXJjZUNvbnRyb2wgfSB7XG4gICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQ/LlNvdXJjZXMgfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLkVudmlyb25tZW50Py5Tb3VyY2VzIHx8IHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5lYWNTdmMuU3RhdGU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLCBcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UHJvY2Vzc29yRGV0YWlsc0RpYWxvZ0NvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBQcm9jZXNzb3JEZXRhaWxzRGlhbG9nRGF0YSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIENsb3NlRGlhbG9nKCl7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBIYW5kbGVTYXZlRm9ybUV2ZW50KGV2ZW50OiBhbnkpe1xuICAgIGNvbnNvbGUubG9nKFwiZXZlbnQ6IFwiLCBldmVudCk7XG4gIH1cblxuICBcblxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJDbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bGN1LXByb2Nlc3Nvci1kZXRhaWxzLWZvcm0gXG4gICAgbW9yZS1kZXRhaWxzIFxuICAgIFtlZGl0aW5nLWFwcGxpY2F0aW9uXT1cIkFwcGxpY2F0aW9uXCJcbiAgICBbZWRpdGluZy1hcHBsaWNhdGlvbi1sb29rdXBdPVwiZGF0YS5hcHBsaWNhdGlvbkxvb2t1cFwiIFxuICAgIFtzb3VyY2UtY29udHJvbC1sb29rdXBzXT1cIlNvdXJjZUNvbnRyb2xMb29rdXBzXCJcbiAgICBbcHJvamVjdC1sb29rdXBdPVwiZGF0YS5wcm9qZWN0TG9va3VwXCJcbiAgICAoc2F2ZS1mb3JtLWV2ZW50KT1cIkhhbmRsZVNhdmVGb3JtRXZlbnQoJGV2ZW50KVwiXG4+XG48L2xjdS1wcm9jZXNzb3ItZGV0YWlscy1mb3JtPlxuIl19
@@ -0,0 +1,29 @@
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/devops-source-control-form/devops-source-control-form.component";
8
+ import * as i5 from "@angular/flex-layout/flex";
9
+ export class SourceControlDialogComponent {
10
+ constructor(dialogRef, data) {
11
+ this.dialogRef = dialogRef;
12
+ this.data = data;
13
+ }
14
+ ngOnInit() {
15
+ }
16
+ CloseDialog() {
17
+ this.dialogRef.close();
18
+ }
19
+ }
20
+ SourceControlDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SourceControlDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
21
+ SourceControlDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SourceControlDialogComponent, selector: "lcu-source-control-dialog", ngImport: i0, template: "\n<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<div fxLayoutAlign=\"center center\">\n <lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n [editing-source-control-lookup]=\"data.scLookup\">\n </lcu-devops-source-control-form>\n</div>", 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.DevopsSourceControlFormComponent, selector: "lcu-devops-source-control-form", inputs: ["editing-source-control-lookup", "environment", "environment-lookup"], outputs: ["save-status-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"] }] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SourceControlDialogComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'lcu-source-control-dialog', template: "\n<div class=\"dialog-header\" fxLayoutAlign=\"end center\">\n <button mat-icon-button (click)=\"CloseDialog()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n\n<div fxLayoutAlign=\"center center\">\n <lcu-devops-source-control-form\n [environment]=\"data.environment\"\n [environment-lookup]=\"data.environmentLookup\"\n [editing-source-control-lookup]=\"data.scLookup\">\n </lcu-devops-source-control-form>\n</div>", styles: [".dialog-header{width:100%}\n"] }]
25
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
26
+ type: Inject,
27
+ args: [MAT_DIALOG_DATA]
28
+ }] }]; } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvbnRyb2wtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2RpYWxvZ3Mvc291cmNlLWNvbnRyb2wtZGlhbG9nL3NvdXJjZS1jb250cm9sLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL3NvdXJjZS1jb250cm9sLWRpYWxvZy9zb3VyY2UtY29udHJvbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQWN6RSxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLFlBQW9CLFNBQXFELEVBQ3ZDLElBQWtCO1FBRGhDLGNBQVMsR0FBVCxTQUFTLENBQTRDO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQWM7SUFBSSxDQUFDO0lBRWxELFFBQVE7SUFDZixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7O3lIQVZVLDRCQUE0Qiw4Q0FHN0IsZUFBZTs2R0FIZCw0QkFBNEIsaUVDZnpDLGdnQkFhTTsyRkRFTyw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkFPbEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRWFDRW52aXJvbm1lbnRBc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNDRGlhbG9nRGF0YSB7XG4gIGVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcbiAgZW52aXJvbm1lbnRMb29rdXA6IHN0cmluZztcbiAgc2NMb29rdXA6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LXNvdXJjZS1jb250cm9sLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zb3VyY2UtY29udHJvbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zb3VyY2UtY29udHJvbC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTb3VyY2VDb250cm9sRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvciggcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNvdXJjZUNvbnRyb2xEaWFsb2dDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU0NEaWFsb2dEYXRhKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgQ2xvc2VEaWFsb2coKXtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG5cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImRpYWxvZy1oZWFkZXJcIiBmeExheW91dEFsaWduPVwiZW5kIGNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiQ2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgICAgIDxsY3UtZGV2b3BzLXNvdXJjZS1jb250cm9sLWZvcm1cbiAgICAgICAgICAgICAgICBbZW52aXJvbm1lbnRdPVwiZGF0YS5lbnZpcm9ubWVudFwiXG4gICAgICAgICAgICAgICAgW2Vudmlyb25tZW50LWxvb2t1cF09XCJkYXRhLmVudmlyb25tZW50TG9va3VwXCJcbiAgICAgICAgICAgICAgICBbZWRpdGluZy1zb3VyY2UtY29udHJvbC1sb29rdXBdPVwiZGF0YS5zY0xvb2t1cFwiPlxuICAgICAgICA8L2xjdS1kZXZvcHMtc291cmNlLWNvbnRyb2wtZm9ybT5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/dialog";
4
+ import * as i2 from "@angular/material/button";
5
+ import * as i3 from "@angular/material/icon";
6
+ import * as i4 from "@angular/flex-layout/flex";
7
+ export class UpgradeDialogComponent {
8
+ constructor(dialogRef) {
9
+ this.dialogRef = dialogRef;
10
+ }
11
+ ngOnInit() {
12
+ }
13
+ CloseDialog() {
14
+ this.dialogRef.close();
15
+ }
16
+ }
17
+ UpgradeDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: UpgradeDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
18
+ UpgradeDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: UpgradeDialogComponent, selector: "lcu-upgrade-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<div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div>\n <img src=\"./assets/images/AdobeStock_270927614.png\" alt=\"Fathym Premium Free During Beta\">\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center start\">\n <h2>Wow!</h2>\n <h2>Fathym Premium is Free During Beta!</h2>\n <h3>Really...no credit card required.</h3>\n </div>\n</div>\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"] }], directives: [{ type: i4.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: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: UpgradeDialogComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'lcu-upgrade-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<div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div>\n <img src=\"./assets/images/AdobeStock_270927614.png\" alt=\"Fathym Premium Free During Beta\">\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"center start\">\n <h2>Wow!</h2>\n <h2>Fathym Premium is Free During Beta!</h2>\n <h3>Really...no credit card required.</h3>\n </div>\n</div>\n", styles: [""] }]
22
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZGlhbG9ncy91cGdyYWRlLWRpYWxvZy91cGdyYWRlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL3VwZ3JhZGUtZGlhbG9nL3VwZ3JhZGUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVFsRCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW1CLFNBQStDO1FBQS9DLGNBQVMsR0FBVCxTQUFTLENBQXNDO0lBQzVELENBQUM7SUFFQSxRQUFRO0lBQ2YsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzttSEFWVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwRENSbkMsa2tCQWdCQTsyRkRSYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS11cGdyYWRlLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGdyYWRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwZ3JhZGUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXBncmFkZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFVwZ3JhZGVEaWFsb2dDb21wb25lbnQ+LFxuICAgICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIENsb3NlRGlhbG9nKCl7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nLWhlYWRlclwiIGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIkNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgIDxkaXY+XG4gICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL0Fkb2JlU3RvY2tfMjcwOTI3NjE0LnBuZ1wiIGFsdD1cIkZhdGh5bSBQcmVtaXVtIEZyZWUgRHVyaW5nIEJldGFcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBzdGFydFwiPlxuICAgICAgICA8aDI+V293ITwvaDI+XG4gICAgICAgIDxoMj5GYXRoeW0gUHJlbWl1bSBpcyBGcmVlIER1cmluZyBCZXRhITwvaDI+XG4gICAgICAgIDxoMz5SZWFsbHkuLi5ubyBjcmVkaXQgY2FyZCByZXF1aXJlZC48L2gzPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/card";
4
+ import * as i2 from "@angular/material/icon";
5
+ import * as i3 from "@angular/common";
6
+ import * as i4 from "@angular/flex-layout/flex";
7
+ export class AnalyticsCardComponent {
8
+ constructor() {
9
+ }
10
+ ngOnInit() {
11
+ }
12
+ }
13
+ AnalyticsCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AnalyticsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ AnalyticsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: AnalyticsCardComponent, selector: "lcu-analytics-card", inputs: { Title: ["title", "Title"], Subtext: ["subtext", "Subtext"], Analytics: ["analytics", "Analytics"] }, ngImport: i0, template: "<mat-card class=\"analytics-card\">\n <mat-card-header>\n <mat-card-title *ngIf=\"Title\">{{Title}}</mat-card-title>\n <mat-card-subtitle *ngIf=\"Subtext\">{{Subtext}}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <!-- <ng-container *ngFor=\"let atics of analytics \"> -->\n \n <div class=\"analytic-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div class=\"percent-change increase\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ .16 | percent}}</div>\n </div>\n\n <!-- <div class=\"percent-change decrease\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_down</mat-icon>\n <div>16</div>\n </div> -->\n </div>\n\n <!-- </ng-container> -->\n </mat-card-content>\n <!-- <mat-card-actions>\n <button mat-button>LIKE</button>\n <button mat-button>SHARE</button>\n </mat-card-actions> -->\n </mat-card>\n", styles: [".analytics-card{margin:20px;padding:10px}.increase{color:green}.decrease{color:red}\n"], components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i1.MatCardHeader, selector: "mat-card-header" }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { type: i1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4.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"] }], pipes: { "percent": i3.PercentPipe } });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AnalyticsCardComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'lcu-analytics-card', template: "<mat-card class=\"analytics-card\">\n <mat-card-header>\n <mat-card-title *ngIf=\"Title\">{{Title}}</mat-card-title>\n <mat-card-subtitle *ngIf=\"Subtext\">{{Subtext}}</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <!-- <ng-container *ngFor=\"let atics of analytics \"> -->\n \n <div class=\"analytic-container\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <div fxLayout=\"column\">\n <div class=\"analytic-number\">57</div>\n <div class=\"analytic-name\">Unique Visitors</div>\n </div>\n\n <div class=\"percent-change increase\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_up</mat-icon>\n <div>{{ .16 | percent}}</div>\n </div>\n\n <!-- <div class=\"percent-change decrease\" fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <mat-icon>arrow_drop_down</mat-icon>\n <div>16</div>\n </div> -->\n </div>\n\n <!-- </ng-container> -->\n </mat-card-content>\n <!-- <mat-card-actions>\n <button mat-button>LIKE</button>\n <button mat-button>SHARE</button>\n </mat-card-actions> -->\n </mat-card>\n", styles: [".analytics-card{margin:20px;padding:10px}.increase{color:green}.decrease{color:red}\n"] }]
18
+ }], ctorParameters: function () { return []; }, propDecorators: { Title: [{
19
+ type: Input,
20
+ args: ['title']
21
+ }], Subtext: [{
22
+ type: Input,
23
+ args: ['subtext']
24
+ }], Analytics: [{
25
+ type: Input,
26
+ args: ['analytics']
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYW5hbHl0aWNzLWNhcmQvYW5hbHl0aWNzLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYW5hbHl0aWNzLWNhcmQvYW5hbHl0aWNzLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU96RCxNQUFNLE9BQU8sc0JBQXNCO0lBYWpDO0lBRUMsQ0FBQztJQUVGLFFBQVE7SUFDUixDQUFDOzttSEFsQlUsc0JBQXNCO3VHQUF0QixzQkFBc0IseUtDUG5DLGd4Q0FnQ0E7MkZEekJhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0I7MEVBT3ZCLEtBQUs7c0JBRFgsS0FBSzt1QkFBQyxPQUFPO2dCQUlQLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUtULFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1hbmFseXRpY3MtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmFseXRpY3MtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FuYWx5dGljcy1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCd0aXRsZScpXG4gIHB1YmxpYyBUaXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgnc3VidGV4dCcpXG4gIHB1YmxpYyBTdWJ0ZXh0OiBzdHJpbmc7XG5cbiAgLy8gVE9ETyB1cGRhdGUgZnJvbSBhbnkgdG8gYW4gYW5hbHl0aWNzIG1vZGVsXG4gIEBJbnB1dCgnYW5hbHl0aWNzJylcbiAgcHVibGljIEFuYWx5dGljczogYW55W107XG5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBcbiAgIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJhbmFseXRpY3MtY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICA8bWF0LWNhcmQtdGl0bGUgKm5nSWY9XCJUaXRsZVwiPnt7VGl0bGV9fTwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICA8bWF0LWNhcmQtc3VidGl0bGUgKm5nSWY9XCJTdWJ0ZXh0XCI+e3tTdWJ0ZXh0fX08L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdGljcyBvZiBhbmFseXRpY3MgXCI+IC0tPlxuICAgICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5hbHl0aWMtY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5hbHl0aWMtbnVtYmVyXCI+NTc8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5hbHl0aWMtbmFtZVwiPlVuaXF1ZSBWaXNpdG9yczwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJjZW50LWNoYW5nZSBpbmNyZWFzZVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF91cDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPGRpdj57eyAuMTYgfCBwZXJjZW50fX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJwZXJjZW50LWNoYW5nZSBkZWNyZWFzZVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8ZGl2PjE2PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIDwvbmctY29udGFpbmVyPiAtLT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPCEtLSA8bWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbj5MSUtFPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24+U0hBUkU8L2J1dHRvbj5cbiAgICA8L21hdC1jYXJkLWFjdGlvbnM+IC0tPlxuICA8L21hdC1jYXJkPlxuIl19
@@ -0,0 +1,57 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/forms.service";
4
+ import * as i2 from "../../services/eac.service";
5
+ export class BaseFormComponent {
6
+ constructor(formsService, eac) {
7
+ this.formsService = formsService;
8
+ this.eac = eac;
9
+ }
10
+ ngOnInit() {
11
+ this.setupForm();
12
+ }
13
+ setupForm() {
14
+ this.formsService.Form = { Id: this.FormConfig.FormName, Form: this.FormConfig.Form };
15
+ // this.onChange();
16
+ }
17
+ /**
18
+ * Listen to form value changes
19
+ */
20
+ onChange() {
21
+ }
22
+ checkFormForChanges() {
23
+ this.FormConfig.Form.valueChanges.subscribe((val) => {
24
+ if (this.formsService.ForRealThough(this.FormConfig.FormName, this.FormConfig.Form)) {
25
+ this.FormConfig.IsDirty = true;
26
+ // disable all forms except the current form being edited
27
+ this.formsService.DisableForms(this.FormConfig.FormName);
28
+ }
29
+ else {
30
+ this.FormConfig.IsDirty = false;
31
+ // enable all forms
32
+ this.formsService.DisableForms(false);
33
+ }
34
+ });
35
+ }
36
+ /**
37
+ * Update Form value reference
38
+ */
39
+ updateValueRef() {
40
+ this.formsService.UpdateValuesReference({
41
+ Id: this.FormConfig.FormName,
42
+ Form: this.FormConfig.Form
43
+ });
44
+ }
45
+ save() {
46
+ console.log('PARENT SAVE');
47
+ }
48
+ resetForm() {
49
+ }
50
+ }
51
+ BaseFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BaseFormComponent, deps: [{ token: i1.FormsService }, { token: i2.EaCService }], target: i0.ɵɵFactoryTarget.Component });
52
+ BaseFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BaseFormComponent, selector: "lcu-base-form", ngImport: i0, template: "\n", styles: [""] });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BaseFormComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'lcu-base-form', template: "\n", styles: [""] }]
56
+ }], ctorParameters: function () { return [{ type: i1.FormsService }, { type: i2.EaCService }]; } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL2Jhc2UtZm9ybS9iYXNlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYmFzZS1mb3JtL2Jhc2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2xELE1BQU0sT0FBTyxpQkFBaUI7SUFtQjVCLFlBQ1ksWUFBMEIsRUFDMUIsR0FBZTtRQURmLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFFBQUcsR0FBSCxHQUFHLENBQVk7SUFDdkIsQ0FBQztJQUVFLFFBQVE7UUFFYixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVTLFNBQVM7UUFFakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsRUFBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFDLENBQUM7UUFFcEYsbUJBQW1CO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNPLFFBQVE7SUFHbEIsQ0FBQztJQUVTLG1CQUFtQjtRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFFMUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQy9CLHlEQUF5RDtnQkFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMxRDtpQkFBTTtnQkFFTCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ2hDLG1CQUFtQjtnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNPLGNBQWM7UUFFdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FDckM7WUFDRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLElBQUk7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUyxTQUFTO0lBRW5CLENBQUM7OzhHQTlFVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxRENWOUIsSUFDQTsyRkRTYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VGb3JtQ29uZmlnTW9kZWwgfSBmcm9tICcuLy4uLy4uL21vZGVscy9iYXNlLWZvcm0tY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybXMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1iYXNlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFzZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFzZS1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmFzZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBGb3JtR3JvdXAgZm9yIHByb2plY3QgbmFtZSBjYXJkXG4gICAqL1xuICAvLyBwdWJsaWMgRm9ybTogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBGb3JtIG5hbWVcbiAgICovXG4gIC8vIHByb3RlY3RlZCBmb3JtTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIGZvcm0gaXMgZGlydHksIHRpZXMgaW50byBmb3Jtc1NlcnZpY2UuRGlzYWJsZUZvcm1zXG4gICAqL1xuICAvLyBwdWJsaWMgSXNEaXJ0eTogYm9vbGVhbjtcblxuICBwdWJsaWMgRm9ybUNvbmZpZzogQmFzZUZvcm1Db25maWdNb2RlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVhYzogRWFDU2VydmljZVxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuc2V0dXBGb3JtKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBGb3JtKCk6IHZvaWQge1xuXG4gICAgdGhpcy5mb3Jtc1NlcnZpY2UuRm9ybSA9IHtJZDogdGhpcy5Gb3JtQ29uZmlnLkZvcm1OYW1lLCBGb3JtOiB0aGlzLkZvcm1Db25maWcuRm9ybX07XG5cbiAgICAvLyB0aGlzLm9uQ2hhbmdlKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIGZvcm0gdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIFxuXG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tGb3JtRm9yQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLkZvcm1Db25maWcuRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWw6IG9iamVjdCkgPT4ge1xuXG4gICAgICBpZiAodGhpcy5mb3Jtc1NlcnZpY2UuRm9yUmVhbFRob3VnaCh0aGlzLkZvcm1Db25maWcuRm9ybU5hbWUsIHRoaXMuRm9ybUNvbmZpZy5Gb3JtKSkge1xuICAgICAgICB0aGlzLkZvcm1Db25maWcuSXNEaXJ0eSA9IHRydWU7XG4gICAgICAgIC8vIGRpc2FibGUgYWxsIGZvcm1zIGV4Y2VwdCB0aGUgY3VycmVudCBmb3JtIGJlaW5nIGVkaXRlZFxuICAgICAgICB0aGlzLmZvcm1zU2VydmljZS5EaXNhYmxlRm9ybXModGhpcy5Gb3JtQ29uZmlnLkZvcm1OYW1lKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgdGhpcy5Gb3JtQ29uZmlnLklzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgLy8gZW5hYmxlIGFsbCBmb3Jtc1xuICAgICAgICB0aGlzLmZvcm1zU2VydmljZS5EaXNhYmxlRm9ybXMoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBGb3JtIHZhbHVlIHJlZmVyZW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZVZhbHVlUmVmKCk6IHZvaWQge1xuXG4gICAgdGhpcy5mb3Jtc1NlcnZpY2UuVXBkYXRlVmFsdWVzUmVmZXJlbmNlKFxuICAgICAge1xuICAgICAgICBJZDogdGhpcy5Gb3JtQ29uZmlnLkZvcm1OYW1lLFxuICAgICAgICBGb3JtOiB0aGlzLkZvcm1Db25maWcuRm9ybVxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2F2ZSgpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZygnUEFSRU5UIFNBVkUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldEZvcm0oKTogdm9pZCB7XG5cbiAgfVxufVxuIiwiXG4iXX0=
@@ -0,0 +1,124 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/eac.service";
4
+ import * as i2 from "@angular/material/icon";
5
+ import * as i3 from "@angular/material/button";
6
+ import * as i4 from "@angular/material/menu";
7
+ import * as i5 from "@angular/flex-layout/flex";
8
+ import * as i6 from "@angular/common";
9
+ import * as i7 from "skeleton-elements/angular";
10
+ import * as i8 from "@angular/router";
11
+ export class BreadcrumbComponent {
12
+ constructor(eacSvc) {
13
+ this.eacSvc = eacSvc;
14
+ this.SkeletonEffect = 'wave';
15
+ }
16
+ get Enterprise() {
17
+ return this.State.Enterprises?.find((ent) => ent.Lookup == this.State.ActiveEnterpriseLookup);
18
+ }
19
+ get ApplicationsBank() {
20
+ return this.State?.EaC?.Applications || {};
21
+ }
22
+ get Applications() {
23
+ const apps = {};
24
+ this.SelectedProject?.ApplicationLookups?.forEach((appLookup) => {
25
+ apps[appLookup] = this.ApplicationsBank[appLookup];
26
+ });
27
+ return apps;
28
+ }
29
+ get SelectedApplication() {
30
+ return this.State?.EaC?.Applications[this.ApplicationLookup] || {};
31
+ }
32
+ get CurrentRouteApplicationLookups() {
33
+ return Object.keys(this.RoutedApplications[this.SelectedRoute] || {});
34
+ }
35
+ get Loading() {
36
+ return (this.State?.LoadingActiveEnterprise || this.State?.LoadingEnterprises);
37
+ }
38
+ get Projects() {
39
+ return this.State?.EaC?.Projects || {};
40
+ }
41
+ get ProjectLookups() {
42
+ return Object.keys(this.State?.EaC?.Projects || {});
43
+ }
44
+ get Routes() {
45
+ return Object.keys(this.RoutedApplications || {});
46
+ }
47
+ get RoutedApplications() {
48
+ const appLookups = Object.keys(this.Applications);
49
+ const apps = appLookups.map((appLookup) => this.Applications[appLookup]);
50
+ let appRoutes = apps.map((app) => {
51
+ return app.LookupConfig?.PathRegex.replace('.*', '');
52
+ }) || [];
53
+ appRoutes = appRoutes.filter((ar) => ar != null);
54
+ let routeBases = [];
55
+ appRoutes?.forEach((appRoute) => {
56
+ const appRouteParts = appRoute.split('/');
57
+ const appRouteBase = `/${appRouteParts[1]}`;
58
+ if (routeBases.indexOf(appRouteBase) < 0) {
59
+ routeBases.push(appRouteBase);
60
+ }
61
+ });
62
+ let workingAppLookups = [...(appLookups || [])];
63
+ routeBases = routeBases.sort((a, b) => b.localeCompare(a));
64
+ const routeSet = routeBases.reduce((prevRouteMap, currentRouteBase) => {
65
+ const routeMap = {
66
+ ...prevRouteMap,
67
+ };
68
+ const filteredAppLookups = workingAppLookups.filter((wal) => {
69
+ const wa = this.Applications[wal];
70
+ return wa.LookupConfig?.PathRegex.startsWith(currentRouteBase);
71
+ });
72
+ routeMap[currentRouteBase] =
73
+ filteredAppLookups.reduce((prevAppMap, appLookup) => {
74
+ const appMap = {
75
+ ...prevAppMap,
76
+ };
77
+ appMap[appLookup] = this.Applications[appLookup];
78
+ return appMap;
79
+ }, {}) || {};
80
+ workingAppLookups = workingAppLookups.filter((wa) => {
81
+ return filteredAppLookups.indexOf(wa) < 0;
82
+ });
83
+ return routeMap;
84
+ }, {}) || {};
85
+ let routeSetKeys = Object.keys(routeSet);
86
+ routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));
87
+ const routeSetResult = {};
88
+ routeSetKeys?.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));
89
+ return routeSetResult;
90
+ }
91
+ get SelectedProject() {
92
+ return this.State?.EaC?.Projects[this.ProjectLookup] || {};
93
+ }
94
+ get State() {
95
+ return this.eacSvc.State;
96
+ }
97
+ ngOnInit() {
98
+ this.handleStateChange().then((eac) => { });
99
+ // console.log("state: ", this.State)
100
+ console.log("selected enterprise: ", this.Enterprise);
101
+ // console.log('Selected project: ', this.SelectedProject.Project);
102
+ // console.log('SelectedRoute:', this.SelectedRoute);
103
+ }
104
+ SetActiveEnterprise(entLookup) {
105
+ this.eacSvc.SetActiveEnterprise(entLookup).then(() => { });
106
+ }
107
+ async handleStateChange() { }
108
+ }
109
+ BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.EaCService }], target: i0.ɵɵFactoryTarget.Component });
110
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BreadcrumbComponent, selector: "lcu-breadcrumb", inputs: { ApplicationLookup: ["application-lookup", "ApplicationLookup"], ProjectLookup: ["project-lookup", "ProjectLookup"], SelectedRoute: ["selected-route", "SelectedRoute"] }, ngImport: i0, template: "<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <ng-container *ngIf=\"Loading\">\n <mat-icon>home</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Enterprise Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!Loading && Enterprise\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">\n <mat-icon>home</mat-icon>\n\n {{ Enterprise?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"enterpriseMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #enterpriseMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n [routerLink]=\"['/enterprises']\"\n (click)=\"SetActiveEnterprise(ent.Lookup)\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n <span>{{ ent.Name }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"ProjectLookup && SelectedProject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Project Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">\n {{ SelectedProject?.Project?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let projectLookup of ProjectLookups\"\n [routerLink]=\"['/projects', projectLookup]\"\n >\n <span *ngIf=\"Projects[projectLookup]; let pro\">{{\n pro.Project?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Route Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\"\n >\n {{ SelectedRoute }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appRoute of Routes\"\n [routerLink]=\"['/routes', appRoute, ProjectLookup]\"\n >\n <span *ngIf=\"appRoute\">{{ appRoute }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"SelectedApplication && ApplicationLookup\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Application Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"[\n '/applications',\n ApplicationLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n {{ SelectedApplication?.Application?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"applicationMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #applicationMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"[\n '/applications',\n appLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n <span *ngIf=\"RoutedApplications[SelectedRoute][appLookup]; let app\">{{\n app.Application?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .breadcrumb-container{background-color:#ebecf0;margin:1em}:host ::ng-deep .seperator{font-size:25px;padding:10px}:host ::ng-deep .crumb-name{cursor:pointer}:host ::ng-deep .mat-icon{display:inline-flex;vertical-align:middle}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { 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"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i8.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BreadcrumbComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ selector: 'lcu-breadcrumb', template: "<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <ng-container *ngIf=\"Loading\">\n <mat-icon>home</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Enterprise Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!Loading && Enterprise\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">\n <mat-icon>home</mat-icon>\n\n {{ Enterprise?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"enterpriseMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #enterpriseMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n [routerLink]=\"['/enterprises']\"\n (click)=\"SetActiveEnterprise(ent.Lookup)\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n <span>{{ ent.Name }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"ProjectLookup && SelectedProject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Project Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">\n {{ SelectedProject?.Project?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let projectLookup of ProjectLookups\"\n [routerLink]=\"['/projects', projectLookup]\"\n >\n <span *ngIf=\"Projects[projectLookup]; let pro\">{{\n pro.Project?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Route Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\"\n >\n {{ SelectedRoute }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appRoute of Routes\"\n [routerLink]=\"['/routes', appRoute, ProjectLookup]\"\n >\n <span *ngIf=\"appRoute\">{{ appRoute }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"SelectedApplication && ApplicationLookup\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Application Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"[\n '/applications',\n ApplicationLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n {{ SelectedApplication?.Application?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"applicationMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #applicationMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"[\n '/applications',\n appLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n <span *ngIf=\"RoutedApplications[SelectedRoute][appLookup]; let app\">{{\n app.Application?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .breadcrumb-container{background-color:#ebecf0;margin:1em}:host ::ng-deep .seperator{font-size:25px;padding:10px}:host ::ng-deep .crumb-name{cursor:pointer}:host ::ng-deep .mat-icon{display:inline-flex;vertical-align:middle}\n"] }]
114
+ }], ctorParameters: function () { return [{ type: i1.EaCService }]; }, propDecorators: { ApplicationLookup: [{
115
+ type: Input,
116
+ args: ['application-lookup']
117
+ }], ProjectLookup: [{
118
+ type: Input,
119
+ args: ['project-lookup']
120
+ }], SelectedRoute: [{
121
+ type: Input,
122
+ args: ['selected-route']
123
+ }] } });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBVXpELE1BQU0sT0FBTyxtQkFBbUI7SUF3STlCLFlBQXNCLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQXpJRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQ2pDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQ3pELENBQUM7SUFDSixDQUFDO0lBV0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsTUFBTSxJQUFJLEdBQStDLEVBQUUsQ0FBQztRQUU1RCxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFXLDhCQUE4QjtRQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSyxFQUFFLHVCQUF1QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBRzNCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV6RSxJQUFJLFNBQVMsR0FDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVgsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFFOUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzlCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU1QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFpQixHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhELFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNELE1BQU0sUUFBUSxHQUNaLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLFFBQVEsR0FBRztnQkFDZixHQUFHLFlBQVk7YUFDaEIsQ0FBQztZQUVGLE1BQU0sa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRWxDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLENBQUM7WUFFSCxRQUFRLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBRTtvQkFDbEQsTUFBTSxNQUFNLEdBQUc7d0JBQ2IsR0FBRyxVQUFVO3FCQUNkLENBQUM7b0JBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBRWpELE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWYsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ2xELE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFZixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUUxQixZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBUUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFFM0MscUNBQXFDO1FBRXJDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJELG1FQUFtRTtRQUVuRSxxREFBcUQ7SUFDdkQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFNBQWlCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxLQUFLLENBQUMsaUJBQWlCLEtBQW1CLENBQUM7O2dIQTVKMUMsbUJBQW1CO29HQUFuQixtQkFBbUIsME9DVmhDLHN1SUFnSkE7MkZEdElhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7aUdBWW5CLGlCQUFpQjtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBSXBCLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUloQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWFDQXBwbGljYXRpb25Bc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBnZXQgRW50ZXJwcmlzZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLlN0YXRlLkVudGVycHJpc2VzPy5maW5kKFxuICAgICAgKGVudCkgPT4gZW50Lkxvb2t1cCA9PSB0aGlzLlN0YXRlLkFjdGl2ZUVudGVycHJpc2VMb29rdXBcbiAgICApO1xuICB9XG5cbiAgQElucHV0KCdhcHBsaWNhdGlvbi1sb29rdXAnKVxuICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuICBASW5wdXQoJ3Byb2plY3QtbG9va3VwJylcbiAgcHVibGljIFByb2plY3RMb29rdXA6IHN0cmluZztcblxuICBASW5wdXQoJ3NlbGVjdGVkLXJvdXRlJylcbiAgcHVibGljIFNlbGVjdGVkUm91dGU6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IEFwcGxpY2F0aW9uc0JhbmsoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9IHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5BcHBsaWNhdGlvbnMgfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IEFwcGxpY2F0aW9ucygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0ge1xuICAgIGNvbnN0IGFwcHM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSA9IHt9O1xuXG4gICAgdGhpcy5TZWxlY3RlZFByb2plY3Q/LkFwcGxpY2F0aW9uTG9va3Vwcz8uZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zQmFua1thcHBMb29rdXBdO1xuICAgIH0pO1xuICAgIHJldHVybiBhcHBzO1xuICB9XG5cbiAgcHVibGljIGdldCBTZWxlY3RlZEFwcGxpY2F0aW9uKCk6IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5BcHBsaWNhdGlvbnNbdGhpcy5BcHBsaWNhdGlvbkxvb2t1cF0gfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IEN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnNbdGhpcy5TZWxlY3RlZFJvdXRlXSB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IExvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuU3RhdGU/LkxvYWRpbmdBY3RpdmVFbnRlcnByaXNlIHx8IHRoaXMuU3RhdGU/LkxvYWRpbmdFbnRlcnByaXNlc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFByb2plY3RzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IFByb2plY3RMb29rdXBzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0cyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFJvdXRlcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Sb3V0ZWRBcHBsaWNhdGlvbnMgfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBSb3V0ZWRBcHBsaWNhdGlvbnMoKToge1xuICAgIFtyb3V0ZTogc3RyaW5nXTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9O1xuICB9IHtcbiAgICBjb25zdCBhcHBMb29rdXBzID0gT2JqZWN0LmtleXModGhpcy5BcHBsaWNhdGlvbnMpO1xuXG4gICAgY29uc3QgYXBwcyA9IGFwcExvb2t1cHMubWFwKChhcHBMb29rdXApID0+IHRoaXMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0pO1xuXG4gICAgbGV0IGFwcFJvdXRlcyA9XG4gICAgICBhcHBzLm1hcCgoYXBwKSA9PiB7XG4gICAgICAgIHJldHVybiBhcHAuTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgucmVwbGFjZSgnLionLCAnJyk7XG4gICAgICB9KSB8fCBbXTtcblxuICAgIGFwcFJvdXRlcyA9IGFwcFJvdXRlcy5maWx0ZXIoKGFyKSA9PiBhciAhPSBudWxsKTtcblxuICAgIGxldCByb3V0ZUJhc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgYXBwUm91dGVzPy5mb3JFYWNoKChhcHBSb3V0ZSkgPT4ge1xuICAgICAgY29uc3QgYXBwUm91dGVQYXJ0cyA9IGFwcFJvdXRlLnNwbGl0KCcvJyk7XG5cbiAgICAgIGNvbnN0IGFwcFJvdXRlQmFzZSA9IGAvJHthcHBSb3V0ZVBhcnRzWzFdfWA7XG5cbiAgICAgIGlmIChyb3V0ZUJhc2VzLmluZGV4T2YoYXBwUm91dGVCYXNlKSA8IDApIHtcbiAgICAgICAgcm91dGVCYXNlcy5wdXNoKGFwcFJvdXRlQmFzZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBsZXQgd29ya2luZ0FwcExvb2t1cHMgPSBbLi4uKGFwcExvb2t1cHMgfHwgW10pXTtcblxuICAgIHJvdXRlQmFzZXMgPSByb3V0ZUJhc2VzLnNvcnQoKGEsIGIpID0+IGIubG9jYWxlQ29tcGFyZShhKSk7XG5cbiAgICBjb25zdCByb3V0ZVNldCA9XG4gICAgICByb3V0ZUJhc2VzLnJlZHVjZSgocHJldlJvdXRlTWFwLCBjdXJyZW50Um91dGVCYXNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvdXRlTWFwID0ge1xuICAgICAgICAgIC4uLnByZXZSb3V0ZU1hcCxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEFwcExvb2t1cHMgPSB3b3JraW5nQXBwTG9va3Vwcy5maWx0ZXIoKHdhbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdhID0gdGhpcy5BcHBsaWNhdGlvbnNbd2FsXTtcblxuICAgICAgICAgIHJldHVybiB3YS5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5zdGFydHNXaXRoKGN1cnJlbnRSb3V0ZUJhc2UpO1xuICAgICAgICB9KTtcblxuICAgICAgICByb3V0ZU1hcFtjdXJyZW50Um91dGVCYXNlXSA9XG4gICAgICAgICAgZmlsdGVyZWRBcHBMb29rdXBzLnJlZHVjZSgocHJldkFwcE1hcCwgYXBwTG9va3VwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcHBNYXAgPSB7XG4gICAgICAgICAgICAgIC4uLnByZXZBcHBNYXAsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhcHBNYXBbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zW2FwcExvb2t1cF07XG5cbiAgICAgICAgICAgIHJldHVybiBhcHBNYXA7XG4gICAgICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgICAgIHdvcmtpbmdBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YSkgPT4ge1xuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEFwcExvb2t1cHMuaW5kZXhPZih3YSkgPCAwO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcm91dGVNYXA7XG4gICAgICB9LCB7fSkgfHwge307XG5cbiAgICBsZXQgcm91dGVTZXRLZXlzID0gT2JqZWN0LmtleXMocm91dGVTZXQpO1xuXG4gICAgcm91dGVTZXRLZXlzID0gcm91dGVTZXRLZXlzLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG5cbiAgICBjb25zdCByb3V0ZVNldFJlc3VsdCA9IHt9O1xuXG4gICAgcm91dGVTZXRLZXlzPy5mb3JFYWNoKChyc2spID0+IChyb3V0ZVNldFJlc3VsdFtyc2tdID0gcm91dGVTZXRbcnNrXSkpO1xuXG4gICAgcmV0dXJuIHJvdXRlU2V0UmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldCBTZWxlY3RlZFByb2plY3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0c1t0aGlzLlByb2plY3RMb29rdXBdIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUge1xuICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UpIHtcbiAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVTdGF0ZUNoYW5nZSgpLnRoZW4oKGVhYykgPT4ge30pO1xuXG4gICAgLy8gY29uc29sZS5sb2coXCJzdGF0ZTogXCIsIHRoaXMuU3RhdGUpXG5cbiAgICBjb25zb2xlLmxvZyhcInNlbGVjdGVkIGVudGVycHJpc2U6IFwiLCB0aGlzLkVudGVycHJpc2UpXG5cbiAgICAvLyBjb25zb2xlLmxvZygnU2VsZWN0ZWQgcHJvamVjdDogJywgdGhpcy5TZWxlY3RlZFByb2plY3QuUHJvamVjdCk7XG5cbiAgICAvLyBjb25zb2xlLmxvZygnU2VsZWN0ZWRSb3V0ZTonLCB0aGlzLlNlbGVjdGVkUm91dGUpO1xuICB9XG5cbiAgcHVibGljIFNldEFjdGl2ZUVudGVycHJpc2UoZW50TG9va3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVhY1N2Yy5TZXRBY3RpdmVFbnRlcnByaXNlKGVudExvb2t1cCkudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU3RhdGVDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7fVxufVxuIiwiPGRpdiBjbGFzcz1cImJyZWFkY3J1bWItY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiPlxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgICAgPG1hdC1pY29uPmhvbWU8L21hdC1pY29uPlxuXG4gICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPkVudGVycHJpc2UgTmFtZTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFMb2FkaW5nICYmIEVudGVycHJpc2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcnVtYi1uYW1lXCIgW3JvdXRlckxpbmtdPVwiWycvZW50ZXJwcmlzZXMnXVwiPlxuICAgICAgICA8bWF0LWljb24+aG9tZTwvbWF0LWljb24+XG5cbiAgICAgICAge3sgRW50ZXJwcmlzZT8uTmFtZSB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJlbnRlcnByaXNlTWVudVwiPlxuICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxtYXQtbWVudSAjZW50ZXJwcmlzZU1lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvZW50ZXJwcmlzZXMnXVwiXG4gICAgICAgICAgKGNsaWNrKT1cIlNldEFjdGl2ZUVudGVycHJpc2UoZW50Lkxvb2t1cClcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBlbnQgb2YgU3RhdGUuRW50ZXJwcmlzZXNcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgZW50Lk5hbWUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwiUHJvamVjdExvb2t1cCAmJiBTZWxlY3RlZFByb2plY3RcIlxuICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGVyYXRvclwiPi88L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+UHJvamVjdCBOYW1lPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItbmFtZVwiIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3RzJywgUHJvamVjdExvb2t1cF1cIj5cbiAgICAgICAge3sgU2VsZWN0ZWRQcm9qZWN0Py5Qcm9qZWN0Py5OYW1lIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInByb2plY3RNZW51XCI+XG4gICAgICAgIDxtYXQtaWNvbj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG1hdC1tZW51ICNwcm9qZWN0TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvamVjdExvb2t1cCBvZiBQcm9qZWN0TG9va3Vwc1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdHMnLCBwcm9qZWN0TG9va3VwXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIlByb2plY3RzW3Byb2plY3RMb29rdXBdOyBsZXQgcHJvXCI+e3tcbiAgICAgICAgICAgIHByby5Qcm9qZWN0Py5OYW1lXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIlNlbGVjdGVkUm91dGVcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBlcmF0b3JcIj4vPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlJvdXRlIE5hbWU8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcnVtYi1uYW1lXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcm91dGVzJywgU2VsZWN0ZWRSb3V0ZSwgUHJvamVjdExvb2t1cF1cIlxuICAgICAgPlxuICAgICAgICB7eyBTZWxlY3RlZFJvdXRlIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInJvdXRlTWVudVwiPlxuICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxtYXQtbWVudSAjcm91dGVNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBhcHBSb3V0ZSBvZiBSb3V0ZXNcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3JvdXRlcycsIGFwcFJvdXRlLCBQcm9qZWN0TG9va3VwXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImFwcFJvdXRlXCI+e3sgYXBwUm91dGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwiU2VsZWN0ZWRBcHBsaWNhdGlvbiAmJiBBcHBsaWNhdGlvbkxvb2t1cFwiXG4gICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwZXJhdG9yXCI+Lzwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5BcHBsaWNhdGlvbiBOYW1lPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3J1bWItbmFtZVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIltcbiAgICAgICAgICAnL2FwcGxpY2F0aW9ucycsXG4gICAgICAgICAgQXBwbGljYXRpb25Mb29rdXAsXG4gICAgICAgICAgU2VsZWN0ZWRSb3V0ZSxcbiAgICAgICAgICBQcm9qZWN0TG9va3VwXG4gICAgICAgIF1cIlxuICAgICAgPlxuICAgICAgICB7eyBTZWxlY3RlZEFwcGxpY2F0aW9uPy5BcHBsaWNhdGlvbj8uTmFtZSB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJhcHBsaWNhdGlvbk1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bWF0LW1lbnUgI2FwcGxpY2F0aW9uTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYXBwTG9va3VwIG9mIEN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3Vwc1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiW1xuICAgICAgICAgICAgJy9hcHBsaWNhdGlvbnMnLFxuICAgICAgICAgICAgYXBwTG9va3VwLFxuICAgICAgICAgICAgU2VsZWN0ZWRSb3V0ZSxcbiAgICAgICAgICAgIFByb2plY3RMb29rdXBcbiAgICAgICAgICBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiUm91dGVkQXBwbGljYXRpb25zW1NlbGVjdGVkUm91dGVdW2FwcExvb2t1cF07IGxldCBhcHBcIj57e1xuICAgICAgICAgICAgYXBwLkFwcGxpY2F0aW9uPy5OYW1lXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/button";
4
+ import * as i2 from "@angular/material/icon";
5
+ import * as i3 from "@angular/flex-layout/flex";
6
+ import * as i4 from "@angular/common";
7
+ export class CardCarouselComponent {
8
+ constructor() {
9
+ this.carouselIndex = 0;
10
+ }
11
+ ngOnInit() {
12
+ }
13
+ ngAfterViewInit() {
14
+ this.assignCarouselClass();
15
+ }
16
+ LeftChevronClicked() {
17
+ this.removeCarouselClasses();
18
+ if (this.carouselIndex === 0) {
19
+ this.carouselIndex = this.Stats.length - 1;
20
+ }
21
+ else {
22
+ this.carouselIndex--;
23
+ }
24
+ this.assignCarouselClass();
25
+ }
26
+ MoreDetailsClicked() {
27
+ console.log("More details clicked on carousel item", this.Stats[this.carouselIndex]);
28
+ }
29
+ RightChevronClicked() {
30
+ this.removeCarouselClasses();
31
+ if (this.carouselIndex === this.Stats.length - 1) {
32
+ this.carouselIndex = 0;
33
+ }
34
+ else {
35
+ this.carouselIndex++;
36
+ }
37
+ this.assignCarouselClass();
38
+ }
39
+ //HELPERS
40
+ removeCarouselClasses() {
41
+ for (let i = 0; i < this.Stats.length; i++) {
42
+ if (i === this.carouselIndex) {
43
+ document.getElementById("carousel-" + this.carouselIndex).classList.remove('active');
44
+ }
45
+ else {
46
+ document.getElementById("carousel-" + i).classList.remove('hidden');
47
+ }
48
+ }
49
+ }
50
+ assignCarouselClass() {
51
+ for (let i = 0; i < this.Stats.length; i++) {
52
+ if (i === this.carouselIndex) {
53
+ document.getElementById("carousel-" + this.carouselIndex).classList.add('active');
54
+ }
55
+ else {
56
+ document.getElementById("carousel-" + i).classList.add('hidden');
57
+ }
58
+ }
59
+ }
60
+ }
61
+ CardCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CardCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
+ CardCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: CardCarouselComponent, selector: "lcu-card-carousel", inputs: { Stats: ["stats", "Stats"] }, ngImport: i0, template: "<div stats class=\"carousel-container\">\n <div class=\"chevron-container\" fxLayout=\"row\">\n <button mat-icon-button class=\"chevron-button\" id=\"left-chevron\" (click)=\"LeftChevronClicked()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button mat-icon-button class=\"chevron-button\" id=\"right-chevron\" (click)=\"RightChevronClicked()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let stat of Stats; let i = index\">\n <div class=\"carousel-item\" [id]=\"'carousel-'+i\">\n <div class=\"carousel-title\">{{stat.Name}}</div>\n <div class=\"carousel-stat\">{{stat.Stat}}</div>\n </div>\n </ng-container>\n <div (click)=\"MoreDetailsClicked()\">More details</div>\n</div>\n", styles: [".carousel-container{text-align:center;height:75px;padding-top:20px}.carousel-item.hidden{display:none}.carousel-item.active{visibility:visible}.chevron-button{position:absolute}#right-chevron{right:5px}#left-chevron{left:5px}\n"], components: [{ type: i1.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: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CardCarouselComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'lcu-card-carousel', template: "<div stats class=\"carousel-container\">\n <div class=\"chevron-container\" fxLayout=\"row\">\n <button mat-icon-button class=\"chevron-button\" id=\"left-chevron\" (click)=\"LeftChevronClicked()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button mat-icon-button class=\"chevron-button\" id=\"right-chevron\" (click)=\"RightChevronClicked()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let stat of Stats; let i = index\">\n <div class=\"carousel-item\" [id]=\"'carousel-'+i\">\n <div class=\"carousel-title\">{{stat.Name}}</div>\n <div class=\"carousel-stat\">{{stat.Stat}}</div>\n </div>\n </ng-container>\n <div (click)=\"MoreDetailsClicked()\">More details</div>\n</div>\n", styles: [".carousel-container{text-align:center;height:75px;padding-top:20px}.carousel-item.hidden{display:none}.carousel-item.active{visibility:visible}.chevron-button{position:absolute}#right-chevron{right:5px}#left-chevron{left:5px}\n"] }]
66
+ }], ctorParameters: function () { return []; }, propDecorators: { Stats: [{
67
+ type: Input,
68
+ args: ['stats']
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jYXJvdXNlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy9jYXJkLWNhcm91c2VsL2NhcmQtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvY2FyZC1jYXJvdXNlbC9jYXJkLWNhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPekQsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQztRQUNFLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGtCQUFrQjtRQUV2QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUUzQixJQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDO1NBQzFDO2FBQ0c7WUFDRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUUzQixDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBQyxDQUFDLEVBQUM7WUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7U0FDeEI7YUFDRztZQUNGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtRQUVILElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHSCxTQUFTO0lBRUMscUJBQXFCO1FBQzdCLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUNwQyxJQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFDO2dCQUNaLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFDLElBQUksQ0FBQyxhQUFhLENBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ25HO2lCQUNHO2dCQUNZLFFBQVEsQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFDLENBQUMsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEY7U0FDRjtJQUNILENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsS0FBSSxJQUFJLENBQUMsR0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFDO1lBQ3BDLElBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUM7Z0JBQ1osUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDaEc7aUJBQ0c7Z0JBQ1ksUUFBUSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUMsQ0FBQyxDQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvRTtTQUNGO0lBQ0gsQ0FBQzs7a0hBekVVLHFCQUFxQjtzR0FBckIscUJBQXFCLGdHQ1BsQyw2MEJBaUJBOzJGRFZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBT3RCLEtBQUs7c0JBRFgsS0FBSzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1jYXJkLWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWNhcm91c2VsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZENhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ3N0YXRzJylcbiAgcHVibGljIFN0YXRzOiBhbnlbXTtcblxuICBwcm90ZWN0ZWQgY2Fyb3VzZWxJbmRleDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyBcbiAgICB0aGlzLmNhcm91c2VsSW5kZXggPSAwO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCl7XG4gICAgdGhpcy5hc3NpZ25DYXJvdXNlbENsYXNzKCk7XG4gIH1cblxuICBwdWJsaWMgTGVmdENoZXZyb25DbGlja2VkKCl7XG5cbiAgICB0aGlzLnJlbW92ZUNhcm91c2VsQ2xhc3NlcygpO1xuICBcbiAgICAgIGlmKHRoaXMuY2Fyb3VzZWxJbmRleCA9PT0gMCl7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWxJbmRleCA9IHRoaXMuU3RhdHMubGVuZ3RoLTE7XG4gICAgICB9XG4gICAgICBlbHNle1xuICAgICAgICB0aGlzLmNhcm91c2VsSW5kZXgtLTtcbiAgICAgIH1cbiAgXG4gICAgdGhpcy5hc3NpZ25DYXJvdXNlbENsYXNzKCk7XG4gIFxuICAgIH1cblxuICAgIHB1YmxpYyBNb3JlRGV0YWlsc0NsaWNrZWQoKXtcbiAgICAgIGNvbnNvbGUubG9nKFwiTW9yZSBkZXRhaWxzIGNsaWNrZWQgb24gY2Fyb3VzZWwgaXRlbVwiLCB0aGlzLlN0YXRzW3RoaXMuY2Fyb3VzZWxJbmRleF0pO1xuICAgIH1cbiAgXG4gICAgcHVibGljIFJpZ2h0Q2hldnJvbkNsaWNrZWQoKXtcbiAgICAgIHRoaXMucmVtb3ZlQ2Fyb3VzZWxDbGFzc2VzKCk7XG4gIFxuICAgICAgaWYodGhpcy5jYXJvdXNlbEluZGV4ID09PSB0aGlzLlN0YXRzLmxlbmd0aC0xKXtcbiAgICAgICAgdGhpcy5jYXJvdXNlbEluZGV4ID0gMDtcbiAgICAgIH1cbiAgICAgIGVsc2V7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWxJbmRleCsrO1xuICAgICAgfVxuICBcbiAgICB0aGlzLmFzc2lnbkNhcm91c2VsQ2xhc3MoKTtcbiAgICB9XG5cbiAgXG4gIC8vSEVMUEVSU1xuXG4gIHByb3RlY3RlZCByZW1vdmVDYXJvdXNlbENsYXNzZXMoKXtcbiAgICBmb3IobGV0IGk9MDsgaTx0aGlzLlN0YXRzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmKGkgPT09IHRoaXMuY2Fyb3VzZWxJbmRleCl7XG4gICAgICAgICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYXJvdXNlbC1cIit0aGlzLmNhcm91c2VsSW5kZXgpKS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcbiAgICAgIH1cbiAgICAgIGVsc2V7XG4gICAgICAgICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYXJvdXNlbC1cIitpKSkuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzc2lnbkNhcm91c2VsQ2xhc3MoKXtcbiAgICBmb3IobGV0IGk9MDsgaTx0aGlzLlN0YXRzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmKGkgPT09IHRoaXMuY2Fyb3VzZWxJbmRleCl7XG4gICAgICAgICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYXJvdXNlbC1cIit0aGlzLmNhcm91c2VsSW5kZXgpKS5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKTtcbiAgICAgIH1cbiAgICAgIGVsc2V7XG4gICAgICAgICg8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjYXJvdXNlbC1cIitpKSkuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgc3RhdHMgY2xhc3M9XCJjYXJvdXNlbC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2hldnJvbi1jb250YWluZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImNoZXZyb24tYnV0dG9uXCIgaWQ9XCJsZWZ0LWNoZXZyb25cIiAoY2xpY2spPVwiTGVmdENoZXZyb25DbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjaGV2cm9uLWJ1dHRvblwiIGlkPVwicmlnaHQtY2hldnJvblwiIChjbGljayk9XCJSaWdodENoZXZyb25DbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3RhdCBvZiBTdGF0czsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWl0ZW1cIiBbaWRdPVwiJ2Nhcm91c2VsLScraVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC10aXRsZVwiPnt7c3RhdC5OYW1lfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtc3RhdFwiPnt7c3RhdC5TdGF0fX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgKGNsaWNrKT1cIk1vcmVEZXRhaWxzQ2xpY2tlZCgpXCI+TW9yZSBkZXRhaWxzPC9kaXY+XG48L2Rpdj5cbiJdfQ==