@lowcodeunit/applications-flow-common 1.33.141-lets-get-social-ish → 1.33.142-angular-13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lcu.api.mjs +66 -0
- package/esm2020/lib/applications-flow.module.mjs +330 -0
- package/esm2020/lib/controls/build-pipeline-form/build-pipeline-form.component.mjs +245 -0
- package/esm2020/lib/controls/devops-source-control-form/devops-source-control-form.component.mjs +446 -0
- package/esm2020/lib/controls/edit-application-form/edit-application-form.component.mjs +67 -0
- package/esm2020/lib/controls/processor-details-form/processor-details-form.component.mjs +308 -0
- package/esm2020/lib/controls/security-toggle/security-toggle.component.mjs +54 -0
- package/esm2020/lib/controls/source-control-form/source-control-form.component.mjs +69 -0
- package/esm2020/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.mjs +29 -0
- package/esm2020/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.mjs +35 -0
- package/esm2020/lib/dialogs/edit-application-dialog/edit-application-dialog.component.mjs +33 -0
- package/esm2020/lib/dialogs/source-control-dialog/source-control-dialog.component.mjs +29 -0
- package/esm2020/lib/elements/analytics-card/analytics-card.component.mjs +28 -0
- package/esm2020/lib/elements/base-form/base-form.component.mjs +57 -0
- package/esm2020/lib/elements/breadcrumb/breadcrumb.component.mjs +117 -0
- package/esm2020/lib/elements/card-carousel/card-carousel.component.mjs +70 -0
- package/esm2020/lib/elements/column-info-card/column-info-card.component.mjs +50 -0
- package/esm2020/lib/elements/dynamic-tabs/dynamic-tabs.component.mjs +74 -0
- package/esm2020/lib/elements/feed-card-sm/feed-card-sm.component.mjs +40 -0
- package/esm2020/lib/elements/flow-tool/flow-tool.component.mjs +75 -0
- package/esm2020/lib/elements/form-card/form-card.component.mjs +33 -0
- package/esm2020/lib/elements/gh-control/gh-control.component.mjs +78 -0
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +34 -0
- package/esm2020/lib/elements/project-info-card/project-info-card.component.mjs +46 -0
- package/esm2020/lib/elements/projects/controls/builds/builds.component.mjs +32 -0
- package/esm2020/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.mjs +145 -0
- package/esm2020/lib/elements/projects/controls/forms/source-control/source-control.component.mjs +285 -0
- package/esm2020/lib/elements/projects/controls/git-auth/git-auth.component.mjs +26 -0
- package/esm2020/lib/elements/projects/controls/header/header.component.mjs +83 -0
- package/esm2020/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.mjs +118 -0
- package/esm2020/lib/elements/projects/controls/project-items/project-items.component.mjs +54 -0
- package/esm2020/lib/elements/projects/controls/project-tabs/project-tabs.component.mjs +103 -0
- package/esm2020/lib/elements/projects/controls/recent-activities/recent-activities.component.mjs +14 -0
- package/esm2020/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.mjs +561 -0
- package/esm2020/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.mjs +72 -0
- package/esm2020/lib/elements/projects/controls/tabs/devops/devops.component.mjs +242 -0
- package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +179 -0
- package/esm2020/lib/elements/projects/controls/tabs/domains/domains.component.mjs +137 -0
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.mjs +90 -0
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.mjs +142 -0
- package/esm2020/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.mjs +124 -0
- package/esm2020/lib/elements/projects/controls/tabs/general/general.component.mjs +40 -0
- package/esm2020/lib/elements/projects/projects.component.mjs +98 -0
- package/esm2020/lib/elements/slotted-card/slotted-card.component.mjs +45 -0
- package/esm2020/lib/elements/three-column/three-column.component.mjs +30 -0
- package/esm2020/lib/elements/two-column-header/two-column-header.component.mjs +15 -0
- package/esm2020/lib/models/actions.model.mjs +3 -0
- package/esm2020/lib/models/base-form-config.model.mjs +6 -0
- package/esm2020/lib/models/card-form-config.model.mjs +6 -0
- package/esm2020/lib/models/card-slot.model.mjs +3 -0
- package/esm2020/lib/models/dev-settings-preset.model.mjs +3 -0
- package/esm2020/lib/models/domain.model.mjs +3 -0
- package/esm2020/lib/models/dynamic-tabs.model.mjs +6 -0
- package/esm2020/lib/models/form-actions.model.mjs +3 -0
- package/esm2020/lib/models/form.model.mjs +6 -0
- package/esm2020/lib/models/form.values.model.mjs +11 -0
- package/esm2020/lib/models/project-actions.model.mjs +6 -0
- package/esm2020/lib/models/slot-action.model.mjs +3 -0
- package/{esm2015/lib/services/applications-flow.service.js → esm2020/lib/services/applications-flow.service.mjs} +9 -13
- package/esm2020/lib/services/eac.service.mjs +173 -0
- package/esm2020/lib/services/forms.service.mjs +132 -0
- package/esm2020/lib/services/npm.service.mjs +77 -0
- package/esm2020/lib/services/project.service.mjs +303 -0
- package/esm2020/lib/state/applications-flow-state.context.mjs +36 -0
- package/esm2020/lib/state/applications-flow.state.mjs +72 -0
- package/esm2020/lowcodeunit-applications-flow-common.mjs +5 -0
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +5579 -0
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -0
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +5459 -0
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -0
- package/lcu.api.d.ts +40 -2
- package/lib/applications-flow.module.d.ts +53 -1
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts +3 -1
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts +3 -1
- package/lib/controls/edit-application-form/edit-application-form.component.d.ts +3 -1
- package/lib/controls/processor-details-form/processor-details-form.component.d.ts +3 -1
- package/lib/controls/security-toggle/security-toggle.component.d.ts +3 -1
- package/lib/controls/source-control-form/source-control-form.component.d.ts +3 -1
- package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts +3 -1
- package/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.d.ts +3 -1
- package/lib/dialogs/edit-application-dialog/edit-application-dialog.component.d.ts +4 -2
- package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts +3 -1
- package/lib/elements/analytics-card/analytics-card.component.d.ts +3 -1
- package/lib/elements/base-form/base-form.component.d.ts +3 -1
- package/lib/elements/breadcrumb/breadcrumb.component.d.ts +3 -1
- package/lib/elements/card-carousel/card-carousel.component.d.ts +3 -1
- package/lib/elements/column-info-card/column-info-card.component.d.ts +20 -0
- package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts +3 -1
- package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts +3 -1
- package/lib/elements/flow-tool/flow-tool.component.d.ts +28 -0
- package/lib/elements/form-card/form-card.component.d.ts +3 -1
- package/lib/elements/gh-control/gh-control.component.d.ts +3 -1
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts +3 -1
- package/lib/elements/project-info-card/project-info-card.component.d.ts +3 -3
- package/lib/elements/projects/controls/builds/builds.component.d.ts +3 -1
- package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts +3 -1
- package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts +3 -1
- package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts +3 -1
- package/lib/elements/projects/controls/header/header.component.d.ts +3 -1
- package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts +3 -1
- package/lib/elements/projects/controls/project-items/project-items.component.d.ts +3 -1
- package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts +3 -1
- package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts +3 -1
- package/lib/elements/projects/controls/tabs/general/general.component.d.ts +3 -1
- package/lib/elements/projects/projects.component.d.ts +3 -1
- package/lib/elements/slotted-card/slotted-card.component.d.ts +3 -1
- package/lib/elements/three-column/three-column.component.d.ts +3 -1
- package/lib/elements/two-column-header/two-column-header.component.d.ts +3 -1
- package/lib/models/actions.model.d.ts +0 -1
- package/lib/models/base-form-config.model.d.ts +0 -1
- package/lib/models/card-form-config.model.d.ts +0 -1
- package/lib/models/card-slot.model.d.ts +7 -0
- package/lib/models/dev-settings-preset.model.d.ts +0 -1
- package/lib/models/domain.model.d.ts +0 -1
- package/lib/models/dynamic-tabs.model.d.ts +0 -1
- package/lib/models/form-actions.model.d.ts +0 -1
- package/lib/models/form.model.d.ts +0 -1
- package/lib/models/form.values.model.d.ts +0 -1
- package/lib/models/project-actions.model.d.ts +0 -1
- package/lib/models/slot-action.model.d.ts +8 -0
- package/lib/services/applications-flow.service.d.ts +3 -1
- package/lib/services/eac.service.d.ts +3 -1
- package/lib/services/forms.service.d.ts +3 -1
- package/lib/services/npm.service.d.ts +3 -1
- package/lib/services/project.service.d.ts +3 -1
- package/lib/state/applications-flow-state.context.d.ts +3 -1
- package/lib/state/applications-flow.state.d.ts +0 -1
- package/lowcodeunit-applications-flow-common.d.ts +1 -35
- package/package.json +20 -12
- package/bundles/lowcodeunit-applications-flow-common.umd.js +0 -6901
- package/bundles/lowcodeunit-applications-flow-common.umd.js.map +0 -1
- package/bundles/lowcodeunit-applications-flow-common.umd.min.js +0 -16
- package/bundles/lowcodeunit-applications-flow-common.umd.min.js.map +0 -1
- package/esm2015/lcu.api.js +0 -27
- package/esm2015/lib/applications-flow.module.js +0 -218
- package/esm2015/lib/controls/build-pipeline-form/build-pipeline-form.component.js +0 -213
- package/esm2015/lib/controls/devops-source-control-form/devops-source-control-form.component.js +0 -412
- package/esm2015/lib/controls/edit-application-form/edit-application-form.component.js +0 -60
- package/esm2015/lib/controls/processor-details-form/processor-details-form.component.js +0 -321
- package/esm2015/lib/controls/security-toggle/security-toggle.component.js +0 -50
- package/esm2015/lib/controls/source-control-form/source-control-form.component.js +0 -61
- package/esm2015/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.js +0 -25
- package/esm2015/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.js +0 -31
- package/esm2015/lib/dialogs/edit-application-dialog/edit-application-dialog.component.js +0 -29
- package/esm2015/lib/dialogs/source-control-dialog/source-control-dialog.component.js +0 -25
- package/esm2015/lib/elements/analytics-card/analytics-card.component.js +0 -21
- package/esm2015/lib/elements/base-form/base-form.component.js +0 -61
- package/esm2015/lib/elements/breadcrumb/breadcrumb.component.js +0 -115
- package/esm2015/lib/elements/card-carousel/card-carousel.component.js +0 -67
- package/esm2015/lib/elements/dynamic-tabs/dynamic-tabs.component.js +0 -69
- package/esm2015/lib/elements/feed-card-sm/feed-card-sm.component.js +0 -31
- package/esm2015/lib/elements/form-card/form-card.component.js +0 -22
- package/esm2015/lib/elements/gh-control/gh-control.component.js +0 -72
- package/esm2015/lib/elements/main-feed-card/main-feed-card.component.js +0 -24
- package/esm2015/lib/elements/project-info-card/project-info-card.component.js +0 -35
- package/esm2015/lib/elements/projects/controls/builds/builds.component.js +0 -26
- package/esm2015/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.js +0 -145
- package/esm2015/lib/elements/projects/controls/forms/source-control/source-control.component.js +0 -262
- package/esm2015/lib/elements/projects/controls/git-auth/git-auth.component.js +0 -25
- package/esm2015/lib/elements/projects/controls/header/header.component.js +0 -75
- package/esm2015/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.js +0 -102
- package/esm2015/lib/elements/projects/controls/project-items/project-items.component.js +0 -49
- package/esm2015/lib/elements/projects/controls/project-tabs/project-tabs.component.js +0 -91
- package/esm2015/lib/elements/projects/controls/recent-activities/recent-activities.component.js +0 -15
- package/esm2015/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.js +0 -590
- package/esm2015/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.js +0 -62
- package/esm2015/lib/elements/projects/controls/tabs/devops/devops.component.js +0 -202
- package/esm2015/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.js +0 -178
- package/esm2015/lib/elements/projects/controls/tabs/domains/domains.component.js +0 -133
- package/esm2015/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.js +0 -86
- package/esm2015/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.js +0 -129
- package/esm2015/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.js +0 -113
- package/esm2015/lib/elements/projects/controls/tabs/general/general.component.js +0 -46
- package/esm2015/lib/elements/projects/projects.component.js +0 -99
- package/esm2015/lib/elements/slotted-card/slotted-card.component.js +0 -29
- package/esm2015/lib/elements/three-column/three-column.component.js +0 -32
- package/esm2015/lib/elements/two-column-header/two-column-header.component.js +0 -15
- package/esm2015/lib/models/actions.model.js +0 -3
- package/esm2015/lib/models/base-form-config.model.js +0 -6
- package/esm2015/lib/models/card-form-config.model.js +0 -6
- package/esm2015/lib/models/dev-settings-preset.model.js +0 -3
- package/esm2015/lib/models/domain.model.js +0 -3
- package/esm2015/lib/models/dynamic-tabs.model.js +0 -6
- package/esm2015/lib/models/form-actions.model.js +0 -3
- package/esm2015/lib/models/form.model.js +0 -6
- package/esm2015/lib/models/form.values.model.js +0 -11
- package/esm2015/lib/models/project-actions.model.js +0 -6
- package/esm2015/lib/services/eac.service.js +0 -218
- package/esm2015/lib/services/forms.service.js +0 -131
- package/esm2015/lib/services/npm.service.js +0 -79
- package/esm2015/lib/services/project.service.js +0 -318
- package/esm2015/lib/state/applications-flow-state.context.js +0 -37
- package/esm2015/lib/state/applications-flow.state.js +0 -72
- package/esm2015/lowcodeunit-applications-flow-common.js +0 -39
- package/fesm2015/lowcodeunit-applications-flow-common.js +0 -5320
- package/fesm2015/lowcodeunit-applications-flow-common.js.map +0 -1
- package/lcu.api.d.ts.map +0 -1
- package/lib/applications-flow.module.d.ts.map +0 -1
- package/lib/controls/build-pipeline-form/build-pipeline-form.component.d.ts.map +0 -1
- package/lib/controls/devops-source-control-form/devops-source-control-form.component.d.ts.map +0 -1
- package/lib/controls/edit-application-form/edit-application-form.component.d.ts.map +0 -1
- package/lib/controls/processor-details-form/processor-details-form.component.d.ts.map +0 -1
- package/lib/controls/security-toggle/security-toggle.component.d.ts.map +0 -1
- package/lib/controls/source-control-form/source-control-form.component.d.ts.map +0 -1
- package/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.d.ts.map +0 -1
- package/lib/dialogs/custom-domain-dialog/custom-domain-dialog.component.d.ts.map +0 -1
- package/lib/dialogs/edit-application-dialog/edit-application-dialog.component.d.ts.map +0 -1
- package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts.map +0 -1
- package/lib/elements/analytics-card/analytics-card.component.d.ts.map +0 -1
- package/lib/elements/base-form/base-form.component.d.ts.map +0 -1
- package/lib/elements/breadcrumb/breadcrumb.component.d.ts.map +0 -1
- package/lib/elements/card-carousel/card-carousel.component.d.ts.map +0 -1
- package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts.map +0 -1
- package/lib/elements/feed-card-sm/feed-card-sm.component.d.ts.map +0 -1
- package/lib/elements/form-card/form-card.component.d.ts.map +0 -1
- package/lib/elements/gh-control/gh-control.component.d.ts.map +0 -1
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts.map +0 -1
- package/lib/elements/project-info-card/project-info-card.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/builds/builds.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/create-project-wizard/create-project-wizard.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/forms/source-control/source-control.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/git-auth/git-auth.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/header/header.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/hosting-details-form-group/hosting-details-form-group.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/project-items/project-items.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/project-tabs/project-tabs.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/recent-activities/recent-activities.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/apps-flow/apps-flow.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/apps-flow/npm-package-select/npm-package-select.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/devops/devops.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/domains/domains.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/general/forms/base-form-test/base-form-test.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/general/forms/project-details/project-details.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/general/forms/root-directory/root-directory.component.d.ts.map +0 -1
- package/lib/elements/projects/controls/tabs/general/general.component.d.ts.map +0 -1
- package/lib/elements/projects/projects.component.d.ts.map +0 -1
- package/lib/elements/slotted-card/slotted-card.component.d.ts.map +0 -1
- package/lib/elements/three-column/three-column.component.d.ts.map +0 -1
- package/lib/elements/two-column-header/two-column-header.component.d.ts.map +0 -1
- package/lib/models/actions.model.d.ts.map +0 -1
- package/lib/models/base-form-config.model.d.ts.map +0 -1
- package/lib/models/card-form-config.model.d.ts.map +0 -1
- package/lib/models/dev-settings-preset.model.d.ts.map +0 -1
- package/lib/models/domain.model.d.ts.map +0 -1
- package/lib/models/dynamic-tabs.model.d.ts.map +0 -1
- package/lib/models/form-actions.model.d.ts.map +0 -1
- package/lib/models/form.model.d.ts.map +0 -1
- package/lib/models/form.values.model.d.ts.map +0 -1
- package/lib/models/project-actions.model.d.ts.map +0 -1
- package/lib/services/applications-flow.service.d.ts.map +0 -1
- package/lib/services/eac.service.d.ts.map +0 -1
- package/lib/services/forms.service.d.ts.map +0 -1
- package/lib/services/npm.service.d.ts.map +0 -1
- package/lib/services/project.service.d.ts.map +0 -1
- package/lib/state/applications-flow-state.context.d.ts.map +0 -1
- package/lib/state/applications-flow.state.d.ts.map +0 -1
- package/lowcodeunit-applications-flow-common.d.ts.map +0 -1
- package/lowcodeunit-applications-flow-common.metadata.json +0 -1
|
@@ -0,0 +1,117 @@
|
|
|
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/button";
|
|
5
|
+
import * as i3 from "@angular/material/icon";
|
|
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 "@angular/router";
|
|
10
|
+
export class BreadcrumbComponent {
|
|
11
|
+
constructor(eacSvc) {
|
|
12
|
+
this.eacSvc = eacSvc;
|
|
13
|
+
}
|
|
14
|
+
get ApplicationsBank() {
|
|
15
|
+
return this.State?.EaC?.Applications || {};
|
|
16
|
+
}
|
|
17
|
+
get Applications() {
|
|
18
|
+
const apps = {};
|
|
19
|
+
this.SelectedProject?.ApplicationLookups.forEach((appLookup) => {
|
|
20
|
+
apps[appLookup] = this.ApplicationsBank[appLookup];
|
|
21
|
+
});
|
|
22
|
+
return apps;
|
|
23
|
+
}
|
|
24
|
+
get SelectedApplication() {
|
|
25
|
+
return this.State?.EaC?.Applications[this.ApplicationLookup] || {};
|
|
26
|
+
}
|
|
27
|
+
get CurrentRouteApplicationLookups() {
|
|
28
|
+
return Object.keys(this.RoutedApplications[this.SelectedRoute] || {});
|
|
29
|
+
}
|
|
30
|
+
get Projects() {
|
|
31
|
+
return this.State?.EaC?.Projects || {};
|
|
32
|
+
}
|
|
33
|
+
get ProjectLookups() {
|
|
34
|
+
return Object.keys(this.State?.EaC?.Projects || {});
|
|
35
|
+
}
|
|
36
|
+
get Routes() {
|
|
37
|
+
return Object.keys(this.RoutedApplications || {});
|
|
38
|
+
}
|
|
39
|
+
get RoutedApplications() {
|
|
40
|
+
const appLookups = Object.keys(this.Applications);
|
|
41
|
+
const apps = appLookups.map((appLookup) => this.Applications[appLookup]);
|
|
42
|
+
let appRoutes = apps.map((app) => {
|
|
43
|
+
return app.LookupConfig?.PathRegex.replace('.*', '');
|
|
44
|
+
}) || [];
|
|
45
|
+
appRoutes = appRoutes.filter((ar) => ar != null);
|
|
46
|
+
let routeBases = [];
|
|
47
|
+
appRoutes.forEach((appRoute) => {
|
|
48
|
+
const appRouteParts = appRoute.split('/');
|
|
49
|
+
const appRouteBase = `/${appRouteParts[1]}`;
|
|
50
|
+
if (routeBases.indexOf(appRouteBase) < 0) {
|
|
51
|
+
routeBases.push(appRouteBase);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
let workingAppLookups = [...(appLookups || [])];
|
|
55
|
+
routeBases = routeBases.sort((a, b) => b.localeCompare(a));
|
|
56
|
+
const routeSet = routeBases.reduce((prevRouteMap, currentRouteBase) => {
|
|
57
|
+
const routeMap = {
|
|
58
|
+
...prevRouteMap,
|
|
59
|
+
};
|
|
60
|
+
const filteredAppLookups = workingAppLookups.filter((wal) => {
|
|
61
|
+
const wa = this.Applications[wal];
|
|
62
|
+
return wa.LookupConfig?.PathRegex.startsWith(currentRouteBase);
|
|
63
|
+
});
|
|
64
|
+
routeMap[currentRouteBase] =
|
|
65
|
+
filteredAppLookups.reduce((prevAppMap, appLookup) => {
|
|
66
|
+
const appMap = {
|
|
67
|
+
...prevAppMap,
|
|
68
|
+
};
|
|
69
|
+
appMap[appLookup] = this.Applications[appLookup];
|
|
70
|
+
return appMap;
|
|
71
|
+
}, {}) || {};
|
|
72
|
+
workingAppLookups = workingAppLookups.filter((wa) => {
|
|
73
|
+
return filteredAppLookups.indexOf(wa) < 0;
|
|
74
|
+
});
|
|
75
|
+
return routeMap;
|
|
76
|
+
}, {}) || {};
|
|
77
|
+
let routeSetKeys = Object.keys(routeSet);
|
|
78
|
+
routeSetKeys = routeSetKeys.sort((a, b) => a.localeCompare(b));
|
|
79
|
+
const routeSetResult = {};
|
|
80
|
+
routeSetKeys.forEach((rsk) => (routeSetResult[rsk] = routeSet[rsk]));
|
|
81
|
+
return routeSetResult;
|
|
82
|
+
}
|
|
83
|
+
get SelectedProject() {
|
|
84
|
+
return this.State?.EaC?.Projects[this.ProjectLookup] || {};
|
|
85
|
+
}
|
|
86
|
+
get State() {
|
|
87
|
+
return this.eacSvc.State;
|
|
88
|
+
}
|
|
89
|
+
ngOnInit() {
|
|
90
|
+
this.handleStateChange().then((eac) => { });
|
|
91
|
+
console.log("Selected project: ", this.SelectedProject.Project);
|
|
92
|
+
console.log("SelectedRoute:", this.SelectedRoute);
|
|
93
|
+
}
|
|
94
|
+
async handleStateChange() {
|
|
95
|
+
this.State.Loading = true;
|
|
96
|
+
await this.eacSvc.EnsureUserEnterprise();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.EaCService }], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BreadcrumbComponent, selector: "lcu-breadcrumb", inputs: { Enterprise: ["enterprise", "Enterprise"], ApplicationLookup: ["application-lookup", "ApplicationLookup"], ProjectLookup: ["project-lookup", "ProjectLookup"], SelectedRoute: ["selected-route", "SelectedRoute"] }, ngImport: i0, template: "<div class=\"breadcrumb-container\" fxLayout=\"row\">\n\n <div *ngIf=\"Enterprise\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">{{Enterprise.Name}}</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 mat-menu-item [routerLink]=\"['/enterprises']\">\n <span>{{Enterprise.Name}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div *ngIf=\"ProjectLookup && SelectedProject\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <span class=\"seperator\">/</span>\n\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">{{SelectedProject.Project.Name}}</div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n \n \n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item *ngFor=\"let projectLookup of ProjectLookups\" [routerLink]=\"['/projects', projectLookup]\">\n <span *ngIf=\"Projects[projectLookup]; let pro;\">{{pro.Project.Name}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <div class=\"crumb-name\" [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\">{{SelectedRoute}}</div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n \n \n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item *ngFor=\"let appRoute of Routes\" [routerLink]=\"['/routes', appRoute, ProjectLookup]\">\n <span *ngIf=\"appRoute\">{{appRoute}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div *ngIf=\"SelectedApplication && ApplicationLookup\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <span class=\"seperator\">/</span>\n\n <div class=\"crumb-name\" \n [routerLink]=\"['/applications', ApplicationLookup, SelectedRoute, ProjectLookup]\">\n {{SelectedApplication.Application.Name}}</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 mat-menu-item *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"['/applications', appLookup, SelectedRoute, ProjectLookup]\">\n <span *ngIf=\"RoutedApplications[SelectedRoute][appLookup];\n let app\">{{app.Application.Name}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n\n</div>\n", styles: [".breadcrumb-container{background-color:#ebecf0;margin:10px 30px}.seperator{font-size:25px;padding:10px}.crumb-name{cursor:pointer}\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.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: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i7.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"] }] });
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
102
|
+
type: Component,
|
|
103
|
+
args: [{ selector: 'lcu-breadcrumb', template: "<div class=\"breadcrumb-container\" fxLayout=\"row\">\n\n <div *ngIf=\"Enterprise\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">{{Enterprise.Name}}</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 mat-menu-item [routerLink]=\"['/enterprises']\">\n <span>{{Enterprise.Name}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div *ngIf=\"ProjectLookup && SelectedProject\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <span class=\"seperator\">/</span>\n\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">{{SelectedProject.Project.Name}}</div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n \n \n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item *ngFor=\"let projectLookup of ProjectLookups\" [routerLink]=\"['/projects', projectLookup]\">\n <span *ngIf=\"Projects[projectLookup]; let pro;\">{{pro.Project.Name}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <div class=\"crumb-name\" [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\">{{SelectedRoute}}</div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n \n \n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item *ngFor=\"let appRoute of Routes\" [routerLink]=\"['/routes', appRoute, ProjectLookup]\">\n <span *ngIf=\"appRoute\">{{appRoute}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n <div *ngIf=\"SelectedApplication && ApplicationLookup\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n\n <span class=\"seperator\">/</span>\n\n <div class=\"crumb-name\" \n [routerLink]=\"['/applications', ApplicationLookup, SelectedRoute, ProjectLookup]\">\n {{SelectedApplication.Application.Name}}</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 mat-menu-item *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"['/applications', appLookup, SelectedRoute, ProjectLookup]\">\n <span *ngIf=\"RoutedApplications[SelectedRoute][appLookup];\n let app\">{{app.Application.Name}}</span>\n </button>\n </mat-menu>\n\n </div>\n\n\n</div>\n", styles: [".breadcrumb-container{background-color:#ebecf0;margin:10px 30px}.seperator{font-size:25px;padding:10px}.crumb-name{cursor:pointer}\n"] }]
|
|
104
|
+
}], ctorParameters: function () { return [{ type: i1.EaCService }]; }, propDecorators: { Enterprise: [{
|
|
105
|
+
type: Input,
|
|
106
|
+
args: ['enterprise']
|
|
107
|
+
}], ApplicationLookup: [{
|
|
108
|
+
type: Input,
|
|
109
|
+
args: ['application-lookup']
|
|
110
|
+
}], ProjectLookup: [{
|
|
111
|
+
type: Input,
|
|
112
|
+
args: ['project-lookup']
|
|
113
|
+
}], SelectedRoute: [{
|
|
114
|
+
type: Input,
|
|
115
|
+
args: ['selected-route']
|
|
116
|
+
}] } });
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFVekQsTUFBTSxPQUFPLG1CQUFtQjtJQWtJOUIsWUFBdUIsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUFJLENBQUM7SUFsSDlDLElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE1BQU0sSUFBSSxHQUErQyxFQUFFLENBQUM7UUFFNUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBVyw4QkFBOEI7UUFDdkMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNo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LENBQUMsQ0FBQztRQUU1QyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFL0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFHbkQsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRTFCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzNDLENBQUM7O2dIQW5KVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixvUkNWaEMsdW5HQStFQTsyRkRyRWEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjtpR0FPbkIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxZQUFZO2dCQUlaLGlCQUFpQjtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBSXBCLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUloQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWFDQXBwbGljYXRpb25Bc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ2VudGVycHJpc2UnKVxuICBwdWJsaWMgRW50ZXJwcmlzZTogYW55O1xuXG4gIEBJbnB1dCgnYXBwbGljYXRpb24tbG9va3VwJylcbiAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwOiBzdHJpbmc7XG5cbiAgQElucHV0KCdwcm9qZWN0LWxvb2t1cCcpXG4gIHB1YmxpYyBQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgQElucHV0KCdzZWxlY3RlZC1yb3V0ZScpXG4gIHB1YmxpYyBTZWxlY3RlZFJvdXRlOiBzdHJpbmc7XG5cbiAgXG5cbiAgcHVibGljIGdldCBBcHBsaWNhdGlvbnNCYW5rKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSB7XG4gICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uQXBwbGljYXRpb25zIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBBcHBsaWNhdGlvbnMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9IHtcbiAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgIHRoaXMuU2VsZWN0ZWRQcm9qZWN0Py5BcHBsaWNhdGlvbkxvb2t1cHMuZm9yRWFjaCgoYXBwTG9va3VwOiBzdHJpbmcpID0+IHtcbiAgICAgIGFwcHNbYXBwTG9va3VwXSA9IHRoaXMuQXBwbGljYXRpb25zQmFua1thcHBMb29rdXBdO1xuICAgIH0pO1xuICAgIHJldHVybiBhcHBzO1xuICB9XG5cbiAgcHVibGljIGdldCBTZWxlY3RlZEFwcGxpY2F0aW9uKCk6IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5BcHBsaWNhdGlvbnNbdGhpcy5BcHBsaWNhdGlvbkxvb2t1cF0gfHwge307XG4gIH1cblxuICBwdWJsaWMgZ2V0IEN1cnJlbnRSb3V0ZUFwcGxpY2F0aW9uTG9va3VwcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoXG4gICAgICB0aGlzLlJvdXRlZEFwcGxpY2F0aW9uc1t0aGlzLlNlbGVjdGVkUm91dGVdIHx8IHt9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUHJvamVjdHMoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0cyB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUHJvamVjdExvb2t1cHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLlN0YXRlPy5FYUM/LlByb2plY3RzIHx8IHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUm91dGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLlJvdXRlZEFwcGxpY2F0aW9ucyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFJvdXRlZEFwcGxpY2F0aW9ucygpOiB7XG4gICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gIH0ge1xuICAgIGNvbnN0IGFwcExvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLkFwcGxpY2F0aW9ucyk7XG5cbiAgICBjb25zdCBhcHBzID0gYXBwTG9va3Vwcy5tYXAoKGFwcExvb2t1cCkgPT4gdGhpcy5BcHBsaWNhdGlvbnNbYXBwTG9va3VwXSk7XG5cbiAgICBsZXQgYXBwUm91dGVzID1cbiAgICAgIGFwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgcmV0dXJuIGFwcC5Mb29rdXBDb25maWc/LlBhdGhSZWdleC5yZXBsYWNlKCcuKicsICcnKTtcbiAgICAgIH0pIHx8IFtdO1xuXG4gICAgYXBwUm91dGVzID0gYXBwUm91dGVzLmZpbHRlcigoYXIpID0+IGFyICE9IG51bGwpO1xuXG4gICAgbGV0IHJvdXRlQmFzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBhcHBSb3V0ZXMuZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgIHJvdXRlQmFzZXMucHVzaChhcHBSb3V0ZUJhc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICByb3V0ZUJhc2VzID0gcm91dGVCYXNlcy5zb3J0KChhLCBiKSA9PiBiLmxvY2FsZUNvbXBhcmUoYSkpO1xuXG4gICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICBjb25zdCByb3V0ZU1hcCA9IHtcbiAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICBjb25zdCB3YSA9IHRoaXMuQXBwbGljYXRpb25zW3dhbF07XG5cbiAgICAgICAgICByZXR1cm4gd2EuTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChjdXJyZW50Um91dGVCYXNlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVNYXBbY3VycmVudFJvdXRlQmFzZV0gPVxuICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwTWFwID0ge1xuICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWRBcHBMb29rdXBzLmluZGV4T2Yod2EpIDwgMDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgIHJvdXRlU2V0S2V5cyA9IHJvdXRlU2V0S2V5cy5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuXG4gICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgIHJvdXRlU2V0S2V5cy5mb3JFYWNoKChyc2spID0+IChyb3V0ZVNldFJlc3VsdFtyc2tdID0gcm91dGVTZXRbcnNrXSkpO1xuXG4gICAgcmV0dXJuIHJvdXRlU2V0UmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGdldCBTZWxlY3RlZFByb2plY3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uRWFDPy5Qcm9qZWN0c1t0aGlzLlByb2plY3RMb29rdXBdIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGUge1xuICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuaGFuZGxlU3RhdGVDaGFuZ2UoKS50aGVuKChlYWMpID0+IHsgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhcIlNlbGVjdGVkIHByb2plY3Q6IFwiLCB0aGlzLlNlbGVjdGVkUHJvamVjdC5Qcm9qZWN0KVxuICAgIFxuICAgIGNvbnNvbGUubG9nKFwiU2VsZWN0ZWRSb3V0ZTpcIiwgdGhpcy5TZWxlY3RlZFJvdXRlKVxuICAgIFxuXG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU3RhdGVDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5TdGF0ZS5Mb2FkaW5nID0gdHJ1ZTtcblxuICAgIGF3YWl0IHRoaXMuZWFjU3ZjLkVuc3VyZVVzZXJFbnRlcnByaXNlKCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImJyZWFkY3J1bWItY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cblxuICAgIDxkaXYgKm5nSWY9XCJFbnRlcnByaXNlXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItbmFtZVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2VudGVycHJpc2VzJ11cIj57e0VudGVycHJpc2UuTmFtZX19PC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImVudGVycHJpc2VNZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8bWF0LW1lbnUgI2VudGVycHJpc2VNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIFtyb3V0ZXJMaW5rXT1cIlsnL2VudGVycHJpc2VzJ11cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7RW50ZXJwcmlzZS5OYW1lfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cblxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIlByb2plY3RMb29rdXAgJiYgU2VsZWN0ZWRQcm9qZWN0XCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2VwZXJhdG9yXCI+Lzwvc3Bhbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItbmFtZVwiIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3RzJywgUHJvamVjdExvb2t1cF1cIj57e1NlbGVjdGVkUHJvamVjdC5Qcm9qZWN0Lk5hbWV9fTwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJwcm9qZWN0TWVudVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgICAgICAgPG1hdC1tZW51ICNwcm9qZWN0TWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBwcm9qZWN0TG9va3VwIG9mIFByb2plY3RMb29rdXBzXCIgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdHMnLCBwcm9qZWN0TG9va3VwXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJQcm9qZWN0c1twcm9qZWN0TG9va3VwXTsgbGV0IHBybztcIj57e3Byby5Qcm9qZWN0Lk5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiU2VsZWN0ZWRSb3V0ZVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBlcmF0b3JcIj4vPC9zcGFuPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcnVtYi1uYW1lXCIgW3JvdXRlckxpbmtdPVwiWycvcm91dGVzJywgU2VsZWN0ZWRSb3V0ZSwgUHJvamVjdExvb2t1cF1cIj57e1NlbGVjdGVkUm91dGV9fTwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJyb3V0ZU1lbnVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgICAgICA8bWF0LW1lbnUgI3JvdXRlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBhcHBSb3V0ZSBvZiBSb3V0ZXNcIiBbcm91dGVyTGlua109XCJbJy9yb3V0ZXMnLCBhcHBSb3V0ZSwgUHJvamVjdExvb2t1cF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXBwUm91dGVcIj57e2FwcFJvdXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cblxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIlNlbGVjdGVkQXBwbGljYXRpb24gJiYgQXBwbGljYXRpb25Mb29rdXBcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXBlcmF0b3JcIj4vPC9zcGFuPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcnVtYi1uYW1lXCIgXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9hcHBsaWNhdGlvbnMnLCBBcHBsaWNhdGlvbkxvb2t1cCwgU2VsZWN0ZWRSb3V0ZSwgUHJvamVjdExvb2t1cF1cIj5cbiAgICAgICAgICAgIHt7U2VsZWN0ZWRBcHBsaWNhdGlvbi5BcHBsaWNhdGlvbi5OYW1lfX08L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYXBwbGljYXRpb25NZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgXG4gICAgICAgICAgICA8bWF0LW1lbnUgI2FwcGxpY2F0aW9uTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBhcHBMb29rdXAgb2YgQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvYXBwbGljYXRpb25zJywgYXBwTG9va3VwLCBTZWxlY3RlZFJvdXRlLCBQcm9qZWN0TG9va3VwXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJSb3V0ZWRBcHBsaWNhdGlvbnNbU2VsZWN0ZWRSb3V0ZV1bYXBwTG9va3VwXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHBcIj57e2FwcC5BcHBsaWNhdGlvbi5OYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cblxuICAgIDwvZGl2PlxuXG5cbjwvZGl2PlxuIl19
|
|
@@ -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==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Component, Input, Output } 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/material/button";
|
|
6
|
+
import * as i4 from "@angular/common";
|
|
7
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
8
|
+
import * as i6 from "@angular/material/tooltip";
|
|
9
|
+
export class ColumnInfoCardComponent {
|
|
10
|
+
constructor() { }
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
}
|
|
13
|
+
SlotActionClickEvent(event) {
|
|
14
|
+
this.SlotActionClicked.emit(event);
|
|
15
|
+
}
|
|
16
|
+
MainCardClickEvent(event) {
|
|
17
|
+
this.MainCardClicked.emit(event);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ColumnInfoCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ColumnInfoCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
ColumnInfoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ColumnInfoCardComponent, selector: "lcu-column-info-card", inputs: { Title: ["title", "Title"], MainIcon: ["main-icon", "MainIcon"], MainSlotDescription: ["main-slot-description", "MainSlotDescription"], MainSlots: ["main-slots", "MainSlots"], SecondarySlots: ["secondary-slots", "SecondarySlots"], MainCardAction: ["main-card-action", "MainCardAction"] }, outputs: { MainCardClicked: "main-card-clicked", SlotActionClicked: "slot-action-clicked" }, ngImport: i0, template: "<mat-card class=\"col-info-card\">\n <mat-card-header>\n <mat-card-title>{{ Title }}</mat-card-title>\n <mat-icon>{{ MainIcon }}</mat-icon>\n </mat-card-header>\n \n <mat-card-content>\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n <div class=\"main-slot\" fxLayout=\"row\" *ngFor=\"let slot of MainSlots\">\n\n <img [src]=\"slot.imgUrl\" [alt]=\"slot.Name\">\n\n <div fxLayout=\"column\">\n <h3>{{slot.Name}}</h3>\n <p>{{slot.Description}}</p>\n </div>\n\n <ng-container *ngIf=\"slot.actions\">\n \n <div class=\"slot-actions\" *ngFor=\"let action of slot.actions\">\n\n <ng-container *ngIf=\"action.ButtonType === ICON\">\n <mat-icon [matTooltip]=\"action.Label\" click=\"SlotActionClickEvent(action.ClickEventName)\">{{ action.Icon }}</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"action.ButtonType === BUTTON\">\n <button mat-button click=\"SlotActionClickEvent(action.ClickEventName)\">{{ action.Label }}</button>\n </ng-container>\n\n </div>\n </ng-container>\n\n \n\n </div>\n \n </mat-card-content>\n <mat-card-actions>\n <button mat-button click=\"MainCardClickEvent(MainCardAction.ClickEventName)\">{{ MainCardAction.Label }}</button>\n </mat-card-actions>\n </mat-card>", styles: [""], 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"] }, { 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"] }], directives: [{ type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ColumnInfoCardComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{ selector: 'lcu-column-info-card', template: "<mat-card class=\"col-info-card\">\n <mat-card-header>\n <mat-card-title>{{ Title }}</mat-card-title>\n <mat-icon>{{ MainIcon }}</mat-icon>\n </mat-card-header>\n \n <mat-card-content>\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n <div class=\"main-slot\" fxLayout=\"row\" *ngFor=\"let slot of MainSlots\">\n\n <img [src]=\"slot.imgUrl\" [alt]=\"slot.Name\">\n\n <div fxLayout=\"column\">\n <h3>{{slot.Name}}</h3>\n <p>{{slot.Description}}</p>\n </div>\n\n <ng-container *ngIf=\"slot.actions\">\n \n <div class=\"slot-actions\" *ngFor=\"let action of slot.actions\">\n\n <ng-container *ngIf=\"action.ButtonType === ICON\">\n <mat-icon [matTooltip]=\"action.Label\" click=\"SlotActionClickEvent(action.ClickEventName)\">{{ action.Icon }}</mat-icon>\n </ng-container>\n\n <ng-container *ngIf=\"action.ButtonType === BUTTON\">\n <button mat-button click=\"SlotActionClickEvent(action.ClickEventName)\">{{ action.Label }}</button>\n </ng-container>\n\n </div>\n </ng-container>\n\n \n\n </div>\n \n </mat-card-content>\n <mat-card-actions>\n <button mat-button click=\"MainCardClickEvent(MainCardAction.ClickEventName)\">{{ MainCardAction.Label }}</button>\n </mat-card-actions>\n </mat-card>", styles: [""] }]
|
|
25
|
+
}], ctorParameters: function () { return []; }, propDecorators: { Title: [{
|
|
26
|
+
type: Input,
|
|
27
|
+
args: ['title']
|
|
28
|
+
}], MainIcon: [{
|
|
29
|
+
type: Input,
|
|
30
|
+
args: ['main-icon']
|
|
31
|
+
}], MainSlotDescription: [{
|
|
32
|
+
type: Input,
|
|
33
|
+
args: ['main-slot-description']
|
|
34
|
+
}], MainSlots: [{
|
|
35
|
+
type: Input,
|
|
36
|
+
args: ['main-slots']
|
|
37
|
+
}], SecondarySlots: [{
|
|
38
|
+
type: Input,
|
|
39
|
+
args: ['secondary-slots']
|
|
40
|
+
}], MainCardAction: [{
|
|
41
|
+
type: Input,
|
|
42
|
+
args: ['main-card-action']
|
|
43
|
+
}], MainCardClicked: [{
|
|
44
|
+
type: Output,
|
|
45
|
+
args: ['main-card-clicked']
|
|
46
|
+
}], SlotActionClicked: [{
|
|
47
|
+
type: Output,
|
|
48
|
+
args: ['slot-action-clicked']
|
|
49
|
+
}] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWluZm8tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy9jb2x1bW4taW5mby1jYXJkL2NvbHVtbi1pbmZvLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvY29sdW1uLWluZm8tY2FyZC9jb2x1bW4taW5mby1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBUy9FLE1BQU0sT0FBTyx1QkFBdUI7SUEwQmxDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7O29IQXJDVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixtY0NUcEMsb2dEQXdDYTsyRkQvQkEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjswRUFPekIsS0FBSztzQkFEWCxLQUFLO3VCQUFDLE9BQU87Z0JBSVAsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFdBQVc7Z0JBSVgsbUJBQW1CO3NCQUR6QixLQUFLO3VCQUFDLHVCQUF1QjtnQkFJdkIsU0FBUztzQkFEZixLQUFLO3VCQUFDLFlBQVk7Z0JBSVosY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUlsQixlQUFlO3NCQURyQixNQUFNO3VCQUFDLG1CQUFtQjtnQkFJcEIsaUJBQWlCO3NCQUR2QixNQUFNO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhcmRTbG90TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FyZC1zbG90Lm1vZGVsJztcbmltcG9ydCB7IFNsb3RBY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zbG90LWFjdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1jb2x1bW4taW5mby1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1pbmZvLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4taW5mby1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uSW5mb0NhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgndGl0bGUnKSBcbiAgcHVibGljIFRpdGxlOiBzdHJpbmc7XG5cbiAgQElucHV0KCdtYWluLWljb24nKSBcbiAgcHVibGljIE1haW5JY29uOiBzdHJpbmc7XG5cbiAgQElucHV0KCdtYWluLXNsb3QtZGVzY3JpcHRpb24nKSBcbiAgcHVibGljIE1haW5TbG90RGVzY3JpcHRpb246IHN0cmluZztcblxuICBASW5wdXQoJ21haW4tc2xvdHMnKSBcbiAgcHVibGljIE1haW5TbG90czogQXJyYXk8Q2FyZFNsb3RNb2RlbD47XG5cbiAgQElucHV0KCdzZWNvbmRhcnktc2xvdHMnKSBcbiAgcHVibGljIFNlY29uZGFyeVNsb3RzOiBBcnJheTxDYXJkU2xvdE1vZGVsPjtcblxuICBASW5wdXQoJ21haW4tY2FyZC1hY3Rpb24nKSBcbiAgcHVibGljIE1haW5DYXJkQWN0aW9uOiBTbG90QWN0aW9uTW9kZWw7XG5cbiAgQE91dHB1dCgnbWFpbi1jYXJkLWNsaWNrZWQnKSBcbiAgcHVibGljIE1haW5DYXJkQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHN0cmluZz47XG5cbiAgQE91dHB1dCgnc2xvdC1hY3Rpb24tY2xpY2tlZCcpIFxuICBwdWJsaWMgU2xvdEFjdGlvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBwdWJsaWMgU2xvdEFjdGlvbkNsaWNrRXZlbnQoZXZlbnQ6IHN0cmluZyl7XG4gICAgdGhpcy5TbG90QWN0aW9uQ2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBNYWluQ2FyZENsaWNrRXZlbnQoZXZlbnQ6IHN0cmluZyl7XG4gICAgdGhpcy5NYWluQ2FyZENsaWNrZWQuZW1pdChldmVudCk7XG4gIH1cblxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiY29sLWluZm8tY2FyZFwiPlxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgICA8bWF0LWNhcmQtdGl0bGU+e3sgVGl0bGUgfX08L21hdC1jYXJkLXRpdGxlPlxuICAgICAgPG1hdC1pY29uPnt7IE1haW5JY29uIH19PC9tYXQtaWNvbj5cbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cbiAgICBcbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1kZXNjcmlwdGlvblwiPnt7IE1haW5TbG90RGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1haW4tc2xvdFwiIGZ4TGF5b3V0PVwicm93XCIgKm5nRm9yPVwibGV0IHNsb3Qgb2YgTWFpblNsb3RzXCI+XG5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJzbG90LmltZ1VybFwiIFthbHRdPVwic2xvdC5OYW1lXCI+XG5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8aDM+e3tzbG90Lk5hbWV9fTwvaDM+XG4gICAgICAgICAgICAgICAgPHA+e3tzbG90LkRlc2NyaXB0aW9ufX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNsb3QuYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWFjdGlvbnNcIiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHNsb3QuYWN0aW9uc1wiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24uQnV0dG9uVHlwZSA9PT0gSUNPTlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFttYXRUb29sdGlwXT1cImFjdGlvbi5MYWJlbFwiIGNsaWNrPVwiU2xvdEFjdGlvbkNsaWNrRXZlbnQoYWN0aW9uLkNsaWNrRXZlbnROYW1lKVwiPnt7IGFjdGlvbi5JY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi5CdXR0b25UeXBlID09PSBCVVRUT05cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGljaz1cIlNsb3RBY3Rpb25DbGlja0V2ZW50KGFjdGlvbi5DbGlja0V2ZW50TmFtZSlcIj57eyBhY3Rpb24uTGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICBcblxuICAgICAgICA8L2Rpdj5cbiAgICAgIFxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucz5cbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGljaz1cIk1haW5DYXJkQ2xpY2tFdmVudChNYWluQ2FyZEFjdGlvbi5DbGlja0V2ZW50TmFtZSlcIj57eyBNYWluQ2FyZEFjdGlvbi5MYWJlbCB9fTwvYnV0dG9uPlxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgPC9tYXQtY2FyZD4iXX0=
|