@sunbird-cb/consumption 0.0.48 → 0.0.49

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.
@@ -36,12 +36,7 @@ export class CardAssessmentComponent {
36
36
  this.defaultThumbnail = instanceConfig.logos.defaultContent || '';
37
37
  this.defaultSLogo = instanceConfig.logos.defaultSourceLogo || '';
38
38
  }
39
- // console.log( this.daysPending, " this.daysPending===")
40
39
  }
41
- // updateStartDate(data: any ):void {
42
- // // this.startDate = startDate;
43
- // this.startCountdown(data)
44
- // }
45
40
  /**
46
41
  * @param {?} data
47
42
  * @return {?}
@@ -49,29 +44,26 @@ export class CardAssessmentComponent {
49
44
  startCountdown(data) {
50
45
  /** @type {?} */
51
46
  let startDate = data.startDate;
52
- /** @type {?} */
53
- let startTime = data.startTime;
54
- this.updateCountdown(startDate, startTime);
47
+ this.updateCountdown(startDate);
55
48
  this.intervalId = setInterval((/**
56
49
  * @return {?}
57
50
  */
58
51
  () => {
59
- this.updateCountdown(startDate, startTime);
52
+ this.updateCountdown(startDate);
60
53
  }), 1000);
61
54
  }
62
55
  // Method to update the countdown values
63
56
  /**
64
57
  * @param {?} startDate
65
- * @param {?} startTime
66
58
  * @return {?}
67
59
  */
