@sunbird-cb/consumption 0.0.87 → 0.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/bundles/sunbird-cb-consumption.umd.js +1594 -1504
  2. package/bundles/sunbird-cb-consumption.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-consumption.umd.min.js +2 -2
  4. package/bundles/sunbird-cb-consumption.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +4 -7
  6. package/esm2015/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +3 -3
  7. package/esm2015/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +3 -3
  8. package/esm2015/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +3 -3
  9. package/esm2015/lib/_common/cards/card-portrait/card-portrait.component.js +3 -3
  10. package/esm2015/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +3 -3
  11. package/esm2015/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +3 -3
  12. package/esm2015/lib/_common/cards/cards.component.js +4 -24
  13. package/esm2015/lib/_common/common-strip/common-strip.component.js +5 -5
  14. package/esm2015/lib/_common/competency-passbook/competency-passbook.component.js +3 -3
  15. package/esm2015/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +3 -3
  16. package/esm2015/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +50 -54
  17. package/esm2015/lib/_common/mdo-leaderboard/mdo-leaderboard.component.js +6 -6
  18. package/esm2015/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.js +7 -9
  19. package/esm2015/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +8 -8
  20. package/esm2015/lib/_common/user-progress/user-progress.component.js +1 -2
  21. package/esm2015/lib/_services/widget-content-lib.service.js +899 -0
  22. package/esm2015/lib/_services/widget-user-lib.service.js +523 -0
  23. package/esm2015/public-api.js +3 -2
  24. package/esm2015/sunbird-cb-consumption.js +77 -78
  25. package/esm5/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.js +4 -7
  26. package/esm5/lib/_common/cards/card-karma-programs/card-karma-programs.component.js +3 -3
  27. package/esm5/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.js +3 -3
  28. package/esm5/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.js +3 -3
  29. package/esm5/lib/_common/cards/card-portrait/card-portrait.component.js +3 -3
  30. package/esm5/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.js +3 -3
  31. package/esm5/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.js +3 -3
  32. package/esm5/lib/_common/cards/cards.component.js +4 -27
  33. package/esm5/lib/_common/common-strip/common-strip.component.js +5 -5
  34. package/esm5/lib/_common/competency-passbook/competency-passbook.component.js +3 -3
  35. package/esm5/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.js +3 -3
  36. package/esm5/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.js +83 -87
  37. package/esm5/lib/_common/mdo-leaderboard/mdo-leaderboard.component.js +6 -6
  38. package/esm5/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.js +7 -9
  39. package/esm5/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.js +8 -9
  40. package/esm5/lib/_common/user-progress/user-progress.component.js +1 -2
  41. package/esm5/lib/_services/widget-content-lib.service.js +1170 -0
  42. package/esm5/lib/_services/widget-user-lib.service.js +607 -0
  43. package/esm5/public-api.js +3 -2
  44. package/esm5/sunbird-cb-consumption.js +77 -78
  45. package/fesm2015/sunbird-cb-consumption.js +1159 -1096
  46. package/fesm2015/sunbird-cb-consumption.js.map +1 -1
  47. package/fesm5/sunbird-cb-consumption.js +1519 -1429
  48. package/fesm5/sunbird-cb-consumption.js.map +1 -1
  49. package/lib/_common/cards/card-assessment/card-assessment/card-assessment.component.d.ts +2 -3
  50. package/lib/_common/cards/card-karma-programs/card-karma-programs.component.d.ts +2 -2
  51. package/lib/_common/cards/card-mdo-channel/card-mdo-channel.component.d.ts +2 -2
  52. package/lib/_common/cards/card-mdo-channel-v1/card-mdo-channel-v1.component.d.ts +2 -2
  53. package/lib/_common/cards/card-portrait/card-portrait.component.d.ts +2 -2
  54. package/lib/_common/cards/card-portrait-ext/card-portrait-ext.component.d.ts +2 -2
  55. package/lib/_common/cards/card-progress-portrait-lib/card-progress-portrait-lib.component.d.ts +2 -2
  56. package/lib/_common/cards/cards.component.d.ts +2 -5
  57. package/lib/_common/common-strip/common-strip.component.d.ts +3 -3
  58. package/lib/_common/competency-passbook/competency-passbook.component.d.ts +3 -3
  59. package/lib/_common/competency-passbook-mdo/competency-passbook-mdo.component.d.ts +3 -3
  60. package/lib/_common/content-strip-with-tabs-lib/content-strip-with-tabs-lib.component.d.ts +4 -6
  61. package/lib/_common/strips/content-strip-facet-filter/content-strip-facet-filter.component.d.ts +3 -4
  62. package/lib/_common/strips/content-strip-with-tabs-pills/content-strip-with-tabs-pills.component.d.ts +3 -4
  63. package/lib/_services/{widget-content.service.d.ts → widget-content-lib.service.d.ts} +6 -3
  64. package/lib/_services/{widget-user.service.d.ts → widget-user-lib.service.d.ts} +9 -4
  65. package/package.json +1 -1
  66. package/public-api.d.ts +2 -1
  67. package/sunbird-cb-consumption.d.ts +75 -76
  68. package/sunbird-cb-consumption.metadata.json +1 -1
  69. package/esm2015/lib/_services/widget-content.service.js +0 -852
  70. package/esm2015/lib/_services/widget-user.service.js +0 -475
  71. package/esm5/lib/_services/widget-content.service.js +0 -1109
  72. package/esm5/lib/_services/widget-user.service.js +0 -542
