@sunbird-cb/consumption 0.1.23-cbrelease-4.8.27-multilingual → 0.1.23-cbrelease-4.8.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/esm2022/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.mjs +3 -3
  2. package/esm2022/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.mjs +54 -0
  3. package/esm2022/lib/_common/microsites/mdo-channels/components/competency/competency.component.mjs +50 -0
  4. package/esm2022/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.mjs +56 -0
  5. package/esm2022/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.mjs +286 -0
  6. package/esm2022/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.mjs +45 -0
  7. package/esm2022/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.mjs +143 -0
  8. package/esm2022/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.mjs +35 -0
  9. package/esm2022/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.mjs +30 -0
  10. package/esm2022/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.mjs +42 -0
  11. package/esm2022/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.mjs +99 -0
  12. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.mjs +986 -2
  13. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.mjs +222 -0
  14. package/esm2022/lib/_common/microsites/mdo-channels/mdo-channel.module.mjs +83 -7
  15. package/esm2022/public-api.mjs +2 -1
  16. package/fesm2022/sunbird-cb-consumption.mjs +2053 -34
  17. package/fesm2022/sunbird-cb-consumption.mjs.map +1 -1
  18. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts +20 -0
  19. package/lib/_common/microsites/mdo-channels/components/column-section-display/column-section-display.component.d.ts.map +1 -0
  20. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts +16 -0
  21. package/lib/_common/microsites/mdo-channels/components/competency/competency.component.d.ts.map +1 -0
  22. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts +16 -0
  23. package/lib/_common/microsites/mdo-channels/components/content-strip/content-strip.component.d.ts.map +1 -0
  24. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts +61 -0
  25. package/lib/_common/microsites/mdo-channels/components/editor-dialog/editor-dialog.component.d.ts.map +1 -0
  26. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts +17 -0
  27. package/lib/_common/microsites/mdo-channels/components/looker-section/looker-section.component.d.ts.map +1 -0
  28. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts +32 -0
  29. package/lib/_common/microsites/mdo-channels/components/main-content/main-content.component.d.ts.map +1 -0
  30. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts +15 -0
  31. package/lib/_common/microsites/mdo-channels/components/mobile-sections/mobile-sections.component.d.ts.map +1 -0
  32. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts +10 -0
  33. package/lib/_common/microsites/mdo-channels/components/support-section/support-section.component.d.ts.map +1 -0
  34. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts +13 -0
  35. package/lib/_common/microsites/mdo-channels/components/top-learners/top-learners.component.d.ts.map +1 -0
  36. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts +23 -0
  37. package/lib/_common/microsites/mdo-channels/components/top-section/top-section.component.d.ts.map +1 -0
  38. package/lib/_common/microsites/mdo-channels/mdo-channel-v2/mdo-channel-v2.component.d.ts.map +1 -1
  39. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts +54 -0
  40. package/lib/_common/microsites/mdo-channels/mdo-channel-v3/mdo-channel-v3.component.d.ts.map +1 -0
  41. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts +46 -26
  42. package/lib/_common/microsites/mdo-channels/mdo-channel.module.d.ts.map +1 -1
  43. package/package.json +2 -2
  44. package/public-api.d.ts +1 -0
  45. package/public-api.d.ts.map +1 -1
