@sunbird-cb/utils 1.0.19-ang-13-16 → 1.0.20-ang-13-16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/image-crop/image-crop.component.mjs +172 -0
- package/esm2022/lib/components/image-crop/image-crop.module.mjs +55 -0
- package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.mjs +87 -0
- package/esm2022/lib/directives/class-change-on-scroll/class-change-on-scroll.module.mjs +20 -0
- package/{esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js → esm2022/lib/directives/default-thumbnail/default-thumbnail.directive.mjs} +4 -4
- package/esm2022/lib/directives/default-thumbnail/default-thumbnail.module.mjs +20 -0
- package/{esm2015/lib/directives/image-responsive/image-responsive.directive.js → esm2022/lib/directives/image-responsive/image-responsive.directive.mjs} +4 -4
- package/esm2022/lib/directives/image-responsive/image-responsive.module.mjs +20 -0
- package/{esm2015/lib/directives/in-view-port/in-view-port.directive.js → esm2022/lib/directives/in-view-port/in-view-port.directive.mjs} +4 -4
- package/esm2022/lib/directives/in-view-port/in-view-port.module.mjs +20 -0
- package/esm2022/lib/directives/navigation/navigation.directive.mjs +43 -0
- package/esm2022/lib/directives/navigation/navigation.module.mjs +20 -0
- package/{esm2015/lib/directives/permission/permission.directive.js → esm2022/lib/directives/permission/permission.directive.mjs} +4 -4
- package/esm2022/lib/directives/permission/permission.module.mjs +20 -0
- package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.component.mjs +96 -0
- package/esm2022/lib/helpers/horizontal-scroller/horizontal-scroller.module.mjs +32 -0
- package/esm2022/lib/helpers/logout/logout.component.mjs +44 -0
- package/esm2022/lib/helpers/logout/logout.module.mjs +27 -0
- package/esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.mjs +18 -0
- package/{esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js → esm2022/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js → esm2022/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js → esm2022/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js → esm2022/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-filter/pipe-filter.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js → esm2022/lib/pipes/pipe-filter/pipe-filter.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js → esm2022/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js → esm2022/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js → esm2022/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js → esm2022/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js → esm2022/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-order-by/pipe-order-by.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js → esm2022/lib/pipes/pipe-order-by/pipe-order-by.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js → esm2022/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js → esm2022/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.mjs} +4 -4
- package/esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.mjs +20 -0
- package/{esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js → esm2022/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.mjs} +4 -4
- package/{esm2015/lib/resolvers/explore-detail.resolver.js → esm2022/lib/resolvers/explore-detail.resolver.mjs} +4 -4
- package/{esm2015/lib/resolvers/marketing-offering.resolve.js → esm2022/lib/resolvers/marketing-offering.resolve.mjs} +4 -4
- package/{esm2015/lib/resolvers/page.resolver.js → esm2022/lib/resolvers/page.resolver.mjs} +4 -4
- package/esm2022/lib/services/auth-keycloak.service.mjs +52 -0
- package/esm2022/lib/services/auth-microsoft.service.mjs +173 -0
- package/{esm2015/lib/services/configurations.service.js → esm2022/lib/services/configurations.service.mjs} +4 -4
- package/esm2022/lib/services/event.service.mjs +204 -0
- package/{esm2015/lib/services/logger.service.js → esm2022/lib/services/logger.service.mjs} +4 -4
- package/esm2022/lib/services/subapplication-respond.service.mjs +76 -0
- package/esm2022/lib/services/telemetry.service.mjs +502 -0
- package/esm2022/lib/services/user-preference.service.mjs +92 -0
- package/{esm2015/lib/services/utility.service.js → esm2022/lib/services/utility.service.mjs} +4 -4
- package/{esm2015/lib/services/value.service.js → esm2022/lib/services/value.service.mjs} +4 -4
- package/esm2022/lib/services/widget-content.service.mjs +182 -0
- package/{fesm2015/sunbird-cb-utils.js → fesm2022/sunbird-cb-utils.mjs} +573 -545
- package/fesm2022/sunbird-cb-utils.mjs.map +1 -0
- package/lib/components/image-crop/image-crop.component.d.ts +3 -3
- package/lib/components/image-crop/image-crop.component.d.ts.map +1 -1
- package/lib/components/image-crop/image-crop.module.d.ts +6 -6
- package/lib/components/image-crop/image-crop.module.d.ts.map +1 -1
- package/lib/constants/misc.constants.d.ts +2 -2
- package/lib/constants/misc.constants.d.ts.map +1 -1
- package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +1 -1
- package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +1 -1
- package/lib/directives/image-responsive/image-responsive.directive.d.ts +1 -1
- package/lib/directives/in-view-port/in-view-port.directive.d.ts +1 -1
- package/lib/directives/navigation/navigation.directive.d.ts +1 -1
- package/lib/directives/permission/permission.directive.d.ts +1 -1
- package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +1 -1
- package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +3 -3
- package/lib/helpers/logout/logout.component.d.ts +2 -2
- package/lib/helpers/logout/logout.component.d.ts.map +1 -1
- package/lib/helpers/logout/logout.module.d.ts +3 -3
- package/lib/helpers/logout/logout.module.d.ts.map +1 -1
- package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +1 -1
- package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +1 -1
- package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +1 -1
- package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +1 -1
- package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +1 -1
- package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +1 -1
- package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +1 -1
- package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +1 -1
- package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +1 -1
- package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +1 -1
- package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +5 -5
- package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +1 -1
- package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +1 -1
- package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +1 -1
- package/lib/resolvers/explore-detail.resolver.d.ts +2 -2
- package/lib/resolvers/explore-detail.resolver.d.ts.map +1 -1
- package/lib/resolvers/marketing-offering.resolve.d.ts +2 -2
- package/lib/resolvers/marketing-offering.resolve.d.ts.map +1 -1
- package/lib/resolvers/page.resolver.d.ts +2 -2
- package/lib/resolvers/page.resolver.d.ts.map +1 -1
- package/lib/services/widget-resolver.model.d.ts +1 -1
- package/lib/services/widget-resolver.model.d.ts.map +1 -1
- package/package.json +26 -18
- package/sunbird-cb-utils-1.0.20-ang-13-16.tgz +0 -0
- package/bundles/sunbird-cb-utils.umd.js +0 -4785
- package/bundles/sunbird-cb-utils.umd.js.map +0 -1
- package/esm2015/lib/components/image-crop/image-crop.component.js +0 -166
- package/esm2015/lib/components/image-crop/image-crop.module.js +0 -58
- package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +0 -87
- package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +0 -22
- package/esm2015/lib/directives/default-thumbnail/default-thumbnail.module.js +0 -22
- package/esm2015/lib/directives/image-responsive/image-responsive.module.js +0 -22
- package/esm2015/lib/directives/in-view-port/in-view-port.module.js +0 -22
- package/esm2015/lib/directives/navigation/navigation.directive.js +0 -43
- package/esm2015/lib/directives/navigation/navigation.module.js +0 -22
- package/esm2015/lib/directives/permission/permission.module.js +0 -22
- package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +0 -100
- package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +0 -34
- package/esm2015/lib/helpers/logout/logout.component.js +0 -48
- package/esm2015/lib/helpers/logout/logout.module.js +0 -30
- package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +0 -18
- package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +0 -22
- package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +0 -22
- package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +0 -22
- package/esm2015/lib/pipes/pipe-filter/pipe-filter.module.js +0 -22
- package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +0 -22
- package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +0 -22
- package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +0 -22
- package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +0 -22
- package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +0 -22
- package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.module.js +0 -22
- package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +0 -22
- package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +0 -22
- package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +0 -22
- package/esm2015/lib/services/auth-keycloak.service.js +0 -57
- package/esm2015/lib/services/auth-microsoft.service.js +0 -184
- package/esm2015/lib/services/event.service.js +0 -199
- package/esm2015/lib/services/subapplication-respond.service.js +0 -70
- package/esm2015/lib/services/telemetry.service.js +0 -434
- package/esm2015/lib/services/user-preference.service.js +0 -82
- package/esm2015/lib/services/widget-content.service.js +0 -182
- package/fesm2015/sunbird-cb-utils.js.map +0 -1
- package/sunbird-cb-utils-1.0.19-ang-13-16.tgz +0 -0
- /package/{esm2015/lib/constants/features.enum.js → esm2022/lib/constants/features.enum.mjs} +0 -0
- /package/{esm2015/lib/constants/instances.enum.js → esm2022/lib/constants/instances.enum.mjs} +0 -0
- /package/{esm2015/lib/constants/misc.constants.js → esm2022/lib/constants/misc.constants.mjs} +0 -0
- /package/{esm2015/lib/helpers/functions/getStringifiedQueryParams.js → esm2022/lib/helpers/functions/getStringifiedQueryParams.mjs} +0 -0
- /package/{esm2015/lib/models/contentRating.model.js → esm2022/lib/models/contentRating.model.mjs} +0 -0
- /package/{esm2015/lib/resolvers/page.constant.js → esm2022/lib/resolvers/page.constant.mjs} +0 -0
- /package/{esm2015/lib/resolvers/page.model.js → esm2022/lib/resolvers/page.model.mjs} +0 -0
- /package/{esm2015/lib/resolvers/resolver.model.js → esm2022/lib/resolvers/resolver.model.mjs} +0 -0
- /package/{esm2015/lib/services/card-content.model.js → esm2022/lib/services/card-content.model.mjs} +0 -0
- /package/{esm2015/lib/services/configurations.model.js → esm2022/lib/services/configurations.model.mjs} +0 -0
- /package/{esm2015/lib/services/content-strip-multiple.model.js → esm2022/lib/services/content-strip-multiple.model.mjs} +0 -0
- /package/{esm2015/lib/services/event.model.js → esm2022/lib/services/event.model.mjs} +0 -0
- /package/{esm2015/lib/services/ms-office.model.js → esm2022/lib/services/ms-office.model.mjs} +0 -0
- /package/{esm2015/lib/services/user-preference.model.js → esm2022/lib/services/user-preference.model.mjs} +0 -0
- /package/{esm2015/lib/services/widget-content.model.js → esm2022/lib/services/widget-content.model.mjs} +0 -0
- /package/{esm2015/lib/services/widget-resolver.model.js → esm2022/lib/services/widget-resolver.model.mjs} +0 -0
- /package/{esm2015/lib/services/widget-search.model.js → esm2022/lib/services/widget-search.model.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
- /package/{esm2015/sunbird-cb-utils.js → esm2022/sunbird-cb-utils.mjs} +0 -0
- /package/{sunbird-cb-utils.d.ts → index.d.ts} +0 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { WsEvents } from './event.model';
|
|
4
|
+
import * as _ from 'lodash';
|
|
5
|
+
import * as _moment from 'moment';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./utility.service";
|
|
8
|
+
const moment = _moment;
|
|
9
|
+
export class EventService {
|
|
10
|
+
constructor(utilitySvc, environment) {
|
|
11
|
+
this.utilitySvc = utilitySvc;
|
|
12
|
+
this.todaysEvents = [];
|
|
13
|
+
this.eventsSubject = new Subject();
|
|
14
|
+
this.events$ = this.eventsSubject.asObservable();
|
|
15
|
+
this.eventsChatbotSubject = new Subject();
|
|
16
|
+
this.chatbotEvents$ = this.eventsChatbotSubject.asObservable();
|
|
17
|
+
this.eventsGetStartSubject = new Subject();
|
|
18
|
+
this.getStartEvents$ = this.eventsGetStartSubject.asObservable();
|
|
19
|
+
this.eventsPRSubject = new Subject();
|
|
20
|
+
this.getPREvents$ = this.eventsPRSubject.asObservable();
|
|
21
|
+
this.environment = environment;
|
|
22
|
+
}
|
|
23
|
+
dispatchEvent(event) {
|
|
24
|
+
event.pageContext = this.getContext(event.pageContext);
|
|
25
|
+
this.eventsSubject.next(event);
|
|
26
|
+
}
|
|
27
|
+
dispatchChatbotEvent(event) {
|
|
28
|
+
this.eventsChatbotSubject.next(event);
|
|
29
|
+
}
|
|
30
|
+
dispatchGetStartedEvent(event) {
|
|
31
|
+
this.eventsGetStartSubject.next(event);
|
|
32
|
+
}
|
|
33
|
+
dispatchPlatformRatingEvent(event) {
|
|
34
|
+
this.eventsPRSubject.next(event);
|
|
35
|
+
}
|
|
36
|
+
raiseInteractTelemetry(edata, object, pageContext) {
|
|
37
|
+
this.dispatchEvent({
|
|
38
|
+
eventType: WsEvents.WsEventType.Telemetry,
|
|
39
|
+
eventLogLevel: WsEvents.WsEventLogLevel.Info,
|
|
40
|
+
data: {
|
|
41
|
+
edata,
|
|
42
|
+
object,
|
|
43
|
+
pageContext: this.getContext(pageContext),
|
|
44
|
+
eventSubType: WsEvents.EnumTelemetrySubType.Interact,
|
|
45
|
+
},
|
|
46
|
+
from: '',
|
|
47
|
+
to: 'Telemetry',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
raiseFeedbackTelemetry(edata, object, from) {
|
|
51
|
+
this.dispatchEvent({
|
|
52
|
+
eventType: WsEvents.WsEventType.Telemetry,
|
|
53
|
+
eventLogLevel: WsEvents.WsEventLogLevel.Info,
|
|
54
|
+
data: {
|
|
55
|
+
edata,
|
|
56
|
+
object,
|
|
57
|
+
eventSubType: WsEvents.EnumTelemetrySubType.Feedback,
|
|
58
|
+
},
|
|
59
|
+
from: from || '',
|
|
60
|
+
to: 'Telemetry',
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
raiseCustomImpression(object, pageContext) {
|
|
64
|
+
this.dispatchEvent({
|
|
65
|
+
eventType: WsEvents.WsEventType.Telemetry,
|
|
66
|
+
eventLogLevel: WsEvents.WsEventLogLevel.Info,
|
|
67
|
+
data: {
|
|
68
|
+
object,
|
|
69
|
+
pageContext: this.getContext(pageContext),
|
|
70
|
+
eventSubType: WsEvents.EnumTelemetrySubType.Impression,
|
|
71
|
+
},
|
|
72
|
+
from: '',
|
|
73
|
+
to: 'Telemetry',
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
getContext(pageContext) {
|
|
77
|
+
const routeDataContext = this.utilitySvc.routeData;
|
|
78
|
+
const finalContext = {
|
|
79
|
+
pageId: routeDataContext.pageId,
|
|
80
|
+
module: routeDataContext.module,
|
|
81
|
+
};
|
|
82
|
+
if (pageContext) {
|
|
83
|
+
if (pageContext.pageIdExt) {
|
|
84
|
+
finalContext.pageId = `${routeDataContext.pageId}_${pageContext.pageIdExt}`;
|
|
85
|
+
}
|
|
86
|
+
else if (pageContext.pageId) {
|
|
87
|
+
finalContext.pageId = pageContext.pageId;
|
|
88
|
+
}
|
|
89
|
+
if (pageContext.module) {
|
|
90
|
+
finalContext.module = pageContext.module;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return finalContext;
|
|
94
|
+
}
|
|
95
|
+
handleTabTelemetry(subType, data, object) {
|
|
96
|
+
this.raiseInteractTelemetry({
|
|
97
|
+
subType,
|
|
98
|
+
type: WsEvents.EnumInteractTypes.CLICK,
|
|
99
|
+
id: `${_.camelCase(data.label)}-tab`,
|
|
100
|
+
}, {
|
|
101
|
+
...object
|
|
102
|
+
}, {
|
|
103
|
+
pageIdExt: `${_.camelCase(data.label)}-tab`,
|
|
104
|
+
});
|
|
105
|
+
this.raiseCustomImpression({
|
|
106
|
+
context: {
|
|
107
|
+
position: data.index,
|
|
108
|
+
},
|
|
109
|
+
...object
|
|
110
|
+
}, {
|
|
111
|
+
pageIdExt: `${_.camelCase(data.label)}-tab`,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
getPublicUrl(url) {
|
|
115
|
+
const mainUrl = url.split('/content').pop() || '';
|
|
116
|
+
return `${this.environment.contentHost}/${this.environment.contentBucket}/content${mainUrl}`;
|
|
117
|
+
}
|
|
118
|
+
allEventDateFormat(datetime) {
|
|
119
|
+
const date = new Date(datetime).getDate();
|
|
120
|
+
const year = new Date(datetime).getFullYear();
|
|
121
|
+
const month = new Date(datetime).getMonth();
|
|
122
|
+
const hours = new Date(datetime).getHours();
|
|
123
|
+
const minutes = new Date(datetime).getMinutes();
|
|
124
|
+
const seconds = new Date(datetime).getSeconds();
|
|
125
|
+
const formatedDate = new Date(year, month, date, hours, minutes, seconds, 0);
|
|
126
|
+
const format = 'YYYY-MM-DD';
|
|
127
|
+
const readableDateMonth = moment(formatedDate).format(format);
|
|
128
|
+
const finalDateTimeValue = `${readableDateMonth}`;
|
|
129
|
+
return finalDateTimeValue;
|
|
130
|
+
}
|
|
131
|
+
compareDate(startDate) {
|
|
132
|
+
const now = new Date();
|
|
133
|
+
const day = ('0' + (new Date().getDate())).slice(-2);
|
|
134
|
+
const year = new Date().getFullYear();
|
|
135
|
+
const month = ('0' + (now.getMonth() + 1)).slice(-2);
|
|
136
|
+
const todaysdate = `${year}-${month}-${day}`;
|
|
137
|
+
if (startDate === todaysdate) {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
customDateFormat(date, time) {
|
|
143
|
+
const stime = time.split('+')[0];
|
|
144
|
+
const hour = stime.substr(0, 2);
|
|
145
|
+
const min = stime.substr(2, 3);
|
|
146
|
+
return `${date} ${hour}${min}`;
|
|
147
|
+
}
|
|
148
|
+
setEventListData(eventObj) {
|
|
149
|
+
if (eventObj !== undefined) {
|
|
150
|
+
this.todaysEvents = [];
|
|
151
|
+
const data = eventObj;
|
|
152
|
+
Object.keys(data).forEach((index) => {
|
|
153
|
+
const obj = data[index];
|
|
154
|
+
const floor = Math.floor;
|
|
155
|
+
const hours = floor(obj.duration / 60);
|
|
156
|
+
const minutes = obj.duration % 60;
|
|
157
|
+
const duration = (hours === 0) ? ((minutes === 0) ? '---' : `${minutes} minutes`) : (minutes === 0) ? (hours === 1) ?
|
|
158
|
+
`${hours} hour` : `${hours} hours` : (hours === 1) ? `${hours} hour ${minutes} minutes` :
|
|
159
|
+
`${hours} hours ${minutes} minutes`;
|
|
160
|
+
const creatordata = obj.creatorDetails !== undefined ? obj.creatorDetails : [];
|
|
161
|
+
const str = creatordata && creatordata.length > 0 ? creatordata.replace(/\\/g, '') : [];
|
|
162
|
+
const creatorDetails = str && str.length > 0 ? JSON.parse(str) : creatordata;
|
|
163
|
+
const stime = obj.startTime.split('+')[0];
|
|
164
|
+
const hour = stime.substr(0, 2);
|
|
165
|
+
const min = stime.substr(2, 3);
|
|
166
|
+
const starttime = `${hour}${min}`;
|
|
167
|
+
const etime = obj.endTime.split('+')[0];
|
|
168
|
+
const ehour = etime.substr(0, 2);
|
|
169
|
+
const emin = etime.substr(2, 3);
|
|
170
|
+
const endtime = `${ehour}${emin}`;
|
|
171
|
+
const eventDataObj = {
|
|
172
|
+
event: obj,
|
|
173
|
+
eventName: obj.name,
|
|
174
|
+
eventStartTime: starttime,
|
|
175
|
+
eventEndTime: endtime,
|
|
176
|
+
eventStartDate: obj.startDate,
|
|
177
|
+
eventCreatedOn: this.allEventDateFormat(obj.createdOn),
|
|
178
|
+
eventDuration: duration,
|
|
179
|
+
eventjoined: creatorDetails.length,
|
|
180
|
+
eventThumbnail: obj.appIcon && (obj.appIcon !== null || obj.appIcon !== undefined) ?
|
|
181
|
+
this.getPublicUrl(obj.appIcon) :
|
|
182
|
+
'/assets/icons/Events_default.png',
|
|
183
|
+
pastevent: false,
|
|
184
|
+
};
|
|
185
|
+
const isToday = this.compareDate(obj.startDate);
|
|
186
|
+
if (isToday) {
|
|
187
|
+
this.todaysEvents.push(eventDataObj);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventService, deps: [{ token: i1.UtilityService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
193
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventService, providedIn: 'root' }); }
|
|
194
|
+
}
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventService, decorators: [{
|
|
196
|
+
type: Injectable,
|
|
197
|
+
args: [{
|
|
198
|
+
providedIn: 'root',
|
|
199
|
+
}]
|
|
200
|
+
}], ctorParameters: function () { return [{ type: i1.UtilityService }, { type: undefined, decorators: [{
|
|
201
|
+
type: Inject,
|
|
202
|
+
args: ['environment']
|
|
203
|
+
}] }]; } });
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi91dGlscy9zcmMvbGliL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBR3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFBO0FBQzNCLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFBOzs7QUFDakMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFBO0FBSXRCLE1BQU0sT0FBTyxZQUFZO0lBaUJ2QixZQUNVLFVBQTBCLEVBQ1gsV0FBZ0I7UUFEL0IsZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFqQnBDLGlCQUFZLEdBQVEsRUFBRSxDQUFBO1FBRWQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQTtRQUN2RCxZQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUUxQyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQTtRQUM5RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUV4RCwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQTtRQUMvRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUUxRCxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFBO1FBQ3pELGlCQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQVF2RCxJQUFJLENBQUMsV0FBVyxHQUFH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QUMsQ0FBQzt3QkFDaEMsa0NBQWtDO29CQUNwQyxTQUFTLEVBQUUsS0FBSztpQkFDakIsQ0FBQTtnQkFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtnQkFDL0MsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7aUJBQ3JDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7U0FDSDtJQUNILENBQUM7K0dBcFBZLFlBQVksZ0RBbUJiLGFBQWE7bUhBbkJaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBb0JJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBXc0V2ZW50cyB9IGZyb20gJy4vZXZlbnQubW9kZWwnXHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi91dGlsaXR5LnNlcnZpY2UnXHJcbi8qIHRzbGludDpkaXNhYmxlKi9cclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnXHJcbmltcG9ydCAqIGFzIF9tb21lbnQgZnJvbSAnbW9tZW50J1xyXG5jb25zdCBtb21lbnQgPSBfbW9tZW50XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudFNlcnZpY2Uge1xyXG4gIHRvZGF5c0V2ZW50czogYW55ID0gW11cclxuICBcclxuICBwcml2YXRlIGV2ZW50c1N1YmplY3QgPSBuZXcgU3ViamVjdDxXc0V2ZW50cy5JV3NFdmVudHM8YW55Pj4oKVxyXG4gIHB1YmxpYyBldmVudHMkID0gdGhpcy5ldmVudHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXHJcblxyXG4gIHByaXZhdGUgZXZlbnRzQ2hhdGJvdFN1YmplY3QgPSBuZXcgU3ViamVjdDxXc0V2ZW50cy5JV3NFdmVudHM8YW55Pj4oKVxyXG4gIHB1YmxpYyBjaGF0Ym90RXZlbnRzJCA9IHRoaXMuZXZlbnRzQ2hhdGJvdFN1YmplY3QuYXNPYnNlcnZhYmxlKClcclxuXHJcbiAgcHJpdmF0ZSBldmVudHNHZXRTdGFydFN1YmplY3QgPSBuZXcgU3ViamVjdDxXc0V2ZW50cy5JV3NFdmVudHM8YW55Pj4oKVxyXG4gIHB1YmxpYyBnZXRTdGFydEV2ZW50cyQgPSB0aGlzLmV2ZW50c0dldFN0YXJ0U3ViamVjdC5hc09ic2VydmFibGUoKVxyXG5cclxuICBwcml2YXRlIGV2ZW50c1BSU3ViamVjdCA9IG5ldyBTdWJqZWN0PFdzRXZlbnRzLklXc0V2ZW50czxhbnk+PigpXHJcbiAgcHVibGljIGdldFBSRXZlbnRzJCA9IHRoaXMuZXZlbnRzUFJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXHJcbiAgZW52aXJvbm1lbnQ6IGFueVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTdmM6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudDogYW55LFxyXG4gICkge1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50XHJcbiAgICAvLyB0aGlzLmZvY3VzQ2hhbmdlRXZlbnRMaXN0ZW5lcigpXHJcbiAgfVxyXG5cclxuICBkaXNwYXRjaEV2ZW50PFQ+KGV2ZW50OiBXc0V2ZW50cy5JV3NFdmVudHM8VD4pIHtcclxuICAgIGV2ZW50LnBhZ2VDb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KGV2ZW50LnBhZ2VDb250ZXh0KVxyXG4gICAgdGhpcy5ldmVudHNTdWJqZWN0Lm5leHQoZXZlbnQpXHJcbiAgfVxyXG5cclxuICBkaXNwYXRjaENoYXRib3RFdmVudDxUPihldmVudDogV3NFdmVudHMuSVdzRXZlbnRzPFQ+KSB7XHJcbiAgICB0aGlzLmV2ZW50c0NoYXRib3RTdWJqZWN0Lm5leHQoZXZlbnQpXHJcbiAgfVxyXG5cclxuICBkaXNwYXRjaEdldFN0YXJ0ZWRFdmVudDxUPihldmVudDogV3NFdmVudHMuSVdzRXZlbnRzPFQ+KSB7XHJcbiAgICB0aGlzLmV2ZW50c0dldFN0YXJ0U3ViamVjdC5uZXh0KGV2ZW50KVxyXG4gIH1cclxuXHJcbiAgZGlzcGF0Y2hQbGF0Zm9ybVJhdGluZ0V2ZW50PFQ+KGV2ZW50OiBXc0V2ZW50cy5JV3NFdmVudHM8VD4pIHtcclxuICAgIHRoaXMuZXZlbnRzUFJTdWJqZWN0Lm5leHQoZXZlbnQpXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vIGhlbHBlciBmdW5jdGlvbnNcclxuICByYWlzZUludGVyYWN0VGVsZW1ldHJ5KGVkYXRhOiBXc0V2ZW50cy5JVGVsZW1ldHJ5RWRhdGEsIG9iamVjdDogYW55LCBwYWdlQ29udGV4dD86IFdzRXZlbnRzLklUZWxlbWV0cnlQYWdlQ29udGV4dCkge1xyXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50PFdzRXZlbnRzLklXc0V2ZW50VGVsZW1ldHJ5SW50ZXJhY3Q+KHtcclxuICAgICAgZXZlbnRUeXBlOiBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnksXHJcbiAgICAgIGV2ZW50TG9nTGV2ZWw6IFdzRXZlbnRzLldzRXZlbnRMb2dMZXZlbC5JbmZvLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZWRhdGEsXHJcbiAgICAgICAgb2JqZWN0LFxyXG4gICAgICAgIHBhZ2VDb250ZXh0OiB0aGlzLmdldENvbnRleHQocGFnZUNvbnRleHQpLFxyXG4gICAgICAgIGV2ZW50U3ViVHlwZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSW50ZXJhY3QsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZyb206ICcnLFxyXG4gICAgICB0bzogJ1RlbGVtZXRyeScsXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmFpc2VGZWVkYmFja1RlbGVtZXRyeShlZGF0YTogV3NFdmVudHMuSVRlbGVtZXRyeUVkYXRhLCBvYmplY3Q6IGFueSwgZnJvbT86IHN0cmluZykge1xyXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50PFdzRXZlbnRzLklXc0V2ZW50VGVsZW1ldHJ5SW50ZXJhY3Q+KHtcclxuICAgICAgZXZlbnRUeXBlOiBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnksXHJcbiAgICAgIGV2ZW50TG9nTGV2ZWw6IFdzRXZlbnRzLldzRXZlbnRMb2dMZXZlbC5JbmZvLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZWRhdGEsXHJcbiAgICAgICAgb2JqZWN0LFxyXG4gICAgICAgIGV2ZW50U3ViVHlwZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuRmVlZGJhY2ssXHJcbiAgICAgIH0sXHJcbiAgICAgIGZyb206IGZyb20gfHwgJycsXHJcbiAgICAgIHRvOiAnVGVsZW1ldHJ5JyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBSYWlzZSBjdXN0b20gaW1wcmVzc2lvbiBldmVudHMgZWc6b24gdGFiIGNoYW5nZVxyXG4gIHJhaXNlQ3VzdG9tSW1wcmVzc2lvbihvYmplY3Q6IGFueSwgcGFnZUNvbnRleHQ/OiBXc0V2ZW50cy5JVGVsZW1ldHJ5UGFnZUNvbnRleHQpIHtcclxuICAgIHRoaXMuZGlzcGF0Y2hFdmVudDxXc0V2ZW50cy5JV3NFdmVudFRlbGVtZXRyeUltcHJlc3Npb24+KHtcclxuICAgICAgZXZlbnRUeXBlOiBXc0V2ZW50cy5Xc0V2ZW50VHlwZS5UZWxlbWV0cnksXHJcbiAgICAgIGV2ZW50TG9nTGV2ZWw6IFdzRXZlbnRzLldzRXZlbnRMb2dMZXZlbC5JbmZvLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgb2JqZWN0LFxyXG4gICAgICAgIHBhZ2VDb250ZXh0OiB0aGlzLmdldENvbnRleHQocGFnZUNvbnRleHQpLFxyXG4gICAgICAgIGV2ZW50U3ViVHlwZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSW1wcmVzc2lvbixcclxuICAgICAgfSxcclxuICAgICAgZnJvbTogJycsXHJcbiAgICAgIHRvOiAnVGVsZW1ldHJ5JyxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIGZvY3VzQ2hhbmdlRXZlbnRMaXN0ZW5lcigpIHtcclxuICAvLyAgIGZyb21FdmVudCh3aW5kb3csICdmb2N1cycpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgLy8gICAgIHRoaXMucmFpc2VJbnRlcmFjdFRlbGVtZXRyeSgnZm9jdXMnLCAnZ2FpbmVkJywge30pXHJcbiAgLy8gICB9KVxyXG4gIC8vICAgZnJvbUV2ZW50KHdpbmRvdywgJ2JsdXInKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgICB0aGlzLnJhaXNlSW50ZXJhY3RUZWxlbWV0cnkoJ2ZvY3VzJywgJ2xvc3QnLCB7fSlcclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG5cclxuICAvLyBNZXRob2QgdG8gZ2V0IHRoZSBjb250ZXh0IGluZm9ybWF0aW9uIGFib3V0IHRoZSB0ZWxlbWV0cnkgaW50ZXJhY3QgZXZlbnRcclxuICBwcml2YXRlIGdldENvbnRleHQocGFnZUNvbnRleHQ6IFdzRXZlbnRzLklUZWxlbWV0cnlQYWdlQ29udGV4dCB8IHVuZGVmaW5lZCk6IFdzRXZlbnRzLklUZWxlbWV0cnlQYWdlQ29udGV4dCB7XHJcbiAgICBjb25zdCByb3V0ZURhdGFDb250ZXh0ID0gdGhpcy51dGlsaXR5U3ZjLnJvdXRlRGF0YVxyXG4gICAgLy8gaW5pdGlhbGl6ZSB3aXRoIHRoZSByb3V0ZSBkYXRhIGNvbmZpZ3VyYXRpb24gLSBjdXJyZW50IHJvdXRlJ3MgcGFnZUlEICYgbW9kdWxlXHJcbiAgICBjb25zdCBmaW5hbENvbnRleHQ6IFdzRXZlbnRzLklUZWxlbWV0cnlQYWdlQ29udGV4dCA9IHtcclxuICAgICAgcGFnZUlkOiByb3V0ZURhdGFDb250ZXh0LnBhZ2VJZCxcclxuICAgICAgbW9kdWxlOiByb3V0ZURhdGFDb250ZXh0Lm1vZHVsZSxcclxuICAgIH1cclxuICAgIGlmIChwYWdlQ29udGV4dCkge1xyXG4gICAgICAvLyBpZiBjb250ZXh0IGhhcyBwYWdlSWRFeHQsIGFwcGVuZCBpdCB0byB0aGUgcm91dGUncyBwYWdlSWRcclxuICAgICAgaWYgKHBhZ2VDb250ZXh0LnBhZ2VJZEV4dCkge1xyXG4gICAgICAgIGZpbmFsQ29udGV4dC5wYWdlSWQgPSBgJHtyb3V0ZURhdGFDb250ZXh0LnBhZ2VJZH1fJHtwYWdlQ29udGV4dC5wYWdlSWRFeHR9YFxyXG4gICAgICB9IGVsc2UgaWYgKHBhZ2VDb250ZXh0LnBhZ2VJZCkge1xyXG4gICAgICAgIC8vIGVsc2UgY29udGV4dCBoYXMgcGFnZUlkLCBvdmVycmlkZSBpdCB0byB0aGUgZmluYWwgcGFnZUlEXHJcbiAgICAgICAgZmluYWxDb250ZXh0LnBhZ2VJZCA9IHBhZ2VDb250ZXh0LnBhZ2VJZFxyXG4gICAgICB9XHJcbiAgICAgIC8vIGlmIGNvbnRleHQgaGFzIG1vZHVsZSwgb3ZlcnJpZGUgaXQgdG8gdGhlIGZpbmFsIG1vZHVsZVxyXG4gICAgICBpZiAocGFnZUNvbnRleHQubW9kdWxlKSB7XHJcbiAgICAgICAgZmluYWxDb250ZXh0Lm1vZHVsZSA9IHBhZ2VDb250ZXh0Lm1vZHVsZVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZpbmFsQ29udGV4dFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRhYlRlbGVtZXRyeShzdWJUeXBlOiBzdHJpbmcsIGRhdGE6IFdzRXZlbnRzLklUZWxlbWV0cnlUYWJEYXRhLCBvYmplY3Q/OmFueSkge1xyXG4gICAgLy8gcmFpc2UgYSB0YWIgY2xpY2sgaW50ZXJhY3QgZXZlbnRcclxuICAgIHRoaXMucmFpc2VJbnRlcmFjdFRlbGVtZXRyeShcclxuICAgICAge1xyXG4gICAgICAgIHN1YlR5cGUsXHJcbiAgICAgICAgdHlwZTogV3NFdmVudHMuRW51bUludGVyYWN0VHlwZXMuQ0xJQ0ssXHJcbiAgICAgICAgaWQ6IGAke18uY2FtZWxDYXNlKGRhdGEubGFiZWwpfS10YWJgLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgLy8gY29udGV4dDoge1xyXG4gICAgICAgIC8vICAgcG9zaXRpb246IGRhdGEuaW5kZXgsXHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICAuLi5vYmplY3RcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICBwYWdlSWRFeHQ6IGAke18uY2FtZWxDYXNlKGRhdGEubGFiZWwpfS10YWJgLFxyXG4gICAgfSlcclxuXHJcbiAgICAvLyByYWlzZSBhIHRhYiBjbGljayBpbXByZXNzaW9uIGV2ZW50XHJcbiAgICB0aGlzLnJhaXNlQ3VzdG9tSW1wcmVzc2lvbih7XHJcbiAgICAgIGNvbnRleHQ6IHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGRhdGEuaW5kZXgsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4ub2JqZWN0XHJcbiAgICAgIH0se1xyXG4gICAgICBwYWdlSWRFeHQ6IGAke18uY2FtZWxDYXNlKGRhdGEubGFiZWwpfS10YWJgLFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldFB1YmxpY1VybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBtYWluVXJsID0gdXJsLnNwbGl0KCcvY29udGVudCcpLnBvcCgpIHx8ICcnXHJcbiAgICByZXR1cm4gYCR7dGhpcy5lbnZpcm9ubWVudC5jb250ZW50SG9zdH0vJHt0aGlzLmVudmlyb25tZW50LmNvbnRlbnRCdWNrZXR9L2NvbnRlbnQke21haW5Vcmx9YFxyXG4gIH1cclxuXHJcbiAgYWxsRXZlbnREYXRlRm9ybWF0KGRhdGV0aW1lOiBhbnkpIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShkYXRldGltZSkuZ2V0RGF0ZSgpXHJcbiAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoZGF0ZXRpbWUpLmdldEZ1bGxZZWFyKClcclxuICAgIGNvbnN0IG1vbnRoID0gbmV3IERhdGUoZGF0ZXRpbWUpLmdldE1vbnRoKClcclxuICAgIGNvbnN0IGhvdXJzID0gbmV3IERhdGUoZGF0ZXRpbWUpLmdldEhvdXJzKClcclxuICAgIGNvbnN0IG1pbnV0ZXMgPSBuZXcgRGF0ZShkYXRldGltZSkuZ2V0TWludXRlcygpXHJcbiAgICBjb25zdCBzZWNvbmRzID0gbmV3IERhdGUoZGF0ZXRpbWUpLmdldFNlY29uZHMoKVxyXG4gICAgY29uc3QgZm9ybWF0ZWREYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRhdGUsIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzLCAwKVxyXG4gICAgLy8gbGV0IGZvcm1hdCA9ICdZWVlZLU1NLUREIGhoOm1tIGEnXHJcbiAgICAvLyBpZiAoIXRpbWVBbGxvdykge1xyXG4gICAgY29uc3QgZm9ybWF0ID0gJ1lZWVktTU0tREQnXHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCByZWFkYWJsZURhdGVNb250aCA9IG1vbWVudChmb3JtYXRlZERhdGUpLmZvcm1hdChmb3JtYXQpXHJcbiAgICBjb25zdCBmaW5hbERhdGVUaW1lVmFsdWUgPSBgJHtyZWFkYWJsZURhdGVNb250aH1gXHJcbiAgICByZXR1cm4gZmluYWxEYXRlVGltZVZhbHVlXHJcbiAgfVxyXG5cclxuICBjb21wYXJlRGF0ZShzdGFydERhdGU6IGFueSkge1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKVxyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItdGVtcGxhdGVcclxuICAgIGNvbnN0IGRheSA9ICAoJzAnICsgKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpKSkuc2xpY2UoLTIpXHJcbiAgICBjb25zdCB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLXRlbXBsYXRlXHJcbiAgICBjb25zdCBtb250aCA9ICgnMCcgKyAobm93LmdldE1vbnRoKCkgKyAxKSkuc2xpY2UoLTIpXHJcbiAgICBjb25zdCB0b2RheXNkYXRlID0gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YFxyXG4gICAgaWYgKHN0YXJ0RGF0ZSA9PT0gdG9kYXlzZGF0ZSkgIHtcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY3VzdG9tRGF0ZUZvcm1hdChkYXRlOiBhbnksIHRpbWU6IGFueSkge1xyXG4gICAgY29uc3Qgc3RpbWUgPSB0aW1lLnNwbGl0KCcrJylbMF1cclxuICAgIGNvbnN0IGhvdXIgPSBzdGltZS5zdWJzdHIoMCwgMilcclxuICAgIGNvbnN0IG1pbiA9IHN0aW1lLnN1YnN0cigyLCAzKVxyXG4gICAgcmV0dXJuIGAke2RhdGV9ICR7aG91cn0ke21pbn1gXHJcbiB9XHJcblxyXG5cclxuIHNldEV2ZW50TGlzdERhdGEoZXZlbnRPYmo6IGFueSkge1xyXG4gIGlmIChldmVudE9iaiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLnRvZGF5c0V2ZW50cyA9IFtdXHJcbiAgICBjb25zdCBkYXRhID0gZXZlbnRPYmpcclxuICAgLy8gY29uc29sZS5sb2coJ3N0cmlwIGNvbXAnLCBkYXRhKVxyXG4gICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCgoaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBvYmogPSBkYXRhW2luZGV4XVxyXG4gICAgICBjb25zdCBmbG9vciA9IE1hdGguZmxvb3JcclxuICAgICAgY29uc3QgaG91cnMgPSBmbG9vcihvYmouZHVyYXRpb24gLyA2MClcclxuICAgICAgY29uc3QgbWludXRlcyA9IG9iai5kdXJhdGlvbiAlIDYwXHJcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gKGhvdXJzID09PSAwKSA/ICgobWludXRlcyA9PT0gMCkgPyAnLS0tJyA6IGAke21pbnV0ZXN9IG1pbnV0ZXNgKSA6IChtaW51dGVzID09PSAwKSA/IChob3VycyA9PT0gMSkgP1xyXG4gICAgICAgIGAke2hvdXJzfSBob3VyYCA6IGAke2hvdXJzfSBob3Vyc2AgOiAoaG91cnMgPT09IDEpID8gYCR7aG91cnN9IGhvdXIgJHttaW51dGVzfSBtaW51dGVzYCA6XHJcbiAgICAgICAgYCR7aG91cnN9IGhvdXJzICR7bWludXRlc30gbWludXRlc2BcclxuICAgICAgY29uc3QgY3JlYXRvcmRhdGEgPSBvYmouY3JlYXRvckRldGFpbHMgIT09IHVuZGVmaW5lZCA/IG9iai5jcmVhdG9yRGV0YWlscyA6IFtdXHJcbiAgICAgIGNvbnN0IHN0ciA9IGNyZWF0b3JkYXRhICYmIGNyZWF0b3JkYXRhLmxlbmd0aCA+IDAgPyBjcmVhdG9yZGF0YS5yZXBsYWNlKC9cXFxcL2csICcnKSA6IFtdXHJcbiAgICAgIGNvbnN0IGNyZWF0b3JEZXRhaWxzID0gc3RyICYmIHN0ci5sZW5ndGggPiAwID8gSlNPTi5wYXJzZShzdHIpIDogY3JlYXRvcmRhdGFcclxuXHJcbiAgICAgIGNvbnN0IHN0aW1lID0gb2JqLnN0YXJ0VGltZS5zcGxpdCgnKycpWzBdXHJcbiAgICAgIGNvbnN0IGhvdXIgPSBzdGltZS5zdWJzdHIoMCwgMilcclxuICAgICAgY29uc3QgbWluID0gc3RpbWUuc3Vic3RyKDIsIDMpXHJcbiAgICAgIGNvbnN0IHN0YXJ0dGltZSA9IGAke2hvdXJ9JHttaW59YFxyXG5cclxuICAgICAgY29uc3QgZXRpbWUgPSBvYmouZW5kVGltZS5zcGxpdCgnKycpWzBdXHJcbiAgICAgIGNvbnN0IGVob3VyID0gZXRpbWUuc3Vic3RyKDAsIDIpXHJcbiAgICAgIGNvbnN0IGVtaW4gPSBldGltZS5zdWJzdHIoMiwgMylcclxuICAgICAgY29uc3QgZW5kdGltZSA9IGAke2Vob3VyfSR7ZW1pbn1gXHJcblxyXG4gICAgICBjb25zdCBldmVudERhdGFPYmogPSB7XHJcbiAgICAgICAgZXZlbnQ6IG9iaixcclxuICAgICAgICBldmVudE5hbWU6IG9iai5uYW1lLFxyXG4gICAgICAgIGV2ZW50U3RhcnRUaW1lOiBzdGFydHRpbWUsXHJcbiAgICAgICAgZXZlbnRFbmRUaW1lOiBlbmR0aW1lLFxyXG4gICAgICAgIGV2ZW50U3RhcnREYXRlOiBvYmouc3RhcnREYXRlLFxyXG4gICAgICAgIGV2ZW50Q3JlYXRlZE9uOiB0aGlzLmFsbEV2ZW50RGF0ZUZvcm1hdChvYmouY3JlYXRlZE9uKSxcclxuICAgICAgICBldmVudER1cmF0aW9uOiBkdXJhdGlvbixcclxuICAgICAgICBldmVudGpvaW5lZDogY3JlYXRvckRldGFpbHMubGVuZ3RoLFxyXG4gICAgICAgIGV2ZW50VGh1bWJuYWlsOiBvYmouYXBwSWNvbiAmJiAob2JqLmFwcEljb24gIT09IG51bGwgfHwgb2JqLmFwcEljb24gIT09IHVuZGVmaW5lZCkgP1xyXG4gICAgICAgICAgdGhpcy5nZXRQdWJsaWNVcmwob2JqLmFwcEljb24pIDpcclxuICAgICAgICAgICcvYXNzZXRzL2ljb25zL0V2ZW50c19kZWZhdWx0LnBuZycsXHJcbiAgICAgICAgcGFzdGV2ZW50OiBmYWxzZSxcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpc1RvZGF5ID0gdGhpcy5jb21wYXJlRGF0ZShvYmouc3RhcnREYXRlKVxyXG4gICAgICBpZiAoaXNUb2RheSkge1xyXG4gICAgICAgIHRoaXMudG9kYXlzRXZlbnRzLnB1c2goZXZlbnREYXRhT2JqKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG59XHJcbiJdfQ==
|
|
@@ -33,13 +33,13 @@ export class LoggerService {
|
|
|
33
33
|
console.info = noConsoleWithError;
|
|
34
34
|
console.error = noConsoleWithError;
|
|
35
35
|
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoggerService, deps: [{ token: i1.ConfigurationsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoggerService, providedIn: 'root' }); }
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
LoggerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoggerService, providedIn: 'root' });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LoggerService, decorators: [{
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LoggerService, decorators: [{
|
|
40
40
|
type: Injectable,
|
|
41
41
|
args: [{
|
|
42
42
|
providedIn: 'root',
|
|
43
43
|
}]
|
|
44
44
|
}], ctorParameters: function () { return [{ type: i1.ConfigurationsService }]; } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdXRpbHMvc3JjL2xpYi9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFPMUMsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBb0IsU0FBZ0M7UUFBaEMsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFFNUMsaUJBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFBO1FBQzVCLGdCQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtRQUMxQixlQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQTtRQUN4QixnQkFBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7UUFDMUIsY0FBUyxHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQU5lLENBQUM7SUFRekQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBO0lBQzFCLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFBO0lBQ3hFLENBQUM7SUFDRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3ZFLENBQUM7SUFDRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFBO0lBQ3hFLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTtZQUMvQixPQUFNO1NBQ1A7UUFDRCxNQUFNLGtCQUFrQixHQUFlLEdBQUcsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUE7UUFDN0QsQ0FBQyxDQUFBO1FBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQTtRQUNqQyxPQUFPLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFBO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUE7SUFDcEMsQ0FBQzsrR0FqQ1UsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTpuby1jb25zb2xlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb25zLnNlcnZpY2UnXHJcblxyXG50eXBlIGNvbnNvbGVGdW4gPSAoLi4uYXJnczogYW55KSA9PiB2b2lkXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dnZXJTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBjb25zb2xlRXJyb3IgPSBjb25zb2xlLmVycm9yXHJcbiAgcHJpdmF0ZSBjb25zb2xlSW5mbyA9IGNvbnNvbGUuaW5mb1xyXG4gIHByaXZhdGUgY29uc29sZUxvZyA9IGNvbnNvbGUubG9nXHJcbiAgcHJpdmF0ZSBjb25zb2xlV2FybiA9IGNvbnNvbGUud2FyblxyXG4gIHByaXZhdGUgbm9Db25zb2xlOiBjb25zb2xlRnVuID0gKCkgPT4geyB9XHJcblxyXG4gIGdldCBlcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnNvbGVFcnJvclxyXG4gIH1cclxuICBnZXQgaW5mbygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N2Yy5pc1Byb2R1Y3Rpb24gPyB0aGlzLm5vQ29uc29sZSA6IHRoaXMuY29uc29sZUluZm9cclxuICB9XHJcbiAgZ2V0IGxvZygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N2Yy5pc1Byb2R1Y3Rpb24gPyB0aGlzLm5vQ29uc29sZSA6IHRoaXMuY29uc29sZUxvZ1xyXG4gIH1cclxuICBnZXQgd2FybigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N2Yy5pc1Byb2R1Y3Rpb24gPyB0aGlzLm5vQ29uc29sZSA6IHRoaXMuY29uc29sZVdhcm5cclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbnNvbGVBY2Nlc3MoKSB7XHJcbiAgICBpZiAodGhpcy5jb25maWdTdmMuaXNQcm9kdWN0aW9uKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgY29uc3Qgbm9Db25zb2xlV2l0aEVycm9yOiBjb25zb2xlRnVuID0gKCkgPT4ge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnNvbGUgRnVuY3Rpb25zIFVzYWdlIEFyZSBOb3QgQWxsb3dlZC4nKVxyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2cgPSBub0NvbnNvbGVXaXRoRXJyb3JcclxuICAgIGNvbnNvbGUud2FybiA9IG5vQ29uc29sZVdpdGhFcnJvclxyXG4gICAgY29uc29sZS5pbmZvID0gbm9Db25zb2xlV2l0aEVycm9yXHJcbiAgICBjb25zb2xlLmVycm9yID0gbm9Db25zb2xlV2l0aEVycm9yXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { WsEvents } from './event.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./widget-content.service";
|
|
5
|
+
import * as i2 from "./event.service";
|
|
6
|
+
import * as i3 from "./telemetry.service";
|
|
7
|
+
export class SubapplicationRespondService {
|
|
8
|
+
constructor(contentSvc, eventSvc, teleSvc) {
|
|
9
|
+
this.contentSvc = contentSvc;
|
|
10
|
+
this.eventSvc = eventSvc;
|
|
11
|
+
this.teleSvc = teleSvc;
|
|
12
|
+
this.subAppname = '';
|
|
13
|
+
this.continueLearningData = null;
|
|
14
|
+
this.loaded = false;
|
|
15
|
+
}
|
|
16
|
+
continueLearningRespond(id, continueLearning) {
|
|
17
|
+
this.contentSvc.saveContinueLearning({
|
|
18
|
+
contextPathId: id,
|
|
19
|
+
resourceId: id,
|
|
20
|
+
data: JSON.stringify({ timestamp: Date.now(), data: continueLearning }),
|
|
21
|
+
dateAccessed: Date.now(),
|
|
22
|
+
})
|
|
23
|
+
.toPromise()
|
|
24
|
+
.catch();
|
|
25
|
+
}
|
|
26
|
+
telemetryEvents(tData) {
|
|
27
|
+
if (tData) {
|
|
28
|
+
switch (tData.eventId) {
|
|
29
|
+
case 'INTERACT':
|
|
30
|
+
this.eventSvc.dispatchEvent({
|
|
31
|
+
eventType: WsEvents.WsEventType.Telemetry,
|
|
32
|
+
eventLogLevel: WsEvents.WsEventLogLevel.Warn,
|
|
33
|
+
data: {
|
|
34
|
+
...tData.data,
|
|
35
|
+
eventSubType: WsEvents.EnumTelemetrySubType.Interact,
|
|
36
|
+
},
|
|
37
|
+
from: tData.subApplicationName,
|
|
38
|
+
to: 'Telemetry',
|
|
39
|
+
});
|
|
40
|
+
break;
|
|
41
|
+
case 'HEARTBEAT':
|
|
42
|
+
this.eventSvc.dispatchEvent({
|
|
43
|
+
eventType: WsEvents.WsEventType.Telemetry,
|
|
44
|
+
eventLogLevel: WsEvents.WsEventLogLevel.Trace,
|
|
45
|
+
data: {
|
|
46
|
+
...tData.data,
|
|
47
|
+
eventSubType: WsEvents.EnumTelemetrySubType.HeartBeat,
|
|
48
|
+
},
|
|
49
|
+
from: tData.subApplicationName,
|
|
50
|
+
to: 'Telemetry',
|
|
51
|
+
});
|
|
52
|
+
break;
|
|
53
|
+
case 'IMPRESSION':
|
|
54
|
+
this.teleSvc.externalImpression(tData.data);
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
unsubscribeResponse() {
|
|
62
|
+
this.subAppname = '';
|
|
63
|
+
this.continueLearningData = null;
|
|
64
|
+
this.contentWindowinfo = null;
|
|
65
|
+
this.loaded = false;
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubapplicationRespondService, deps: [{ token: i1.WidgetContentService }, { token: i2.EventService }, { token: i3.TelemetryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
68
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubapplicationRespondService, providedIn: 'root' }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubapplicationRespondService, decorators: [{
|
|
71
|
+
type: Injectable,
|
|
72
|
+
args: [{
|
|
73
|
+
providedIn: 'root',
|
|
74
|
+
}]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i1.WidgetContentService }, { type: i2.EventService }, { type: i3.TelemetryService }]; } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYXBwbGljYXRpb24tcmVzcG9uZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3V0aWxzL3NyYy9saWIvc2VydmljZXMvc3ViYXBwbGljYXRpb24tcmVzcG9uZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFLMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7QUFNeEMsTUFBTSxPQUFPLDRCQUE0QjtJQUt2QyxZQUVVLFVBQWdDLEVBSWhDLFFBQXNCLEVBQ3RCLE9BQXlCO1FBTHpCLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBSWhDLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFYbkMsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLHlCQUFvQixHQUFRLElBQUksQ0FBQTtRQUVoQyxXQUFNLEdBQUcsS0FBSyxDQUFBO0lBY2QsQ0FBQztJQTJGRCx1QkFBdUIsQ0FBQyxFQUFVLEVBQUUsZ0JBQXFCO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQ2xDO1lBQ0UsYUFBYSxFQUFFLEVBQUU7WUFDakIsVUFBVSxFQUFFLEVBQUU7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7WUFDdkUsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDekIsQ0FDRjthQUNFLFNBQVMsRUFBRTthQUNYLEtBQUssRUFBRSxDQUFBO0lBQ1osQ0FBQztJQUNELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksS0FBSyxFQUFFO1lBQ1QsUUFBUSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNyQixLQUFLLFVBQVU7b0JBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQXFDO3dCQUM5RCxTQUFTLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTO3dCQUN6QyxhQUFhLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJO3dCQUM1QyxJQUFJLEVBQUU7NEJBQ0osR0FBRyxLQUFLLENBQUMsSUFBSTs0QkFDYixZQUFZLEVBQUUsUUFBUSxDQUFDLG9CQUFvQixDQUFDLFFBQVE7eUJBQ3JEO3dCQUNELElBQUksRUFBRSxLQUFLLENBQUMsa0JBQWtCO3dCQUM5QixFQUFFLEVBQUUsV0FBVztxQkFDaEIsQ0FBQyxDQUFBO29CQUNGLE1BQUs7Z0JBQ1AsS0FBSyxXQUFXO29CQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFzQzt3QkFDL0QsU0FBUyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUzt3QkFDekMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSzt3QkFDN0MsSUFBSSxFQUFFOzRCQUNKLEdBQUcsS0FBSyxDQUFDLElBQUk7NEJBQ2IsWUFBWSxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTO3lCQUN0RDt3QkFDRCxJQUFJLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjt3QkFDOUIsRUFBRSxFQUFFLFdBQVc7cUJBQ2hCLENBQUMsQ0FBQTtvQkFDRixNQUFLO2dCQUNQLEtBQUssWUFBWTtvQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDM0MsTUFBSztnQkFDUDtvQkFDRSxNQUFLO2FBQ1I7U0FDRjtJQUNILENBQUM7SUFDRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ3JCLENBQUM7K0dBaktVLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07OzRGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuLy8gaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1jb250ZW50LnNlcnZpY2UnXHJcbi8vIGltcG9ydCB7IEF1dGhLZXljbG9ha1NlcnZpY2UgfSBmcm9tICcuL2F1dGgta2V5Y2xvYWsuc2VydmljZSdcclxuLy8gaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBXc0V2ZW50cyB9IGZyb20gJy4vZXZlbnQubW9kZWwnXHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSdcclxuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4vdGVsZW1ldHJ5LnNlcnZpY2UnXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJhcHBsaWNhdGlvblJlc3BvbmRTZXJ2aWNlIHtcclxuICBzdWJBcHBuYW1lID0gJydcclxuICBjb250aW51ZUxlYXJuaW5nRGF0YTogYW55ID0gbnVsbFxyXG4gIGNvbnRlbnRXaW5kb3dpbmZvOiBhbnlcclxuICBsb2FkZWQgPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgY29udGVudFN2YzogV2lkZ2V0Q29udGVudFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGtleUNsb2FrU3ZjOiBBdXRoS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAvLyBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBldmVudFN2YzogRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZWxlU3ZjOiBUZWxlbWV0cnlTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgLy8gdGhpcy5jaGFuZ2VDb250ZXh0cmVzcG9uZCgpXHJcbiAgICAvLyB0aGlzLmNvbmZpZ1N2Yy5wcmVmQ2hhbmdlTm90aWZpZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5jaGFuZ2VDb250ZXh0cmVzcG9uZCgpXHJcbiAgICAvLyB9KVxyXG4gIH1cclxuICAvLyBsb2FkZWRSZXNwb25kKGNvbnRlbnRXaW5kb3c6IGFueSwgYXBwbGljYXRpb25OYW1lOiBzdHJpbmcsIGlkPzogc3RyaW5nKSB7XHJcbiAgLy8gICBpZiAoaWQgJiYgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSAmJiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZpZXdNb2RlID09PSAnUkVTVU1FJykge1xyXG4gIC8vICAgICB0aGlzLmNvbnRpbnVlTGVhcm5pbmdEYXRhID0gbnVsbFxyXG4gIC8vICAgICB0aGlzLmNvbnRlbnRTdmMuZmV0Y2hDb250ZW50SGlzdG9yeShpZCkuc3Vic2NyaWJlKFxyXG4gIC8vICAgICAgIGRhdGEgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5jb250aW51ZUxlYXJuaW5nRGF0YSA9IGRhdGEuY29udGludWVEYXRhXHJcbiAgLy8gICAgICAgICBpZiAodGhpcy5jb25maWdTdmMgJiYgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUpIHtcclxuICAvLyAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lLnNwbGl0KCcgJywgMilbMF0gOiAnJ1xyXG4gIC8vICAgICAgICAgICBjb25zdCBsYXN0TmFtZSA9IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lID9cclxuICAvLyAgICAgICAgICAgICB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZS5zcGxpdCgnICcsIDIpWzFdIDogJydcclxuICAvLyAgICAgICAgICAgY29uc3Qgdmlld01vZGU6IHN0cmluZyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudmlld01vZGUgP1xyXG4gIC8vICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudmlld01vZGUgOiAnJ1xyXG4gIC8vICAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMua2V5Q2xvYWtTdmMudG9rZW5cclxuICAvLyAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XHJcbiAgLy8gICAgICAgICAgICAgc3ViQXBwbGljYXRpb25OYW1lOiBhcHBsaWNhdGlvbk5hbWUsXHJcbiAgLy8gICAgICAgICAgICAgcmVxdWVzdElkOiAnTE9BREVEJyxcclxuICAvLyAgICAgICAgICAgICBwYXJlbnRDb250ZXh0OiB7XHJcbiAgLy8gICAgICAgICAgICAgICBkb21haW5OYW1lOiB3aW5kb3cubG9jYXRpb24uaG9zdCxcclxuICAvLyAgICAgICAgICAgICAgIHVybDogdGhpcy5yb3V0ZXIudXJsLFxyXG4gIC8vICAgICAgICAgICAgICAgcm9vdE9yZzogdGhpcy5jb25maWdTdmMucm9vdE9yZyxcclxuICAvLyAgICAgICAgICAgICAgIHRoZW1lOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVUaGVtZU9iamVjdCA/IHtcclxuICAvLyAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QudGhlbWVOYW1lLFxyXG4gIC8vICAgICAgICAgICAgICAgICAuLi50aGlzLmNvbmZpZ1N2Yy5hY3RpdmVUaGVtZU9iamVjdC5jb2xvcixcclxuICAvLyAgICAgICAgICAgICAgIH0gOiAnJyxcclxuICAvLyAgICAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVGb250T2JqZWN0ID8gdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdC5iYXNlRm9udFNpemUgOiAnMTRweCcsXHJcbiAgLy8gICAgICAgICAgICAgICBsb2NhbGU6ICh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJlZmVyZW5jZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJlZmVyZW5jZS5zZWxlY3RlZExvY2FsZSkgfHwgJ2VuJyxcclxuICAvLyAgICAgICAgICAgICAgIGRhcmtNb2RlOiB0aGlzLmNvbmZpZ1N2Yy5pc0RhcmtNb2RlLFxyXG4gIC8vICAgICAgICAgICAgICAgc3ViQXBwbGljYXRpb25TdGFydE1vZGU6IHZpZXdNb2RlLnRvVXBwZXJDYXNlKCksXHJcbiAgLy8gICAgICAgICAgICAgICB1c2VyOiB7XHJcbiAgLy8gICAgICAgICAgICAgICAgIGZpcnN0TmFtZSxcclxuICAvLyAgICAgICAgICAgICAgICAgbGFzdE5hbWUsXHJcbiAgLy8gICAgICAgICAgICAgICAgIHRva2VuLFxyXG4gIC8vICAgICAgICAgICAgICAgICB1c2VySWQ6IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCA/IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCA6ICcnLFxyXG4gIC8vICAgICAgICAgICAgICAgICByb2xlczogdGhpcy5jb25maWdTdmMudXNlclJvbGVzID8gQXJyYXkuZnJvbSh0aGlzLmNvbmZpZ1N2Yy51c2VyUm9sZXMpIDogW10sXHJcbiAgLy8gICAgICAgICAgICAgICB9LFxyXG4gIC8vICAgICAgICAgICAgICAgaGVhcnRiZWF0RnJlcXVlbmN5OiAnMjAwJyxcclxuICAvLyAgICAgICAgICAgICB9LFxyXG4gIC8vICAgICAgICAgICAgIGRhdGE6IHRoaXMuY29udGludWVMZWFybmluZ0RhdGEuZGF0YSA/IHtcclxuICAvLyAgICAgICAgICAgICAgIGNvbnRpbnVlTGVhcm5pbmc6IHRoaXMuY29udGludWVMZWFybmluZ0RhdGEuZGF0YSxcclxuICAvLyAgICAgICAgICAgICB9IDogbnVsbCxcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICBjb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpXHJcbiAgLy8gICAgICAgICAgIHRoaXMuY29udGVudFdpbmRvd2luZm8gPSBjb250ZW50V2luZG93XHJcbiAgLy8gICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZVxyXG4gIC8vICAgICAgICAgICB0aGlzLnN1YkFwcG5hbWUgPSBhcHBsaWNhdGlvbk5hbWVcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9KVxyXG4gIC8vICAgfSBlbHNlIHtcclxuICAvLyAgICAgaWYgKHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlKSB7XHJcbiAgLy8gICAgICAgY29uc3QgZmlyc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gIC8vICAgICAgICAgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUuc3BsaXQoJyAnLCAyKVswXSA6ICcnXHJcbiAgLy8gICAgICAgY29uc3QgbGFzdE5hbWUgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZSA/XHJcbiAgLy8gICAgICAgICB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZS5zcGxpdCgnICcsIDIpWzFdIDogJydcclxuICAvLyAgICAgICBjb25zdCB2aWV3TW9kZTogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA/XHJcbiAgLy8gICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZpZXdNb2RlIDogJydcclxuICAvLyAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMua2V5Q2xvYWtTdmMudG9rZW5cclxuICAvLyAgICAgICBjb25zdCByZXNwb25zZSA9IHtcclxuICAvLyAgICAgICAgIHN1YkFwcGxpY2F0aW9uTmFtZTogYXBwbGljYXRpb25OYW1lLFxyXG4gIC8vICAgICAgICAgcmVxdWVzdElkOiAnTE9BREVEJyxcclxuICAvLyAgICAgICAgIHBhcmVudENvbnRleHQ6IHtcclxuICAvLyAgICAgICAgICAgZG9tYWluTmFtZTogd2luZG93LmxvY2F0aW9uLmhvc3QsXHJcbiAgLy8gICAgICAgICAgIHVybDogdGhpcy5yb3V0ZXIudXJsLFxyXG4gIC8vICAgICAgICAgICByb290T3JnOiB0aGlzLmNvbmZpZ1N2Yy5yb290T3JnLFxyXG4gIC8vICAgICAgICAgICB0aGVtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QgPyB7XHJcbiAgLy8gICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QudGhlbWVOYW1lLFxyXG4gIC8vICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LmNvbG9yLFxyXG4gIC8vICAgICAgICAgICB9IDogJycsXHJcbiAgLy8gICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVGb250T2JqZWN0ID8gdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdC5iYXNlRm9udFNpemUgOiAnMTRweCcsXHJcbiAgLy8gICAgICAgICAgIGxvY2FsZTogKHRoaXMuY29uZmlnU3ZjLnVzZXJQcmVmZXJlbmNlICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcmVmZXJlbmNlLnNlbGVjdGVkTG9jYWxlKSB8fCAnZW4nLFxyXG4gIC8vICAgICAgICAgICBkYXJrTW9kZTogdGhpcy5jb25maWdTdmMuaXNEYXJrTW9kZSxcclxuICAvLyAgICAgICAgICAgc3ViQXBwbGljYXRpb25TdGFydE1vZGU6IHZpZXdNb2RlLnRvVXBwZXJDYXNlKCksXHJcbiAgLy8gICAgICAgICAgIHVzZXI6IHtcclxuICAvLyAgICAgICAgICAgICBmaXJzdE5hbWUsXHJcbiAgLy8gICAgICAgICAgICAgbGFzdE5hbWUsXHJcbiAgLy8gICAgICAgICAgICAgdG9rZW4sXHJcbiAgLy8gICAgICAgICAgICAgdXNlcklkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgPyB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgOiAnJyxcclxuICAvLyAgICAgICAgICAgICByb2xlczogdGhpcy5jb25maWdTdmMudXNlclJvbGVzID8gQXJyYXkuZnJvbSh0aGlzLmNvbmZpZ1N2Yy51c2VyUm9sZXMpIDogW10sXHJcbiAgLy8gICAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogJzIwMCcsXHJcbiAgLy8gICAgICAgICB9LFxyXG4gIC8vICAgICAgICAgZGF0YTogbnVsbCxcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgICAgY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKVxyXG4gIC8vICAgICAgIHRoaXMuY29udGVudFdpbmRvd2luZm8gPSBjb250ZW50V2luZG93XHJcbiAgLy8gICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlXHJcbiAgLy8gICAgICAgdGhpcy5zdWJBcHBuYW1lID0gYXBwbGljYXRpb25OYW1lXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyB9XHJcbiAgY29udGludWVMZWFybmluZ1Jlc3BvbmQoaWQ6IHN0cmluZywgY29udGludWVMZWFybmluZzogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRlbnRTdmMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcoXHJcbiAgICAgIHtcclxuICAgICAgICBjb250ZXh0UGF0aElkOiBpZCxcclxuICAgICAgICByZXNvdXJjZUlkOiBpZCxcclxuICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHRpbWVzdGFtcDogRGF0ZS5ub3coKSwgZGF0YTogY29udGludWVMZWFybmluZyB9KSxcclxuICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgIH0sXHJcbiAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAuY2F0Y2goKVxyXG4gIH1cclxuICB0ZWxlbWV0cnlFdmVudHModERhdGE6IGFueSkge1xyXG4gICAgaWYgKHREYXRhKSB7XHJcbiAgICAgIHN3aXRjaCAodERhdGEuZXZlbnRJZCkge1xyXG4gICAgICAgIGNhc2UgJ0lOVEVSQUNUJzpcclxuICAgICAgICAgIHRoaXMuZXZlbnRTdmMuZGlzcGF0Y2hFdmVudDxXc0V2ZW50cy5JV3NFdmVudFRlbGVtZXRyeUludGVyYWN0Pih7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICBldmVudExvZ0xldmVsOiBXc0V2ZW50cy5Xc0V2ZW50TG9nTGV2ZWwuV2FybixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgIC4uLnREYXRhLmRhdGEsXHJcbiAgICAgICAgICAgICAgZXZlbnRTdWJUeXBlOiBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5JbnRlcmFjdCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZnJvbTogdERhdGEuc3ViQXBwbGljYXRpb25OYW1lLFxyXG4gICAgICAgICAgICB0bzogJ1RlbGVtZXRyeScsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICdIRUFSVEJFQVQnOlxyXG4gICAgICAgICAgdGhpcy5ldmVudFN2Yy5kaXNwYXRjaEV2ZW50PFdzRXZlbnRzLklXc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0Pih7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICBldmVudExvZ0xldmVsOiBXc0V2ZW50cy5Xc0V2ZW50TG9nTGV2ZWwuVHJhY2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50RGF0YS5kYXRhLFxyXG4gICAgICAgICAgICAgIGV2ZW50U3ViVHlwZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSGVhcnRCZWF0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmcm9tOiB0RGF0YS5zdWJBcHBsaWNhdGlvbk5hbWUsXHJcbiAgICAgICAgICAgIHRvOiAnVGVsZW1ldHJ5JyxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgJ0lNUFJFU1NJT04nOlxyXG4gICAgICAgICAgdGhpcy50ZWxlU3ZjLmV4dGVybmFsSW1wcmVzc2lvbih0RGF0YS5kYXRhKVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB1bnN1YnNjcmliZVJlc3BvbnNlKCkge1xyXG4gICAgdGhpcy5zdWJBcHBuYW1lID0gJydcclxuICAgIHRoaXMuY29udGludWVMZWFybmluZ0RhdGEgPSBudWxsXHJcbiAgICB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvID0gbnVsbFxyXG4gICAgdGhpcy5sb2FkZWQgPSBmYWxzZVxyXG4gIH1cclxuICAvLyBjaGFuZ2VDb250ZXh0cmVzcG9uZCgpIHtcclxuICAvLyAgIGlmICh0aGlzLmxvYWRlZCAmJiB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvICYmIHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlICYmIHRoaXMuc3ViQXBwbmFtZSkge1xyXG4gIC8vICAgICBjb25zdCBmaXJzdE5hbWUgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZSA/XHJcbiAgLy8gICAgICAgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUuc3BsaXQoJyAnLCAyKVswXSA6ICcnXHJcbiAgLy8gICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gIC8vICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lLnNwbGl0KCcgJywgMilbMV0gOiAnJ1xyXG4gIC8vICAgICBjb25zdCB2aWV3TW9kZTogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA/XHJcbiAgLy8gICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA6ICcnXHJcbiAgLy8gICAgIGNvbnN0IHRva2VuID0gdGhpcy5rZXlDbG9ha1N2Yy50b2tlblxyXG4gIC8vICAgICBjb25zdCByZXNwb25zZSA9IHtcclxuICAvLyAgICAgICBzdWJBcHBsaWNhdGlvbk5hbWU6IHRoaXMuc3ViQXBwbmFtZSxcclxuICAvLyAgICAgICByZXF1ZXN0SWQ6ICdDT05URVhUX0NIQU5HRScsXHJcbiAgLy8gICAgICAgcGFyZW50Q29udGV4dDoge1xyXG4gIC8vICAgICAgICAgZG9tYWluTmFtZTogd2luZG93LmxvY2F0aW9uLmhvc3QsXHJcbiAgLy8gICAgICAgICB1cmw6IHRoaXMucm91dGVyLnVybCxcclxuICAvLyAgICAgICAgIHJvb3RPcmc6IHRoaXMuY29uZmlnU3ZjLnJvb3RPcmcsXHJcbiAgLy8gICAgICAgICB0aGVtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QgPyB7XHJcbiAgLy8gICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LnRoZW1lTmFtZSxcclxuICAvLyAgICAgICAgICAgLi4udGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QuY29sb3IsXHJcbiAgLy8gICAgICAgICB9IDogJycsXHJcbiAgLy8gICAgICAgICBmb250U2l6ZTogdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdCA/IHRoaXMuY29uZmlnU3ZjLmFjdGl2ZUZvbnRPYmplY3QuYmFzZUZvbnRTaXplIDogJzE0cHgnLFxyXG4gIC8vICAgICAgICAgbG9jYWxlOiAodGhpcy5jb25maWdTdmMudXNlclByZWZlcmVuY2UgJiYgdGhpcy5jb25maWdTdmMudXNlclByZWZlcmVuY2Uuc2VsZWN0ZWRMb2NhbGUpIHx8ICdlbicsXHJcbiAgLy8gICAgICAgICBkYXJrTW9kZTogdGhpcy5jb25maWdTdmMuaXNEYXJrTW9kZSxcclxuICAvLyAgICAgICAgIHN1YkFwcGxpY2F0aW9uU3RhcnRNb2RlOiB2aWV3TW9kZS50b1VwcGVyQ2FzZSgpLFxyXG4gIC8vICAgICAgICAgdXNlcjoge1xyXG4gIC8vICAgICAgICAgICBmaXJzdE5hbWUsXHJcbiAgLy8gICAgICAgICAgIGxhc3ROYW1lLFxyXG4gIC8vICAgICAgICAgICB0b2tlbixcclxuICAvLyAgICAgICAgICAgdXNlcklkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgPyB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgOiAnJyxcclxuICAvLyAgICAgICAgICAgcm9sZXM6IHRoaXMuY29uZmlnU3ZjLnVzZXJSb2xlcyA/IEFycmF5LmZyb20odGhpcy5jb25maWdTdmMudXNlclJvbGVzKSA6IFtdLFxyXG4gIC8vICAgICAgICAgfSxcclxuICAvLyAgICAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogJzIwMCcsXHJcbiAgLy8gICAgICAgfSxcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvLnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpXHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG59XHJcbiJdfQ==
|