@@ -43,7 +43,7 @@ export class MdoLeaderboardComponent {
43
43
  * @param {?} user
44
44
  * @return {?}
45
45
  */
46
- user => (Object.assign({}, user, { children: [], selected: false }))));
46
+ user => (Object.assign({}, user, { children: [], selected: false })))).slice(0, 5);
47
47
  }
48
48
  }), (/**
49
49
  * @param {?} error
@@ -70,7 +70,7 @@ export class MdoLeaderboardComponent {
70
70
  * @param {?} user
71
71
  * @return {?}
72
72
  */
73
- user => (Object.assign({}, user, { children: [], selected: false }))));
73
+ user => (Object.assign({}, user, { children: [], selected: false })))).slice(0, 5);
74
74
  /** @type {?} */
75
75
  let nameStr = '';
76
76
  switch (name) {
@@ -131,7 +131,7 @@ export class MdoLeaderboardComponent {
131
131
  * @param {?} user
132
132
  * @return {?}
133
133
  */
134
- user => (Object.assign({}, user, { children: [] }))));
134
+ user => (Object.assign({}, user, { children: [] })))).slice(0, 5);
135
135
  }
136
136
  else {
137
137
  this.filteredData = this.result.mdoLeaderBoard
@@ -144,7 +144,7 @@ export class MdoLeaderboardComponent {
144
144
  * @param {?} user
145
145
  * @return {?}
146
146
  */
147
- user => (Object.assign({}, user, { children: [] }))));
147
+ user => (Object.assign({}, user, { children: [] })))).slice(0, 5);
148
148
  }
149
149
  }
