@lowcodeunit/applications-flow-common 1.33.91-angular-13 → 1.33.97-lets-get-social-ish
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/lowcodeunit-applications-flow-common.umd.js +5782 -0
- package/bundles/lowcodeunit-applications-flow-common.umd.js.map +1 -0
- package/bundles/lowcodeunit-applications-flow-common.umd.min.js +16 -0
- package/bundles/lowcodeunit-applications-flow-common.umd.min.js.map +1 -0
- package/esm2015/lcu.api.js +27 -0
- package/esm2015/lib/applications-flow.module.js +196 -0
- package/esm2015/lib/controls/build-pipeline-form/build-pipeline-form.component.js +15 -0
- package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +15 -0
- package/esm2015/lib/controls/processor-details-form/processor-details-form.component.js +265 -0
- package/esm2015/lib/controls/security-toggle/security-toggle.component.js +60 -0
- package/esm2015/lib/controls/source-control-form/source-control-form.component.js +59 -0
- package/esm2015/lib/elements/analytics-card/analytics-card.component.js +21 -0
- package/esm2015/lib/elements/base-form/base-form.component.js +61 -0
- package/esm2015/lib/elements/card-carousel/card-carousel.component.js +67 -0
- package/esm2015/lib/elements/column-info-card/column-info-card.component.js +31 -0
- package/esm2015/lib/elements/dynamic-tabs/dynamic-tabs.component.js +69 -0
- package/esm2015/lib/elements/feed-card-sm/feed-card-sm.component.js +31 -0
- package/esm2015/lib/elements/form-card/form-card.component.js +22 -0
- package/esm2015/lib/elements/gh-control/gh-control.component.js +72 -0
- package/esm2015/lib/elements/main-feed-card/main-feed-card.component.js +24 -0
- package/esm2015/lib/elements/project-info-card/project-info-card.component.js +32 -0
- package/esm2015/lib/elements/projects/controls/builds/builds.component.js +26 -0
- package/esm2015/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.js +145 -0
- package/esm2015/lib/elements/projects/controls/forms/source-control/source-control.component.js +262 -0
- package/esm2015/lib/elements/projects/controls/git-auth/git-auth.component.js +25 -0
- package/esm2015/lib/elements/projects/controls/header/header.component.js +75 -0
- package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +102 -0
- package/esm2015/lib/elements/projects/controls/project-items/project-items.component.js +49 -0
- package/esm2015/lib/elements/projects/controls/project-tabs/project-tabs.component.js +91 -0
- package/esm2015/lib/elements/projects/controls/recent-activities/recent-activities.component.js +15 -0
- package/esm2015/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.js +590 -0
- package/esm2015/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.js +62 -0
- package/esm2015/lib/elements/projects/controls/tabs/devops/devops.component.js +202 -0
- package/esm2015/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.js +178 -0
- package/esm2015/lib/elements/projects/controls/tabs/domains/domains.component.js +133 -0
- package/esm2015/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.js +86 -0
- package/esm2015/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.js +129 -0
- package/esm2015/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.js +113 -0
- package/esm2015/lib/elements/projects/controls/tabs/general/general.component.js +46 -0
- package/esm2015/lib/elements/projects/projects.component.js +99 -0
- package/esm2015/lib/elements/slotted-card/slotted-card.component.js +27 -0
- package/esm2015/lib/elements/three-column/three-column.component.js +32 -0
- package/esm2015/lib/elements/two-column-header/two-column-header.component.js +15 -0
- package/esm2015/lib/models/actions.model.js +3 -0
- package/esm2015/lib/models/base-form-config.model.js +6 -0
- package/esm2015/lib/models/card-form-config.model.js +6 -0
- package/esm2015/lib/models/card-slot.model.js +3 -0
- package/esm2015/lib/models/dev-settings-preset.model.js +3 -0
- package/esm2015/lib/models/domain.model.js +3 -0
- package/esm2015/lib/models/dynamic-tabs.model.js +6 -0
- package/esm2015/lib/models/form-actions.model.js +3 -0
- package/esm2015/lib/models/form.model.js +6 -0
- package/esm2015/lib/models/form.values.model.js +11 -0
- package/esm2015/lib/models/project-actions.model.js +6 -0
- package/esm2015/lib/models/slot-action.model.js +3 -0
- package/esm2015/lib/services/applications-flow.service.js +136 -0
- package/esm2015/lib/services/eac.service.js +217 -0
- package/esm2015/lib/services/forms.service.js +131 -0
- package/esm2015/lib/services/npm.service.js +79 -0
- package/esm2015/lib/services/project.service.js +318 -0
- package/esm2015/lib/state/applications-flow-state.context.js +37 -0
- package/esm2015/lib/state/applications-flow.state.js +72 -0
- package/esm2015/lowcodeunit-applications-flow-common.js +34 -0
- package/fesm2015/lowcodeunit-applications-flow-common.js +4416 -0
- package/fesm2015/lowcodeunit-applications-flow-common.js.map +1 -0
- package/lcu.api.d.ts +3 -28
- package/lcu.api.d.ts.map +1 -0
- package/lib/applications-flow.module.d.ts +1 -39
- package/lib/applications-flow.module.d.ts.map +1 -0
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +6 -0
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +1 -0
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +6 -0
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +1 -0
- package/lib/controls/processor-details-form/processor-details-form.component.d.ts +48 -0
- package/lib/controls/processor-details-form/processor-details-form.component.d.ts.map +1 -0
- package/lib/controls/security-toggle/security-toggle.component.d.ts +16 -0
- package/lib/controls/security-toggle/security-toggle.component.d.ts.map +1 -0
- package/lib/controls/source-control-form/source-control-form.component.d.ts +26 -0
- package/lib/controls/source-control-form/source-control-form.component.d.ts.map +1 -0
- package/lib/elements/analytics-card/analytics-card.component.d.ts +1 -3
- package/lib/elements/analytics-card/analytics-card.component.d.ts.map +1 -0
- package/lib/elements/base-form/base-form.component.d.ts +4 -6
- package/lib/elements/base-form/base-form.component.d.ts.map +1 -0
- package/lib/elements/card-carousel/card-carousel.component.d.ts +14 -0
- package/lib/elements/card-carousel/card-carousel.component.d.ts.map +1 -0
- package/lib/elements/column-info-card/column-info-card.component.d.ts +1 -3
- package/lib/elements/column-info-card/column-info-card.component.d.ts.map +1 -0
- package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts +1 -3
- package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts.map +1 -0
- package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts +1 -3
- package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts.map +1 -0
- package/lib/elements/form-card/form-card.component.d.ts +1 -3
- package/lib/elements/form-card/form-card.component.d.ts.map +1 -0
- package/lib/elements/gh-control/gh-control.component.d.ts +1 -3
- package/lib/elements/gh-control/gh-control.component.d.ts.map +1 -0
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts +1 -3
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts.map +1 -0
- package/lib/elements/project-info-card/project-info-card.component.d.ts +1 -3
- package/lib/elements/project-info-card/project-info-card.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/builds/builds.component.d.ts +2 -6
- package/lib/elements/projects/controls/builds/builds.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts +4 -6
- package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts +2 -6
- package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts +1 -3
- package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/header/header.component.d.ts +4 -6
- package/lib/elements/projects/controls/header/header.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts +1 -3
- package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/project-items/project-items.component.d.ts +4 -6
- package/lib/elements/projects/controls/project-items/project-items.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts +1 -3
- package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts +1 -3
- package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts +1 -3
- package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts +4 -6
- package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts.map +1 -0
- package/lib/elements/projects/controls/tabs/general/general.component.d.ts +1 -3
- package/lib/elements/projects/controls/tabs/general/general.component.d.ts.map +1 -0
- package/lib/elements/projects/projects.component.d.ts +5 -14
- package/lib/elements/projects/projects.component.d.ts.map +1 -0
- package/lib/elements/slotted-card/slotted-card.component.d.ts +2 -3
- package/lib/elements/slotted-card/slotted-card.component.d.ts.map +1 -0
- package/lib/elements/three-column/three-column.component.d.ts +1 -3
- package/lib/elements/three-column/three-column.component.d.ts.map +1 -0
- package/lib/elements/two-column-header/two-column-header.component.d.ts +1 -3
- package/lib/elements/two-column-header/two-column-header.component.d.ts.map +1 -0
- package/lib/models/actions.model.d.ts +1 -0
- package/lib/models/actions.model.d.ts.map +1 -0
- package/lib/models/base-form-config.model.d.ts +1 -0
- package/lib/models/base-form-config.model.d.ts.map +1 -0
- package/lib/models/card-form-config.model.d.ts +1 -0
- package/lib/models/card-form-config.model.d.ts.map +1 -0
- package/lib/models/card-slot.model.d.ts +1 -0
- package/lib/models/card-slot.model.d.ts.map +1 -0
- package/lib/models/dev-settings-preset.model.d.ts +1 -0
- package/lib/models/dev-settings-preset.model.d.ts.map +1 -0
- package/lib/models/domain.model.d.ts +1 -0
- package/lib/models/domain.model.d.ts.map +1 -0
- package/lib/models/dynamic-tabs.model.d.ts +1 -0
- package/lib/models/dynamic-tabs.model.d.ts.map +1 -0
- package/lib/models/form-actions.model.d.ts +1 -0
- package/lib/models/form-actions.model.d.ts.map +1 -0
- package/lib/models/form.model.d.ts +1 -0
- package/lib/models/form.model.d.ts.map +1 -0
- package/lib/models/form.values.model.d.ts +1 -0
- package/lib/models/form.values.model.d.ts.map +1 -0
- package/lib/models/project-actions.model.d.ts +1 -0
- package/lib/models/project-actions.model.d.ts.map +1 -0
- package/lib/models/slot-action.model.d.ts +1 -0
- package/lib/models/slot-action.model.d.ts.map +1 -0
- package/lib/services/applications-flow.service.d.ts +1 -3
- package/lib/services/applications-flow.service.d.ts.map +1 -0
- package/lib/services/eac.service.d.ts +54 -0
- package/lib/services/eac.service.d.ts.map +1 -0
- package/lib/services/forms.service.d.ts +1 -3
- package/lib/services/forms.service.d.ts.map +1 -0
- package/lib/services/npm.service.d.ts +1 -3
- package/lib/services/npm.service.d.ts.map +1 -0
- package/lib/services/project.service.d.ts +1 -3
- package/lib/services/project.service.d.ts.map +1 -0
- package/lib/state/applications-flow-state.context.d.ts +1 -3
- package/lib/state/applications-flow-state.context.d.ts.map +1 -0
- package/lib/state/applications-flow.state.d.ts +1 -0
- package/lib/state/applications-flow.state.d.ts.map +1 -0
- package/lowcodeunit-applications-flow-common.d.ts +30 -1
- package/lowcodeunit-applications-flow-common.d.ts.map +1 -0
- package/lowcodeunit-applications-flow-common.metadata.json +1 -0
- package/package.json +12 -20
- package/esm2020/lcu.api.mjs +0 -53
- package/esm2020/lib/applications-flow.module.mjs +0 -248
- package/esm2020/lib/elements/analytics-card/analytics-card.component.mjs +0 -28
- package/esm2020/lib/elements/base-form/base-form.component.mjs +0 -57
- package/esm2020/lib/elements/column-info-card/column-info-card.component.mjs +0 -50
- package/esm2020/lib/elements/dynamic-tabs/dynamic-tabs.component.mjs +0 -74
- package/esm2020/lib/elements/feed-card-sm/feed-card-sm.component.mjs +0 -40
- package/esm2020/lib/elements/flow-tool/flow-tool.component.mjs +0 -73
- package/esm2020/lib/elements/form-card/form-card.component.mjs +0 -33
- package/esm2020/lib/elements/gh-control/gh-control.component.mjs +0 -78
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +0 -34
- package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +0 -46
- package/esm2020/lib/elements/projects/controls/builds/builds.component.mjs +0 -35
- package/esm2020/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.mjs +0 -145
- package/esm2020/lib/elements/projects/controls/forms/source-control/source-control.component.mjs +0 -287
- package/esm2020/lib/elements/projects/controls/git-auth/git-auth.component.mjs +0 -26
- package/esm2020/lib/elements/projects/controls/header/header.component.mjs +0 -83
- package/esm2020/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.mjs +0 -118
- package/esm2020/lib/elements/projects/controls/project-items/project-items.component.mjs +0 -54
- package/esm2020/lib/elements/projects/controls/project-tabs/project-tabs.component.mjs +0 -103
- package/esm2020/lib/elements/projects/controls/recent-activities/recent-activities.component.mjs +0 -14
- package/esm2020/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.mjs +0 -563
- package/esm2020/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.mjs +0 -72
- package/esm2020/lib/elements/projects/controls/tabs/devops/devops.component.mjs +0 -242
- package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +0 -179
- package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +0 -137
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.mjs +0 -90
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.mjs +0 -142
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.mjs +0 -124
- package/esm2020/lib/elements/projects/controls/tabs/general/general.component.mjs +0 -40
- package/esm2020/lib/elements/projects/projects.component.mjs +0 -218
- package/esm2020/lib/elements/slotted-card/slotted-card.component.mjs +0 -40
- package/esm2020/lib/elements/three-column/three-column.component.mjs +0 -30
- package/esm2020/lib/elements/two-column-header/two-column-header.component.mjs +0 -15
- package/esm2020/lib/models/actions.model.mjs +0 -3
- package/esm2020/lib/models/base-form-config.model.mjs +0 -6
- package/esm2020/lib/models/card-form-config.model.mjs +0 -6
- package/esm2020/lib/models/card-slot.model.mjs +0 -3
- package/esm2020/lib/models/dev-settings-preset.model.mjs +0 -3
- package/esm2020/lib/models/domain.model.mjs +0 -3
- package/esm2020/lib/models/dynamic-tabs.model.mjs +0 -6
- package/esm2020/lib/models/form-actions.model.mjs +0 -3
- package/esm2020/lib/models/form.model.mjs +0 -6
- package/esm2020/lib/models/form.values.model.mjs +0 -11
- package/esm2020/lib/models/project-actions.model.mjs +0 -6
- package/esm2020/lib/models/slot-action.model.mjs +0 -3
- package/esm2020/lib/services/applications-flow-events.service.mjs +0 -84
- package/esm2020/lib/services/applications-flow.service.mjs +0 -132
- package/esm2020/lib/services/forms.service.mjs +0 -132
- package/esm2020/lib/services/npm.service.mjs +0 -77
- package/esm2020/lib/services/project.service.mjs +0 -303
- package/esm2020/lib/state/applications-flow-state.context.mjs +0 -36
- package/esm2020/lib/state/applications-flow.state.mjs +0 -72
- package/esm2020/lowcodeunit-applications-flow-common.mjs +0 -5
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +0 -4104
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +0 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +0 -4048
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +0 -1
- package/lib/elements/flow-tool/flow-tool.component.d.ts +0 -32
- package/lib/services/applications-flow-events.service.d.ts +0 -60
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
export class ProcessorDetailsFormComponent {
|
|
4
|
+
constructor(formBldr) {
|
|
5
|
+
this.formBldr = formBldr;
|
|
6
|
+
// this.EditingApplicationLookup = null;
|
|
7
|
+
this.redirectTooltip = '';
|
|
8
|
+
}
|
|
9
|
+
get BuildFormControl() {
|
|
10
|
+
var _a;
|
|
11
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.build;
|
|
12
|
+
}
|
|
13
|
+
get ClientIDFormControl() {
|
|
14
|
+
var _a;
|
|
15
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.clientId;
|
|
16
|
+
}
|
|
17
|
+
get DefaultFileFormControl() {
|
|
18
|
+
var _a;
|
|
19
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.defaultFile;
|
|
20
|
+
}
|
|
21
|
+
get InboundPathFormControl() {
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.inboundPath;
|
|
24
|
+
}
|
|
25
|
+
get TokenLookupFormControl() {
|
|
26
|
+
var _a;
|
|
27
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.tokenLookup;
|
|
28
|
+
}
|
|
29
|
+
get RedirectFormControl() {
|
|
30
|
+
var _a;
|
|
31
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.redirect;
|
|
32
|
+
}
|
|
33
|
+
get ScopesFormControl() {
|
|
34
|
+
var _a;
|
|
35
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.scopes;
|
|
36
|
+
}
|
|
37
|
+
get SecurityFormControl() {
|
|
38
|
+
var _a;
|
|
39
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.security;
|
|
40
|
+
}
|
|
41
|
+
get SPARootFormControl() {
|
|
42
|
+
var _a;
|
|
43
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.spaRoot;
|
|
44
|
+
}
|
|
45
|
+
get PermanentFormControl() {
|
|
46
|
+
var _a;
|
|
47
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.permanent;
|
|
48
|
+
}
|
|
49
|
+
get PreserveMethodFormControl() {
|
|
50
|
+
var _a;
|
|
51
|
+
return (_a = this.ProcessorDetailsFormGroup) === null || _a === void 0 ? void 0 : _a.controls.preserveMethod;
|
|
52
|
+
}
|
|
53
|
+
ngOnInit() {
|
|
54
|
+
this.setupProcessorDetailsForm();
|
|
55
|
+
}
|
|
56
|
+
DetermineTooltipText() {
|
|
57
|
+
let permanentValue = this.PermanentFormControl.value;
|
|
58
|
+
let preserveValue = this.PreserveMethodFormControl.value;
|
|
59
|
+
if (permanentValue === true && preserveValue === false) {
|
|
60
|
+
this.redirectTooltip = '301 – Permanent and Not Preserve';
|
|
61
|
+
}
|
|
62
|
+
else if (permanentValue === false && preserveValue === false) {
|
|
63
|
+
this.redirectTooltip = '302 – Not Permanent and Not Preserve';
|
|
64
|
+
}
|
|
65
|
+
else if (permanentValue === false && preserveValue === true) {
|
|
66
|
+
this.redirectTooltip = '307 – Not Permanent and Preserve';
|
|
67
|
+
}
|
|
68
|
+
else if (permanentValue === true && preserveValue === true) {
|
|
69
|
+
this.redirectTooltip = '308 – Permanent and Preserve';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
SubmitProcessorDetails() {
|
|
73
|
+
}
|
|
74
|
+
ProcessorTypeChanged(event) {
|
|
75
|
+
this.ProcessorType = event.value;
|
|
76
|
+
this.setupProcessorTypeSubForm();
|
|
77
|
+
}
|
|
78
|
+
LCUTypeChanged(event) {
|
|
79
|
+
this.LCUType = event.value;
|
|
80
|
+
this.setupLcuTypeSubForm();
|
|
81
|
+
}
|
|
82
|
+
//HELPERS
|
|
83
|
+
cleanupLcuTypeSubForm() {
|
|
84
|
+
this.ProcessorDetailsFormGroup.removeControl('methods');
|
|
85
|
+
this.ProcessorDetailsFormGroup.removeControl('apiRoot');
|
|
86
|
+
this.ProcessorDetailsFormGroup.removeControl('security');
|
|
87
|
+
this.ProcessorDetailsFormGroup.removeControl('spaRoot');
|
|
88
|
+
this.ProcessorDetailsFormGroup.removeControl('applicationId');
|
|
89
|
+
this.ProcessorDetailsFormGroup.removeControl('build');
|
|
90
|
+
this.ProcessorDetailsFormGroup.removeControl('clientId');
|
|
91
|
+
this.ProcessorDetailsFormGroup.removeControl('clientSecret');
|
|
92
|
+
this.ProcessorDetailsFormGroup.removeControl('zipFile');
|
|
93
|
+
}
|
|
94
|
+
cleanupProcessorTypeSubForm() {
|
|
95
|
+
this.ProcessorDetailsFormGroup.removeControl('defaultFile');
|
|
96
|
+
// this.ApplicationFormGroup.removeControl('dfsLcuType');
|
|
97
|
+
// this.ApplicationFormGroup.removeControl('oauthLcuType');
|
|
98
|
+
this.ProcessorDetailsFormGroup.removeControl('scopes');
|
|
99
|
+
this.ProcessorDetailsFormGroup.removeControl('tokenLookup');
|
|
100
|
+
this.ProcessorDetailsFormGroup.removeControl('inboundPath');
|
|
101
|
+
this.ProcessorDetailsFormGroup.removeControl('proxyLcuType');
|
|
102
|
+
this.ProcessorDetailsFormGroup.removeControl('redirect');
|
|
103
|
+
this.ProcessorDetailsFormGroup.removeControl('permanent');
|
|
104
|
+
this.ProcessorDetailsFormGroup.removeControl('preserveMethod');
|
|
105
|
+
this.cleanupLcuTypeSubForm();
|
|
106
|
+
}
|
|
107
|
+
setupLcuTypeSubForm() {
|
|
108
|
+
this.cleanupLcuTypeSubForm();
|
|
109
|
+
// this.ApplicationFormGroup.removeControl('package');
|
|
110
|
+
// this.ApplicationFormGroup.removeControl('version');
|
|
111
|
+
if (this.LCUType) {
|
|
112
|
+
switch (this.LCUType) {
|
|
113
|
+
case 'API':
|
|
114
|
+
this.setupLCUAPIForm();
|
|
115
|
+
break;
|
|
116
|
+
case 'ApplicationPointer':
|
|
117
|
+
this.setupLCUApplicationPointerForm();
|
|
118
|
+
break;
|
|
119
|
+
case 'GitHub':
|
|
120
|
+
this.setupLCUGitHubForm();
|
|
121
|
+
break;
|
|
122
|
+
case 'GitHubOAuth':
|
|
123
|
+
this.setupLCUGitHubOAuthForm();
|
|
124
|
+
break;
|
|
125
|
+
// case 'NPM':
|
|
126
|
+
// this.setupLCUNPMForm();
|
|
127
|
+
// break;
|
|
128
|
+
case 'SPA':
|
|
129
|
+
this.setupLCUSPAForm();
|
|
130
|
+
break;
|
|
131
|
+
case 'Zip':
|
|
132
|
+
this.setupLCUZipForm();
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
setupProcessorDetailsForm() {
|
|
138
|
+
var _a, _b, _c, _d, _e;
|
|
139
|
+
this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
|
|
140
|
+
if (this.EditingApplication != null) {
|
|
141
|
+
this.ProcessorDetailsFormGroup = this.formBldr.group({
|
|
142
|
+
name: [(_c = this.EditingApplication.Application) === null || _c === void 0 ? void 0 : _c.Name, Validators.required],
|
|
143
|
+
description: [
|
|
144
|
+
(_d = this.EditingApplication.Application) === null || _d === void 0 ? void 0 : _d.Description,
|
|
145
|
+
Validators.required,
|
|
146
|
+
],
|
|
147
|
+
route: [
|
|
148
|
+
((_e = this.EditingApplication.LookupConfig) === null || _e === void 0 ? void 0 : _e.PathRegex.replace('.*', '')) ||
|
|
149
|
+
'/',
|
|
150
|
+
Validators.required,
|
|
151
|
+
],
|
|
152
|
+
// priority: [
|
|
153
|
+
// this.EditingApplication.Application?.Priority || 10000,
|
|
154
|
+
// Validators.required,
|
|
155
|
+
// ],
|
|
156
|
+
procType: [this.ProcessorType, [Validators.required]],
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
setupLCUGitHubForm() {
|
|
161
|
+
var _a;
|
|
162
|
+
this.ProcessorDetailsFormGroup.addControl('build', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Build) || 'latest', [Validators.required]));
|
|
163
|
+
}
|
|
164
|
+
setupLCUApplicationPointerForm() {
|
|
165
|
+
var _a;
|
|
166
|
+
this.ProcessorDetailsFormGroup.addControl('applicationId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ApplicationID) || '', [Validators.required]));
|
|
167
|
+
}
|
|
168
|
+
setupLCUNPMForm() {
|
|
169
|
+
// this.ApplicationFormGroup.addControl(
|
|
170
|
+
// 'package',
|
|
171
|
+
// this.formBldr.control(
|
|
172
|
+
// this.EditingApplication.LowCodeUnit?.Package || '',
|
|
173
|
+
// [Validators.required]
|
|
174
|
+
// )
|
|
175
|
+
// );
|
|
176
|
+
// this.ApplicationFormGroup.addControl(
|
|
177
|
+
// 'version',
|
|
178
|
+
// this.formBldr.control(
|
|
179
|
+
// this.EditingApplication.LowCodeUnit?.Version || '',
|
|
180
|
+
// [Validators.required]
|
|
181
|
+
// )
|
|
182
|
+
// );
|
|
183
|
+
}
|
|
184
|
+
setupLCUSPAForm() {
|
|
185
|
+
var _a;
|
|
186
|
+
this.ProcessorDetailsFormGroup.addControl('spaRoot', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SPARoot) || '', [Validators.required]));
|
|
187
|
+
}
|
|
188
|
+
setupLCUAPIForm() {
|
|
189
|
+
var _a, _b, _c, _d;
|
|
190
|
+
this.ProcessorDetailsFormGroup.addControl('methods', this.formBldr.control(((_b = (_a = this.EditingApplication.LookupConfig) === null || _a === void 0 ? void 0 : _a.AllowedMethods) === null || _b === void 0 ? void 0 : _b.join(' ')) || '', []));
|
|
191
|
+
this.ProcessorDetailsFormGroup.addControl('apiRoot', this.formBldr.control(((_c = this.EditingApplication.LowCodeUnit) === null || _c === void 0 ? void 0 : _c.APIRoot) || '', [Validators.required]));
|
|
192
|
+
this.ProcessorDetailsFormGroup.addControl('security', this.formBldr.control(((_d = this.EditingApplication.LowCodeUnit) === null || _d === void 0 ? void 0 : _d.Security) || '', [Validators.required]));
|
|
193
|
+
}
|
|
194
|
+
setupLCUGitHubOAuthForm() {
|
|
195
|
+
var _a, _b;
|
|
196
|
+
this.ProcessorDetailsFormGroup.addControl('clientId', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ClientID) || '', [Validators.required]));
|
|
197
|
+
this.ProcessorDetailsFormGroup.addControl('clientSecret', this.formBldr.control(((_b = this.EditingApplication.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.ClientSecret) || '', [Validators.required]));
|
|
198
|
+
}
|
|
199
|
+
setupProxyForm() {
|
|
200
|
+
var _a, _b;
|
|
201
|
+
this.LCUType = ((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Type) || '';
|
|
202
|
+
this.ProcessorDetailsFormGroup.addControl('inboundPath', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.InboundPath) || '', [Validators.required]));
|
|
203
|
+
this.ProcessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
|
|
204
|
+
}
|
|
205
|
+
setupRedirectForm() {
|
|
206
|
+
var _a, _b, _c;
|
|
207
|
+
this.ProcessorDetailsFormGroup.addControl('redirect', this.formBldr.control(((_a = this.EditingApplication.Processor) === null || _a === void 0 ? void 0 : _a.Redirect) || '', [
|
|
208
|
+
Validators.required,
|
|
209
|
+
]));
|
|
210
|
+
this.ProcessorDetailsFormGroup.addControl('permanent', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.Permanent) || false, []));
|
|
211
|
+
this.ProcessorDetailsFormGroup.addControl('preserveMethod', this.formBldr.control(((_c = this.EditingApplication.Processor) === null || _c === void 0 ? void 0 : _c.PreserveMethod) || false, []));
|
|
212
|
+
this.DetermineTooltipText();
|
|
213
|
+
}
|
|
214
|
+
setupOAuthForm() {
|
|
215
|
+
var _a, _b, _c, _d;
|
|
216
|
+
this.LCUType = ((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Type) || '';
|
|
217
|
+
this.ProcessorDetailsFormGroup.addControl('scopes', this.formBldr.control(((_c = (_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.Scopes) === null || _c === void 0 ? void 0 : _c.Join(' ')) || '', [Validators.required]));
|
|
218
|
+
this.ProcessorDetailsFormGroup.addControl('tokenLookup', this.formBldr.control(((_d = this.EditingApplication.Processor) === null || _d === void 0 ? void 0 : _d.TokenLookup) || '', [Validators.required]));
|
|
219
|
+
this.ProcessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
|
|
220
|
+
}
|
|
221
|
+
setupLCUZipForm() {
|
|
222
|
+
var _a;
|
|
223
|
+
this.ProcessorDetailsFormGroup.addControl('zipFile', this.formBldr.control(((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.ZipFile) || '', [Validators.required]));
|
|
224
|
+
}
|
|
225
|
+
setupDfsForm() {
|
|
226
|
+
var _a, _b;
|
|
227
|
+
this.LCUType = ((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.Type) || '';
|
|
228
|
+
this.ProcessorDetailsFormGroup.addControl('defaultFile', this.formBldr.control(((_b = this.EditingApplication.Processor) === null || _b === void 0 ? void 0 : _b.DefaultFile) || 'index.html', [Validators.required]));
|
|
229
|
+
this.ProcessorDetailsFormGroup.addControl('lcuType', this.formBldr.control(this.LCUType, [Validators.required]));
|
|
230
|
+
}
|
|
231
|
+
setupProcessorTypeSubForm() {
|
|
232
|
+
this.cleanupProcessorTypeSubForm();
|
|
233
|
+
if (this.ProcessorType) {
|
|
234
|
+
switch (this.ProcessorType) {
|
|
235
|
+
case 'DFS':
|
|
236
|
+
this.setupDfsForm();
|
|
237
|
+
break;
|
|
238
|
+
case 'OAuth':
|
|
239
|
+
this.setupOAuthForm();
|
|
240
|
+
break;
|
|
241
|
+
case 'Proxy':
|
|
242
|
+
this.setupProxyForm();
|
|
243
|
+
break;
|
|
244
|
+
case 'Redirect':
|
|
245
|
+
this.setupRedirectForm();
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
this.setupLcuTypeSubForm();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
ProcessorDetailsFormComponent.decorators = [
|
|
253
|
+
{ type: Component, args: [{
|
|
254
|
+
selector: 'lcu-processor-details-form',
|
|
255
|
+
template: "<form class=\"processor-details-form\" [formGroup]=\"ProcessorDetailsFormGroup\" (ngSubmit)=\"SubmitProcessorDetails()\">\n<mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Processor Details </mat-card-title>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"procType\"\n (selectionChange)=\"ProcessorTypeChanged($event)\"\n required\n >\n <mat-option value=\"DFS\">View Package</mat-option>\n\n <mat-option value=\"Redirect\">Redirect</mat-option>\n\n <mat-option value=\"Proxy\">Proxy</mat-option>\n\n <mat-option value=\"OAuth\">OAuth</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"ProcessorType\">\n <div *ngSwitchCase=\"'DFS'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Default File\"\n formControlName=\"defaultFile\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"NPM\">NPM</mat-option>\n\n <mat-option value=\"GitHub\">GitHub</mat-option>\n\n <!-- <mat-option value=\"Zip\">Zip</mat-option> -->\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHub'\">\n <lcu-source-control-form-controls\n [build-path]=\"EditingApplication?.LowCodeUnit?.Path\"\n [form-group]=\"ProcessorDetailsFormGroup\"\n [source-control]=\"DefaultSourceControl\"\n [use-branches]=\"false\"\n [use-build-path]=\"true\"\n ></lcu-source-control-form-controls>\n\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n SourceControlFormControls?.RepositoryFormControl?.valid\n \"\n >\n <input\n matInput\n placeholder=\"Build\"\n formControlName=\"build\"\n required\n />\n\n <mat-hint>\n Current Build:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'NPM'\">\n <lcu-npm-package-select\n [npm-package]=\"EditingApplication?.LowCodeUnit?.Package\"\n [npm-package-version]=\"\n EditingApplication?.LowCodeUnit?.Version\n \"\n [form-group]=\"ProcessorDetailsFormGroup\"\n ></lcu-npm-package-select>\n\n <mat-hint>\n Current Version:\n {{ EditingApplication?.LowCodeUnit?.CurrentVersion }}\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'OAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Scopes (space separated)\"\n formControlName=\"scopes\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Token Lookup\"\n formControlName=\"tokenLookup\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"GitHubOAuth\">GitHub</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'GitHubOAuth'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client ID\"\n formControlName=\"clientId\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Client Secret\"\n formControlName=\"clientSecret\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Proxy'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Inbound Path\"\n formControlName=\"inboundPath\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <mat-select\n placeholder=\"Type\"\n formControlName=\"lcuType\"\n (selectionChange)=\"LCUTypeChanged($event)\"\n required\n >\n <mat-option value=\"API\">API</mat-option>\n\n <mat-option value=\"SPA\">Single Page Application</mat-option>\n </mat-select>\n </mat-form-field>\n\n <div [ngSwitch]=\"LCUType\">\n <div *ngSwitchCase=\"'API'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"API Root\"\n formControlName=\"apiRoot\"\n required\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Allowed Methods (separate with spaces)\"\n formControlName=\"methods\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Security ({header}~{value})\"\n formControlName=\"security\"\n required\n />\n </mat-form-field>\n </div>\n\n <div *ngSwitchCase=\"'SPA'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"SPA Root\"\n formControlName=\"spaRoot\"\n required\n />\n </mat-form-field>\n </div>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'Redirect'\">\n <mat-form-field class=\"mat-full-width\">\n <input\n matInput\n placeholder=\"Redirect URL\"\n formControlName=\"redirect\"\n required\n />\n </mat-form-field>\n\n <div>\n <mat-slide-toggle \n class=\"spread\" \n formControlName=\"permanent\">\n Is Permanent?\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"spread\"\n formControlName=\"preserveMethod\"\n >\n Preserve Method?\n </mat-slide-toggle>\n\n <mat-icon\n class=\"spread\"\n matSuffix\n (mouseenter)=\"DetermineTooltipText()\"\n matTooltip={{redirectTooltip}}\n >\n info_outline\n </mat-icon>\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && !IsPreserve\"\n\n class=\"spread\"\n matSuffix\n matTooltip=\"302 \u2013 Not Permanent and Not Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"!IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"307 \u2013 Not Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n <!-- <mat-icon\n *ngIf=\"IsPermanent && IsPreserve\"\n class=\"spread\"\n matSuffix\n matTooltip=\"308 \u2013 Permanent and Preserve\"\n >\n info_outline\n </mat-icon> -->\n\n \n\n <!-- <mat-icon\n class=\"spread\"\n matSuffix\n matTooltip=\"Values used to control the redirect type. Permanent and Not Preserve = 301; Not Permanent and Not Preserve = 302; Permanent and Preserve = 308; Not Permanent and Not Preserve = 307;\"\n >\n info_outline\n </mat-icon> -->\n </div>\n </div>\n </div>\n </mat-card-content>\n <mat-card-actions>\n <!-- [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save Security Settings</button>\n </mat-card-actions>\n</mat-card>\n</form>\n \n",
|
|
256
|
+
styles: [""]
|
|
257
|
+
},] }
|
|
258
|
+
];
|
|
259
|
+
ProcessorDetailsFormComponent.ctorParameters = () => [
|
|
260
|
+
{ type: FormBuilder }
|
|
261
|
+
];
|
|
262
|
+
ProcessorDetailsFormComponent.propDecorators = {
|
|
263
|
+
EditingApplication: [{ type: Input, args: ['editing-application',] }]
|
|
264
|
+
};
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYXBwbGljYXRpb25zLWZsb3cvYXBwbGljYXRpb25zLWZsb3cvcHJvamVjdHMvY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9wcm9jZXNzb3ItZGV0YWlscy1mb3JtL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBbUIsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JGLE1BQU0sT0FBTyw2QkFBNkI7SUE2RHhDLFlBQXNCLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDekMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUF6REYsSUFBVyxnQkFBZ0I7O1FBQ3pCLGFBQU8sSUFBSSxDQUFDLHlCQUF5QiwwQ0FBRSxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3hELENBQUM7SUFHRCxJQUFXLG1CQUFtQjs7UUFDNUIsYUFBTyxJQUFJLENBQUMseUJBQXlCLDBDQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQVcsc0JBQXNCOztRQUMvQixhQUFPLElBQUksQ0FBQyx5QkFBeUIsMENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBVyxzQkFBc0I7O1FBQy9CLGFBQU8sSUFBSSxDQUFDLHlCQUF5QiwwQ0FBRSxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFXLHNCQUFzQjs7UUFDL0IsYUFBTyxJQUFJLENBQUMseUJBQXlCLDBDQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDOUQs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LFVBQVUsQ0FDdkMsYUFBYSxFQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUNuQixPQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLDBDQUFFLFdBQVcsS0FBSSxZQUFZLEVBQzlELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUN2QyxTQUFTLEVBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUMzRCxDQUFDO0lBQ0osQ0FBQztJQUVTLHlCQUF5QjtRQUNqQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsUUFBUSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUMxQixLQUFLLEtBQUs7b0JBQ1IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwQixNQUFNO2dCQUVSLEtBQUssT0FBTztvQkFDVixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3RCLE1BQU07Z0JBRVIsS0FBSyxPQUFPO29CQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdEIsTUFBTTtnQkFFUixLQUFLLFVBQVU7b0JBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3pCLE1BQU07YUFDVDtTQUNGO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQzs7O1lBbmFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxvNVNBQXNEOzthQUV2RDs7O1lBUnlCLFdBQVc7OztpQ0FhbEMsS0FBSyxTQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LXByb2Nlc3Nvci1kZXRhaWxzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzc29yLWRldGFpbHMtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2Nlc3Nvci1kZXRhaWxzLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzb3JEZXRhaWxzRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIExDVVR5cGU6IHN0cmluZztcblxuICBASW5wdXQoJ2VkaXRpbmctYXBwbGljYXRpb24nKSBcbiAgcHVibGljIEVkaXRpbmdBcHBsaWNhdGlvbjogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgcHVibGljIGdldCBCdWlsZEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuYnVpbGQ7XG4gIH1cbiAgXG4gIFxuICBwdWJsaWMgZ2V0IENsaWVudElERm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5jbGllbnRJZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgRGVmYXVsdEZpbGVGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLmRlZmF1bHRGaWxlO1xuICB9XG5cbiAgcHVibGljIGdldCBJbmJvdW5kUGF0aEZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cD8uY29udHJvbHMuaW5ib3VuZFBhdGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFRva2VuTG9va3VwRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy50b2tlbkxvb2t1cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUmVkaXJlY3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnJlZGlyZWN0O1xuICB9XG5cbiAgcHVibGljIGdldCBTY29wZXNGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnNjb3BlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU2VjdXJpdHlGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnNlY3VyaXR5O1xuICB9XG5cbiAgcHVibGljIGdldCBTUEFSb290Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwPy5jb250cm9scy5zcGFSb290O1xuICB9XG5cbiAgcHVibGljIGdldCBQZXJtYW5lbnRGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnBlcm1hbmVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUHJlc2VydmVNZXRob2RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXA/LmNvbnRyb2xzLnByZXNlcnZlTWV0aG9kO1xuICB9XG4gIHB1YmxpYyBJc1Blcm1hbmVudDogYm9vbGVhbjtcblxuICBwdWJsaWMgSXNQcmVzZXJ2ZTogYm9vbGVhbjtcbiAgXG4gIHB1YmxpYyByZWRpcmVjdFRvb2x0aXA6IHN0cmluZztcblxuICBwdWJsaWMgUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBQcm9jZXNzb3JUeXBlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcikge1xuICAgIC8vIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uTG9va3VwID0gbnVsbDtcbiAgICB0aGlzLnJlZGlyZWN0VG9vbHRpcCA9ICcnO1xuICAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuc2V0dXBQcm9jZXNzb3JEZXRhaWxzRm9ybSgpO1xuICB9XG5cbiAgcHVibGljIERldGVybWluZVRvb2x0aXBUZXh0KCkge1xuICAgIGxldCBwZXJtYW5lbnRWYWx1ZSA9IHRoaXMuUGVybWFuZW50Rm9ybUNvbnRyb2wudmFsdWU7XG4gICAgbGV0IHByZXNlcnZlVmFsdWUgPSB0aGlzLlByZXNlcnZlTWV0aG9kRm9ybUNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAocGVybWFuZW50VmFsdWUgPT09IHRydWUgJiYgcHJlc2VydmVWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMucmVkaXJlY3RUb29sdGlwID0gJzMwMSDigJMgUGVybWFuZW50IGFuZCBOb3QgUHJlc2VydmUnO1xuICAgIH0gZWxzZSBpZiAocGVybWFuZW50VmFsdWUgPT09IGZhbHNlICYmIHByZXNlcnZlVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnJlZGlyZWN0VG9vbHRpcCA9ICczMDIg4oCTIE5vdCBQZXJtYW5lbnQgYW5kIE5vdCBQcmVzZXJ2ZSc7XG4gICAgfSBlbHNlIGlmIChwZXJtYW5lbnRWYWx1ZSA9PT0gZmFsc2UgJiYgcHJlc2VydmVWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5yZWRpcmVjdFRvb2x0aXAgPSAnMzA3IOKAkyBOb3QgUGVybWFuZW50IGFuZCBQcmVzZXJ2ZSc7XG4gICAgfSBlbHNlIGlmIChwZXJtYW5lbnRWYWx1ZSA9PT0gdHJ1ZSAmJiBwcmVzZXJ2ZVZhbHVlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLnJlZGlyZWN0VG9vbHRpcCA9ICczMDgg4oCTIFBlcm1hbmVudCBhbmQgUHJlc2VydmUnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBTdWJtaXRQcm9jZXNzb3JEZXRhaWxzKCl7XG5cbiAgfVxuXG4gIHB1YmxpYyBQcm9jZXNzb3JUeXBlQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5Qcm9jZXNzb3JUeXBlID0gZXZlbnQudmFsdWU7XG5cbiAgICB0aGlzLnNldHVwUHJvY2Vzc29yVHlwZVN1YkZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBMQ1VUeXBlQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5MQ1VUeXBlID0gZXZlbnQudmFsdWU7XG5cbiAgICB0aGlzLnNldHVwTGN1VHlwZVN1YkZvcm0oKTtcbiAgfVxuXG4gIC8vSEVMUEVSU1xuXG4gIHByb3RlY3RlZCBjbGVhbnVwTGN1VHlwZVN1YkZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ21ldGhvZHMnKTtcbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnYXBpUm9vdCcpO1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzZWN1cml0eScpO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3NwYVJvb3QnKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdhcHBsaWNhdGlvbklkJyk7XG5cbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnYnVpbGQnKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdjbGllbnRJZCcpO1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdjbGllbnRTZWNyZXQnKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCd6aXBGaWxlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYW51cFByb2Nlc3NvclR5cGVTdWJGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdkZWZhdWx0RmlsZScpO1xuXG4gICAgLy8gdGhpcy5BcHBsaWNhdGlvbkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdkZnNMY3VUeXBlJyk7XG5cbiAgICAvLyB0aGlzLkFwcGxpY2F0aW9uRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ29hdXRoTGN1VHlwZScpO1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdzY29wZXMnKTtcbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgndG9rZW5Mb29rdXAnKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdpbmJvdW5kUGF0aCcpO1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdwcm94eUxjdVR5cGUnKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdyZWRpcmVjdCcpO1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdwZXJtYW5lbnQnKTtcbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgncHJlc2VydmVNZXRob2QnKTtcblxuICAgIHRoaXMuY2xlYW51cExjdVR5cGVTdWJGb3JtKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBMY3VUeXBlU3ViRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBMY3VUeXBlU3ViRm9ybSgpO1xuXG4gICAgLy8gdGhpcy5BcHBsaWNhdGlvbkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCdwYWNrYWdlJyk7XG4gICAgLy8gdGhpcy5BcHBsaWNhdGlvbkZvcm1Hcm91cC5yZW1vdmVDb250cm9sKCd2ZXJzaW9uJyk7XG5cbiAgICBpZiAodGhpcy5MQ1VUeXBlKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuTENVVHlwZSkge1xuICAgICAgICBjYXNlICdBUEknOlxuICAgICAgICAgIHRoaXMuc2V0dXBMQ1VBUElGb3JtKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnQXBwbGljYXRpb25Qb2ludGVyJzpcbiAgICAgICAgICB0aGlzLnNldHVwTENVQXBwbGljYXRpb25Qb2ludGVyRm9ybSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ0dpdEh1Yic6XG4gICAgICAgICAgdGhpcy5zZXR1cExDVUdpdEh1YkZvcm0oKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdHaXRIdWJPQXV0aCc6XG4gICAgICAgICAgdGhpcy5zZXR1cExDVUdpdEh1Yk9BdXRoRm9ybSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIC8vIGNhc2UgJ05QTSc6XG4gICAgICAgIC8vICAgdGhpcy5zZXR1cExDVU5QTUZvcm0oKTtcbiAgICAgICAgLy8gICBicmVhaztcblxuICAgICAgICBjYXNlICdTUEEnOlxuICAgICAgICAgIHRoaXMuc2V0dXBMQ1VTUEFGb3JtKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnWmlwJzpcbiAgICAgICAgICB0aGlzLnNldHVwTENVWmlwRm9ybSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cFByb2Nlc3NvckRldGFpbHNGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuUHJvY2Vzc29yVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5Qcm9jZXNzb3I/LlR5cGUgfHwgJyc7XG5cbiAgICBpZiAodGhpcy5FZGl0aW5nQXBwbGljYXRpb24gIT0gbnVsbCkge1xuICAgICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7XG4gICAgICAgIG5hbWU6IFt0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5BcHBsaWNhdGlvbj8uTmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uQXBwbGljYXRpb24/LkRlc2NyaXB0aW9uLFxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIF0sXG4gICAgICAgIHJvdXRlOiBbXG4gICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgucmVwbGFjZSgnLionLCAnJykgfHxcbiAgICAgICAgICAgICcvJyxcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBdLFxuICAgICAgICAvLyBwcmlvcml0eTogW1xuICAgICAgICAvLyAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkFwcGxpY2F0aW9uPy5Qcmlvcml0eSB8fCAxMDAwMCxcbiAgICAgICAgLy8gICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAvLyBdLFxuICAgICAgICBwcm9jVHlwZTogW3RoaXMuUHJvY2Vzc29yVHlwZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIH0pO1xuXG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwTENVR2l0SHViRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdidWlsZCcsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5CdWlsZCB8fCAnbGF0ZXN0JyxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cExDVUFwcGxpY2F0aW9uUG9pbnRlckZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnYXBwbGljYXRpb25JZCcsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5BcHBsaWNhdGlvbklEIHx8ICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwTENVTlBNRm9ybSgpOiB2b2lkIHtcbiAgICAvLyB0aGlzLkFwcGxpY2F0aW9uRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgLy8gICAncGFja2FnZScsXG4gICAgLy8gICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgLy8gICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5QYWNrYWdlIHx8ICcnLFxuICAgIC8vICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAvLyAgIClcbiAgICAvLyApO1xuICAgIC8vIHRoaXMuQXBwbGljYXRpb25Gb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAvLyAgICd2ZXJzaW9uJyxcbiAgICAvLyAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAvLyAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlZlcnNpb24gfHwgJycsXG4gICAgLy8gICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgIC8vICAgKVxuICAgIC8vICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBMQ1VTUEFGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ3NwYVJvb3QnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU1BBUm9vdCB8fCAnJyxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cExDVUFQSUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnbWV0aG9kcycsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvb2t1cENvbmZpZz8uQWxsb3dlZE1ldGhvZHM/LmpvaW4oJyAnKSB8fCAnJyxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnYXBpUm9vdCcsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5BUElSb290IHx8ICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnc2VjdXJpdHknLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU2VjdXJpdHkgfHwgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBMQ1VHaXRIdWJPQXV0aEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnY2xpZW50SWQnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uQ2xpZW50SUQgfHwgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdjbGllbnRTZWNyZXQnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uQ2xpZW50U2VjcmV0IHx8ICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwUHJveHlGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuTENVVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5UeXBlIHx8ICcnO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnaW5ib3VuZFBhdGgnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Qcm9jZXNzb3I/LkluYm91bmRQYXRoIHx8ICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnbGN1VHlwZScsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5MQ1VUeXBlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cFJlZGlyZWN0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdyZWRpcmVjdCcsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5SZWRpcmVjdCB8fCAnJywgW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgXSlcbiAgICApO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAncGVybWFuZW50JyxcbiAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5QZXJtYW5lbnQgfHwgZmFsc2UsXG4gICAgICAgIFtdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ3ByZXNlcnZlTWV0aG9kJyxcbiAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uUHJvY2Vzc29yPy5QcmVzZXJ2ZU1ldGhvZCB8fCBmYWxzZSxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuRGV0ZXJtaW5lVG9vbHRpcFRleHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cE9BdXRoRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLkxDVVR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uVHlwZSB8fCAnJztcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ3Njb3BlcycsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uU2NvcGVzPy5Kb2luKCcgJykgfHwgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICd0b2tlbkxvb2t1cCcsXG4gICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLlByb2Nlc3Nvcj8uVG9rZW5Mb29rdXAgfHwgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdsY3VUeXBlJyxcbiAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbCh0aGlzLkxDVVR5cGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwTENVWmlwRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLlByb2Nlc3NvckRldGFpbHNGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICd6aXBGaWxlJyxcbiAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG93Q29kZVVuaXQ/LlppcEZpbGUgfHwgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBEZnNGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuTENVVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvd0NvZGVVbml0Py5UeXBlIHx8ICcnO1xuXG4gICAgdGhpcy5Qcm9jZXNzb3JEZXRhaWxzRm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAnZGVmYXVsdEZpbGUnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Qcm9jZXNzb3I/LkRlZmF1bHRGaWxlIHx8ICdpbmRleC5odG1sJyxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuUHJvY2Vzc29yRGV0YWlsc0Zvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2xjdVR5cGUnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKHRoaXMuTENVVHlwZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBQcm9jZXNzb3JUeXBlU3ViRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBQcm9jZXNzb3JUeXBlU3ViRm9ybSgpO1xuXG4gICAgaWYgKHRoaXMuUHJvY2Vzc29yVHlwZSkge1xuICAgICAgc3dpdGNoICh0aGlzLlByb2Nlc3NvclR5cGUpIHtcbiAgICAgICAgY2FzZSAnREZTJzpcbiAgICAgICAgICB0aGlzLnNldHVwRGZzRm9ybSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ09BdXRoJzpcbiAgICAgICAgICB0aGlzLnNldHVwT0F1dGhGb3JtKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnUHJveHknOlxuICAgICAgICAgIHRoaXMuc2V0dXBQcm94eUZvcm0oKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdSZWRpcmVjdCc6XG4gICAgICAgICAgdGhpcy5zZXR1cFJlZGlyZWN0Rm9ybSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0dXBMY3VUeXBlU3ViRm9ybSgpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
export class SecurityToggleComponent {
|
|
4
|
+
constructor(formBldr) {
|
|
5
|
+
this.formBldr = formBldr;
|
|
6
|
+
}
|
|
7
|
+
get IsPrivateFormControl() {
|
|
8
|
+
var _a;
|
|
9
|
+
return (_a = this.SecurityFormGroup) === null || _a === void 0 ? void 0 : _a.controls.isPrivate;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.setupSecurityFormGroup();
|
|
13
|
+
}
|
|
14
|
+
SecuritySubmit() {
|
|
15
|
+
console.log("submitting values");
|
|
16
|
+
}
|
|
17
|
+
setupSecurityFormGroup() {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
|
|
20
|
+
if (this.EditingApplication != null) {
|
|
21
|
+
// this.SecurityFormGroup = this.formBldr.group({
|
|
22
|
+
// name: [this.EditingApplication.Application?.Name, Validators.required],
|
|
23
|
+
// description: [
|
|
24
|
+
// this.EditingApplication.Application?.Description,
|
|
25
|
+
// Validators.required,
|
|
26
|
+
// ],
|
|
27
|
+
// route: [
|
|
28
|
+
// this.EditingApplication.LookupConfig?.PathRegex.replace('.*', '') ||
|
|
29
|
+
// '/',
|
|
30
|
+
// Validators.required,
|
|
31
|
+
// ],
|
|
32
|
+
// // priority: [
|
|
33
|
+
// // this.EditingApplication.Application?.Priority || 10000,
|
|
34
|
+
// // Validators.required,
|
|
35
|
+
// // ],
|
|
36
|
+
// procType: [this.ProcessorType, [Validators.required]],
|
|
37
|
+
// });
|
|
38
|
+
}
|
|
39
|
+
this.setupSecurityForm();
|
|
40
|
+
}
|
|
41
|
+
setupSecurityForm() {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
this.SecurityFormGroup.addControl('isPrivate', this.formBldr.control(((_a = this.EditingApplication.LookupConfig) === null || _a === void 0 ? void 0 : _a.IsPrivate) || false, [Validators.required]));
|
|
44
|
+
this.SecurityFormGroup.addControl('isTriggerSignIn', this.formBldr.control(((_b = this.EditingApplication.LookupConfig) === null || _b === void 0 ? void 0 : _b.IsTriggerSignIn) || false, [Validators.required]));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
SecurityToggleComponent.decorators = [
|
|
48
|
+
{ type: Component, args: [{
|
|
49
|
+
selector: 'lcu-security-toggle',
|
|
50
|
+
template: "<form class=\"security-form\" [formGroup]=\"SecurityFormGroup\" (ngSubmit)=\"SecuritySubmit()\">\n <mat-card class=\"spread flow-card\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivateFormControl.value\">\n <div>\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n </div>\n </div>\n </mat-card-content>\n \n <mat-card-actions>\n <!-- [disabled]=\"!SecurityFormGroup.valid || !SecurityFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save Security Settings</button>\n </mat-card-actions>\n </mat-card>\n</form>\n",
|
|
51
|
+
styles: ["::ng-deep .mat-tooltip{color:#000!important}"]
|
|
52
|
+
},] }
|
|
53
|
+
];
|
|
54
|
+
SecurityToggleComponent.ctorParameters = () => [
|
|
55
|
+
{ type: FormBuilder }
|
|
56
|
+
];
|
|
57
|
+
SecurityToggleComponent.propDecorators = {
|
|
58
|
+
EditingApplication: [{ type: Input, args: ['editing-application',] }]
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9hcHBsaWNhdGlvbnMtZmxvdy9hcHBsaWNhdGlvbnMtZmxvdy9wcm9qZWN0cy9jb21tb24vc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbnRyb2xzL3NlY3VyaXR5LXRvZ2dsZS9zZWN1cml0eS10b2dnbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBbUIsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXJGLE1BQU0sT0FBTyx1QkFBdUI7SUFZbEMsWUFBc0IsUUFBcUI7UUFBckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUFJLENBQUM7SUFQaEQsSUFBVyxvQkFBb0I7O1FBQzdCLGFBQU8sSUFBSSxDQUFDLGlCQUFpQiwwQ0FBRSxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ3BELENBQUM7SUFPTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFUyxzQkFBc0I7O1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBQSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLFNBQVMsMENBQUUsSUFBSSxLQUFJLEVBQUUsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUU7WUFDbkMsaURBQWlEO1lBQ2pELDRFQUE0RTtZQUM1RSxtQkFBbUI7WUFDbkIsd0RBQXdEO1lBQ3hELDJCQUEyQjtZQUMzQixPQUFPO1lBQ1AsYUFBYTtZQUNiLDJFQUEyRTtZQUMzRSxhQUFhO1lBQ2IsMkJBQTJCO1lBQzNCLE9BQU87WUFDUCxtQkFBbUI7WUFDbkIsaUVBQWlFO1lBQ2pFLDhCQUE4QjtZQUM5QixVQUFVO1lBQ1YsMkRBQTJEO1lBQzNELE1BQU07U0FFVDtRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxpQkFBaUI7O1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQy9CLFdBQVcsRUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDbkIsT0FBQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSwwQ0FBRSxTQUFTLEtBQUksS0FBSyxFQUN4RCxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDdEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FDL0IsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUNuQixPQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLDBDQUFFLGVBQWUsS0FBSSxLQUFLLEVBQzlELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUNGLENBQUM7SUFDSixDQUFDOzs7WUFwRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLDJxREFBK0M7O2FBRWhEOzs7WUFQeUIsV0FBVzs7O2lDQVVsQyxLQUFLLFNBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1zZWN1cml0eS10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgnZWRpdGluZy1hcHBsaWNhdGlvbicpIFxuICBwdWJsaWMgRWRpdGluZ0FwcGxpY2F0aW9uOiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcbiAgXG4gIHB1YmxpYyBnZXQgSXNQcml2YXRlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5TZWN1cml0eUZvcm1Hcm91cD8uY29udHJvbHMuaXNQcml2YXRlO1xuICB9XG4gIHB1YmxpYyBTZWN1cml0eUZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBQcm9jZXNzb3JUeXBlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcikgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBTZWN1cml0eUZvcm1Hcm91cCgpO1xuICB9XG5cbiAgcHVibGljIFNlY3VyaXR5U3VibWl0KCl7XG4gICAgY29uc29sZS5sb2coXCJzdWJtaXR0aW5nIHZhbHVlc1wiKVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwU2VjdXJpdHlGb3JtR3JvdXAoKXtcbiAgICB0aGlzLlByb2Nlc3NvclR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uUHJvY2Vzc29yPy5UeXBlIHx8ICcnO1xuICAgIGlmICh0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbiAhPSBudWxsKSB7XG4gICAgICAvLyB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7XG4gICAgICAvLyAgIG5hbWU6IFt0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5BcHBsaWNhdGlvbj8uTmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAvLyAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uQXBwbGljYXRpb24/LkRlc2NyaXB0aW9uLFxuICAgICAgLy8gICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAvLyAgIF0sXG4gICAgICAvLyAgIHJvdXRlOiBbXG4gICAgICAvLyAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG9va3VwQ29uZmlnPy5QYXRoUmVnZXgucmVwbGFjZSgnLionLCAnJykgfHxcbiAgICAgIC8vICAgICAgICcvJyxcbiAgICAgIC8vICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgLy8gICBdLFxuICAgICAgLy8gICAvLyBwcmlvcml0eTogW1xuICAgICAgLy8gICAvLyAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkFwcGxpY2F0aW9uPy5Qcmlvcml0eSB8fCAxMDAwMCxcbiAgICAgIC8vICAgLy8gICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgLy8gICAvLyBdLFxuICAgICAgLy8gICBwcm9jVHlwZTogW3RoaXMuUHJvY2Vzc29yVHlwZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIC8vIH0pO1xuXG4gIH1cbiAgdGhpcy5zZXR1cFNlY3VyaXR5Rm9ybSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwU2VjdXJpdHlGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdpc1ByaXZhdGUnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb29rdXBDb25maWc/LklzUHJpdmF0ZSB8fCBmYWxzZSxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICdpc1RyaWdnZXJTaWduSW4nLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb29rdXBDb25maWc/LklzVHJpZ2dlclNpZ25JbiB8fCBmYWxzZSxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
3
|
+
import { SourceControlFormControlsComponent } from '../../elements/projects/controls/forms/source-control/source-control.component';
|
|
4
|
+
export class SourceControlFormComponent {
|
|
5
|
+
constructor(formBldr) {
|
|
6
|
+
this.formBldr = formBldr;
|
|
7
|
+
}
|
|
8
|
+
get HasBuildFormControl() {
|
|
9
|
+
var _a;
|
|
10
|
+
return (_a = this.SourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.controls.hasBuild;
|
|
11
|
+
}
|
|
12
|
+
get SourceControlLookupFormControl() {
|
|
13
|
+
var _a;
|
|
14
|
+
return (_a = this.SourceControlFormGroup) === null || _a === void 0 ? void 0 : _a.controls.sourceControlLookup;
|
|
15
|
+
}
|
|
16
|
+
get SourceControlLookups() {
|
|
17
|
+
return Object.keys(this.SourceControls || {});
|
|
18
|
+
}
|
|
19
|
+
get SourceControls() {
|
|
20
|
+
console.log("Environment: ", this.Environment);
|
|
21
|
+
return this.Environment.Sources || {};
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.setupSourceControlForm();
|
|
25
|
+
}
|
|
26
|
+
SourceControlLookupChanged(event) {
|
|
27
|
+
// TODO: Anything to do here on change?
|
|
28
|
+
console.log("sourceControlLookupChanged: ", event);
|
|
29
|
+
}
|
|
30
|
+
SubmitSourceControl() {
|
|
31
|
+
}
|
|
32
|
+
//HELPER
|
|
33
|
+
setupSourceControlForm() {
|
|
34
|
+
var _a, _b;
|
|
35
|
+
this.ProcessorType = ((_b = (_a = this.EditingApplication) === null || _a === void 0 ? void 0 : _a.Processor) === null || _b === void 0 ? void 0 : _b.Type) || '';
|
|
36
|
+
this.setupBuildForm();
|
|
37
|
+
}
|
|
38
|
+
setupBuildForm() {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
this.SourceControlFormGroup.addControl('hasBuild', this.formBldr.control(!!((_a = this.EditingApplication.LowCodeUnit) === null || _a === void 0 ? void 0 : _a.SourceControlLookup) || false, [Validators.required]));
|
|
41
|
+
this.SourceControlFormGroup.addControl('sourceControlLookup', this.formBldr.control(((_b = this.EditingApplication.LowCodeUnit) === null || _b === void 0 ? void 0 : _b.SourceControlLookup) || '', []));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
SourceControlFormComponent.decorators = [
|
|
45
|
+
{ type: Component, args: [{
|
|
46
|
+
selector: 'lcu-source-control-form',
|
|
47
|
+
template: "<form class=\"source-control-form\" [formGroup]=\"SourceControlFormGroup\" (ngSubmit)=\"SubmitSourceControl()\">\n\n<mat-card class=\"spread flow-card\" *ngIf=\"ProcessorType != 'Redirect'\">\n <mat-card-header>\n <mat-card-title *ngIf=\"!HasBuildFormControl.value\">\n Build & Source\n </mat-card-title>\n\n <mat-card-title *ngIf=\"HasBuildFormControl.value\">\n Source Control\n </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"hasBuild\"\n matTooltip=\"Has Build?\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"Configure source control, DevOps CI/CD, and artifacts.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <mat-form-field\n class=\"mat-full-width\"\n *ngIf=\"\n HasBuildFormControl.value && SourceControlLookups?.length > 0\n \"\n >\n <mat-select\n formControlName=\"sourceControlLookup\"\n placeholder=\"Source Control\"\n (selectionChange)=\"SourceControlLookupChanged($event)\"\n [disabled]=\"\n SourceControlFormControls?.Loading || HostingDetails?.Loading\n \"\n >\n <ng-container\n *ngFor=\"let srcCtrlLookup of SourceControlLookups\"\n >\n <mat-option\n [value]=\"srcCtrlLookup\"\n *ngIf=\"SourceControls[srcCtrlLookup]; let srcCtrl\"\n >\n {{ srcCtrl.Name }}\n </mat-option>\n </ng-container>\n </mat-select>\n\n <div *ngIf=\"HasBuildFormControl?.value\">\n <h3>\n @{{\n SourceControlFormControls?.OrganizationFormControl?.value ||\n SourceControl?.Organization\n }}/{{\n SourceControlFormControls?.RepositoryFormControl?.value ||\n SourceControl?.Repository\n }}\n </h3>\n\n <p>Organization and Repository pulled from build settings</p>\n\n <mat-hint>\n CurrentBuild:\n {{ EditingApplication?.LowCodeUnit?.CurrentBuild }}\n </mat-hint>\n </div>\n </mat-form-field>\n\n <div *ngIf=\"SourceControlLookups?.length < 0\">\n <h3>\n Create source control locations under the DevOps tab above.\n </h3>\n </div>\n </mat-card-content>\n <mat-card-actions>\n <!-- [disabled]=\"!SourceControlFormGroup.valid || !SourceControlFormGroup.dirty\" -->\n <button mat-raised-button type=\"submit\" >Save</button>\n </mat-card-actions>\n </mat-card>\n</form>\n",
|
|
48
|
+
styles: [""]
|
|
49
|
+
},] }
|
|
50
|
+
];
|
|
51
|
+
SourceControlFormComponent.ctorParameters = () => [
|
|
52
|
+
{ type: FormBuilder }
|
|
53
|
+
];
|
|
54
|
+
SourceControlFormComponent.propDecorators = {
|
|
55
|
+
EditingApplication: [{ type: Input, args: ['editing-application',] }],
|
|
56
|
+
Environment: [{ type: Input, args: ['environment',] }],
|
|
57
|
+
SourceControlFormControls: [{ type: ViewChild, args: [SourceControlFormControlsComponent,] }]
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvYXBwbGljYXRpb25zLWZsb3cvYXBwbGljYXRpb25zLWZsb3cvcHJvamVjdHMvY29tbW9uL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb250cm9scy9zb3VyY2UtY29udHJvbC1mb3JtL3NvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQW1CLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQU9wSSxNQUFNLE9BQU8sMEJBQTBCO0lBZ0NyQyxZQUFzQixRQUFxQjtRQUFyQixhQUFRLEdBQVIsUUFBUSxDQUFhO0lBQUksQ0FBQztJQXBCaEQsSUFBVyxtQkFBbUI7O1FBQzVCLGFBQU8sSUFBSSxDQUFDLHNCQUFzQiwwQ0FBRSxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ3hELENBQUM7SUFLRCxJQUFXLDhCQUE4Qjs7UUFDdkMsYUFBTyxJQUFJLENBQUMsc0JBQXNCLDBDQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUlNLFFBQVE7UUFDYixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsS0FBc0I7UUFDdEQseUNBQXlDO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLG1CQUFtQjtJQUUxQixDQUFDO0lBR0QsUUFBUTtJQUVFLHNCQUFzQjs7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsU0FBUywwQ0FBRSxJQUFJLEtBQUksRUFBRSxDQUFDO1FBRWxFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUUxQixDQUFDO0lBRVMsY0FBYzs7UUFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FDcEMsVUFBVSxFQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUNuQixDQUFDLFFBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsMENBQUUsbUJBQW1CLENBQUEsSUFBSSxLQUFLLEVBQ25FLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN0QixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUNwQyxxQkFBcUIsRUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ25CLE9BQUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsMENBQUUsbUJBQW1CLEtBQUksRUFBRSxFQUM5RCxFQUFFLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBOUVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyw4cUZBQW1EOzthQUVwRDs7O1lBVHlCLFdBQVc7OztpQ0FZbEMsS0FBSyxTQUFDLHFCQUFxQjswQkFHM0IsS0FBSyxTQUFDLGFBQWE7d0NBV25CLFNBQVMsU0FBQyxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlLCBFYUNFbnZpcm9ubWVudEFzQ29kZSwgRWFDUHJvamVjdEFzQ29kZSwgRWFDU291cmNlQ29udHJvbCB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBTb3VyY2VDb250cm9sRm9ybUNvbnRyb2xzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvcHJvamVjdHMvY29udHJvbHMvZm9ybXMvc291cmNlLWNvbnRyb2wvc291cmNlLWNvbnRyb2wuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LXNvdXJjZS1jb250cm9sLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc291cmNlLWNvbnRyb2wtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NvdXJjZS1jb250cm9sLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTb3VyY2VDb250cm9sRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCdlZGl0aW5nLWFwcGxpY2F0aW9uJykgXG4gIHB1YmxpYyBFZGl0aW5nQXBwbGljYXRpb246IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gIEBJbnB1dCgnZW52aXJvbm1lbnQnKVxuICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIFByb2Nlc3NvclR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IEhhc0J1aWxkRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Tb3VyY2VDb250cm9sRm9ybUdyb3VwPy5jb250cm9scy5oYXNCdWlsZDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoU291cmNlQ29udHJvbEZvcm1Db250cm9sc0NvbXBvbmVudClcbiAgcHVibGljIFNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbHM6IFNvdXJjZUNvbnRyb2xGb3JtQ29udHJvbHNDb21wb25lbnQ7XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9sTG9va3VwRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Tb3VyY2VDb250cm9sRm9ybUdyb3VwPy5jb250cm9scy5zb3VyY2VDb250cm9sTG9va3VwO1xuICB9XG5cbiAgcHVibGljIGdldCBTb3VyY2VDb250cm9sTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Tb3VyY2VDb250cm9scyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNvdXJjZUNvbnRyb2xzKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDU291cmNlQ29udHJvbCB9IHtcbiAgICBjb25zb2xlLmxvZyhcIkVudmlyb25tZW50OiBcIiwgdGhpcy5FbnZpcm9ubWVudCk7XG4gICAgcmV0dXJuIHRoaXMuRW52aXJvbm1lbnQuU291cmNlcyB8fCB7fTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmb3JtQmxkcjogRm9ybUJ1aWxkZXIpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwU291cmNlQ29udHJvbEZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBTb3VyY2VDb250cm9sTG9va3VwQ2hhbmdlZChldmVudDogTWF0U2VsZWN0Q2hhbmdlKTogdm9pZCB7XG4gICAgLy8gIFRPRE86ICBBbnl0aGluZyB0byBkbyBoZXJlIG9uIGNoYW5nZT9cbiAgICBjb25zb2xlLmxvZyhcInNvdXJjZUNvbnRyb2xMb29rdXBDaGFuZ2VkOiBcIiwgZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIFN1Ym1pdFNvdXJjZUNvbnRyb2woKXtcblxuICB9XG5cblxuICAvL0hFTFBFUlxuXG4gIHByb3RlY3RlZCBzZXR1cFNvdXJjZUNvbnRyb2xGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuUHJvY2Vzc29yVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5Qcm9jZXNzb3I/LlR5cGUgfHwgJyc7XG5cbiAgICAgIHRoaXMuc2V0dXBCdWlsZEZvcm0oKTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQnVpbGRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ2hhc0J1aWxkJyxcbiAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgISF0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU291cmNlQ29udHJvbExvb2t1cCB8fCBmYWxzZSxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuU291cmNlQ29udHJvbEZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgJ3NvdXJjZUNvbnRyb2xMb29rdXAnLFxuICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb3dDb2RlVW5pdD8uU291cmNlQ29udHJvbExvb2t1cCB8fCAnJyxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
export class AnalyticsCardComponent {
|
|
3
|
+
constructor() {
|
|
4
|
+
}
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
AnalyticsCardComponent.decorators = [
|
|
9
|
+
{ type: Component, args: [{
|
|
10
|
+
selector: 'lcu-analytics-card',
|
|
11
|
+
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",
|
|
12
|
+
styles: [".analytics-card{border:2px solid #d3d3d3;margin:20px;padding:10px}.increase{color:green}.decrease{color:red}"]
|
|
13
|
+
},] }
|
|
14
|
+
];
|
|
15
|
+
AnalyticsCardComponent.ctorParameters = () => [];
|
|
16
|
+
AnalyticsCardComponent.propDecorators = {
|
|
17
|
+
Title: [{ type: Input, args: ['title',] }],
|
|
18
|
+
Subtext: [{ type: Input, args: ['subtext',] }],
|
|
19
|
+
Analytics: [{ type: Input, args: ['analytics',] }]
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FwcGxpY2F0aW9ucy1mbG93L2FwcGxpY2F0aW9ucy1mbG93L3Byb2plY3RzL2NvbW1vbi9zcmMvIiwic291cmNlcyI6WyJsaWIvZWxlbWVudHMvYW5hbHl0aWNzLWNhcmQvYW5hbHl0aWNzLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBT3pELE1BQU0sT0FBTyxzQkFBc0I7SUFhakM7SUFFQyxDQUFDO0lBRUYsUUFBUTtJQUNSLENBQUM7OztZQXZCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsMHhDQUE4Qzs7YUFFL0M7Ozs7b0JBR0UsS0FBSyxTQUFDLE9BQU87c0JBR2IsS0FBSyxTQUFDLFNBQVM7d0JBSWYsS0FBSyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWFuYWx5dGljcy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FuYWx5dGljcy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYW5hbHl0aWNzLWNhcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ3RpdGxlJylcbiAgcHVibGljIFRpdGxlOiBzdHJpbmc7XG5cbiAgQElucHV0KCdzdWJ0ZXh0JylcbiAgcHVibGljIFN1YnRleHQ6IHN0cmluZztcblxuICAvLyBUT0RPIHVwZGF0ZSBmcm9tIGFueSB0byBhbiBhbmFseXRpY3MgbW9kZWxcbiAgQElucHV0KCdhbmFseXRpY3MnKVxuICBwdWJsaWMgQW5hbHl0aWNzOiBhbnlbXTtcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIFxuICAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { EaCService } from '../../services/eac.service';
|
|
3
|
+
import { FormsService } from '../../services/forms.service';
|
|
4
|
+
export class BaseFormComponent {
|
|
5
|
+
constructor(formsService, eac) {
|
|
6
|
+
this.formsService = formsService;
|
|
7
|
+
this.eac = eac;
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.setupForm();
|
|
11
|
+
}
|
|
12
|
+
setupForm() {
|
|
13
|
+
this.formsService.Form = { Id: this.FormConfig.FormName, Form: this.FormConfig.Form };
|
|
14
|
+
// this.onChange();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Listen to form value changes
|
|
18
|
+
*/
|
|
19
|
+
onChange() {
|
|
20
|
+
}
|
|
21
|
+
checkFormForChanges() {
|
|
22
|
+
this.FormConfig.Form.valueChanges.subscribe((val) => {
|
|
23
|
+
if (this.formsService.ForRealThough(this.FormConfig.FormName, this.FormConfig.Form)) {
|
|
24
|
+
this.FormConfig.IsDirty = true;
|
|
25
|
+
// disable all forms except the current form being edited
|
|
26
|
+
this.formsService.DisableForms(this.FormConfig.FormName);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.FormConfig.IsDirty = false;
|
|
30
|
+
// enable all forms
|
|
31
|
+
this.formsService.DisableForms(false);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Update Form value reference
|
|
37
|
+
*/
|
|
38
|
+
updateValueRef() {
|
|
39
|
+
this.formsService.UpdateValuesReference({
|
|
40
|
+
Id: this.FormConfig.FormName,
|
|
41
|
+
Form: this.FormConfig.Form
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
save() {
|
|
45
|
+
console.log('PARENT SAVE');
|
|
46
|
+
}
|
|
47
|
+
resetForm() {
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
BaseFormComponent.decorators = [
|
|
51
|
+
{ type: Component, args: [{
|
|
52
|
+
selector: 'lcu-base-form',
|
|
53
|
+
template: "\n",
|
|
54
|
+
styles: [""]
|
|
55
|
+
},] }
|
|
56
|
+
];
|
|
57
|
+
BaseFormComponent.ctorParameters = () => [
|
|
58
|
+
{ type: FormsService },
|
|
59
|
+
{ type: EaCService }
|
|
60
|
+
];
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9hcHBsaWNhdGlvbnMtZmxvdy9hcHBsaWNhdGlvbnMtZmxvdy9wcm9qZWN0cy9jb21tb24vc3JjLyIsInNvdXJjZXMiOlsibGliL2VsZW1lbnRzL2Jhc2UtZm9ybS9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU81RCxNQUFNLE9BQU8saUJBQWlCO0lBbUI1QixZQUNZLFlBQTBCLEVBQzFCLEdBQWU7UUFEZixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFZO0lBQ3ZCLENBQUM7SUFFRSxRQUFRO1FBRWIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFUyxTQUFTO1FBRWpCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLEVBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBQyxDQUFDO1FBRXBGLG1CQUFtQjtJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDTyxRQUFRO0lBR2xCLENBQUM7SUFFUyxtQkFBbUI7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBRTFELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUMvQix5REFBeUQ7Z0JBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBRUwsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxjQUFjO1FBRXRCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQ3JDO1lBQ0UsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxJQUFJO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRVMsU0FBUztJQUVuQixDQUFDOzs7WUFuRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixjQUF5Qzs7YUFFMUM7OztZQU5RLFlBQVk7WUFEWixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUZvcm1Db25maWdNb2RlbCB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2Jhc2UtZm9ybS1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBGb3Jtc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3Jtcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWJhc2UtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYXNlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNlLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCYXNlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqXG4gICAqIEZvcm1Hcm91cCBmb3IgcHJvamVjdCBuYW1lIGNhcmRcbiAgICovXG4gIC8vIHB1YmxpYyBGb3JtOiBGb3JtR3JvdXA7XG5cbiAgLyoqXG4gICAqIEZvcm0gbmFtZVxuICAgKi9cbiAgLy8gcHJvdGVjdGVkIGZvcm1OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW4gZm9ybSBpcyBkaXJ0eSwgdGllcyBpbnRvIGZvcm1zU2VydmljZS5EaXNhYmxlRm9ybXNcbiAgICovXG4gIC8vIHB1YmxpYyBJc0RpcnR5OiBib29sZWFuO1xuXG4gIHB1YmxpYyBGb3JtQ29uZmlnOiBCYXNlRm9ybUNvbmZpZ01vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmb3Jtc1NlcnZpY2U6IEZvcm1zU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZWFjOiBFYUNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5zZXR1cEZvcm0oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cEZvcm0oKTogdm9pZCB7XG5cbiAgICB0aGlzLmZvcm1zU2VydmljZS5Gb3JtID0ge0lkOiB0aGlzLkZvcm1Db25maWcuRm9ybU5hbWUsIEZvcm06IHRoaXMuRm9ybUNvbmZpZy5Gb3JtfTtcblxuICAgIC8vIHRoaXMub25DaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gZm9ybSB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgXG5cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0Zvcm1Gb3JDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuRm9ybUNvbmZpZy5Gb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbDogb2JqZWN0KSA9PiB7XG5cbiAgICAgIGlmICh0aGlzLmZvcm1zU2VydmljZS5Gb3JSZWFsVGhvdWdoKHRoaXMuRm9ybUNvbmZpZy5Gb3JtTmFtZSwgdGhpcy5Gb3JtQ29uZmlnLkZvcm0pKSB7XG4gICAgICAgIHRoaXMuRm9ybUNvbmZpZy5Jc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgLy8gZGlzYWJsZSBhbGwgZm9ybXMgZXhjZXB0IHRoZSBjdXJyZW50IGZvcm0gYmVpbmcgZWRpdGVkXG4gICAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLkRpc2FibGVGb3Jtcyh0aGlzLkZvcm1Db25maWcuRm9ybU5hbWUpO1xuICAgICAgfSBlbHNlIHtcblxuICAgICAgICB0aGlzLkZvcm1Db25maWcuSXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAvLyBlbmFibGUgYWxsIGZvcm1zXG4gICAgICAgIHRoaXMuZm9ybXNTZXJ2aWNlLkRpc2FibGVGb3JtcyhmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIEZvcm0gdmFsdWUgcmVmZXJlbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlVmFsdWVSZWYoKTogdm9pZCB7XG5cbiAgICB0aGlzLmZvcm1zU2VydmljZS5VcGRhdGVWYWx1ZXNSZWZlcmVuY2UoXG4gICAgICB7XG4gICAgICAgIElkOiB0aGlzLkZvcm1Db25maWcuRm9ybU5hbWUsXG4gICAgICAgIEZvcm06IHRoaXMuRm9ybUNvbmZpZy5Gb3JtXG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzYXZlKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdQQVJFTlQgU0FWRScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0Rm9ybSgpOiB2b2lkIHtcblxuICB9XG59XG4iXX0=
|