68
- updateCountdown(startDate, startTime) {
60
+ updateCountdown(startDate) {
69
61
  /** @type {?} */
70
62
  const now = new Date().getTime();
71
63
  /** @type {?} */
72
- const startDateTime = new Date(`${startDate}T${startTime}`);
64
+ let startingDate = new Date(startDate).getTime();
73
65
  /** @type {?} */
74
- const distance = startDateTime.getTime() - now;
66
+ const distance = startingDate - now;
75
67
  if (distance > 0) {
76
68
  this.daysPending = true;
77
69
  // this.days = Math.ceil(distance / (1000 * 60 * 60 * 24));
@@ -117,7 +109,7 @@ CardAssessmentComponent.decorators = [
117
109
  { type: Component, args: [{
118
110
  selector: 'sb-uic-card-assessment',
119
111
  template: "<ng-container *ngIf=\"!isCardLoading\">\n\t<mat-card class=\"card-assessment card-scheduled-assessment card-users-container padding-remove cursor-pointer mr-4\">\n\t\t<a (click)=\"getRedirectUrlData(widgetData?.content); $event.stopPropagation()\">\n\t\t\t<div class=\"display-contents\">\n\t\t\t\t<ng-container *ngIf=\"widgetData\">\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 *ngIf=\"widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<img mat-card-image class=\"margin-remove assess-img\"\n\t\t\t\t\t\t\t\t\t\t\t[src]=\"widgetData?.content?.posterImage | pipePublicURL\" [alt]=\"widgetData?.content?.name\">\n\t\t\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"!widgetData?.content?.posterImage\">\n\t\t\t\t\t\t\t\t\t\t<ng-template #defaultImg>\n\t\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\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\t[alt]=\"widgetData?.content?.name\" />\n\t\t\t\t\t\t\t\t\t\t</ng-template>\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\">\n\t\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\t{{ widgetData?.content?.name }}\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-s font-normal mat-caption sub-title-text\">\n\t\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\t<img [src]=\"widgetData?.content?.creatorLogo | pipePublicURL \" class=\"source-icon\"\n\t\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\t[alt]=\"(widgetData?.content?.sourceName + '_' + widgetData?.content?.identifier)\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\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\t{{ (widgetData?.content?.organisation &&\n\t\t\t\t\t\t\t\t\t\t\twidgetData?.content?.organisation[0]) ?\n\t\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\t</span>\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=\"start-span\">Assessment starts in </span>\n\t\t\t\t\t\t\t<mat-card-footer class=\"assessment-card-footer padding-m\">\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\t<div class=\"flex margin-right-m\">\n\t\t\t\t\t\t\t\t\t\t<span >{{ startCountdown(widgetData?.content?.batch) }}</span>\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"daysPending\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"big-text\"><b>{{ days }}</b> <span class=\"small-text\">days</span> </span> : <span\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"big-text\"><b>{{ hours }} </b><span class=\"small-text\">hours</span>\n\t\t\t\t\t\t\t\t\t\t\t</span> : <span class=\"big-text\"> <b>{{ minutes }}</b> <span class=\"small-text\">minutes</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\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\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"time-span flex items-center justify-center\">{{widgetData?.content?.batch?.startDate\n\t\t\t\t\t\t\t\t\t\t\t| date: 'd MMM, y' }}</span>\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</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-container>\n\n<ng-container *ngIf=\"isCardLoading\">\n\t<ng-container [ngTemplateOutlet]=\"skeltonLoader\"></ng-container>\n</ng-container>\n\n<ng-template #skeltonLoader>\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'\"></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 class=\"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\t<div class=\"flex margin-right-m\">\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\">\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</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>",
120
- 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}.big-text{font-size:14px}.small-text{font-size:12px!important;vertical-align:top}"]
112
+ 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}.big-text{font-size:16px}.small-text{font-size:12px!important;vertical-align:top;margin-left:4px}"]
121
113
  }] }
122
114
  ];
123
115
  /** @nocollapse */
@@ -182,4 +174,4 @@ if (false) {
182
174
  */
183
175
  CardAssessmentComponent.prototype.contSvc;
184
176
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hc3Nlc3NtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vY2FyZHMvY2FyZC1hc3Nlc3NtZW50L2NhcmQtYXNzZXNzbWVudC9jYXJkLWFzc2Vzc21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFRcEYsZUFBZTtBQUNmLHFDQUFxQztBQUNyQyxLQUFLO0FBQ0wsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFtQmxDLFlBQW9CLFNBQWdDLEVBQVUsT0FBNkI7UUFBdkUsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQWhCakYsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3RDLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQ3ZDLGNBQVMsR0FBUSxFQUFFLENBQUE7UUFDbkIsZUFBVSxHQUFRLEVBQUUsQ0FBQTtRQUNwQixtQkFBYyxHQUFRLEVBQUUsQ0FBQTtRQUd4QixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUcxQixnQkFBVyxHQUFZLEtBQUssQ0FBQTtRQUM1QixlQUFVLEdBQVksS0FBSyxDQUFBO0lBS3FFLENBQUM7Ozs7SUFFakcsUUFBUTs7Y0FDQSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjO1FBQ3BELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxF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Q0FDTCxLQUFLOzBCQUNMLE1BQU07NEJBQ04sS0FBSzs7OztJQUhOLDZDQUF5Qzs7SUFDekMsb0RBQStCOztJQUMvQiw4Q0FBK0M7O0lBQy9DLGdEQUF1Qzs7SUFDdkMsNENBQW1COztJQUNuQiw2Q0FBb0I7O0lBQ3BCLGlEQUF3Qjs7SUFDeEIsbURBQXFCOztJQUNyQiwrQ0FBaUI7O0lBQ2pCLGdEQUEwQjs7SUFDMUIsNENBQWM7O0lBQ2QsMENBQVk7O0lBQ1osOENBQTRCOztJQUM1Qiw2Q0FBMkI7Ozs7O0lBQzNCLDZDQUF3Qjs7SUFDeEIsdUNBQWE7O0lBQ2Isd0NBQWM7O0lBQ2QsMENBQWdCOzs7OztJQUNKLDRDQUF3Qzs7Ozs7SUFBRSwwQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBXaWRnZXRVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zU2VydmljZSwgTnNDb250ZW50IH0gZnJvbSAnQHN1bmJpcmQtY2IvdXRpbHMtdjInO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9fc2VydmljZXMvd2lkZ2V0LWNvbnRlbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1jYXJkLWFzc2Vzc21lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1hc3Nlc3NtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1hc3Nlc3NtZW50LmNvbXBvbmVudC5jc3MnXVxufSlcblxuLy8gQERpcmVjdGl2ZSh7XG4vLyAgIHNlbGVjdG9yOiAnW2NhbGxGdW5jdGlvbk9uSW5pdF0nXG4vLyB9KVxuZXhwb3J0IGNsYXNzIENhcmRBc3Nlc3NtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgd2lkZ2V0RGF0YSE6IE5zQ29udGVudC5JQ29udGVudDtcbiAgQElucHV0KCkgZW5yb2xsbWVudE1hcERhdGE6IGFueVxuICBAT3V0cHV0KCkgY29udGVudERhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBASW5wdXQoKSBpc0NhcmRMb2FkaW5nOiBib29sZWFuID0gZmFsc2VcbiAgc3RyaXBEYXRhOiBhbnkgPSBbXVxuICBlbnJvbGxMaXN0OiBhbnkgPSBbXVxuICBhY3RpdmVSZXNvdXJjZTogYW55ID0gW11cbiAgZGVmYXVsdFRodW1ibmFpbDogYW55XG4gIGRlZmF1bHRTTG9nbzogYW55XG4gIGRheXNSZW1haW5pbmc6IG51bWJlciA9IDA7XG4gIHN0YXJ0RGF0ZTogYW55XG4gIGVuZERhdGU6IGFueVxuICBkYXlzUGVuZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIGRheXNGaW5pc2g6IGJvb2xlYW4gPSBmYWxzZVxuICBwcml2YXRlIGludGVydmFsSWQ6IGFueTtcbiAgZGF5czogbnVtYmVyO1xuICBob3VyczogbnVtYmVyO1xuICBtaW51dGVzOiBudW1iZXI7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnU3ZjOiBDb25maWd1cmF0aW9uc1NlcnZpY2UsIHByaXZhdGUgY29udFN2YzogV2lkZ2V0Q29udGVudFNlcnZpY2UsKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnN0YW5jZUNvbmZpZyA9IHRoaXMuY29uZmlnU3ZjLmluc3RhbmNlQ29uZmlnXG4gICAgaWYgKGluc3RhbmNlQ29uZmlnKSB7XG4gICAgICB0aGlzLmRlZmF1bHRUaHVtYm5haWwgPSBpbnN0YW5jZUNvbmZpZy5sb2dvcy5kZWZhdWx0Q29udGVudCB8fCAnJ1xuICAgICAgdGhpcy5kZWZhdWx0U0xvZ28gPSBpbnN0YW5jZUNvbmZpZy5sb2dvcy5kZWZhdWx0U291cmNlTG9nbyB8fCAnJ1xuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKCB0aGlzLmRheXNQZW5kaW5nLCBcIiB0aGlzLmRheXNQZW5kaW5nPT09XCIpXG5cbiAgfVxuXG4gIC8vIHVwZGF0ZVN0YXJ0RGF0ZShkYXRhOiBhbnkgKTp2b2lkIHtcbiAgLy8gICAvLyB0aGlzLnN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZTsgICAgIFxuICAvLyAgIHRoaXMuc3RhcnRDb3VudGRvd24oZGF0YSlcbiAgLy8gfVxuXG4gIHN0YXJ0Q291bnRkb3duKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGxldCBzdGFydERhdGUgPSBkYXRhLnN0YXJ0RGF0ZVxuICAgIGxldCBzdGFydFRpbWUgPSBkYXRhLnN0YXJ0VGltZVxuICAgIHRoaXMudXBkYXRlQ291bnRkb3duKHN0YXJ0RGF0ZSwgc3RhcnRUaW1lKTtcblxuICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ291bnRkb3duKHN0YXJ0RGF0ZSwgc3RhcnRUaW1lKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byB1cGRhdGUgdGhlIGNvdW50ZG93biB2YWx1ZXNcbiAgdXBkYXRlQ291bnRkb3duKHN0YXJ0RGF0ZTogYW55LCAgc3RhcnRUaW1lOmFueSk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOyBcbiAgICBjb25zdCBzdGFydERhdGVUaW1lID0gbmV3IERhdGUoYCR7c3RhcnREYXRlfVQke3N0YXJ0VGltZX1gKVxuICAgIGNvbnN0IGRpc3RhbmNlID0gc3RhcnREYXRlVGltZS5nZXRUaW1lKCkgLSBub3c7IFxuICAgIGlmIChkaXN0YW5jZSA+IDApIHtcbiAgICAgIHRoaXMuZGF5c1BlbmRpbmcgPSB0cnVlXG4gICAgICAvLyB0aGlzLmRheXMgPSBNYXRoLmNlaWwoZGlzdGFuY2UgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgLy8gdGhpcy5ob3VycyA9IE1hdGguY2VpbChkaXN0YW5jZSAvICgxMDAwICogNjAgKiA2MCkpO1xuICAgICAgLy8gdGhpcy5taW51dGVzID0gTWF0aC5jZWlsKChkaXN0YW5jZSAlICgxMDAwICogNjAgKiA2MCkpIC8gKDEwMDAgKiA2MCkpO1xuICAgICAgdGhpcy5kYXlzID0gTWF0aC5mbG9vcihkaXN0YW5jZSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICB0aGlzLmhvdXJzID0gTWF0aC5mbG9vcigoZGlzdGFuY2UgJSAoMTAwMCAqIDYwICogNjAgKiAyNCkpIC8gKDEwMDAgKiA2MCAqIDYwKSk7XG4gICAgICB0aGlzLm1pbnV0ZXMgPSBNYXRoLmZsb29yKChkaXN0YW5jZSAlICgxMDAwICogNjAgKiA2MCkpIC8gKDEwMDAgKiA2MCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRheXNSZW1haW5pbmcgPSAwO1xuICAgICAgdGhpcy5kYXlzUGVuZGluZyA9IGZhbHNlXG4gICAgICB0aGlzLmNsZWFyVGltZXIoKTtcbiAgICB9XG5cbiAgfVxuXG5cbiAgY2xlYXJUaW1lcigpOiB2b2lkIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZXIoKTtcbiAgfVxuXG4gIGdldFJlZGlyZWN0VXJsRGF0YShjb250ZW50RGF0YTogYW55KSB7XG4gICAgLy8gZm9yIHRlbGVtZXRyeVxuICAgIGlmICh0aGlzLndpZGdldERhdGEgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQgJiYgdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb24pIHtcbiAgICAgIGNvbnRlbnREYXRhWyd0eXBlT2ZUZWxlbWV0cnknXSA9IHRoaXMud2lkZ2V0RGF0YS5jb250ZXh0LnBhZ2VTZWN0aW9uXG4gICAgfVxuICAgIHRoaXMuY29udFN2Yy5jaGFuZ2VUZWxlbWV0cnlEYXRhKGNvbnRlbnREYXRhKVxuICAgIC8vIGZvciByZWRpcmVjdGlvblxuICAgIHRoaXMuY29udGVudERhdGEuZW1pdChjb250ZW50RGF0YSlcbiAgfVxuXG59XG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hc3Nlc3NtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vY2FyZHMvY2FyZC1hc3Nlc3NtZW50L2NhcmQtYXNzZXNzbWVudC9jYXJkLWFzc2Vzc21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFRcEYsZUFBZTtBQUNmLHFDQUFxQztBQUNyQyxLQUFLO0FBQ0wsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFtQmxDLFlBQW9CLFNBQWdDLEVBQVUsT0FBNkI7UUFBdkUsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQWhCakYsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFBO1FBQ3RDLGtCQUFhLEdBQVksS0FBSyxDQUFBO1FBQ3ZDLGNBQVMsR0FBUSxFQUFFLENBQUE7UUFDbkIsZUFBVSxHQUFRLEVBQUUsQ0FBQTtRQUNwQixtQkFBYyxHQUFRLEVBQUUsQ0FBQTtRQUd4QixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUcxQixnQkFBVyxHQUFZLEtBQUssQ0FBQTtRQUM1QixlQUFVLEdBQVksS0FBSyxDQUFBO0lBS3FFLENBQUM7Ozs7SUFFakcsUUFBUTs7Y0FDQSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjO1FBQ3BELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxF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bUI7O0lBQ25CLDZDQUFvQjs7SUFDcEIsaURBQXdCOztJQUN4QixtREFBcUI7O0lBQ3JCLCtDQUFpQjs7SUFDakIsZ0RBQTBCOztJQUMxQiw0Q0FBYzs7SUFDZCwwQ0FBWTs7SUFDWiw4Q0FBNEI7O0lBQzVCLDZDQUEyQjs7Ozs7SUFDM0IsNkNBQXdCOztJQUN4Qix1Q0FBYTs7SUFDYix3Q0FBYzs7SUFDZCwwQ0FBZ0I7Ozs7O0lBQ0osNENBQXdDOzs7OztJQUFFLDBDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIGltcG9ydCB7IFdpZGdldFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL3dpZGdldC11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlLCBOc0NvbnRlbnQgfSBmcm9tICdAc3VuYmlyZC1jYi91dGlscy12Mic7XG5pbXBvcnQgeyBXaWRnZXRDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL19zZXJ2aWNlcy93aWRnZXQtY29udGVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ItdWljLWNhcmQtYXNzZXNzbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWFzc2Vzc21lbnQuY29tcG9uZW50LmNzcyddXG59KVxuXG4vLyBARGlyZWN0aXZlKHtcbi8vICAgc2VsZWN0b3I6ICdbY2FsbEZ1bmN0aW9uT25Jbml0XSdcbi8vIH0pXG5leHBvcnQgY2xhc3MgQ2FyZEFzc2Vzc21lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB3aWRnZXREYXRhITogTnNDb250ZW50LklDb250ZW50O1xuICBASW5wdXQoKSBlbnJvbGxtZW50TWFwRGF0YTogYW55XG4gIEBPdXRwdXQoKSBjb250ZW50RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBJbnB1dCgpIGlzQ2FyZExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBzdHJpcERhdGE6IGFueSA9IFtdXG4gIGVucm9sbExpc3Q6IGFueSA9IFtdXG4gIGFjdGl2ZVJlc291cmNlOiBhbnkgPSBbXVxuICBkZWZhdWx0VGh1bWJuYWlsOiBhbnlcbiAgZGVmYXVsdFNMb2dvOiBhbnlcbiAgZGF5c1JlbWFpbmluZzogbnVtYmVyID0gMDtcbiAgc3RhcnREYXRlOiBhbnlcbiAgZW5kRGF0ZTogYW55XG4gIGRheXNQZW5kaW5nOiBib29sZWFuID0gZmFsc2VcbiAgZGF5c0ZpbmlzaDogYm9vbGVhbiA9IGZhbHNlXG4gIHByaXZhdGUgaW50ZXJ2YWxJZDogYW55O1xuICBkYXlzOiBudW1iZXI7XG4gIGhvdXJzOiBudW1iZXI7XG4gIG1pbnV0ZXM6IG51bWJlcjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSwgcHJpdmF0ZSBjb250U3ZjOiBXaWRnZXRDb250ZW50U2VydmljZSwpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGluc3RhbmNlQ29uZmlnID0gdGhpcy5jb25maWdTdmMuaW5zdGFuY2VDb25maWdcbiAgICBpZiAoaW5zdGFuY2VDb25maWcpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFRodW1ibmFpbCA9IGluc3RhbmNlQ29uZmlnLmxvZ29zLmRlZmF1bHRDb250ZW50IHx8ICcnXG4gICAgICB0aGlzLmRlZmF1bHRTTG9nbyA9IGluc3RhbmNlQ29uZmlnLmxvZ29zLmRlZmF1bHRTb3VyY2VMb2dvIHx8ICcnXG4gICAgfVxuXG4gIH1cblxuICBzdGFydENvdW50ZG93bihkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBsZXQgc3RhcnREYXRlID0gZGF0YS5zdGFydERhdGVcbiAgICB0aGlzLnVwZGF0ZUNvdW50ZG93bihzdGFydERhdGUpO1xuXG4gICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb3VudGRvd24oc3RhcnREYXRlKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byB1cGRhdGUgdGhlIGNvdW50ZG93biB2YWx1ZXNcbiAgdXBkYXRlQ291bnRkb3duKHN0YXJ0RGF0ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7IFxuICAgIGxldCBzdGFydGluZ0RhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpLmdldFRpbWUoKVxuICAgIGNvbnN0IGRpc3RhbmNlID0gc3RhcnRpbmdEYXRlIC0gbm93OyBcbiAgICBpZiAoZGlzdGFuY2UgPiAwKSB7XG4gICAgICB0aGlzLmRheXNQZW5kaW5nID0gdHJ1ZVxuICAgICAgLy8gdGhpcy5kYXlzID0gTWF0aC5jZWlsKGRpc3RhbmNlIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcbiAgICAgIC8vIHRoaXMuaG91cnMgPSBNYXRoLmNlaWwoZGlzdGFuY2UgLyAoMTAwMCAqIDYwICogNjApKTtcbiAgICAgIC8vIHRoaXMubWludXRlcyA9IE1hdGguY2VpbCgoZGlzdGFuY2UgJSAoMTAwMCAqIDYwICogNjApKSAvICgxMDAwICogNjApKTtcbiAgICAgIHRoaXMuZGF5cyA9IE1hdGguZmxvb3IoZGlzdGFuY2UgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgdGhpcy5ob3VycyA9IE1hdGguZmxvb3IoKGRpc3RhbmNlICUgKDEwMDAgKiA2MCAqIDYwICogMjQpKSAvICgxMDAwICogNjAgKiA2MCkpO1xuICAgICAgdGhpcy5taW51dGVzID0gTWF0aC5mbG9vcigoZGlzdGFuY2UgJSAoMTAwMCAqIDYwICogNjApKSAvICgxMDAwICogNjApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXlzUmVtYWluaW5nID0gMDtcbiAgICAgIHRoaXMuZGF5c1BlbmRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgfVxuXG4gIH1cblxuICBjbGVhclRpbWVyKCk6IHZvaWQge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICB9XG5cbiAgZ2V0UmVkaXJlY3RVcmxEYXRhKGNvbnRlbnREYXRhOiBhbnkpIHtcbiAgICAvLyBmb3IgdGVsZW1ldHJ5XG4gICAgaWYgKHRoaXMud2lkZ2V0RGF0YSAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dCAmJiB0aGlzLndpZGdldERhdGEuY29udGV4dC5wYWdlU2VjdGlvbikge1xuICAgICAgY29udGVudERhdGFbJ3R5cGVPZlRlbGVtZXRyeSddID0gdGhpcy53aWRnZXREYXRhLmNvbnRleHQucGFnZVNlY3Rpb25cbiAgICB9XG4gICAgdGhpcy5jb250U3ZjLmNoYW5nZVRlbGVtZXRyeURhdGEoY29udGVudERhdGEpXG4gICAgLy8gZm9yIHJlZGlyZWN0aW9uXG4gICAgdGhpcy5jb250ZW50RGF0YS5lbWl0KGNvbnRlbnREYXRhKVxuICB9XG5cbn1cbiJdfQ==