150
150
  /**
@@ -157,7 +157,7 @@ export class MdoLeaderboardComponent {
157
157
  MdoLeaderboardComponent.decorators = [
158
158
  { type: Component, args: [{
159
159
  selector: 'sb-uic-mdo-leaderboard',
160
- template: "<div class=\"mdo-leaderboard-container\">\n <div class=\"flex l-title gap-2 items-center justify-between px-4 md:px-0 py-4 md:py-0\">\n <div class=\"flex gap-2\">\n {{object?.title}} <div><img [src]=\"object?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"object?.infoText\"></div>\n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div class=\"flex item-center justify-center\" *ngIf=\"expand\">\n <div class=\"flex fl-div\">\n <div class=\"pointer\">\n <span class=\"dot-dot\"></span>\n </div>\n </div>\n </div>\n <div class=\"l-content\" *ngIf=\"expand\">\n <div class=\"horizontal-scroll-container\">\n <div class=\"scroll-content\">\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XL' }\" (click)=\"getTabData('XL')\">Greater than 50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'L' }\" (click)=\"getTabData('L')\">10K-50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'M' }\" (click)=\"getTabData('M')\">1K-10K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'S' }\" (click)=\"getTabData('S')\">500-1K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XS' }\" (click)=\"getTabData('XS')\">Less than 500</span>\n </div>\n </div>\n <div class=\"relative search-wrapper margin-top-m mb-5\">\n <mat-icon matPrefix class=\"flex absolute items-center justify-center mr-2 icon-search\">search\n </mat-icon>\n <input type=\"search\" name=\"searchKey\" class=\"search-field\" i18-aria-label\n aria-label=\"Search\" i18n-placeholder=\"search\" [(ngModel)]=\"searchTerm\"\n placeholder=\"Search your MDO\" (keyup)=\"handleSearchQuery($event)\" />\n </div>\n <div class=\"l-tab-data\">\n <div *ngFor=\"let user of filteredData\">\n <div class=\"flex flex-row item mb-5 gap-3 {{user.row_num === 1 ? 'relative' : ''}}\" >\n <div><img class=\"crown absolute\" src=\"assets/images/national-learning/rank-crown.svg\" *ngIf=\"user.row_num === 1\"/></div>\n <div class=\"{{getRank(user.row_num)}}\">{{user.row_num}}</div>\n <div class=\"w-full\">\n <div class=\"flex flex-between gap-2\">\n <div>\n <div class=\"rank-name\">{{user.org_name}}</div>\n <div class=\"rank-points flex mt-1 gap-1\">\n <img class=\"nlw-kb\" src=\"assets/icons/home/karma-badge.svg\"/>\n <div class=\"points\">{{user.total_points || 0 }} points</div>\n </div>\n </div>\n <div class=\"rank-crown\" *ngIf=\"[1,2,3].includes(user.row_num)\">\n <img class=\"nlw-animation\" [src]=\"getMedal(user.row_num)\"/>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"no-data px-1\" *ngIf=\"filteredData?.length === 0\">\n No data found!\n </div>\n </div>\n </div>\n</div>\n",
160
+ template: "<div class=\"mdo-leaderboard-container\">\n <div class=\"flex l-title gap-2 items-center justify-between px-4 md:px-0 py-4 md:py-0\">\n <div class=\"flex gap-2\">\n {{object?.title}} <div><img [src]=\"object?.infoIcon\" alt=\"\" i18n-matTooltip [matTooltip]=\"object?.infoText\"></div>\n </div>\n <div class=\"block md:hidden\">\n <mat-icon (click)=\"toggleWeekHightlits()\">expand_more</mat-icon>\n </div>\n </div>\n <div class=\"flex item-center justify-center\" *ngIf=\"expand\">\n <div class=\"flex fl-div\">\n <div class=\"pointer\">\n <span class=\"dot-dot\"></span>\n </div>\n </div>\n </div>\n <div class=\"l-content\" *ngIf=\"expand\">\n <div class=\"horizontal-scroll-container\">\n <div class=\"scroll-content\">\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XL' }\" (click)=\"getTabData('XL')\">Greater than 50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'L' }\" (click)=\"getTabData('L')\">10K-50K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'M' }\" (click)=\"getTabData('M')\">1K-10K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'S' }\" (click)=\"getTabData('S')\">500-1K</span>\n <span class=\"tab-title\" [ngClass]=\"{'active' : currentTab === 'XS' }\" (click)=\"getTabData('XS')\">Less than 500</span>\n </div>\n </div>\n <div class=\"relative search-wrapper margin-top-m mb-5\">\n <mat-icon matPrefix class=\"flex absolute items-center justify-center mr-2 icon-search\">search\n </mat-icon>\n <input type=\"search\" name=\"searchKey\" class=\"search-field\" i18-aria-label\n aria-label=\"Search\" i18n-placeholder=\"search\" [(ngModel)]=\"searchTerm\"\n placeholder=\"Search your MDO\" (keyup)=\"handleSearchQuery($event)\" />\n </div>\n <div class=\"l-tab-data\">\n <div *ngFor=\"let user of filteredData; let i = index\">\n <div class=\"flex flex-row item mb-{{filteredData.length - 1 === i ? 0 : 5}} gap-3 {{user.row_num === 1 ? 'relative' : ''}}\" >\n <div><img class=\"crown absolute\" src=\"assets/images/national-learning/rank-crown.svg\" *ngIf=\"user.row_num === 1\"/></div>\n <div class=\"{{getRank(user.row_num)}}\">{{user.row_num}}</div>\n <div class=\"w-full\">\n <div class=\"flex flex-between gap-2\">\n <div>\n <div class=\"rank-name\">{{user.org_name}}</div>\n <div class=\"rank-points flex mt-1 gap-1\">\n <img class=\"nlw-kb\" src=\"assets/icons/home/karma-badge.svg\"/>\n <div class=\"points\">{{user.total_points || 0 }} points</div>\n </div>\n </div>\n <div class=\"rank-crown\" *ngIf=\"[1,2,3].includes(user.row_num)\">\n <img class=\"nlw-animation\" [src]=\"getMedal(user.row_num)\"/>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"no-data px-1\" *ngIf=\"filteredData?.length === 0\">\n No data found!\n </div>\n </div>\n </div>\n</div>\n",
161
161
  styles: [".l-title{font-family:Montserrat;font-size:20px;font-weight:600;line-height:24.38px;text-align:left}.l-content{background-color:#e9eef6;border-radius:16px;padding:16px}.horizontal-scroll-container{overflow-x:auto;white-space:nowrap;-ms-overflow-style:none;scrollbar-width:none;height:32px}.horizontal-scroll-container::-webkit-scrollbar{display:none}.scroll-content{display:inline-block}.tab-title{font-family:Lato;font-size:14px;line-height:16.8px;text-align:left;cursor:pointer;padding:0 15px 8px;border-bottom:2px solid #c3c3c3}.active{font-weight:700;border-bottom:2px solid #1b4ca1}.search-field{height:34px;padding:0 16px 0 40px;border-radius:52px;background:#fff;border:2px solid rgba(0,0,0,.0784313725);width:100%}.icon-search{top:10px;left:15px;height:15px;width:17px}.item{border-radius:12px;background-color:#fff;padding:16px;align-items:flex-start}.rank1{background:#ffca28;font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px}.rank2{background:#1b4ca1;font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px;color:#fff}.rank3{background:#ff8228;font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px}.rank0{font-family:Lato;font-size:14px;font-weight:700;line-height:9px;text-align:center;border-radius:50%;padding:10px;border:1px solid #c3c3c3}.rank-name{font-family:Montserrat;line-height:1.5em;font-size:16px;font-weight:600;text-align:left;align-items:center;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;line-clamp:2}.rank-points{align-items:center}.nlw-kb{height:24px;width:24px}.points{font-family:Lato;font-size:14px;font-weight:600;line-height:16.8px;text-align:right}.crown{left:10px;top:0;width:36px;height:36px}.l-tab-data{height:520px;overflow:auto;padding-bottom:16px}.l-tab-data::-webkit-scrollbar{display:none}.pointer{margin-bottom:-59px;border-radius:41px;background:#c3c3c3;border:35px solid #e9eef6}.dot-dot{width:7px;display:flex;height:7px;background:#c3c3c3;margin-top:-25px;border-radius:10px}@media screen and (min-width:320px) and (max-width:769px){.mdo-leaderboard-container{background-color:#d1dbec}}"]
162
162
  }] }
163
163
  ];
@@ -190,4 +190,4 @@ if (false) {
190
190
  */
