@sunbird-cb/consumption 0.0.45 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sunbird-cb-consumption.umd.js +4227 -43
- package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
- package/bundles/sunbird-cb-consumption.umd.min.js +1 -1
- package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
- package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +34 -24
- package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +2794 -0
- package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +218 -0
- package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +69 -0
- package/esm2015/public-api.js +2 -1
- package/esm2015/sunbird-cb-consumption.js +16 -15
- package/esm5/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +46 -30
- package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +4119 -0
- package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.js +218 -0
- package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.js +73 -0
- package/esm5/public-api.js +2 -1
- package/esm5/sunbird-cb-consumption.js +16 -15
- package/fesm2015/sunbird-cb-consumption.js +2872 -24
- package/fesm2015/sunbird-cb-consumption.js.map +1 -1
- package/fesm5/sunbird-cb-consumption.js +4211 -30
- package/fesm5/sunbird-cb-consumption.js.map +1 -1
- package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +4 -3
- package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts +202 -0
- package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.model.d.ts +149 -0
- package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.module.d.ts +5 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/sunbird-cb-consumption.d.ts +14 -13
- package/sunbird-cb-consumption.metadata.json +1 -1
package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js
CHANGED
|
@@ -24,6 +24,7 @@ export class CardAssessmentComponent {
|
|
|
24
24
|
this.activeResource = [];
|
|
25
25
|
this.daysRemaining = 0;
|
|
26
26
|
this.daysPending = false;
|
|
27
|
+
this.daysFinish = false;
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* @return {?}
|
|
@@ -33,49 +34,47 @@ export class CardAssessmentComponent {
|
|
|
33
34
|
const instanceConfig = this.configSvc.instanceConfig;
|
|
34
35
|
if (instanceConfig) {
|
|
35
36
|
this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
|
|
36
|
-
this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '
|
|
37
|
+
this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
-
this.defaultThumbnail = '/assets/instances/eagle/app_logos/default.png';
|
|
40
|
-
this.defaultSLogo = '/assets/instances/eagle/app_logos/KarmayogiBharat_Logo.svg';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* @param {?} startDate
|
|
45
|
-
* @return {?}
|
|
46
|
-
*/
|
|
47
|
-
updateStartDate(startDate) {
|
|
48
|
-
this.startDate = startDate;
|
|
49
|
-
this.startCountdown(this.startDate);
|
|
39
|
+
// console.log( this.daysPending, " this.daysPending===")
|
|
50
40
|
}
|
|
41
|
+
// updateStartDate(data: any ):void {
|
|
42
|
+
// // this.startDate = startDate;
|
|
43
|
+
// this.startCountdown(data)
|
|
44
|
+
// }
|
|
51
45
|
/**
|
|
52
|
-
* @param {?}
|
|
46
|
+
* @param {?} data
|
|
53
47
|
* @return {?}
|
|
54
48
|
*/
|
|
55
|
-
startCountdown(
|
|
56
|
-
|
|
57
|
-
this.updateCountdown(date);
|
|
49
|
+
startCountdown(data) {
|
|
50
|
+
this.updateCountdown(data.startDate, data.endDate);
|
|
58
51
|
// Update the countdown every second
|
|
59
52
|
this.intervalId = setInterval((/**
|
|
60
53
|
* @return {?}
|
|
61
54
|
*/
|
|
62
55
|
() => {
|
|
63
|
-
this.updateCountdown(
|
|
56
|
+
this.updateCountdown(data.startDate, data.endDate);
|
|
64
57
|
}), 1000);
|
|
65
58
|
}
|
|
66
59
|
// Method to update the countdown values
|
|
67
60
|
/**
|
|
68
|
-
* @param {?}
|
|
61
|
+
* @param {?} startDate
|
|
62
|
+
* @param {?} endDate
|
|
69
63
|
* @return {?}
|
|
70
64
|
*/
|
|
71
|
-
updateCountdown(
|
|
65
|
+
updateCountdown(startDate, endDate) {
|
|
72
66
|
/** @type {?} */
|
|
73
67
|
const now = new Date().getTime();
|
|
74
68
|
// Current time in milliseconds
|
|
75
69
|
/** @type {?} */
|
|
76
|
-
const targetTime = new Date(
|
|
70
|
+
const targetTime = new Date(startDate).getTime();
|
|
71
|
+
/** @type {?} */
|
|
72
|
+
const targetEndDate = new Date(endDate).getTime();
|
|
77
73
|
/** @type {?} */
|
|
78
74
|
const distance = targetTime - now;
|
|
75
|
+
// Distance in milliseconds
|
|
76
|
+
/** @type {?} */
|
|
77
|
+
const endDistance = now - targetEndDate;
|
|
79
78
|
if (distance > 0) {
|
|
80
79
|
this.daysRemaining = Math.ceil(distance / (1000 * 60 * 60 * 24));
|
|
81
80
|
this.daysPending = true;
|
|
@@ -85,6 +84,13 @@ export class CardAssessmentComponent {
|
|
|
85
84
|
this.daysPending = false;
|
|
86
85
|
this.clearTimer();
|
|
87
86
|
}
|
|
87
|
+
if (endDistance > 0) {
|
|
88
|
+
this.daysFinish = true;
|
|
89
|
+
this.clearTimer();
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.daysFinish = false;
|
|
93
|
+
}
|
|
88
94
|
}
|
|
89
95
|
// Method to clear the interval
|
|
90
96
|
/**
|
|
@@ -116,8 +122,8 @@ export class CardAssessmentComponent {
|
|
|
116
122
|
CardAssessmentComponent.decorators = [
|
|
117
123
|
{ type: Component, args: [{
|
|
118
124
|
selector: 'sb-uic-card-assessment',
|
|
119
|
-
template: "<ng-container *ngIf=\"!isCardLoading\">\n<ng-container >\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t<div class=\"display-contents\">\n\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t<mat-card-content>\n\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\" [src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-s font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\"\n\t\t\t\t\t\t\t\t\t\t\t[wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in </span>\n\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"daysPending\"> {{ startCountdown(widgetData?.content?.batch?.startDate) }}<div id=\"demo\"></div> </span>\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"!daysPending\" class=\"start-btn\"> Start Assessment
|
|
120
|
-
styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:
|
|
125
|
+
template: "\n<ng-container *ngIf=\"!isCardLoading\">\n\t<ng-container *ngIf=\"!daysFinish\">\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t<div class=\"display-contents\">\n\t\t\t<ng-container *ngIf=\"widgetData\">\n\t\t\t\t<mat-card-content>\n\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\" [src]=\"widgetData?.content?.posterImage | pipePublicURL\"\n\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image [src]=\"defaultThumbnail\" loading=\"lazy\"\n\t\t\t\t\t\t\t\t\t\t\tclass=\"card-wide-img ws-mat-primary-lite-background margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"flex title-container flex-col\">\n\t\t\t\t\t\t\t\t<div class=\"flex title-text mat-subheading-1\">\n\t\t\t\t\t\t\t\t\t{{ widgetData?.content?.name }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-s font-normal mat-caption sub-title-text\">\n\t\t\t\t\t\t\t\t\t<div class=\"course_logo_box\">\n\t\t\t\t\t\t\t\t\t\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\"\n\t\t\t\t\t\t\t\t\t\t\t[wsUtilsDefaultThumbnail]=\"defaultSLogo\"\n\t\t\t\t\t\t\t\t\t\t\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<span class=\"sub-title-text\">\n\t\t\t\t\t\t\t\t\t\t{{ (widgetData?.content?.organisation && widgetData?.content?.organisation[0]) ?\n\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0] : 'Karmayogi Bharat' }}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"start-span\">Assessment starts in </span>\n\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"daysPending\"> {{ startCountdown(widgetData?.content?.batch?.startDate) }}<div id=\"demo\"></div> </span>\n\t\t\t\t\t\t\t\t\t<span *ngIf=\"!daysPending\" class=\"start-btn\"> Start Assessment </span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<span class=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.startDate | date: 'd MMM, y' }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t</div>\n\t\t\t\t</mat-card-content>\n\t\t\t</ng-container>\n\t\t</div>\n\t</a>\n</mat-card>\n</ng-container>\n</ng-container>\n\n\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\n\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a>\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container>\n\t\t\t\t\t<mat-card-content>\n\t\t\t\t\t\t<div class=\"flex flex-col h-full\">\n\t\t\t\t\t\t\t<div class=\"flex flex-1 flex-row padding-s\">\n\t\t\t\t\t\t\t\t<div class=\"flex image-container\">\n\t\t\t\t\t\t\t\t\t<ng-container>\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'300px'\" [height]=\"'155px'\"\n\t\t\t\t\t\t\t\t\t\t\t></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</ng-container>\n\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex title-container flex-col margin-top-m\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex margin-remove margin-top-l font-normal\">\n\t\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<!-- <span class=\"text-center\"><sb-uic-skeleton-loader [width]=\"'90px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader> </span> -->\n\t\t\t\t\t\t\t<mat-card-footer\n\t\t\t\t\t\t\t\tclass=\"assessment-card-footer col-row padding-l\">\n\t\t\t\t\t\t\t\t<div class=\"flex flex-1 items-center justify-center col-row margin-top-m\">\n\t\t\t\t\t\t\t\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t<sb-uic-skeleton-loader [width]=\"'100px'\" [height]=\"'16px'\"\n\t\t\t\t\t\t\t\t\t\t[bindingClass]=\"'flex rounded br-8'\"></sb-uic-skeleton-loader>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</mat-card-footer>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</mat-card-content>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</a>\n\t</mat-card>\n</ng-template>\n\n",
|
|
126
|
+
styles: [".card-assessment{width:100%;min-height:190px;box-sizing:border-box;min-width:340px;margin-top:16px;margin-right:12px;border-radius:12px}.image-container{width:145px;height:120px;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.image-container img{border-radius:8px;opacity:1;background-size:100%;width:145px!important;height:120px!important;display:flex}.title-container{width:155px;margin-left:12px}.title-text{word-break:break-word;white-space:initial;margin:8px 0;position:relative;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:48px;font:600 14px/24px Montserrat}.sub-title-text{width:75%;word-break:break-word;white-space:initial;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.course_logo_box{width:38px;height:38px;background:#fff;border-radius:8px;box-sizing:border-box;margin-right:4px;box-shadow:0 2px 1px -1px rgb(0 0 0 / 20%),0 1px 1px 0 rgb(0 0 0 / 14%),0 1px 3px 0 rgb(0 0 0 / 12%)}.course_logo_box img.source-icon{height:28px;width:28px;padding:5px;display:inline-block}.mat-card-footer{margin:0!important}.time-span{padding:2px 8px;color:#fff;border-radius:4px;text-align:center;font-size:12px;background-color:green;width:75px}span.start-span{border-radius:50px;border:2px solid rgba(0,0,0,.08);font-size:12px;text-align:center;position:absolute;bottom:0;width:140px;left:50%;margin-left:-70px;background-color:#fff;margin-bottom:62px;margin-right:8px}.assessment-card-footer{background:rgba(239,149,30,.16)!important;text-align:center;box-sizing:border-box;border-radius:0 0 8px 8px}.start-btn{background:#1b4ca1!important;color:#fff;font-size:14px;font-weight:600;border-radius:25px;text-align:center;padding:4px 12px}.dots-container{display:none}"]
|
|
121
127
|
}] }
|
|
122
128
|
];
|
|
123
129
|
/** @nocollapse */
|
|
@@ -155,7 +161,11 @@ if (false) {
|
|
|
155
161
|
/** @type {?} */
|
|
156
162
|
CardAssessmentComponent.prototype.startDate;
|
|
157
163
|
/** @type {?} */
|
|
164
|
+
CardAssessmentComponent.prototype.endDate;
|
|
165
|
+
/** @type {?} */
|
|
158
166
|
CardAssessmentComponent.prototype.daysPending;
|
|
167
|
+
/** @type {?} */
|
|
168
|
+
CardAssessmentComponent.prototype.daysFinish;
|
|
159
169
|
/**
|
|
160
170
|
* @type {?}
|
|
161
171
|
* @private
|
|
@@ -172,4 +182,4 @@ if (false) {
|
|
|
172
182
|
*/
|
|
173
183
|
CardAssessmentComponent.prototype.contSvc;
|
|
174
184
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hc3Nlc3NtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vY2FyZHMvY2FyZC1hc3Nlc3NtZW50L2NhcmQtYXNzZXNzbWVudC9jYXJkLWFzc2Vzc21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFRcEYsZUFBZTtBQUNmLHFDQUFxQztBQUNyQyxLQUFLO0FBQ0wsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFnQmxDLFlBQW9CLFNBQWdDLEVBQVUsT0FBNkI7UUFBdkUsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQWJqRixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7UUFDdEMsa0JBQWEsR0FBWSxLQUFLLENBQUE7UUFDdkMsY0FBUyxHQUFRLEVBQUUsQ0FBQTtRQUNuQixlQUFVLEdBQVEsRUFBRSxDQUFBO1FBQ3BCLG1CQUFjLEdBQU8sRUFBRSxDQUFBO1FBR3ZCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRzFCLGdCQUFXLEdBQVcsS0FBSyxDQUFBO1FBQzNCLGVBQVUsR0FBVyxLQUFLLENBQUE7SUFFc0UsQ0FBQzs7OztJQUVqRyxRQUFROztjQUNBLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWM7UUFDcEQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEVB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SUFDdkIsbURBQXFCOztJQUNyQiwrQ0FBaUI7O0lBQ2pCLGdEQUEwQjs7SUFDMUIsNENBQWE7O0lBQ2IsMENBQVc7O0lBQ1gsOENBQTJCOztJQUMzQiw2Q0FBMEI7Ozs7O0lBQzFCLDZDQUF3Qjs7Ozs7SUFDWiw0Q0FBd0M7Ozs7O0lBQUUsMENBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgV2lkZ2V0VXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uc1NlcnZpY2UsIE5zQ29udGVudCB9IGZyb20gJ0BzdW5iaXJkLWNiL3V0aWxzLXYyJztcbmltcG9ydCB7IFdpZGdldENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtY2FyZC1hc3Nlc3NtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtYXNzZXNzbWVudC5jb21wb25lbnQuY3NzJ11cbn0pXG5cbi8vIEBEaXJlY3RpdmUoe1xuLy8gICBzZWxlY3RvcjogJ1tjYWxsRnVuY3Rpb25PbkluaXRdJ1xuLy8gfSlcbmV4cG9ydCBjbGFzcyBDYXJkQXNzZXNzbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdpZGdldERhdGEhOiBOc0NvbnRlbnQuSUNvbnRlbnQ7XG4gIEBJbnB1dCgpIGVucm9sbG1lbnRNYXBEYXRhOiBhbnlcbiAgQE91dHB1dCgpIGNvbnRlbnREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQElucHV0KCkgaXNDYXJkTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIHN0cmlwRGF0YTogYW55ID0gW11cbiAgZW5yb2xsTGlzdDogYW55ID0gW11cbiAgYWN0aXZlUmVzb3VyY2U6IGFueSA9W11cbiAgZGVmYXVsdFRodW1ibmFpbDogYW55XG4gIGRlZmF1bHRTTG9nbzogYW55XG4gIGRheXNSZW1haW5pbmc6IG51bWJlciA9IDA7XG4gIHN0YXJ0RGF0ZTphbnlcbiAgZW5kRGF0ZTphbnlcbiAgZGF5c1BlbmRpbmc6Ym9vbGVhbiA9IGZhbHNlXG4gIGRheXNGaW5pc2g6Ym9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgaW50ZXJ2YWxJZDogYW55O1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1N2YzogQ29uZmlndXJhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIGNvbnRTdmM6IFdpZGdldENvbnRlbnRTZXJ2aWNlLCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5zdGFuY2VDb25maWcgPSB0aGlzLmNvbmZpZ1N2Yy5pbnN0YW5jZUNvbmZpZ1xuICAgIGlmIChpbnN0YW5jZUNvbmZpZykge1xuICAgICAgdGhpcy5kZWZhdWx0VGh1bWJuYWlsID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdENvbnRlbnQgfHwgJydcbiAgICAgIHRoaXMuZGVmYXVsdFNMb2dvID0gaW5zdGFuY2VDb25maWcubG9nb3MuZGVmYXVsdFNvdXJjZUxvZ28gfHwgJydcbiAgICB9IFxuXG4gICAgLy8gY29uc29sZS5sb2coIHRoaXMuZGF5c1BlbmRpbmcsIFwiIHRoaXMuZGF5c1BlbmRpbmc9PT1cIilcblxuICB9XG5cbiAgLy8gdXBkYXRlU3RhcnREYXRlKGRhdGE6IGFueSApOnZvaWQge1xuICAvLyAgIC8vIHRoaXMuc3RhcnREYXRlID0gc3RhcnREYXRlOyAgICAgXG4gIC8vICAgdGhpcy5zdGFydENvdW50ZG93bihkYXRhKVxuICAvLyB9XG5cbiAgIHN0YXJ0Q291bnRkb3duKGRhdGE6YW55KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDb3VudGRvd24oZGF0YS5zdGFydERhdGUsIGRhdGEuZW5kRGF0ZSk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIGNvdW50ZG93biBldmVyeSBzZWNvbmRcbiAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNvdW50ZG93bihkYXRhLnN0YXJ0RGF0ZSwgZGF0YS5lbmREYXRlKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byB1cGRhdGUgdGhlIGNvdW50ZG93biB2YWx1ZXNcbiAgIHVwZGF0ZUNvdW50ZG93bihzdGFydERhdGU6YW55LCBlbmREYXRlOmFueSk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOyAvLyBDdXJyZW50IHRpbWUgaW4gbWlsbGlzZWNvbmRzXG4gICAgY29uc3QgdGFyZ2V0VGltZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSkuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHRhcmdldEVuZERhdGUgPSBuZXcgRGF0ZShlbmREYXRlKS5nZXRUaW1lKCk7XG4gICAgY29uc3QgZGlzdGFuY2UgPSB0YXJnZXRUaW1lIC0gbm93OyAvLyBEaXN0YW5jZSBpbiBtaWxsaXNlY29uZHNcbiAgICBjb25zdCBlbmREaXN0YW5jZSA9IG5vdyAtIHRhcmdldEVuZERhdGVcbiAgICBpZiAoZGlzdGFuY2UgPiAwKSB7XG4gICAgICB0aGlzLmRheXNSZW1haW5pbmcgPSBNYXRoLmNlaWwoZGlzdGFuY2UgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgdGhpcy5kYXlzUGVuZGluZyA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXlzUmVtYWluaW5nID0gMDtcbiAgICAgIHRoaXMuZGF5c1BlbmRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgfVxuXG4gICAgaWYoZW5kRGlzdGFuY2UgPiAwKSB7XG4gICAgICB0aGlzLmRheXNGaW5pc2ggPSAgdHJ1ZVxuICAgICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF5c0ZpbmlzaCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgLy8gTWV0aG9kIHRvIGNsZWFyIHRoZSBpbnRlcnZhbFxuICBjbGVhclRpbWVyKCk6IHZvaWQge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICB9XG5cbiAgZ2V0UmVkaXJlY3RVcmxEYXRhKGNvbnRlbnREYXRhOiBhbnkpe1xuICAgIC8vIGZvciB0ZWxlbWV0cnlcbiAgICBpZiAodGhpcy53aWRnZXREYXRhICYmIHRoaXMud2lkZ2V0RGF0YS5jb250ZXh0ICYmIHRoaXMud2lkZ2V0RGF0YS5jb250ZXh0LnBhZ2VTZWN0aW9uKSB7XG4gICAgICBjb250ZW50RGF0YVsndHlwZU9mVGVsZW1ldHJ5J10gPSB0aGlzLndpZGdldERhdGEuY29udGV4dC5wYWdlU2VjdGlvblxuICAgIH1cbiAgICB0aGlzLmNvbnRTdmMuY2hhbmdlVGVsZW1ldHJ5RGF0YShjb250ZW50RGF0YSlcbiAgICAvLyBmb3IgcmVkaXJlY3Rpb25cbiAgICB0aGlzLmNvbnRlbnREYXRhLmVtaXQoY29udGVudERhdGEpXG4gIH1cblxufVxuIl19
|