@@ -0,0 +1,143 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@sunbird-cb/utils-v2";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/icon";
6
+ import * as i4 from "../../../../announcements/announcements.component";
7
+ import * as i5 from "../../../../cbp-plan/cbp-plan.component";
8
+ import * as i6 from "../../../../content-strip-with-tabs-lib/content-strip-with-tabs-lib.component";
9
+ import * as i7 from "../../../../highlights-of-week/highlights-of-week.component";
10
+ import * as i8 from "../../../../user-progress/user-progress.component";
11
+ import * as i9 from "../../../../events/events.component";
12
+ import * as i10 from "../../../../speakers/speakers.component";
13
+ import * as i11 from "../../../../mdo-leaderboard/mdo-leaderboard.component";
14
+ import * as i12 from "../../../../key-highlights/key-highlights.component";
15
+ import * as i13 from "@angular/material/legacy-tabs";
16
+ import * as i14 from "../column-section-display/column-section-display.component";
17
+ import * as i15 from "../mobile-sections/mobile-sections.component";
18
+ import * as i16 from "@ngx-translate/core";
19
+ export class MainContentComponent {
20
+ constructor(data, channelName, orgId, isMobile, providerId, slwConfig, eventCallback, configSvc) {
21
+ this.data = data;
22
+ this.channelName = channelName;
23
+ this.orgId = orgId;
24
+ this.isMobile = isMobile;
25
+ this.providerId = providerId;
26
+ this.slwConfig = slwConfig;
27
+ this.eventCallback = eventCallback;
28
+ this.configSvc = configSvc;
29
+ this.selectedIndex = 0;
30
+ this.hideCompetencyBlock = false;
31
+ this.contentTabEmptyResponseCount = 0;
32
+ this.showModal = false;
33
+ }
34
+ ngOnInit() {
35
+ // Initialization logic
36
+ }
37
+ tabClicked(event) {
38
+ this.selectedIndex = event.index;
39
+ this.eventCallback({
40
+ action: 'tab-click',
41
+ source: 'mainContent',
42
+ id: `${event.tab.textLabel}-tab`
43
+ });
44
+ }
45
+ raiseTabClick(event) {
46
+ this.eventCallback({
47
+ action: 'mdo-leaderboard',
48
+ source: 'mainContent',
49
+ id: `${event}-tab`
50
+ });
51
+ }
52
+ hideKeyHightlight(event, data) {
53
+ if (event) {
54
+ data.enabled = false;
55
+ this.eventCallback({
56
+ action: 'hide-highlight',
57
+ source: 'mainContent',
58
+ id: 'key-highlight'
59
+ });
60
+ }
61
+ }
62
+ triggerOpenDialog(event) {
63
+ if (event) {
64
+ this.showModal = true;
65
+ document.body.style.overflow = 'hidden';
66
+ }
67
+ this.eventCallback({
68
+ action: 'open-dialog',
69
+ source: 'mainContent',
70
+ id: 'key-announcements'
71
+ });
72
+ }
73
+ onClose() {
74
+ this.showModal = false;
75
+ document.body.style.overflow = 'auto';
76
+ this.eventCallback({
77
+ action: 'close-dialog',
78
+ source: 'mainContent',
79
+ id: 'key-announcements'
80
+ });
81
+ }
82
+ raiseTelemetryInteratEvent(event) {
83
+ this.eventCallback({
84
+ action: 'telemetry',
85
+ source: 'mainContent',
86
+ id: event.id || 'content-interaction',
87
+ data: event
88
+ });
89
+ }
90
+ showAllContent(event, data) {
91
+ this.eventCallback({
92
+ action: 'view-all',
93
+ source: 'mainContent',
94
+ id: data?.sectionKey || 'content-section',
95
+ data: event
96
+ });
97
+ }
98
+ hideCompetency(event) {
99
+ if (event) {
100
+ this.hideCompetencyBlock = true;
101
+ this.eventCallback({
102
+ action: 'hide-competency',
103
+ source: 'mainContent',
104
+ id: 'competency-block'
105
+ });
106
+ }
107
+ }
108
+ raiseCompetencyTelemetry(name) {
109
+ this.eventCallback({
110
+ action: 'competency-click',
111
+ source: 'mainContent',
112
+ id: `${name}-core-expertise`
113
+ });
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContentComponent, deps: [{ token: 'sectionData' }, { token: 'channelName' }, { token: 'orgId' }, { token: 'isMobile' }, { token: 'providerId' }, { token: 'slwConfiguration' }, { token: 'eventCallback' }, { token: i1.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContentComponent, selector: "app-main-content", ngImport: i0, template: "<div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data?.background}\">\n <div class=\"container\">\n <!-- Mobile view components -->\n <ng-container *ngIf=\"isMobile\">\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'mobile'\">\n </sb-uic-key-highlights>\n </div>\n \n <!-- Other mobile sections (condensed) -->\n <div class=\"block md:hidden\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mobile progress, speakers, leaderboard -->\n <ng-container *ngIf=\"isMobile\">\n <app-mobile-sections \n [myProgressData]=\"data?.stateLearningWeekSection?.myprogress\"\n [speakersData]=\"data?.stateLearningWeekSection?.speakerOftheDay\"\n [leaderboardData]=\"data?.stateLearningWeekSection?.mdoLeaderboard\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\"\n [orgId]=\"orgId\"\n [slwConfig]=\"slwConfig\"\n (leaderboardTabClicked)=\"raiseTabClick($event)\">\n </app-mobile-sections>\n </ng-container>\n \n <!-- Mobile CBP Plan -->\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n \n <!-- Mobile announcements -->\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements \n [layoutType]=\"'mobile'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [fetchDataFromApi]=\"false\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n \n <!-- Announcement dialog -->\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n \n <!-- Desktop Key Highlights -->\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'desktop'\">\n </sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Main grid layout -->\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <!-- Main tab section -->\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Week highlights (desktop) -->\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mandatory courses -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && \n data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Learning content -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled && \n data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Events -->\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && \n data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events \n [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfig\">\n </sb-uic-events>\n </div>\n \n <!-- Tabs -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n <mat-tab-group \n animationDuration=\"0ms\" \n class=\"mat-tab-labels mytabs w-full\"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"tabClicked($event)\">\n \n <!-- Content Tab -->\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>Learn</ng-template>\n <!-- Empty state -->\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n \n <!-- Content tab content -->\n <div class=\"padding-top-l\">\n <app-column-section-display \n [data]=\"data.tabSection.contentTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n \n <!-- Competency Tab -->\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>Competency</ng-template>\n <div>\n <app-column-section-display \n [data]=\"data.tabSection.coreAreasTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n \n <!-- Sidebar -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <!-- Progress -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n \n <!-- Speakers -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n \n <!-- Leaderboard -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"raiseTabClick($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n </div>\n \n <!-- CBP Plan -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n \n <!-- Announcements -->\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.AnnouncementsComponent, selector: "sb-uic-announcements", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: i5.CbpPlanComponent, selector: "sb-uic-cbp-plan", inputs: ["objectData", "layoutType", "mobileHeight", "fetchDataFromApi", "channelId"], outputs: ["openDialog"] }, { kind: "component", type: i6.ContentStripWithTabsLibComponent, selector: "sb-uic-content-strip-with-tabs", inputs: ["widgetData", "providerId", "emitViewAll", "channnelName"], outputs: ["emptyResponse", "viewAllResponse", "telemtryResponse"] }, { kind: "component", type: i7.HighlightsOfWeekComponent, selector: "sb-uic-highlights-of-week", inputs: ["objectData"] }, { kind: "component", type: i8.UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: i9.EventsComponent, selector: "sb-uic-events", inputs: ["object", "nwlEventsConfig"] }, { kind: "component", type: i10.SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: i11.MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }, { kind: "component", type: i12.KeyHighlightsComponent, selector: "sb-uic-key-highlights", inputs: ["providerId", "formData", "mode"], outputs: ["emptyResponse"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i13.MatLegacyTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i14.ColumnSectionDisplayComponent, selector: "app-column-section-display", inputs: ["data", "orgId", "channelName"], outputs: ["competencyEvent", "competencyTelemetry", "contentTelemetry", "viewAllEvent"] }, { kind: "component", type: i15.MobileSectionsComponent, selector: "app-mobile-sections", inputs: ["myProgressData", "speakersData", "leaderboardData", "rootOrgId", "orgId", "slwConfig"], outputs: ["leaderboardTabClicked"] }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }] }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContentComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'app-main-content', template: "<div class=\"flex items-center justify-center\" [ngStyle]=\"{'background': data?.background}\">\n <div class=\"container\">\n <!-- Mobile view components -->\n <ng-container *ngIf=\"isMobile\">\n <div class=\"block md:hidden mb-4\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'mobile'\">\n </sb-uic-key-highlights>\n </div>\n \n <!-- Other mobile sections (condensed) -->\n <div class=\"block md:hidden\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mobile progress, speakers, leaderboard -->\n <ng-container *ngIf=\"isMobile\">\n <app-mobile-sections \n [myProgressData]=\"data?.stateLearningWeekSection?.myprogress\"\n [speakersData]=\"data?.stateLearningWeekSection?.speakerOftheDay\"\n [leaderboardData]=\"data?.stateLearningWeekSection?.mdoLeaderboard\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\"\n [orgId]=\"orgId\"\n [slwConfig]=\"slwConfig\"\n (leaderboardTabClicked)=\"raiseTabClick($event)\">\n </app-mobile-sections>\n </ng-container>\n \n <!-- Mobile CBP Plan -->\n <div class=\"block md:hidden col-span-12 padding-left-m padding-right-m padding-top-m padding-bottom-m\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n \n <!-- Mobile announcements -->\n <div class=\"block md:hidden col-span-12 mt-6\" *ngIf=\"!data?.announcementSection?.disable\">\n <sb-uic-announcements \n [layoutType]=\"'mobile'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [fetchDataFromApi]=\"false\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n \n <!-- Announcement dialog -->\n <div class=\"announcements-container\" *ngIf=\"showModal\">\n <div class=\"cursor-pointer close-share-dialog\">\n <mat-icon (click)=\"onClose()\" class=\"close-icon\">close</mat-icon>\n </div>\n <div class=\"share-modal px-3 pt-8\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n (openDialog)=\"triggerOpenDialog($event)\"\n [objectData]=\"data?.announcementSection?.data\" \n [mobileHeight]=\"true\"\n [fetchDataFromApi]=\"true\" \n [channelId]=\"orgId\">\n </sb-uic-announcements>\n </div>\n </div>\n </div>\n </ng-container>\n \n <!-- Desktop Key Highlights -->\n <div class=\"col-span-12\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container margin-top-xl\">\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.keyHighlights?.enabled\">\n <sb-uic-key-highlights\n (emptyResponse)=\"hideKeyHightlight($event, data?.stateLearningWeekSection?.keyHighlights)\"\n [formData]=\"data?.stateLearningWeekSection?.keyHighlights\" \n [providerId]=\"providerId\"\n [mode]=\"'desktop'\">\n </sb-uic-key-highlights>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Main grid layout -->\n <div class=\"grid grid-cols-12 gap-4 padding-top-m mb-6\">\n <!-- Main tab section -->\n <div class=\"col-span-12 md:col-span-{{data.tabSection.colspan}}\">\n <!-- Week highlights (desktop) -->\n <div class=\"hidden md:block\" *ngIf=\"data?.stateLearningWeekSection?.weekHighlights?.enabled\">\n <sb-uic-highlights-of-week [objectData]=\"data?.stateLearningWeekSection?.weekHighlights?.data\"></sb-uic-highlights-of-week>\n </div>\n \n <!-- Mandatory courses -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.mandatoryCourse?.enabled && \n data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.mandatoryCourse?.column[0]?.data\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Learning content -->\n <ng-container *ngIf=\"data?.stateLearningWeekSection?.exploreLearningContent?.enabled && \n data?.stateLearningWeekSection?.exploreLearningContent?.strips[0]\">\n <div class=\"margin-top-l nlw-mandatoryCourse\">\n <sb-uic-content-strip-with-tabs \n [emitViewAll]=\"false\" \n (telemtryResponse)=\"raiseTelemetryInteratEvent($event)\" \n [providerId]=\"orgId\"\n [widgetData]=\"data?.stateLearningWeekSection?.exploreLearningContent\"\n [channnelName]=\"channelName\">\n </sb-uic-content-strip-with-tabs>\n </div>\n </ng-container>\n \n <!-- Events -->\n <div *ngIf=\"data?.stateLearningWeekSection?.events?.enabled && \n data?.stateLearningWeekSection?.events?.column?.length &&\n data?.stateLearningWeekSection?.events?.column[0]\">\n <sb-uic-events \n [object]=\"data?.stateLearningWeekSection?.events?.column[0]\"\n [nwlEventsConfig]=\"slwConfig\">\n </sb-uic-events>\n </div>\n \n <!-- Tabs -->\n <ng-container *ngIf=\"!data?.tabSection?.disable\">\n <mat-tab-group \n animationDuration=\"0ms\" \n class=\"mat-tab-labels mytabs w-full\"\n [selectedIndex]=\"selectedIndex\"\n (selectedTabChange)=\"tabClicked($event)\">\n \n <!-- Content Tab -->\n <mat-tab label=\"Content\">\n <ng-template mat-tab-label i18n>Learn</ng-template>\n <!-- Empty state -->\n <ng-container *ngIf=\"data?.tabSection?.contentTab?.length === contentTabEmptyResponseCount\">\n <div class=\"flex justify-center w-full\">\n <div class=\"margin-xl text-center\">\n <img src=\"/assets/common/error-pages/empty_search.svg\" alt=\"No results\" class=\"margin-top-l margin-bottom-s\">\n <h2 class=\"mat-h2\">{{'learnsearch.noResults' | translate}}</h2>\n </div>\n </div>\n </ng-container>\n \n <!-- Content tab content -->\n <div class=\"padding-top-l\">\n <app-column-section-display \n [data]=\"data.tabSection.contentTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n \n <!-- Competency Tab -->\n <mat-tab label=\"Core Areas\">\n <ng-template mat-tab-label i18n>Competency</ng-template>\n <div>\n <app-column-section-display \n [data]=\"data.tabSection.coreAreasTab\"\n [orgId]=\"orgId\"\n [channelName]=\"channelName\"\n (competencyEvent)=\"hideCompetency($event)\"\n (competencyTelemetry)=\"raiseCompetencyTelemetry($event)\"\n (contentTelemetry)=\"raiseTelemetryInteratEvent($event)\"\n (viewAllEvent)=\"showAllContent($event.event, $event.data)\">\n </app-column-section-display>\n </div>\n </mat-tab>\n </mat-tab-group>\n </ng-container>\n </div>\n \n <!-- Sidebar -->\n <div class=\"col-span-12 md:col-span-4\">\n <ng-container *ngIf=\"!isMobile\">\n <!-- Progress -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.myprogress?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.myprogress?.data\"\n [rootOrgId]=\"configSvc?.unMappedUser?.rootOrgId\">\n </sb-uic-user-progress>\n </div>\n </div>\n \n <!-- Speakers -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.speakerOftheDay?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"data?.stateLearningWeekSection?.speakerOftheDay?.data\">\n </sb-uic-speakers>\n </div>\n </div>\n \n <!-- Leaderboard -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\">\n <div *ngIf=\"data?.stateLearningWeekSection?.mdoLeaderboard?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"data?.stateLearningWeekSection?.mdoLeaderboard?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"raiseTabClick($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n </div>\n \n <!-- CBP Plan -->\n <div class=\"hidden md:block padding-top-xl padding-bottom-m\" *ngIf=\"data?.cbpPlanSection?.data\">\n <div class=\"pt-4\">\n <sb-uic-cbp-plan \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.cbpPlanSection?.data\">\n </sb-uic-cbp-plan>\n </div>\n </div>\n \n <!-- Announcements -->\n <div class=\"hidden md:block\" *ngIf=\"!data?.announcementSection?.disable\">\n <div class=\"pt-4\">\n <sb-uic-announcements \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\" \n [fetchDataFromApi]=\"true\"\n [channelId]=\"orgId\" \n [objectData]=\"data?.announcementSection?.data\">\n </sb-uic-announcements>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>" }]
121
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
122
+ type: Inject,
123
+ args: ['sectionData']
124
+ }] }, { type: undefined, decorators: [{
125
+ type: Inject,
126
+ args: ['channelName']
127
+ }] }, { type: undefined, decorators: [{
128
+ type: Inject,
129
+ args: ['orgId']
130
+ }] }, { type: undefined, decorators: [{
131
+ type: Inject,
132
+ args: ['isMobile']
133
+ }] }, { type: undefined, decorators: [{
134
+ type: Inject,
135
+ args: ['providerId']
136
+ }] }, { type: undefined, decorators: [{
137
+ type: Inject,
138
+ args: ['slwConfiguration']
139
+ }] }, { type: undefined, decorators: [{
140
+ type: Inject,
141
+ args: ['eventCallback']
142
+ }] }, { type: i1.ConfigurationsService }]; } });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTMUQsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNnQyxJQUFTLEVBQ1QsV0FBbUIsRUFDekIsS0FBYSxFQUNWLFFBQWlCLEVBQ2YsVUFBa0IsRUFDWixTQUFjLEVBQ2hCLGFBQW1DLEVBQzdELFNBQWdDO1FBUFQsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQzdELGNBQVMsR0FBVCxTQUFTLENBQXVCO1FBYnpDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixpQ0FBNEIsR0FBRyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLEtBQUssQ0FBQztJQVdmLENBQUM7SUFFSixRQUFRO1FBQ04sdUJBQXVCO0lBQ3pCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBd0I7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDakIsTUFBTSxFQUFFLFdBQVc7WUFDbkIsTUFBTSxFQUFFLGFBQWE7WUFDckIsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLE1BQU07U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDakIsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixNQUFNLEVBQUUsYUFBYTtZQUNyQixFQUFFLEVBQUUsR0FBRyxLQUFLLE1BQU07U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVUsRUFBRSxJQUFTO1FBQ3JDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDakIsTUFBTSxFQUFFLGdCQUFnQjtnQkFDeEIsTUFBTSxFQUFFLGFBQWE7Z0JBQ3JCLEVBQUUsRUFBRSxlQUFlO2FBQ3BCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWM7UUFDOUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNLEVBQUUsYUFBYTtZQUNyQixNQUFNLEVBQUUsYUFBYTtZQUNyQixFQUFFLEVBQUUsbUJBQW1CO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEVBQUUsRUFBRSxtQkFBbUI7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQVU7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNLEVBQUUsV0FBVztZQUNuQixNQUFNLEVBQUUsYUFBYTtZQUNyQixFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxxQkFBcUI7WUFDckMsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVUsRUFBRSxJQUFTO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDakIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsTUFBTSxFQUFFLGFBQWE7WUFDckIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLElBQUksaUJBQWlCO1lBQ3pDLElBQUksRUFBRSxLQUFLO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNqQixNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixNQUFNLEVBQUUsYUFBYTtnQkFDckIsRUFBRSxFQUFFLGtCQUFrQjthQUN2QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFZO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDakIsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixNQUFNLEVBQUUsYUFBYTtZQUNyQixFQUFFLEVBQUUsR0FBRyxJQUFJLGlCQUFpQjtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDOytHQTFHVSxvQkFBb0Isa0JBT3JCLGFBQWEsYUFDYixhQUFhLGFBQ2IsT0FBTyxhQUNQLFVBQVUsYUFDVixZQUFZLGFBQ1osa0JBQWtCLGFBQ2xCLGVBQWU7bUdBYmQsb0JBQW9CLHdEQ1RqQywyM1dBK1BNOzs0RkR0UE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBV3pCLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsT0FBTzs7MEJBQ2QsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxZQUFZOzswQkFDbkIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbWFpbi1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tY29udGVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21haW4tY29udGVudC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1haW5Db250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2VsZWN0ZWRJbmRleCA9IDA7XG4gIGhpZGVDb21wZXRlbmN5QmxvY2sgPSBmYWxzZTtcbiAgY29udGVudFRhYkVtcHR5UmVzcG9uc2VDb3VudCA9IDA7XG4gIHNob3dNb2RhbCA9IGZhbHNlO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnc2VjdGlvbkRhdGEnKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIEBJbmplY3QoJ2NoYW5uZWxOYW1lJykgcHVibGljIGNoYW5uZWxOYW1lOiBzdHJpbmcsXG4gICAgQEluamVjdCgnb3JnSWQnKSBwdWJsaWMgb3JnSWQ6IHN0cmluZyxcbiAgICBASW5qZWN0KCdpc01vYmlsZScpIHB1YmxpYyBpc01vYmlsZTogYm9vbGVhbixcbiAgICBASW5qZWN0KCdwcm92aWRlcklkJykgcHVibGljIHByb3ZpZGVySWQ6IHN0cmluZyxcbiAgICBASW5qZWN0KCdzbHdDb25maWd1cmF0aW9uJykgcHVibGljIHNsd0NvbmZpZzogYW55LFxuICAgIEBJbmplY3QoJ2V2ZW50Q2FsbGJhY2snKSBwcml2YXRlIGV2ZW50Q2FsbGJhY2s6IChldmVudDogYW55KSA9PiB2b2lkLFxuICAgIHB1YmxpYyBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gSW5pdGlhbGl6YXRpb24gbG9naWNcbiAgfVxuICBcbiAgdGFiQ2xpY2tlZChldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSBldmVudC5pbmRleDtcbiAgICB0aGlzLmV2ZW50Q2FsbGJhY2soe1xuICAgICAgYWN0aW9uOiAndGFiLWNsaWNrJyxcbiAgICAgIHNvdXJjZTogJ21haW5Db250ZW50JyxcbiAgICAgIGlkOiBgJHtldmVudC50YWIudGV4dExhYmVsfS10YWJgXG4gICAgfSk7XG4gIH1cbiAgXG4gIHJhaXNlVGFiQ2xpY2soZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZXZlbnRDYWxsYmFjayh7XG4gICAgICBhY3Rpb246ICdtZG8tbGVhZGVyYm9hcmQnLFxuICAgICAgc291cmNlOiAnbWFpbkNvbnRlbnQnLFxuICAgICAgaWQ6IGAke2V2ZW50fS10YWJgXG4gICAgfSk7XG4gIH1cbiAgXG4gIGhpZGVLZXlIaWdodGxpZ2h0KGV2ZW50OiBhbnksIGRhdGE6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgZGF0YS5lbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmV2ZW50Q2FsbGJhY2soe1xuICAgICAgICBhY3Rpb246ICdoaWRlLWhpZ2hsaWdodCcsXG4gICAgICAgIHNvdXJjZTogJ21haW5Db250ZW50JyxcbiAgICAgICAgaWQ6ICdrZXktaGlnaGxpZ2h0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIFxuICB0cmlnZ2VyT3BlbkRpYWxvZyhldmVudDogYm9vbGVhbikge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50Q2FsbGJhY2soe1xuICAgICAgYWN0aW9uOiAnb3Blbi1kaWFsb2cnLFxuICAgICAgc291cmNlOiAnbWFpbkNvbnRlbnQnLFxuICAgICAgaWQ6ICdrZXktYW5ub3VuY2VtZW50cydcbiAgICB9KTtcbiAgfVxuICBcbiAgb25DbG9zZSgpIHtcbiAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgdGhpcy5ldmVudENhbGxiYWNrKHtcbiAgICAgIGFjdGlvbjogJ2Nsb3NlLWRpYWxvZycsXG4gICAgICBzb3VyY2U6ICdtYWluQ29udGVudCcsXG4gICAgICBpZDogJ2tleS1hbm5vdW5jZW1lbnRzJ1xuICAgIH0pO1xuICB9XG4gIFxuICByYWlzZVRlbGVtZXRyeUludGVyYXRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5ldmVudENhbGxiYWNrKHtcbiAgICAgIGFjdGlvbjogJ3RlbGVtZXRyeScsXG4gICAgICBzb3VyY2U6ICdtYWluQ29udGVudCcsXG4gICAgICBpZDogZXZlbnQuaWQgfHwgJ2NvbnRlbnQtaW50ZXJhY3Rpb24nLFxuICAgICAgZGF0YTogZXZlbnRcbiAgICB9KTtcbiAgfVxuICBcbiAgc2hvd0FsbENvbnRlbnQoZXZlbnQ6IGFueSwgZGF0YTogYW55KSB7XG4gICAgdGhpcy5ldmVudENhbGxiYWNrKHtcbiAgICAgIGFjdGlvbjogJ3ZpZXctYWxsJyxcbiAgICAgIHNvdXJjZTogJ21haW5Db250ZW50JyxcbiAgICAgIGlkOiBkYXRhPy5zZWN0aW9uS2V5IHx8ICdjb250ZW50LXNlY3Rpb24nLFxuICAgICAgZGF0YTogZXZlbnRcbiAgICB9KTtcbiAgfVxuICBcbiAgaGlkZUNvbXBldGVuY3koZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy5oaWRlQ29tcGV0ZW5jeUJsb2NrID0gdHJ1ZTtcbiAgICAgIHRoaXMuZXZlbnRDYWxsYmFjayh7XG4gICAgICAgIGFjdGlvbjogJ2hpZGUtY29tcGV0ZW5jeScsXG4gICAgICAgIHNvdXJjZTogJ21haW5Db250ZW50JyxcbiAgICAgICAgaWQ6ICdjb21wZXRlbmN5LWJsb2NrJ1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIFxuICByYWlzZUNvbXBldGVuY3lUZWxlbWV0cnkobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5ldmVudENhbGxiYWNrKHtcbiAgICAgIGFjdGlvbjogJ2NvbXBldGVuY3ktY2xpY2snLFxuICAgICAgc291cmNlOiAnbWFpbkNvbnRlbnQnLFxuICAgICAgaWQ6IGAke25hbWV9LWNvcmUtZXhwZXJ0aXNlYFxuICAgIH0pO1xuICB9XG59IiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCIgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kJzogZGF0YT8uYmFja2dyb3VuZH1cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgIDwhLS0gTW9iaWxlIHZpZXcgY29tcG9uZW50cyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNb2JpbGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW4gbWItNFwiICpuZ0lmPVwiZGF0YT8uc3RhdGVMZWFybmluZ1dlZWtTZWN0aW9uPy5rZXlIaWdobGlnaHRzPy5lbmFibGVkXCI+XG4gICAgICAgIDxzYi11aWMta2V5LWhpZ2hsaWdodHNcbiAgICAgICAgICAoZW1wdHlSZXNwb25zZSk9XCJoaWRlS2V5SGlnaHRsaWdodCgkZXZlbnQsIGRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ua2V5SGlnaGxpZ2h0cylcIlxuICAgICAgICAgIFtmb3JtRGF0YV09XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmtleUhpZ2hsaWdodHNcIiBcbiAgICAgICAgICBbcHJvdmlkZXJJZF09XCJwcm92aWRlcklkXCJcbiAgICAgICAgICBbbW9kZV09XCInbW9iaWxlJ1wiPlxuICAgICAgICA8L3NiLXVpYy1rZXktaGlnaGxpZ2h0cz5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8IS0tIE90aGVyIG1vYmlsZSBzZWN0aW9ucyAoY29uZGVuc2VkKSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW5cIiAqbmdJZj1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ud2Vla0hpZ2hsaWdodHM/LmVuYWJsZWRcIj5cbiAgICAgICAgPHNiLXVpYy1oaWdobGlnaHRzLW9mLXdlZWsgW29iamVjdERhdGFdPVwiZGF0YT8uc3RhdGVMZWFybmluZ1dlZWtTZWN0aW9uPy53ZWVrSGlnaGxpZ2h0cz8uZGF0YVwiPjwvc2ItdWljLWhpZ2hsaWdodHMtb2Ytd2Vlaz5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8IS0tIE1vYmlsZSBwcm9ncmVzcywgc3BlYWtlcnMsIGxlYWRlcmJvYXJkIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTW9iaWxlXCI+XG4gICAgICAgIDxhcHAtbW9iaWxlLXNlY3Rpb25zIFxuICAgICAgICAgIFtteVByb2dyZXNzRGF0YV09XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/Lm15cHJvZ3Jlc3NcIlxuICAgICAgICAgIFtzcGVha2Vyc0RhdGFdPVwiZGF0YT8uc3RhdGVMZWFybmluZ1dlZWtTZWN0aW9uPy5zcGVha2VyT2Z0aGVEYXlcIlxuICAgICAgICAgIFtsZWFkZXJib2FyZERhdGFdPVwiZGF0YT8uc3RhdGVMZWFybmluZ1dlZWtTZWN0aW9uPy5tZG9MZWFkZXJib2FyZFwiXG4gICAgICAgICAgW3Jvb3RPcmdJZF09XCJjb25maWdTdmM/LnVuTWFwcGVkVXNlcj8ucm9vdE9yZ0lkXCJcbiAgICAgICAgICBbb3JnSWRdPVwib3JnSWRcIlxuICAgICAgICAgIFtzbHdDb25maWddPVwic2x3Q29uZmlnXCJcbiAgICAgICAgICAobGVhZGVyYm9hcmRUYWJDbGlja2VkKT1cInJhaXNlVGFiQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICA8L2FwcC1tb2JpbGUtc2VjdGlvbnM+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIFxuICAgICAgPCEtLSBNb2JpbGUgQ0JQIFBsYW4gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgbWQ6aGlkZGVuIGNvbC1zcGFuLTEyIHBhZGRpbmctbGVmdC1tIHBhZGRpbmctcmlnaHQtbSBwYWRkaW5nLXRvcC1tIHBhZGRpbmctYm90dG9tLW1cIj5cbiAgICAgICAgPHNiLXVpYy1jYnAtcGxhbiBcbiAgICAgICAgICBbbGF5b3V0VHlwZV09XCInd2ViJ1wiIFxuICAgICAgICAgIFttb2JpbGVIZWlnaHRdPVwiZmFsc2VcIiBcbiAgICAgICAgICBbZmV0Y2hEYXRhRnJvbUFwaV09XCJ0cnVlXCJcbiAgICAgICAgICBbY2hhbm5lbElkXT1cIm9yZ0lkXCIgXG4gICAgICAgICAgW29iamVjdERhdGFdPVwiZGF0YT8uY2JwUGxhblNlY3Rpb24/LmRhdGFcIj5cbiAgICAgICAgPC9zYi11aWMtY2JwLXBsYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIFxuICAgICAgPCEtLSBNb2JpbGUgYW5ub3VuY2VtZW50cyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW4gY29sLXNwYW4tMTIgbXQtNlwiICpuZ0lmPVwiIWRhdGE/LmFubm91bmNlbWVudFNlY3Rpb24/LmRpc2FibGVcIj5cbiAgICAgICAgPHNiLXVpYy1hbm5vdW5jZW1lbnRzIFxuICAgICAgICAgIFtsYXlvdXRUeXBlXT1cIidtb2JpbGUnXCIgXG4gICAgICAgICAgKG9wZW5EaWFsb2cpPVwidHJpZ2dlck9wZW5EaWFsb2coJGV2ZW50KVwiXG4gICAgICAgICAgW29iamVjdERhdGFdPVwiZGF0YT8uYW5ub3VuY2VtZW50U2VjdGlvbj8uZGF0YVwiIFxuICAgICAgICAgIFtmZXRjaERhdGFGcm9tQXBpXT1cImZhbHNlXCIgXG4gICAgICAgICAgW2NoYW5uZWxJZF09XCJvcmdJZFwiPlxuICAgICAgICA8L3NiLXVpYy1hbm5vdW5jZW1lbnRzPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBBbm5vdW5jZW1lbnQgZGlhbG9nIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5ub3VuY2VtZW50cy1jb250YWluZXJcIiAqbmdJZj1cInNob3dNb2RhbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBjbG9zZS1zaGFyZS1kaWFsb2dcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2xhc3M9XCJjbG9zZS1pY29uXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZS1tb2RhbCBweC0zIHB0LThcIj5cbiAgICAgICAgICAgIDxzYi11aWMtYW5ub3VuY2VtZW50cyBcbiAgICAgICAgICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIiBcbiAgICAgICAgICAgICAgKG9wZW5EaWFsb2cpPVwidHJpZ2dlck9wZW5EaWFsb2coJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtvYmplY3REYXRhXT1cImRhdGE/LmFubm91bmNlbWVudFNlY3Rpb24/LmRhdGFcIiBcbiAgICAgICAgICAgICAgW21vYmlsZUhlaWdodF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2ZldGNoRGF0YUZyb21BcGldPVwidHJ1ZVwiIFxuICAgICAgICAgICAgICBbY2hhbm5lbElkXT1cIm9yZ0lkXCI+XG4gICAgICAgICAgICA8L3NiLXVpYy1hbm5vdW5jZW1lbnRzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIFxuICAgIDwhLS0gRGVza3RvcCBLZXkgSGlnaGxpZ2h0cyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNwYW4tMTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIG1hcmdpbi10b3AteGxcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCIgKm5nSWY9XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmtleUhpZ2hsaWdodHM/LmVuYWJsZWRcIj5cbiAgICAgICAgICAgIDxzYi11aWMta2V5LWhpZ2hsaWdodHNcbiAgICAgICAgICAgICAgKGVtcHR5UmVzcG9uc2UpPVwiaGlkZUtleUhpZ2h0bGlnaHQoJGV2ZW50LCBkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmtleUhpZ2hsaWdodHMpXCJcbiAgICAgICAgICAgICAgW2Zvcm1EYXRhXT1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ua2V5SGlnaGxpZ2h0c1wiIFxuICAgICAgICAgICAgICBbcHJvdmlkZXJJZF09XCJwcm92aWRlcklkXCJcbiAgICAgICAgICAgICAgW21vZGVdPVwiJ2Rlc2t0b3AnXCI+XG4gICAgICAgICAgICA8L3NiLXVpYy1rZXktaGlnaGxpZ2h0cz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIE1haW4gZ3JpZCBsYXlvdXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEyIGdhcC00IHBhZGRpbmctdG9wLW0gbWItNlwiPlxuICAgICAgPCEtLSBNYWluIHRhYiBzZWN0aW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyIG1kOmNvbC1zcGFuLXt7ZGF0YS50YWJTZWN0aW9uLmNvbHNwYW59fVwiPlxuICAgICAgICA8IS0tIFdlZWsgaGlnaGxpZ2h0cyAoZGVza3RvcCkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiAqbmdJZj1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ud2Vla0hpZ2hsaWdodHM/LmVuYWJsZWRcIj5cbiAgICAgICAgICA8c2ItdWljLWhpZ2hsaWdodHMtb2Ytd2VlayBbb2JqZWN0RGF0YV09XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LndlZWtIaWdobGlnaHRzPy5kYXRhXCI+PC9zYi11aWMtaGlnaGxpZ2h0cy1vZi13ZWVrPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gTWFuZGF0b3J5IGNvdXJzZXMgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/Lm1hbmRhdG9yeUNvdXJzZT8uZW5hYmxlZCAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/Lm1hbmRhdG9yeUNvdXJzZT8uY29sdW1uWzBdPy5kYXRhXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbi10b3AtbCBubHctbWFuZGF0b3J5Q291cnNlXCI+XG4gICAgICAgICAgICA8c2ItdWljLWNvbnRlbnQtc3RyaXAtd2l0aC10YWJzIFxuICAgICAgICAgICAgICBbZW1pdFZpZXdBbGxdPVwiZmFsc2VcIiBcbiAgICAgICAgICAgICAgKHRlbGVtdHJ5UmVzcG9uc2UpPVwicmFpc2VUZWxlbWV0cnlJbnRlcmF0RXZlbnQoJGV2ZW50KVwiIFxuICAgICAgICAgICAgICBbcHJvdmlkZXJJZF09XCJvcmdJZFwiXG4gICAgICAgICAgICAgIFt3aWRnZXREYXRhXT1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ubWFuZGF0b3J5Q291cnNlPy5jb2x1bW5bMF0/LmRhdGFcIlxuICAgICAgICAgICAgICBbY2hhbm5uZWxOYW1lXT1cImNoYW5uZWxOYW1lXCI+XG4gICAgICAgICAgICA8L3NiLXVpYy1jb250ZW50LXN0cmlwLXdpdGgtdGFicz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIExlYXJuaW5nIGNvbnRlbnQgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmV4cGxvcmVMZWFybmluZ0NvbnRlbnQ/LmVuYWJsZWQgJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmV4cGxvcmVMZWFybmluZ0NvbnRlbnQ/LnN0cmlwc1swXVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4tdG9wLWwgbmx3LW1hbmRhdG9yeUNvdXJzZVwiPlxuICAgICAgICAgICAgPHNiLXVpYy1jb250ZW50LXN0cmlwLXdpdGgtdGFicyBcbiAgICAgICAgICAgICAgW2VtaXRWaWV3QWxsXT1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICh0ZWxlbXRyeVJlc3BvbnNlKT1cInJhaXNlVGVsZW1ldHJ5SW50ZXJhdEV2ZW50KCRldmVudClcIiBcbiAgICAgICAgICAgICAgW3Byb3ZpZGVySWRdPVwib3JnSWRcIlxuICAgICAgICAgICAgICBbd2lkZ2V0RGF0YV09XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmV4cGxvcmVMZWFybmluZ0NvbnRlbnRcIlxuICAgICAgICAgICAgICBbY2hhbm5uZWxOYW1lXT1cImNoYW5uZWxOYW1lXCI+XG4gICAgICAgICAgICA8L3NiLXVpYy1jb250ZW50LXN0cmlwLXdpdGgtdGFicz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIEV2ZW50cyAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8uZXZlbnRzPy5lbmFibGVkICYmIFxuICAgICAgICAgICAgICAgICAgZGF0YT8uc3RhdGVMZWFybmluZ1dlZWtTZWN0aW9uPy5ldmVudHM/LmNvbHVtbj8ubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICBkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LmV2ZW50cz8uY29sdW1uWzBdXCI+XG4gICAgICAgICAgPHNiLXVpYy1ldmVudHMgXG4gICAgICAgICAgICBbb2JqZWN0XT1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8uZXZlbnRzPy5jb2x1bW5bMF1cIlxuICAgICAgICAgICAgW253bEV2ZW50c0NvbmZpZ109XCJzbHdDb25maWdcIj5cbiAgICAgICAgICA8L3NiLXVpYy1ldmVudHM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPCEtLSBUYWJzIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRhdGE/LnRhYlNlY3Rpb24/LmRpc2FibGVcIj5cbiAgICAgICAgICA8bWF0LXRhYi1ncm91cCBcbiAgICAgICAgICAgIGFuaW1hdGlvbkR1cmF0aW9uPVwiMG1zXCIgXG4gICAgICAgICAgICBjbGFzcz1cIm1hdC10YWItbGFiZWxzIG15dGFicyB3LWZ1bGxcIlxuICAgICAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwic2VsZWN0ZWRJbmRleFwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwidGFiQ2xpY2tlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gQ29udGVudCBUYWIgLS0+XG4gICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWwgaTE4bj5MZWFybjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwhLS0gRW1wdHkgc3RhdGUgLS0+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy50YWJTZWN0aW9uPy5jb250ZW50VGFiPy5sZW5ndGggPT09IGNvbnRlbnRUYWJFbXB0eVJlc3BvbnNlQ291bnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJnaW4teGwgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2NvbW1vbi9lcnJvci1wYWdlcy9lbXB0eV9zZWFyY2guc3ZnXCIgYWx0PVwiTm8gcmVzdWx0c1wiIGNsYXNzPVwibWFyZ2luLXRvcC1sIG1hcmdpbi1ib3R0b20tc1wiPlxuICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJtYXQtaDJcIj57eydsZWFybnNlYXJjaC5ub1Jlc3VsdHMnIHwgdHJhbnNsYXRlfX08L2gyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPCEtLSBDb250ZW50IHRhYiBjb250ZW50IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy10b3AtbFwiPlxuICAgICAgICAgICAgICAgIDxhcHAtY29sdW1uLXNlY3Rpb24tZGlzcGxheSBcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGEudGFiU2VjdGlvbi5jb250ZW50VGFiXCJcbiAgICAgICAgICAgICAgICAgIFtvcmdJZF09XCJvcmdJZFwiXG4gICAgICAgICAgICAgICAgICBbY2hhbm5lbE5hbWVdPVwiY2hhbm5lbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgKGNvbXBldGVuY3lFdmVudCk9XCJoaWRlQ29tcGV0ZW5jeSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChjb21wZXRlbmN5VGVsZW1ldHJ5KT1cInJhaXNlQ29tcGV0ZW5jeVRlbGVtZXRyeSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChjb250ZW50VGVsZW1ldHJ5KT1cInJhaXNlVGVsZW1ldHJ5SW50ZXJhdEV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKHZpZXdBbGxFdmVudCk9XCJzaG93QWxsQ29udGVudCgkZXZlbnQuZXZlbnQsICRldmVudC5kYXRhKVwiPlxuICAgICAgICAgICAgICAgIDwvYXBwLWNvbHVtbi1zZWN0aW9uLWRpc3BsYXk+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8IS0tIENvbXBldGVuY3kgVGFiIC0tPlxuICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJDb3JlIEFyZWFzXCI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsIGkxOG4+Q29tcGV0ZW5jeTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGFwcC1jb2x1bW4tc2VjdGlvbi1kaXNwbGF5IFxuICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YS50YWJTZWN0aW9uLmNvcmVBcmVhc1RhYlwiXG4gICAgICAgICAgICAgICAgICBbb3JnSWRdPVwib3JnSWRcIlxuICAgICAgICAgICAgICAgICAgW2NoYW5uZWxOYW1lXT1cImNoYW5uZWxOYW1lXCJcbiAgICAgICAgICAgICAgICAgIChjb21wZXRlbmN5RXZlbnQpPVwiaGlkZUNvbXBldGVuY3koJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoY29tcGV0ZW5jeVRlbGVtZXRyeSk9XCJyYWlzZUNvbXBldGVuY3lUZWxlbWV0cnkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAoY29udGVudFRlbGVtZXRyeSk9XCJyYWlzZVRlbGVtZXRyeUludGVyYXRFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICh2aWV3QWxsRXZlbnQpPVwic2hvd0FsbENvbnRlbnQoJGV2ZW50LmV2ZW50LCAkZXZlbnQuZGF0YSlcIj5cbiAgICAgICAgICAgICAgICA8L2FwcC1jb2x1bW4tc2VjdGlvbi1kaXNwbGF5PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICBcbiAgICAgIDwhLS0gU2lkZWJhciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc3Bhbi0xMiBtZDpjb2wtc3Bhbi00XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVcIj5cbiAgICAgICAgICA8IS0tIFByb2dyZXNzIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgcGFkZGluZy10b3AteGwgcGFkZGluZy1ib3R0b20tbVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ubXlwcm9ncmVzcz8uZW5hYmxlZFwiPlxuICAgICAgICAgICAgICA8c2ItdWljLXVzZXItcHJvZ3Jlc3MgXG4gICAgICAgICAgICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIiBcbiAgICAgICAgICAgICAgICBbbW9iaWxlSGVpZ2h0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbb2JqZWN0RGF0YV09XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/Lm15cHJvZ3Jlc3M/LmRhdGFcIlxuICAgICAgICAgICAgICAgIFtyb290T3JnSWRdPVwiY29uZmlnU3ZjPy51bk1hcHBlZFVzZXI/LnJvb3RPcmdJZFwiPlxuICAgICAgICAgICAgICA8L3NiLXVpYy11c2VyLXByb2dyZXNzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBTcGVha2VycyAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIHBhZGRpbmctdG9wLXhsIHBhZGRpbmctYm90dG9tLW1cIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/LnNwZWFrZXJPZnRoZURheT8uZW5hYmxlZFwiPlxuICAgICAgICAgICAgICA8c2ItdWljLXNwZWFrZXJzIFxuICAgICAgICAgICAgICAgIFtsYXlvdXRUeXBlXT1cIid3ZWInXCIgXG4gICAgICAgICAgICAgICAgW21vYmlsZUhlaWdodF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW29iamVjdERhdGFdPVwiZGF0YT8uc3RhdGVMZWFybmluZ1dlZWtTZWN0aW9uPy5zcGVha2VyT2Z0aGVEYXk/LmRhdGFcIj5cbiAgICAgICAgICAgICAgPC9zYi11aWMtc3BlYWtlcnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIExlYWRlcmJvYXJkIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgcGFkZGluZy10b3AteGwgcGFkZGluZy1ib3R0b20tbVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGE/LnN0YXRlTGVhcm5pbmdXZWVrU2VjdGlvbj8ubWRvTGVhZGVyYm9hcmQ/LmVuYWJsZWRcIj5cbiAgICAgICAgICAgICAgPHNiLXVpYy1tZG8tbGVhZGVyYm9hcmQgXG4gICAgICAgICAgICAgICAgW29iamVjdF09XCJkYXRhPy5zdGF0ZUxlYXJuaW5nV2Vla1NlY3Rpb24/Lm1kb0xlYWRlcmJvYXJkPy5kYXRhXCIgXG4gICAgICAgICAgICAgICAgW3Nsd0NvbmZpZ109XCJzbHdDb25maWdcIlxuICAgICAgICAgICAgICAgICh0YWJDbGlja2VkKT1cInJhaXNlVGFiQ2xpY2soJGV2ZW50KVwiIFxuICAgICAgICAgICAgICAgIFtvcmdJZF09XCJvcmdJZFwiPlxuICAgICAgICAgICAgICA8L3NiLXVpYy1tZG8tbGVhZGVyYm9hcmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcbiAgICAgICAgICA8IS0tIENCUCBQbGFuIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgcGFkZGluZy10b3AteGwgcGFkZGluZy1ib3R0b20tbVwiICpuZ0lmPVwiZGF0YT8uY2JwUGxhblNlY3Rpb24/LmRhdGFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC00XCI+XG4gICAgICAgICAgICAgIDxzYi11aWMtY2JwLXBsYW4gXG4gICAgICAgICAgICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIiBcbiAgICAgICAgICAgICAgICBbbW9iaWxlSGVpZ2h0XT1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICAgW2ZldGNoRGF0YUZyb21BcGldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2NoYW5uZWxJZF09XCJvcmdJZFwiIFxuICAgICAgICAgICAgICAgIFtvYmplY3REYXRhXT1cImRhdGE/LmNicFBsYW5TZWN0aW9uPy5kYXRhXCI+XG4gICAgICAgICAgICAgIDwvc2ItdWljLWNicC1wbGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXG4gICAgICAgICAgPCEtLSBBbm5vdW5jZW1lbnRzIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIiAqbmdJZj1cIiFkYXRhPy5hbm5vdW5jZW1lbnRTZWN0aW9uPy5kaXNhYmxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtNFwiPlxuICAgICAgICAgICAgICA8c2ItdWljLWFubm91bmNlbWVudHMgXG4gICAgICAgICAgICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIiBcbiAgICAgICAgICAgICAgICBbbW9iaWxlSGVpZ2h0XT1cImZhbHNlXCIgXG4gICAgICAgICAgICAgICAgW2ZldGNoRGF0YUZyb21BcGldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2NoYW5uZWxJZF09XCJvcmdJZFwiIFxuICAgICAgICAgICAgICAgIFtvYmplY3REYXRhXT1cImRhdGE/LmFubm91bmNlbWVudFNlY3Rpb24/LmRhdGFcIj5cbiAgICAgICAgICAgICAgPC9zYi11aWMtYW5ub3VuY2VtZW50cz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../../../user-progress/user-progress.component";
5
+ import * as i3 from "../../../../speakers/speakers.component";
6
+ import * as i4 from "../../../../mdo-leaderboard/mdo-leaderboard.component";
7
+ export class MobileSectionsComponent {
8
+ constructor() {
9
+ this.leaderboardTabClicked = new EventEmitter();
10
+ }
11
+ onTabClicked(event) {
12
+ this.leaderboardTabClicked.emit(event);
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MobileSectionsComponent, selector: "app-mobile-sections", inputs: { myProgressData: "myProgressData", speakersData: "speakersData", leaderboardData: "leaderboardData", rootOrgId: "rootOrgId", orgId: "orgId", slwConfig: "slwConfig" }, outputs: { leaderboardTabClicked: "leaderboardTabClicked" }, ngImport: i0, template: "<div class=\"block md:hidden\">\n <div *ngIf=\"myProgressData?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"myProgressData?.data\"\n [rootOrgId]=\"rootOrgId\">\n </sb-uic-user-progress>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"speakersData?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"speakersData?.data\">\n </sb-uic-speakers>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"leaderboardData?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"leaderboardData?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"onTabClicked($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UserProgressComponent, selector: "sb-uic-user-progress", inputs: ["objectData", "rootOrgId"] }, { kind: "component", type: i3.SpeakersComponent, selector: "sb-uic-speakers", inputs: ["objectData"] }, { kind: "component", type: i4.MdoLeaderboardComponent, selector: "sb-uic-mdo-leaderboard", inputs: ["orgId", "object", "slwConfig"], outputs: ["tabClicked"] }] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MobileSectionsComponent, decorators: [{
18
+ type: Component,
19
+ args: [{ selector: 'app-mobile-sections', template: "<div class=\"block md:hidden\">\n <div *ngIf=\"myProgressData?.enabled\">\n <sb-uic-user-progress \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"myProgressData?.data\"\n [rootOrgId]=\"rootOrgId\">\n </sb-uic-user-progress>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"speakersData?.enabled\">\n <sb-uic-speakers \n [layoutType]=\"'web'\" \n [mobileHeight]=\"false\"\n [objectData]=\"speakersData?.data\">\n </sb-uic-speakers>\n </div>\n</div>\n\n<div class=\"block md:hidden\">\n <div *ngIf=\"leaderboardData?.enabled\">\n <sb-uic-mdo-leaderboard \n [object]=\"leaderboardData?.data\" \n [slwConfig]=\"slwConfig\"\n (tabClicked)=\"onTabClicked($event)\" \n [orgId]=\"orgId\">\n </sb-uic-mdo-leaderboard>\n </div>\n</div>" }]
20
+ }], propDecorators: { myProgressData: [{
21
+ type: Input
22
+ }], speakersData: [{
23
+ type: Input
24
+ }], leaderboardData: [{
25
+ type: Input
26
+ }], rootOrgId: [{
27
+ type: Input
28
+ }], orgId: [{
29
+ type: Input
30
+ }], slwConfig: [{
31
+ type: Input
32
+ }], leaderboardTabClicked: [{
33
+ type: Output
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLXNlY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy9tb2JpbGUtc2VjdGlvbnMvbW9iaWxlLXNlY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy9tb2JpbGUtc2VjdGlvbnMvbW9iaWxlLXNlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU92RSxNQUFNLE9BQU8sdUJBQXVCO0lBTHBDO1FBYVksMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQUs5RDtJQUhDLFlBQVksQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0FaVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3U0NQcEMsKzBCQThCTTs7NEZEdkJPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUkscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1vYmlsZS1zZWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2JpbGUtc2VjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2JpbGUtc2VjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2JpbGVTZWN0aW9uc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG15UHJvZ3Jlc3NEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIHNwZWFrZXJzRGF0YTogYW55O1xuICBASW5wdXQoKSBsZWFkZXJib2FyZERhdGE6IGFueTtcbiAgQElucHV0KCkgcm9vdE9yZ0lkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9yZ0lkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNsd0NvbmZpZzogYW55O1xuICBcbiAgQE91dHB1dCgpIGxlYWRlcmJvYXJkVGFiQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBcbiAgb25UYWJDbGlja2VkKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLmxlYWRlcmJvYXJkVGFiQ2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW5cIj5cbiAgPGRpdiAqbmdJZj1cIm15UHJvZ3Jlc3NEYXRhPy5lbmFibGVkXCI+XG4gICAgPHNiLXVpYy11c2VyLXByb2dyZXNzIFxuICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIiBcbiAgICAgIFttb2JpbGVIZWlnaHRdPVwiZmFsc2VcIlxuICAgICAgW29iamVjdERhdGFdPVwibXlQcm9ncmVzc0RhdGE/LmRhdGFcIlxuICAgICAgW3Jvb3RPcmdJZF09XCJyb290T3JnSWRcIj5cbiAgICA8L3NiLXVpYy11c2VyLXByb2dyZXNzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYmxvY2sgbWQ6aGlkZGVuXCI+XG4gIDxkaXYgKm5nSWY9XCJzcGVha2Vyc0RhdGE/LmVuYWJsZWRcIj5cbiAgICA8c2ItdWljLXNwZWFrZXJzIFxuICAgICAgW2xheW91dFR5cGVdPVwiJ3dlYidcIiBcbiAgICAgIFttb2JpbGVIZWlnaHRdPVwiZmFsc2VcIlxuICAgICAgW29iamVjdERhdGFdPVwic3BlYWtlcnNEYXRhPy5kYXRhXCI+XG4gICAgPC9zYi11aWMtc3BlYWtlcnM+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW5cIj5cbiAgPGRpdiAqbmdJZj1cImxlYWRlcmJvYXJkRGF0YT8uZW5hYmxlZFwiPlxuICAgIDxzYi11aWMtbWRvLWxlYWRlcmJvYXJkIFxuICAgICAgW29iamVjdF09XCJsZWFkZXJib2FyZERhdGE/LmRhdGFcIiBcbiAgICAgIFtzbHdDb25maWddPVwic2x3Q29uZmlnXCJcbiAgICAgICh0YWJDbGlja2VkKT1cIm9uVGFiQ2xpY2tlZCgkZXZlbnQpXCIgXG4gICAgICBbb3JnSWRdPVwib3JnSWRcIj5cbiAgICA8L3NiLXVpYy1tZG8tbGVhZGVyYm9hcmQ+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,30 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../video-conference/video-conference.component";
4
+ export class SupportSectionComponent {
5
+ constructor(data, eventCallback) {
6
+ this.data = data;
7
+ this.eventCallback = eventCallback;
8
+ }
9
+ onVideoEvent(event) {
10
+ this.eventCallback({
11
+ action: 'video-conference',
12
+ source: 'supportSection',
13
+ id: event.id || 'video-event',
14
+ data: event
15
+ });
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportSectionComponent, deps: [{ token: 'sectionData' }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SupportSectionComponent, selector: "app-support-section", ngImport: i0, template: "<div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference \n [videoConf]=\"data\"\n (videoEvent)=\"onVideoEvent($event)\">\n </sb-uic-video-conference>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "component", type: i1.VideoConferenceComponent, selector: "sb-uic-video-conference", inputs: ["videoConf"] }] }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SupportSectionComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'app-support-section', template: "<div class=\"flex items-center justify-center\">\n <div class=\"container support-section\">\n <sb-uic-video-conference \n [videoConf]=\"data\"\n (videoEvent)=\"onVideoEvent($event)\">\n </sb-uic-video-conference>\n </div>\n</div>" }]
23
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
24
+ type: Inject,
25
+ args: ['sectionData']
26
+ }] }, { type: undefined, decorators: [{
27
+ type: Inject,
28
+ args: ['eventCallback']
29
+ }] }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy9zdXBwb3J0LXNlY3Rpb24vc3VwcG9ydC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy9zdXBwb3J0LXNlY3Rpb24vc3VwcG9ydC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPbEQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNnQyxJQUFTLEVBQ04sYUFBbUM7UUFEdEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNOLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtJQUNuRSxDQUFDO0lBRUosWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksYUFBYTtZQUM3QixJQUFJLEVBQUUsS0FBSztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBYlUsdUJBQXVCLGtCQUV4QixhQUFhLGFBQ2IsZUFBZTttR0FIZCx1QkFBdUIsMkRDUHBDLDBQQU9NOzs0RkRBTyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzswQkFNNUIsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXN1cHBvcnQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdXBwb3J0LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0U2VjdGlvbkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ3NlY3Rpb25EYXRhJykgcHVibGljIGRhdGE6IGFueSxcbiAgICBASW5qZWN0KCdldmVudENhbGxiYWNrJykgcHJpdmF0ZSBldmVudENhbGxiYWNrOiAoZXZlbnQ6IGFueSkgPT4gdm9pZFxuICApIHt9XG4gIFxuICBvblZpZGVvRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZXZlbnRDYWxsYmFjayh7XG4gICAgICBhY3Rpb246ICd2aWRlby1jb25mZXJlbmNlJyxcbiAgICAgIHNvdXJjZTogJ3N1cHBvcnRTZWN0aW9uJyxcbiAgICAgIGlkOiBldmVudC5pZCB8fCAndmlkZW8tZXZlbnQnLFxuICAgICAgZGF0YTogZXZlbnRcbiAgICB9KTtcbiAgfVxufSIsIjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIHN1cHBvcnQtc2VjdGlvblwiPlxuICAgIDxzYi11aWMtdmlkZW8tY29uZmVyZW5jZSBcbiAgICAgIFt2aWRlb0NvbmZdPVwiZGF0YVwiXG4gICAgICAodmlkZW9FdmVudCk9XCJvblZpZGVvRXZlbnQoJGV2ZW50KVwiPlxuICAgIDwvc2ItdWljLXZpZGVvLWNvbmZlcmVuY2U+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,42 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../top-learners/top-learners.component";
4
+ export class TopLearnersComponent {
5
+ constructor(data, channelName, orgId, slwConfig, eventCallback) {
6
+ this.data = data;
7
+ this.channelName = channelName;
8
+ this.orgId = orgId;
9
+ this.slwConfig = slwConfig;
10
+ this.eventCallback = eventCallback;
11
+ }
12
+ onEventFromLeaders(event) {
13
+ this.eventCallback({
14
+ action: 'top-learners',
15
+ source: 'topLearners',
16
+ id: event.id || 'learner-event',
17
+ data: event
18
+ });
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, deps: [{ token: 'sectionData' }, { token: 'channelName' }, { token: 'orgId' }, { token: 'slwConfiguration' }, { token: 'eventCallback' }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TopLearnersComponent, selector: "app-top-learners", ngImport: i0, template: "<div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners \n [objectData]=\"data\" \n [channnelName]=\"channelName\" \n [channelId]=\"orgId\" \n [slwConfig]=\"slwConfig\"\n (learnerEvent)=\"onEventFromLeaders($event)\">\n </sb-uic-top-learners>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "component", type: i1.TopLearnersComponent, selector: "sb-uic-top-learners", inputs: ["objectData", "channelId", "channnelName", "slwConfig"] }] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopLearnersComponent, decorators: [{
24
+ type: Component,
25
+ args: [{ selector: 'app-top-learners', template: "<div class=\"flex items-center justify-center\">\n <div class=\"container top-learners margin-bottom-l margin-top-l\">\n <sb-uic-top-learners \n [objectData]=\"data\" \n [channnelName]=\"channelName\" \n [channelId]=\"orgId\" \n [slwConfig]=\"slwConfig\"\n (learnerEvent)=\"onEventFromLeaders($event)\">\n </sb-uic-top-learners>\n </div>\n</div>" }]
26
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
27
+ type: Inject,
28
+ args: ['sectionData']
29
+ }] }, { type: undefined, decorators: [{
30
+ type: Inject,
31
+ args: ['channelName']
32
+ }] }, { type: undefined, decorators: [{
33
+ type: Inject,
34
+ args: ['orgId']
35
+ }] }, { type: undefined, decorators: [{
36
+ type: Inject,
37
+ args: ['slwConfiguration']
38
+ }] }, { type: undefined, decorators: [{
39
+ type: Inject,
40
+ args: ['eventCallback']
41
+ }] }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLWxlYXJuZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy90b3AtbGVhcm5lcnMvdG9wLWxlYXJuZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy90b3AtbGVhcm5lcnMvdG9wLWxlYXJuZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPbEQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUNnQyxJQUFTLEVBQ1QsV0FBbUIsRUFDekIsS0FBYSxFQUNGLFNBQWMsRUFDaEIsYUFBbUM7UUFKdEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDRixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtJQUNuRSxDQUFDO0lBRUosa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLGVBQWU7WUFDL0IsSUFBSSxFQUFFLEtBQUs7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDOytHQWhCVSxvQkFBb0Isa0JBRXJCLGFBQWEsYUFDYixhQUFhLGFBQ2IsT0FBTyxhQUNQLGtCQUFrQixhQUNsQixlQUFlO21HQU5kLG9CQUFvQix3RENQakMsNFhBVU07OzRGREhPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7OzBCQU16QixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLE9BQU87OzBCQUNkLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRvcC1sZWFybmVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi90b3AtbGVhcm5lcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b3AtbGVhcm5lcnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb3BMZWFybmVyc0NvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ3NlY3Rpb25EYXRhJykgcHVibGljIGRhdGE6IGFueSxcbiAgICBASW5qZWN0KCdjaGFubmVsTmFtZScpIHB1YmxpYyBjaGFubmVsTmFtZTogc3RyaW5nLFxuICAgIEBJbmplY3QoJ29yZ0lkJykgcHVibGljIG9yZ0lkOiBzdHJpbmcsXG4gICAgQEluamVjdCgnc2x3Q29uZmlndXJhdGlvbicpIHB1YmxpYyBzbHdDb25maWc6IGFueSxcbiAgICBASW5qZWN0KCdldmVudENhbGxiYWNrJykgcHJpdmF0ZSBldmVudENhbGxiYWNrOiAoZXZlbnQ6IGFueSkgPT4gdm9pZFxuICApIHt9XG4gIFxuICBvbkV2ZW50RnJvbUxlYWRlcnMoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZXZlbnRDYWxsYmFjayh7XG4gICAgICBhY3Rpb246ICd0b3AtbGVhcm5lcnMnLFxuICAgICAgc291cmNlOiAndG9wTGVhcm5lcnMnLFxuICAgICAgaWQ6IGV2ZW50LmlkIHx8ICdsZWFybmVyLWV2ZW50JyxcbiAgICAgIGRhdGE6IGV2ZW50XG4gICAgfSk7XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciB0b3AtbGVhcm5lcnMgbWFyZ2luLWJvdHRvbS1sIG1hcmdpbi10b3AtbFwiPlxuICAgIDxzYi11aWMtdG9wLWxlYXJuZXJzIFxuICAgICAgW29iamVjdERhdGFdPVwiZGF0YVwiIFxuICAgICAgW2NoYW5ubmVsTmFtZV09XCJjaGFubmVsTmFtZVwiIFxuICAgICAgW2NoYW5uZWxJZF09XCJvcmdJZFwiIFxuICAgICAgW3Nsd0NvbmZpZ109XCJzbHdDb25maWdcIlxuICAgICAgKGxlYXJuZXJFdmVudCk9XCJvbkV2ZW50RnJvbUxlYWRlcnMoJGV2ZW50KVwiPlxuICAgIDwvc2ItdWljLXRvcC1sZWFybmVycz5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,99 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../../../../data-points/data-points.component";
6
+ import * as i4 from "../../../../sliders/sliders.component";
7
+ export class TopSectionComponent {
8
+ constructor(data, channelName, orgId, isMobile, slwConfig, isEdit, eventCallback, sanitizer) {
9
+ this.data = data;
10
+ this.channelName = channelName;
11
+ this.orgId = orgId;
12
+ this.isMobile = isMobile;
13
+ this.slwConfig = slwConfig;
14
+ this.isEdit = isEdit;
15
+ this.eventCallback = eventCallback;
16
+ this.sanitizer = sanitizer;
17
+ this.descriptionMaxLength = 500;
18
+ if (this.isEdit) {
19
+ console.log('Edit mode active for top section');
20
+ }
21
+ }
22
+ ngOnInit() {
23
+ this.stripWidth = `${(window.innerWidth - 1200 + 135) / 2}px`;
24
+ }
25
+ emitEvent(action, id, data) {
26
+ this.eventCallback({
27
+ action,
28
+ source: 'topSection',
29
+ id,
30
+ data: data || this.data
31
+ });
32
+ }
33
+ openEditor(fieldName, displayName, currentValue) {
34
+ this.eventCallback({
35
+ action: 'edit',
36
+ source: 'topSection',
37
+ id: fieldName,
38
+ data: {
39
+ fieldName,
40
+ displayName,
41
+ currentValue,
42
+ path: fieldName,
43
+ fieldType: this.getFieldType(fieldName, currentValue),
44
+ parentData: this.data
45
+ }
46
+ });
47
+ }
48
+ getFieldType(fieldName, value) {
49
+ if (fieldName === 'logo' || fieldName === 'logoMobile' || fieldName.includes('banner')) {
50
+ return 'image';
51
+ }
52
+ else if (fieldName === 'sliderData') {
53
+ return 'slider';
54
+ }
55
+ else if (fieldName === 'metrics') {
56
+ return 'metrics';
57
+ }
58
+ else if (typeof value === 'string' && value.startsWith('#')) {
59
+ return 'color';
60
+ }
61
+ else if (typeof value === 'boolean') {
62
+ return 'boolean';
63
+ }
64
+ else if (fieldName.includes('description')) {
65
+ return 'textarea';
66
+ }
67
+ else {
68
+ return 'text';
69
+ }
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopSectionComponent, deps: [{ token: 'sectionData' }, { token: 'channelName' }, { token: 'orgId' }, { token: 'isMobile' }, { token: 'slwConfiguration' }, { token: 'isEdit' }, { token: 'eventCallback' }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TopSectionComponent, selector: "app-top-section", ngImport: i0, template: "<div class=\"hidden md:block\" *ngIf=\"!isMobile\">\n <div class=\"web-banner-background\" [style.background]=\"data?.background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div *ngIf=\"!isEdit\" class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\"></div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('logo', 'Logo', data?.logo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n <h1 class=\"txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channelName}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('title', 'Title', data?.title || channelName)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitle', 'Subtitle', data?.subTitle)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <h4 *ngIf=\"data?.subTitleTwo\" class=\"sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitleTwo', 'Secondary Subtitle', data?.subTitleTwo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('description', 'Description', data?.description)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n <button *ngIf=\"isEdit\" class=\"edit-icon slider-edit\" (click)=\"openEditor('sliderData', 'Slider Images', data?.sliderData)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"block md:hidden\" *ngIf=\"isMobile\">\n <!-- Mobile view simplified -->\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\" \n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full flex-1 flex flex-col\">\n <h1 class=\"txt-ellipsis-2 break-words\">{{data?.title || channelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"sub-title txt-ellipsis-2 break-words\" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n <p class=\"mat-body-2\">{{data?.description | slice:0:descriptionMaxLength}}</p>\n </div>\n </div>\n</div>\n\n<div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div [class]=\"isMobile ? 'block md:hidden pt-14 px-4' : 'hidden md:block'\">\n <div [class]=\"isMobile ? 'mob-metrics mob-metrics-sec' : 'metrics'\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points \n [providerId]=\"orgId\" \n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" \n [layoutType]=\"isMobile ? 'singleRow' : 'singleFlexeRow'\" \n [pageLayout]=\"'mdo'\" \n [slwConfig]=\"slwConfig\"\n (metricClick)=\"emitEvent('metric-click', $event)\">\n </sb-uic-data-points>\n <button *ngIf=\"isEdit\" class=\"edit-icon metrics-edit\" (click)=\"openEditor('metrics', 'Metrics', data?.metrics)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center;position:relative}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}.edit-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background-color:#00000080;color:#fff;border:none;cursor:pointer;margin-left:8px;transition:all .2s ease;position:relative;z-index:10}.edit-icon:hover{background-color:#000c;transform:scale(1.1)}.edit-icon i{font-size:16px}.slider-edit{position:absolute;top:8px;right:8px;z-index:100}.metrics-edit{position:absolute;top:8px;right:8px}.slider-box,.metrics{position:relative}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.DataPointsComponent, selector: "sb-uic-data-points", inputs: ["objectData", "layoutType", "fetchDataFromApi", "providerId", "pageLayout", "title", "slwConfig"] }, { kind: "component", type: i4.SlidersLibComponent, selector: "sb-uic-sliders", inputs: ["widgetData", "styleData", "title", "type"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TopSectionComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'app-top-section', template: "<div class=\"hidden md:block\" *ngIf=\"!isMobile\">\n <div class=\"web-banner-background\" [style.background]=\"data?.background\">\n <div class=\"flex items-center justify-center\">\n <div class=\"container\">\n <div *ngIf=\"!isEdit\" class=\"flex sticky-logo-square\" [style.width]=\"stripWidth\"></div>\n <div class=\"grid grid-cols-12 gap-4 padding-top-xxxl mb-10\">\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"flex-1 flex flex-col mr-4 ws-mat-black-text\">\n <div class=\"\">\n <div class=\"flex items-center logo-square\">\n <img alt=\"Application Logo\" class=\"logo-img\" [src]=\"data?.logo\">\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('logo', 'Logo', data?.logo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n <h1 class=\"txt-ellipsis-2 break-words pt-10 mt-2 {{data?.titleClass}}\" [style.color]=\"data?.titleColor\">\n {{data.title || channelName}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('title', 'Title', data?.title || channelName)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"txt-ellipsis-2 break-words {{data?.subTitleClass}}\" [style.color]=\"data?.subTitleColor\">\n {{data?.subTitle}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitle', 'Subtitle', data?.subTitle)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <h4 *ngIf=\"data?.subTitleTwo\" class=\"sub-title-two txt-ellipsis-2 break-words pt-4 mb-8\" [style.color]=\"data?.subTitleColorTwo\">\n {{data?.subTitleTwo}}\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('subTitleTwo', 'Secondary Subtitle', data?.subTitleTwo)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </h4>\n <p class=\"mat-body-1\" [style.color]=\"data?.descriptionColor\">\n {{data?.description | slice:0:descriptionMaxLength}}\n <span *ngIf=\"data?.description?.length > descriptionMaxLength\">...</span>\n <button *ngIf=\"isEdit\" class=\"edit-icon\" (click)=\"openEditor('description', 'Description', data?.description)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </p>\n </div>\n </div>\n </div>\n <div class=\"col-span-12 md:col-span-6\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\"\n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n <button *ngIf=\"isEdit\" class=\"edit-icon slider-edit\" (click)=\"openEditor('sliderData', 'Slider Images', data?.sliderData)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"block md:hidden\" *ngIf=\"isMobile\">\n <!-- Mobile view simplified -->\n <div class=\"col-span-12\">\n <div class=\"slider slider-box\" *ngIf=\"data?.sliderData?.sliders\">\n <sb-uic-sliders [widgetData]=\"data?.sliderData?.sliders\" \n [styleData]=\"data?.sliderData?.styleData\" (clickEvent)=\"emitEvent('slider-click', $event)\"></sb-uic-sliders>\n </div>\n </div>\n <div class=\"container px-4 flex flex-col mob-container\">\n <div class=\"mr-4 logo-box-container\">\n <div class=\"flex logo-box-square top mr-4\">\n <img alt=\"Application Logo\" class=\"logo-img logo-img-mb {{data?.customMobileClass}}\" [src]=\"data?.logoMobile || data?.logo\">\n </div>\n </div>\n <div class=\"w-full flex-1 flex flex-col\">\n <h1 class=\"txt-ellipsis-2 break-words\">{{data?.title || channelName}}</h1>\n <h4 *ngIf=\"data?.subTitle\" class=\"sub-title txt-ellipsis-2 break-words\" [style.color]=\"data?.subTitleColorMobile\">\n {{data?.subTitle}}</h4>\n <p class=\"mat-body-2\">{{data?.description | slice:0:descriptionMaxLength}}</p>\n </div>\n </div>\n</div>\n\n<div class=\"flex items-center justify-center\">\n <div class=\"container metrics-section\">\n <div [class]=\"isMobile ? 'block md:hidden pt-14 px-4' : 'hidden md:block'\">\n <div [class]=\"isMobile ? 'mob-metrics mob-metrics-sec' : 'metrics'\" [ngStyle]=\"{'background': data?.metrics?.background}\">\n <sb-uic-data-points \n [providerId]=\"orgId\" \n [fetchDataFromApi]=\"true\"\n [objectData]=\"data?.metrics?.data\" \n [layoutType]=\"isMobile ? 'singleRow' : 'singleFlexeRow'\" \n [pageLayout]=\"'mdo'\" \n [slwConfig]=\"slwConfig\"\n (metricClick)=\"emitEvent('metric-click', $event)\">\n </sb-uic-data-points>\n <button *ngIf=\"isEdit\" class=\"edit-icon metrics-edit\" (click)=\"openEditor('metrics', 'Metrics', data?.metrics)\">\n <i class=\"material-icons\">edit</i>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [".container-balanced{max-width:1202px;margin-left:auto!important;margin-right:auto!important}.container{max-width:1200px}.padding-top-xxxl{padding-top:47px}.banner-container{align-items:center;background:#eee;padding:16px;gap:2.5rem;justify-content:center}.web-banner-background{background-image:url(/assets/icons/microsite/MDO-channel-banner.png);background-size:cover;min-height:464px}.mob-container{background-image:url(/assets/icons/microsite/MDOChannel_RightGraphic.svg);background-position:right;background-repeat:no-repeat}.sub-title{font-size:24px;font-weight:400}.sub-title-two{font-size:24px;font-weight:600}.main-title{font-size:32px;font-size:48px;font-weight:700}.sticky-logo-square{position:absolute;top:215px;border-bottom-right-radius:12px;border-top-right-radius:12px;background:#fff;display:flex;padding:10px;justify-content:end;height:53px;left:0}.logo-square{width:fit-content;max-height:73px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px 16px 16px 0;box-sizing:border-box}.logo-box-container{width:157px;position:relative;height:64px}.logo-box-square{height:99px;width:157px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000000f}.logo-box-square .logo-img{max-width:122px}.logo-box-square.top{position:absolute;top:-54px}.logo-img{object-fit:contain;max-height:52px;height:96px;z-index:10}.logo-img-mb{max-height:unset}.metrics{border:3px solid #fff;border-radius:10px;align-items:center;position:relative}.mob-metrics{overflow:auto}.metrics-section{margin-top:-30px}.empty-div{height:15px}.mob-metrics-sec{padding-top:1rem}.announcements-container{position:fixed;height:calc(100vh - 67px);background:#131313a3;width:100vw;top:0;left:0;z-index:1000}.close-announcements-dialog{position:absolute;right:30px;top:30px}.close-icon{color:#fff;border-radius:15px;float:right;position:absolute;top:15px;right:15px}@media screen and (max-width: 768px){::ng-deep .recommendedProgram .mat-tab-header{padding-left:20px}::ng-deep .featuredCourses .mat-tab-header{padding-left:20px}.metrics-section{margin-top:0}.top-learners{padding-left:30px}}::ng-deep .mytabs .mat-tab-label.mat-tab-label-active:not(.mat-tab-disabled),::ng-deep .mytabs .mat-tab-label.mat-tab-label-active.cdk-keyboard-focused:not(.mat-tab-disabled){font-weight:700;color:#000;opacity:1}.contact-us-wrapper{background:linear-gradient(106.94deg,#3a70cf 3.96%,#1146a2 39.76%)}.edit-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background-color:#00000080;color:#fff;border:none;cursor:pointer;margin-left:8px;transition:all .2s ease;position:relative;z-index:10}.edit-icon:hover{background-color:#000c;transform:scale(1.1)}.edit-icon i{font-size:16px}.slider-edit{position:absolute;top:8px;right:8px;z-index:100}.metrics-edit{position:absolute;top:8px;right:8px}.slider-box,.metrics{position:relative}\n"] }]
77
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
78
+ type: Inject,
79
+ args: ['sectionData']
80
+ }] }, { type: undefined, decorators: [{
81
+ type: Inject,
82
+ args: ['channelName']
83
+ }] }, { type: undefined, decorators: [{
84
+ type: Inject,
85
+ args: ['orgId']
86
+ }] }, { type: undefined, decorators: [{
87
+ type: Inject,
88
+ args: ['isMobile']
89
+ }] }, { type: undefined, decorators: [{
90
+ type: Inject,
91
+ args: ['slwConfiguration']
92
+ }] }, { type: undefined, decorators: [{
93
+ type: Inject,
94
+ args: ['isEdit']
95
+ }] }, { type: undefined, decorators: [{
96
+ type: Inject,
97
+ args: ['eventCallback']
98
+ }] }, { type: i1.DomSanitizer }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NvbnN1bXB0aW9uL3NyYy9saWIvX2NvbW1vbi9taWNyb3NpdGVzL21kby1jaGFubmVscy9jb21wb25lbnRzL3RvcC1zZWN0aW9uL3RvcC1zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jb25zdW1wdGlvbi9zcmMvbGliL19jb21tb24vbWljcm9zaXRlcy9tZG8tY2hhbm5lbHMvY29tcG9uZW50cy90b3Atc2VjdGlvbi90b3Atc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUTFELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUIsWUFDZ0MsSUFBUyxFQUNULFdBQW1CLEVBQ3pCLEtBQWEsRUFDVixRQUFpQixFQUNULFNBQWMsRUFDeEIsTUFBZSxFQUNSLGFBQW1DLEVBQzVELFNBQXVCO1FBUEEsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ1QsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ1Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQzVELGNBQVMsR0FBVCxTQUFTLENBQWM7UUFYaEMseUJBQW9CLEdBQUcsR0FBRyxDQUFDO1FBYXpCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjLEVBQUUsRUFBVSxFQUFFLElBQVU7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNO1lBQ04sTUFBTSxFQUFFLFlBQVk7WUFDcEIsRUFBRTtZQUNGLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUk7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFpQixFQUFFLFdBQW1CLEVBQUUsWUFBaUI7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNqQixNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLEVBQUUsRUFBRSxTQUFTO1lBQ2IsSUFBSSxFQUFFO2dCQUNKLFNBQVM7Z0JBQ1QsV0FBVztnQkFDWCxZQUFZO2dCQUNaLElBQUksRUFBRSxTQUFTO2dCQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7Z0JBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTthQUN0QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUIsRUFBRSxLQUFVO1FBQ3hDLElBQUksU0FBUyxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssWUFBWSxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEYsT0FBTyxPQUFPLENBQUM7U0FDaEI7YUFBTSxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUU7WUFDckMsT0FBTyxRQUFRLENBQUM7U0FDakI7YUFBTSxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDbEMsT0FBTyxTQUFTLENBQUM7U0FDbEI7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdELE9BQU8sT0FBTyxDQUFDO1NBQ2hCO2FBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDckMsT0FBTyxTQUFTLENBQUM7U0FDbEI7YUFBTSxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDNUMsT0FBTyxVQUFVLENBQUM7U0FDbkI7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7SUFDSCxDQUFDOytHQWhFVSxtQkFBbUIsa0JBS3BCLGFBQWEsYUFDYixhQUFhLGFBQ2IsT0FBTyxhQUNQLFVBQVUsYUFDVixrQkFBa0IsYUFDbEIsUUFBUSxhQUNSLGVBQWU7bUdBWGQsbUJBQW1CLHVEQ1JoQyxxNUtBbUdNOzs0RkQzRk8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjs7MEJBU3hCLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsT0FBTzs7MEJBQ2QsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdG9wLXNlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9wLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b3Atc2VjdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRvcFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkZXNjcmlwdGlvbk1heExlbmd0aCA9IDUwMDtcbiAgc3RyaXBXaWR0aDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ3NlY3Rpb25EYXRhJykgcHVibGljIGRhdGE6IGFueSxcbiAgICBASW5qZWN0KCdjaGFubmVsTmFtZScpIHB1YmxpYyBjaGFubmVsTmFtZTogc3RyaW5nLFxuICAgIEBJbmplY3QoJ29yZ0lkJykgcHVibGljIG9yZ0lkOiBzdHJpbmcsXG4gICAgQEluamVjdCgnaXNNb2JpbGUnKSBwdWJsaWMgaXNNb2JpbGU6IGJvb2xlYW4sXG4gICAgQEluamVjdCgnc2x3Q29uZmlndXJhdGlvbicpIHB1YmxpYyBzbHdDb25maWc6IGFueSxcbiAgICBASW5qZWN0KCdpc0VkaXQnKSBwdWJsaWMgaXNFZGl0OiBib29sZWFuLFxuICAgIEBJbmplY3QoJ2V2ZW50Q2FsbGJhY2snKSBwdWJsaWMgZXZlbnRDYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IHZvaWQsXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICkge1xuICAgIGlmICh0aGlzLmlzRWRpdCkge1xuICAgICAgY29uc29sZS5sb2coJ0VkaXQgbW9kZSBhY3RpdmUgZm9yIHRvcCBzZWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdHJpcFdpZHRoID0gYCR7KHdpbmRvdy5pbm5lcldpZHRoIC0gMTIwMCArIDEzNSkvMn1weGA7XG4gIH1cbiAgXG4gIGVtaXRFdmVudChhY3Rpb246IHN0cmluZywgaWQ6IHN0cmluZywgZGF0YT86IGFueSkge1xuICAgIHRoaXMuZXZlbnRDYWxsYmFjayh7XG4gICAgICBhY3Rpb24sXG4gICAgICBzb3VyY2U6ICd0b3BTZWN0aW9uJyxcbiAgICAgIGlkLFxuICAgICAgZGF0YTogZGF0YSB8fCB0aGlzLmRhdGFcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5FZGl0b3IoZmllbGROYW1lOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcsIGN1cnJlbnRWYWx1ZTogYW55KSB7XG4gICAgdGhpcy5ldmVudENhbGxiYWNrKHtcbiAgICAgIGFjdGlvbjogJ2VkaXQnLFxuICAgICAgc291cmNlOiAndG9wU2VjdGlvbicsXG4gICAgICBpZDogZmllbGROYW1lLFxuICAgICAgZGF0YToge1xuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuICAgICAgICBjdXJyZW50VmFsdWUsXG4gICAgICAgIHBhdGg6IGZpZWxkTmFtZSxcbiAgICAgICAgZmllbGRUeXBlOiB0aGlzLmdldEZpZWxkVHlwZShmaWVsZE5hbWUsIGN1cnJlbnRWYWx1ZSksXG4gICAgICAgIHBhcmVudERhdGE6IHRoaXMuZGF0YVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0RmllbGRUeXBlKGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoZmllbGROYW1lID09PSAnbG9nbycgfHwgZmllbGROYW1lID09PSAnbG9nb01vYmlsZScgfHwgZmllbGROYW1lLmluY2x1ZGVzKCdiYW5uZXInKSkge1xuICAgICAgcmV0dXJuICdpbWFnZSc7XG4gICAgfSBlbHNlIGlmIChmaWVsZE5hbWUgPT09ICdzbGlkZXJEYXRhJykge1xuICAgICAgcmV0dXJuICdzbGlkZXInO1xuICAgIH0gZWxzZSBpZiAoZmllbGROYW1lID09PSAnbWV0cmljcycpIHtcbiAgICAgIHJldHVybiAnbWV0cmljcyc7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoJyMnKSkge1xuICAgICAgcmV0dXJuICdjb2xvcic7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuICdib29sZWFuJztcbiAgICB9IGVsc2UgaWYgKGZpZWxkTmFtZS5pbmNsdWRlcygnZGVzY3JpcHRpb24nKSkge1xuICAgICAgcmV0dXJuICd0ZXh0YXJlYSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuICB9XG59IiwiPGRpdiBjbGFzcz1cImhpZGRlbiBtZDpibG9ja1wiICpuZ0lmPVwiIWlzTW9iaWxlXCI+XG4gIDxkaXYgY2xhc3M9XCJ3ZWItYmFubmVyLWJhY2tncm91bmRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhPy5iYWNrZ3JvdW5kXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaXNFZGl0XCIgY2xhc3M9XCJmbGV4IHN0aWNreS1sb2dvLXNxdWFyZVwiIFtzdHlsZS53aWR0aF09XCJzdHJpcFdpZHRoXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0xMiBnYXAtNCBwYWRkaW5nLXRvcC14eHhsIG1iLTEwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyIG1kOmNvbC1zcGFuLTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBmbGV4LWNvbCBtci00IHdzLW1hdC1ibGFjay10ZXh0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbG9nby1zcXVhcmVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgYWx0PVwiQXBwbGljYXRpb24gTG9nb1wiIGNsYXNzPVwibG9nby1pbWdcIiBbc3JjXT1cImRhdGE/LmxvZ29cIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpc0VkaXRcIiBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJvcGVuRWRpdG9yKCdsb2dvJywgJ0xvZ28nLCBkYXRhPy5sb2dvKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZWRpdDwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cInR4dC1lbGxpcHNpcy0yIGJyZWFrLXdvcmRzIHB0LTEwIG10LTIge3tkYXRhPy50aXRsZUNsYXNzfX1cIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8udGl0bGVDb2xvclwiPlxuICAgICAgICAgICAgICAgICAge3tkYXRhLnRpdGxlIHx8IGNoYW5uZWxOYW1lfX1cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpc0VkaXRcIiBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJvcGVuRWRpdG9yKCd0aXRsZScsICdUaXRsZScsIGRhdGE/LnRpdGxlIHx8IGNoYW5uZWxOYW1lKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZWRpdDwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgICAgPGg0ICpuZ0lmPVwiZGF0YT8uc3ViVGl0bGVcIiBjbGFzcz1cInR4dC1lbGxpcHNpcy0yIGJyZWFrLXdvcmRzIHt7ZGF0YT8uc3ViVGl0bGVDbGFzc319XCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN1YlRpdGxlQ29sb3JcIj5cbiAgICAgICAgICAgICAgICAgIHt7ZGF0YT8uc3ViVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzRWRpdFwiIGNsYXNzPVwiZWRpdC1pY29uXCIgKGNsaWNrKT1cIm9wZW5FZGl0b3IoJ3N1YlRpdGxlJywgJ1N1YnRpdGxlJywgZGF0YT8uc3ViVGl0bGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5lZGl0PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8aDQgKm5nSWY9XCJkYXRhPy5zdWJUaXRsZVR3b1wiIGNsYXNzPVwic3ViLXRpdGxlLXR3byB0eHQtZWxsaXBzaXMtMiBicmVhay13b3JkcyBwdC00IG1iLThcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3ViVGl0bGVDb2xvclR3b1wiPlxuICAgICAgICAgICAgICAgICAge3tkYXRhPy5zdWJUaXRsZVR3b319XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNFZGl0XCIgY2xhc3M9XCJlZGl0LWljb25cIiAoY2xpY2spPVwib3BlbkVkaXRvcignc3ViVGl0bGVUd28nLCAnU2Vjb25kYXJ5IFN1YnRpdGxlJywgZGF0YT8uc3ViVGl0bGVUd28pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5lZGl0PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1hdC1ib2R5LTFcIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uZGVzY3JpcHRpb25Db2xvclwiPlxuICAgICAgICAgICAgICAgICAge3tkYXRhPy5kZXNjcmlwdGlvbiB8IHNsaWNlOjA6ZGVzY3JpcHRpb25NYXhMZW5ndGh9fVxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5kZXNjcmlwdGlvbj8ubGVuZ3RoID4gZGVzY3JpcHRpb25NYXhMZW5ndGhcIj4uLi48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNFZGl0XCIgY2xhc3M9XCJlZGl0LWljb25cIiAoY2xpY2spPVwib3BlbkVkaXRvcignZGVzY3JpcHRpb24nLCAnRGVzY3JpcHRpb24nLCBkYXRhPy5kZXNjcmlwdGlvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyIG1kOmNvbC1zcGFuLTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgc2xpZGVyLWJveFwiICpuZ0lmPVwiZGF0YT8uc2xpZGVyRGF0YT8uc2xpZGVyc1wiPlxuICAgICAgICAgICAgICA8c2ItdWljLXNsaWRlcnMgW3dpZGdldERhdGFdPVwiZGF0YT8uc2xpZGVyRGF0YT8uc2xpZGVyc1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlRGF0YV09XCJkYXRhPy5zbGlkZXJEYXRhPy5zdHlsZURhdGFcIiAoY2xpY2tFdmVudCk9XCJlbWl0RXZlbnQoJ3NsaWRlci1jbGljaycsICRldmVudClcIj48L3NiLXVpYy1zbGlkZXJzPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNFZGl0XCIgY2xhc3M9XCJlZGl0LWljb24gc2xpZGVyLWVkaXRcIiAoY2xpY2spPVwib3BlbkVkaXRvcignc2xpZGVyRGF0YScsICdTbGlkZXIgSW1hZ2VzJywgZGF0YT8uc2xpZGVyRGF0YSlcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZWRpdDwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJibG9jayBtZDpoaWRkZW5cIiAqbmdJZj1cImlzTW9iaWxlXCI+XG4gIDwhLS0gTW9iaWxlIHZpZXcgc2ltcGxpZmllZCAtLT5cbiAgPGRpdiBjbGFzcz1cImNvbC1zcGFuLTEyXCI+XG4gICAgPGRpdiBjbGFzcz1cInNsaWRlciBzbGlkZXItYm94XCIgKm5nSWY9XCJkYXRhPy5zbGlkZXJEYXRhPy5zbGlkZXJzXCI+XG4gICAgICA8c2ItdWljLXNsaWRlcnMgW3dpZGdldERhdGFdPVwiZGF0YT8uc2xpZGVyRGF0YT8uc2xpZGVyc1wiIFxuICAgICAgICBbc3R5bGVEYXRhXT1cImRhdGE/LnNsaWRlckRhdGE/LnN0eWxlRGF0YVwiIChjbGlja0V2ZW50KT1cImVtaXRFdmVudCgnc2xpZGVyLWNsaWNrJywgJGV2ZW50KVwiPjwvc2ItdWljLXNsaWRlcnM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIHB4LTQgZmxleCBmbGV4LWNvbCBtb2ItY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1yLTQgbG9nby1ib3gtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBsb2dvLWJveC1zcXVhcmUgdG9wIG1yLTRcIj5cbiAgICAgICAgPGltZyBhbHQ9XCJBcHBsaWNhdGlvbiBMb2dvXCIgY2xhc3M9XCJsb2dvLWltZyBsb2dvLWltZy1tYiB7e2RhdGE/LmN1c3RvbU1vYmlsZUNsYXNzfX1cIiBbc3JjXT1cImRhdGE/LmxvZ29Nb2JpbGUgfHwgZGF0YT8ubG9nb1wiPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4LTEgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgPGgxIGNsYXNzPVwidHh0LWVsbGlwc2lzLTIgYnJlYWstd29yZHNcIj57e2RhdGE/LnRpdGxlIHx8IGNoYW5uZWxOYW1lfX08L2gxPlxuICAgICAgPGg0ICpuZ0lmPVwiZGF0YT8uc3ViVGl0bGVcIiBjbGFzcz1cInN1Yi10aXRsZSB0eHQtZWxsaXBzaXMtMiBicmVhay13b3Jkc1wiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdWJUaXRsZUNvbG9yTW9iaWxlXCI+XG4gICAgICAgIHt7ZGF0YT8uc3ViVGl0bGV9fTwvaDQ+XG4gICAgICA8cCBjbGFzcz1cIm1hdC1ib2R5LTJcIj57e2RhdGE/LmRlc2NyaXB0aW9uIHwgc2xpY2U6MDpkZXNjcmlwdGlvbk1heExlbmd0aH19PC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtZXRyaWNzLXNlY3Rpb25cIj5cbiAgICA8ZGl2IFtjbGFzc109XCJpc01vYmlsZSA/ICdibG9jayBtZDpoaWRkZW4gcHQtMTQgcHgtNCcgOiAnaGlkZGVuIG1kOmJsb2NrJ1wiPlxuICAgICAgPGRpdiBbY2xhc3NdPVwiaXNNb2JpbGUgPyAnbW9iLW1ldHJpY3MgbW9iLW1ldHJpY3Mtc2VjJyA6ICdtZXRyaWNzJ1wiIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZCc6IGRhdGE/Lm1ldHJpY3M/LmJhY2tncm91bmR9XCI+XG4gICAgICAgIDxzYi11aWMtZGF0YS1wb2ludHMgXG4gICAgICAgICAgW3Byb3ZpZGVySWRdPVwib3JnSWRcIiBcbiAgICAgICAgICBbZmV0Y2hEYXRhRnJvbUFwaV09XCJ0cnVlXCJcbiAgICAgICAgICBbb2JqZWN0RGF0YV09XCJkYXRhPy5tZXRyaWNzPy5kYXRhXCIgXG4gICAgICAgICAgW2xheW91dFR5cGVdPVwiaXNNb2JpbGUgPyAnc2luZ2xlUm93JyA6ICdzaW5nbGVGbGV4ZVJvdydcIiBcbiAgICAgICAgICBbcGFnZUxheW91dF09XCInbWRvJ1wiIFxuICAgICAgICAgIFtzbHdDb25maWddPVwic2x3Q29uZmlnXCJcbiAgICAgICAgICAobWV0cmljQ2xpY2spPVwiZW1pdEV2ZW50KCdtZXRyaWMtY2xpY2snLCAkZXZlbnQpXCI+XG4gICAgICAgIDwvc2ItdWljLWRhdGEtcG9pbnRzPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNFZGl0XCIgY2xhc3M9XCJlZGl0LWljb24gbWV0cmljcy1lZGl0XCIgKGNsaWNrKT1cIm9wZW5FZGl0b3IoJ21ldHJpY3MnLCAnTWV0cmljcycsIGRhdGE/Lm1ldHJpY3MpXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19