191
191
  MdoLeaderboardComponent.prototype.insiteDataService;
192
192
  }
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWxlYWRlcmJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vbWRvLWxlYWRlcmJvYXJkL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFPeEUsTUFBTSxPQUFPLHVCQUF1Qjs7OztJQVVsQyxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJ4RCxlQUFVLEdBQVEsSUFBSSxDQUFBO1FBQ3RCLFdBQU0sR0FBUSxFQUFFLENBQUE7UUFFaEIsZUFBVSxHQUFXLEVBQUUsQ0FBQTtRQUN2QixXQUFNLEdBQVksSUFBSSxDQUFBO1FBR1osZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7SUFDYyxDQUFDOzs7O0lBRTdELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDaEIsQ0FBQzs7OztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjO3FCQUN6QyxNQUFNOzs7O2dCQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFD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QUFNOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUM7aUJBQzdDLEdBQUc7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFNLElBQUksSUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFFLEVBQUMsQ0FBQTtTQUMvQztJQUNILENBQUM7Ozs7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDNUIsQ0FBQzs7O1lBM0ZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxpaEhBQStDOzthQUVoRDs7OztZQU5RLGlCQUFpQjs7O3FCQWV2QixLQUFLO3lCQUNMLE1BQU07Ozs7SUFQUCw2Q0FBc0I7O0lBQ3RCLHlDQUFnQjs7SUFDaEIsK0NBQWlCOztJQUNqQiw2Q0FBdUI7O0lBQ3ZCLHlDQUFzQjs7SUFFdEIseUNBQW9COztJQUNwQiw2Q0FBOEM7Ozs7O0lBQ2xDLG9EQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluc2l0ZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2luc2l0ZS1kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYi11aWMtbWRvLWxlYWRlcmJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1kb0xlYWRlcmJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjdXJyZW50VGFiOiBhbnkgPSAnWEwnXG4gIHJlc3VsdDogYW55ID0gW11cbiAgZmlsdGVyZWREYXRhOiBhbnlcbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJydcbiAgZXhwYW5kOiBib29sZWFuID0gdHJ1ZVxuXG4gIEBJbnB1dCgpIG9iamVjdDogYW55XG4gIEBPdXRwdXQoKSB0YWJDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnNpdGVEYXRhU2VydmljZTogSW5zaXRlRGF0YVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0RGF0YSgpXG4gIH1cblxuICBnZXREYXRhKCkge1xuICAgIHRoaXMuaW5zaXRlRGF0YVNlcnZpY2UuZmV0Y2hMZWFkZXJib2FyZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXMucmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdCA9IHJlcy5yZXN1bHRcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5yZXN1bHQubWRvTGVhZGVyQm9hcmRcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIpIFxuICAgICAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW10sIHNlbGVjdGVkOiBmYWxzZSB9KSlcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIH0pXG4gIH1cblxuICBnZXRUYWJEYXRhKG5hbWU6IGFueSkge1xuICAgIHRoaXMuY3VycmVudFRhYiA9IG5hbWVcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJ1xuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5yZXN1bHQubWRvTGVhZGVyQm9hcmRcbiAgICAgICAgLmZpbHRlcih1c2VyID0+IHVzZXIuc2l6ZSA9PT0gdGhpcy5jdXJyZW50VGFiKSBcbiAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW10sIHNlbGVjdGVkOiBmYWxzZSB9KSlcbiAgICBsZXQgbmFtZVN0cjogYW55ID0gJydcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ1hMJzpcbiAgICAgICAgbmFtZVN0ciA9ICdncmVhdGVyLXRoYW4tNTBLJ1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnTCc6XG4gICAgICAgIG5hbWVTdHIgPSAgJzEwSy01MEsnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdNJzpcbiAgICAgICAgbmFtZVN0ciA9ICAnMUstMTBLJ1xuICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdTJzpcbiAgICAgICAgICBuYW1lU3RyID0gJzUwMC0xSydcbiAgICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbmFtZVN0ciA9ICdsZXNzLXRoYW4tNTAwJ1xuICAgICAgICBicmVha1xuICAgIH1cbiAgICB0aGlzLnRhYkNsaWNrZWQuZW1pdChuYW1lU3RyKVxuICB9XG5cbiAgZ2V0UmFuayhyYW5rOiBudW1iZXIpIHtcbiAgICByZXR1cm4gWzEsMiwzXS5pbmNsdWRlcyhyYW5rKSA/IGByYW5rJHtyYW5rfWAgOiAncmFuazAnXG4gIH1cblxuICBnZXRNZWRhbChyYW5rOiBudW1iZXIpIHtcbiAgICBpZiAocmFuayA9PT0gMSkge1xuICAgICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvbmF0aW9uYWwtbGVhcm5pbmcvTWVkYWwxLnN2ZydcbiAgICB9IGVsc2UgaWYocmFuayA9PT0gMikge1xuICAgICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvbmF0aW9uYWwtbGVhcm5pbmcvTWVkYWwyLnN2ZydcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJ2Fzc2V0cy9pbWFnZXMvbmF0aW9uYWwtbGVhcm5pbmcvTWVkYWwzLnN2ZydcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZWFyY2hRdWVyeShlOiBhbnkpIHtcbiAgICBpZiAoZS50YXJnZXQudmFsdWUgJiYgZS50YXJnZXQudmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBlLnRhcmdldC52YWx1ZVxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMucmVzdWx0Lm1kb0xlYWRlckJvYXJkXG4gICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIgJiYgdXNlci5vcmdfbmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGUudGFyZ2V0LnZhbHVlKSlcbiAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW119KSlcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMucmVzdWx0Lm1kb0xlYWRlckJvYXJkXG4gICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIpXG4gICAgICAgICAgICAubWFwKHVzZXIgPT4gKHsgLi4udXNlciwgY2hpbGRyZW46IFtdfSkpXG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlV2Vla0hpZ2h0bGl0cygpIHtcbiAgICB0aGlzLmV4cGFuZCA9ICF0aGlzLmV4cGFuZFxuICB9XG5cbn1cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRvLWxlYWRlcmJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL2NvbnN1bXB0aW9uLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vbWRvLWxlYWRlcmJvYXJkL21kby1sZWFkZXJib2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFPeEUsTUFBTSxPQUFPLHVCQUF1Qjs7OztJQVVsQyxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVJ4RCxlQUFVLEdBQVEsSUFBSSxDQUFBO1FBQ3RCLFdBQU0sR0FBUSxFQUFFLENBQUE7UUFFaEIsZUFBVSxHQUFXLEVBQUUsQ0FBQTtRQUN2QixXQUFNLEdBQVksSUFBSSxDQUFBO1FBR1osZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUE7SUFDYyxDQUFDOzs7O0lBRTdELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDaEIsQ0FBQzs7OztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjO3FCQUN6QyxNQUFNOzs7O2dCQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFD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LEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDM0Q7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjO2lCQUN6QyxNQUFNOzs7O1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUM7aUJBQzdDLEdBQUc7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFNLElBQUksSUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFFLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQzNEO0lBQ0gsQ0FBQzs7OztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUM1QixDQUFDOzs7WUEzRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLHdrSEFBK0M7O2FBRWhEOzs7O1lBTlEsaUJBQWlCOzs7cUJBZXZCLEtBQUs7eUJBQ0wsTUFBTTs7OztJQVBQLDZDQUFzQjs7SUFDdEIseUNBQWdCOztJQUNoQiwrQ0FBaUI7O0lBQ2pCLDZDQUF1Qjs7SUFDdkIseUNBQXNCOztJQUV0Qix5Q0FBb0I7O0lBQ3BCLDZDQUE4Qzs7Ozs7SUFDbEMsb0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5zaXRlRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvaW5zaXRlLWRhdGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NiLXVpYy1tZG8tbGVhZGVyYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWRvLWxlYWRlcmJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWRvLWxlYWRlcmJvYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWRvTGVhZGVyYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGN1cnJlbnRUYWI6IGFueSA9ICdYTCdcbiAgcmVzdWx0OiBhbnkgPSBbXVxuICBmaWx0ZXJlZERhdGE6IGFueVxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJ1xuICBleHBhbmQ6IGJvb2xlYW4gPSB0cnVlXG5cbiAgQElucHV0KCkgb2JqZWN0OiBhbnlcbiAgQE91dHB1dCgpIHRhYkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluc2l0ZURhdGFTZXJ2aWNlOiBJbnNpdGVEYXRhU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXREYXRhKClcbiAgfVxuXG4gIGdldERhdGEoKSB7XG4gICAgdGhpcy5pbnNpdGVEYXRhU2VydmljZS5mZXRjaExlYWRlcmJvYXJkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzICYmIHJlcy5yZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdWx0ID0gcmVzLnJlc3VsdFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLnJlc3VsdC5tZG9MZWFkZXJCb2FyZFxuICAgICAgICAgICAgICAgIC5maWx0ZXIodXNlciA9PiB1c2VyLnNpemUgPT09IHRoaXMuY3VycmVudFRhYikgXG4gICAgICAgICAgICAgICAgLm1hcCh1c2VyID0+ICh7IC4uLnVzZXIsIGNoaWxkcmVuOiBbXSwgc2VsZWN0ZWQ6IGZhbHNlIH0pKS5zbGljZSgwLCA1KVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgfSlcbiAgfVxuXG4gIGdldFRhYkRhdGEobmFtZTogYW55KSB7XG4gICAgdGhpcy5jdXJyZW50VGFiID0gbmFtZVxuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnXG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLnJlc3VsdC5tZG9MZWFkZXJCb2FyZFxuICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci5zaXplID09PSB0aGlzLmN1cnJlbnRUYWIpIFxuICAgICAgICAgICAgLm1hcCh1c2VyID0+ICh7IC4uLnVzZXIsIGNoaWxkcmVuOiBbXSwgc2VsZWN0ZWQ6IGZhbHNlIH0pKS5zbGljZSgwLCA1KVxuICAgIGxldCBuYW1lU3RyOiBhbnkgPSAnJ1xuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSAnWEwnOlxuICAgICAgICBuYW1lU3RyID0gJ2dyZWF0ZXItdGhhbi01MEsnXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdMJzpcbiAgICAgICAgbmFtZVN0ciA9ICAnMTBLLTUwSydcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ00nOlxuICAgICAgICBuYW1lU3RyID0gICcxSy0xMEsnXG4gICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgIG5hbWVTdHIgPSAnNTAwLTFLJ1xuICAgICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBuYW1lU3RyID0gJ2xlc3MtdGhhbi01MDAnXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICAgIHRoaXMudGFiQ2xpY2tlZC5lbWl0KG5hbWVTdHIpXG4gIH1cblxuICBnZXRSYW5rKHJhbms6IG51bWJlcikge1xuICAgIHJldHVybiBbMSwyLDNdLmluY2x1ZGVzKHJhbmspID8gYHJhbmske3Jhbmt9YCA6ICdyYW5rMCdcbiAgfVxuXG4gIGdldE1lZGFsKHJhbms6IG51bWJlcikge1xuICAgIGlmIChyYW5rID09PSAxKSB7XG4gICAgICAgIHJldHVybiAnYXNzZXRzL2ltYWdlcy9uYXRpb25hbC1sZWFybmluZy9NZWRhbDEuc3ZnJ1xuICAgIH0gZWxzZSBpZihyYW5rID09PSAyKSB7XG4gICAgICAgIHJldHVybiAnYXNzZXRzL2ltYWdlcy9uYXRpb25hbC1sZWFybmluZy9NZWRhbDIuc3ZnJ1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnYXNzZXRzL2ltYWdlcy9uYXRpb25hbC1sZWFybmluZy9NZWRhbDMuc3ZnJ1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNlYXJjaFF1ZXJ5KGU6IGFueSkge1xuICAgIGlmIChlLnRhcmdldC52YWx1ZSAmJiBlLnRhcmdldC52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IGUudGFyZ2V0LnZhbHVlXG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5yZXN1bHQubWRvTGVhZGVyQm9hcmRcbiAgICAgICAgICAgIC5maWx0ZXIodXNlciA9PiB1c2VyLnNpemUgPT09IHRoaXMuY3VycmVudFRhYiAmJiB1c2VyLm9yZ19uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZS50YXJnZXQudmFsdWUpKVxuICAgICAgICAgICAgLm1hcCh1c2VyID0+ICh7IC4uLnVzZXIsIGNoaWxkcmVuOiBbXX0pKS5zbGljZSgwLCA1KVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5yZXN1bHQubWRvTGVhZGVyQm9hcmRcbiAgICAgICAgICAgIC5maWx0ZXIodXNlciA9PiB1c2VyLnNpemUgPT09IHRoaXMuY3VycmVudFRhYilcbiAgICAgICAgICAgIC5tYXAodXNlciA9PiAoeyAuLi51c2VyLCBjaGlsZHJlbjogW119KSkuc2xpY2UoMCwgNSlcbiAgICB9XG4gIH1cblxuICB0b2dnbGVXZWVrSGlnaHRsaXRzKCkge1xuICAgIHRoaXMuZXhwYW5kID0gIXRoaXMuZXhwYW5kXG4gIH1cblxufVxuIl19