asap-feed-beta 12.7.9 → 12.8.1

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.
@@ -48,13 +48,11 @@ export class AsapFeedBetaComponent {
48
48
  this.publication = this.controlService.publication;
49
49
  this.query = this.controlService.query;
50
50
  }
51
- console.log('Query ->', this.query);
52
51
  this.route.params.subscribe((/**
53
52
  * @param {?} param
54
53
  * @return {?}
55
54
  */
56
55
  param => {
57
- console.log('Params ->', param);
58
56
  if (param) {
59
57
  if (param.feed_id) {
60
58
  this.feedID = param.feed_id;
@@ -101,7 +99,6 @@ export class AsapFeedBetaComponent {
101
99
  * @return {?}
102
100
  */
103
101
  getFeed(feed_id = '') {
104
- console.log('[getFeed] Query', this.query, this.filterByMe);
105
102
  this.feeds = null;
106
103
  this.loading = true;
107
104
  this.feedService.getFeed(feed_id, this.global.loggedUser(), this.query, this.filterByMe).subscribe((/**
@@ -110,7 +107,6 @@ export class AsapFeedBetaComponent {
110
107
  */
111
108
  (response) => {
112
109
  this.feeds = response.data;
113
- console.log('Feeds', this.feeds);
114
110
  this.paginate = response.pagination;
115
111
  this.loading = false;
116
112
  this.hasFeed = (this.feeds.length > 0);
@@ -120,7 +116,6 @@ export class AsapFeedBetaComponent {
120
116
  * @return {?}
121
117
  */
122
118
  getMore() {
123
- console.log('[getMore]', this.paginate.next_document);
124
119
  if (this.paginate.next_document) {
125
120
  this.loading = true;
126
121
  this.feedService.getMoreFeed(5, this.paginate.next_document, this.global.loggedUser(), this.query, this.filterByMe).subscribe((/**
@@ -128,7 +123,6 @@ export class AsapFeedBetaComponent {
128
123
  * @return {?}
129
124
  */
130
125
  (response) => {
131
- console.log('[getMore] Got: ', response);
132
126
  response.data.map((/**
133
127
  * @param {?} item
134
128
  * @return {?}
@@ -327,11 +321,20 @@ export class AsapFeedBetaComponent {
327
321
  this.filterByMe = filterByMe;
328
322
  this.getFeed();
329
323
  }
324
+ /**
325
+ * @return {?}
326
+ */
327
+ get isScrollDisabled() {
328
+ return this.loading ||
329
+ this.paginate.count >= this.paginate.limit ||
330
+ this.isSinglePost ||
331
+ this.paginate.last_document === this.paginate.next_document;
332
+ }
330
333
  }
331
334
  AsapFeedBetaComponent.decorators = [
332
335
  { type: Component, args: [{
333
336
  selector: 'asap-feed-beta',
334
- template: "<ng-container *ngIf=\"!settings?.channelsHidden\">\n <app-stories *ngIf=\"stories && !hasID && !isSinglePost\"></app-stories>\n</ng-container>\n\n<feed-publication [settings]=\"settings\" [announce]=\"announce\" (feedCreated)=\"onNewFeed($event)\" (filter)=\"reload($event)\" *ngIf=\"publication && !hasID && !isSinglePost\"></feed-publication>\n\n<!-- Este trecho do c\u00F3digo foi removido, pois ele fazia o Feed ficar flicando na tela. -->\n<ng-container *ngIf=\"!feeds\">\n <div [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\"> \n <ng-container *ngFor=\"let item of [0,1]\">\n <div>\n <mat-card class=\"feed-card mb-4\">\n <mat-card-header class=\"feed-header\">\n <div class=\"mr-3\" mat-card-avatar>\n <ngx-skeleton-loader animation=\"progress\" appearance=\"circle\" [theme]=\"{height:'40px'}\">\n </ngx-skeleton-loader>\n </div>\n <mat-card-title>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'25px','transform': 'initial', marginBottom: '0'}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'15px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </mat-card-title>\n\n </mat-card-header>\n\n <ng-container>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'400px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </ng-container>\n\n </mat-card>\n </div>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"feeds\">\n <ng-container *ngFor=\"let item of feeds\">\n <div [class.focus-on-me]=\"item.focus\" [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\">\n <app-feed-item [owner]=\"this\" [settings]=\"settings\" [item]=\"item\" (isVisible)=\"sendVisible($event)\"></app-feed-item>\n </div>\n </ng-container>\n</ng-container>\n\n<div *ngIf=\"loading\">\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'40px', width:'100%'}\"></ngx-skeleton-loader>\n</div>\n\n<div infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"2000\" [infiniteScrollDisabled]=\"\n loading || \n paginate.count >= paginate.limit || \n isSinglePost || \n paginate.last_document === paginate.next_document\" (scrolled)=\"getMore()\">\n</div>\n\n<button \n *ngIf=\"showToTopButton\" \n (click)=\"gotoTop()\" \n style=\"position: fixed;\n bottom: 0;\n right: 0;\n color:#FFFF;\n font-size: 20px;\n margin-right: 10px;\n margin-bottom: 10px;\n height: 35px;\n width: 35px;\n border: none;\n text-align: center;\n border-radius: 50%;\n outline: none;\n transition: all 1s ease-in;\n background-color: var(--main-color);\n z-index: 99999;\"\n class=\"d-none d-sm-block\">\n <i class=\"fa fa-angle-up\"></i>\n</button>\n",
337
+ template: "<ng-container *ngIf=\"!settings?.channelsHidden\">\n <app-stories *ngIf=\"stories && !hasID && !isSinglePost\"></app-stories>\n</ng-container>\n\n<feed-publication [settings]=\"settings\" [announce]=\"announce\" (feedCreated)=\"onNewFeed($event)\" (filter)=\"reload($event)\" *ngIf=\"publication && !hasID && !isSinglePost\"></feed-publication>\n\n<!-- Este trecho do c\u00F3digo foi removido, pois ele fazia o Feed ficar flicando na tela. -->\n<ng-container *ngIf=\"!feeds\">\n <div [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\"> \n <ng-container *ngFor=\"let item of [0,1]\">\n <div>\n <mat-card class=\"feed-card mb-4\">\n <mat-card-header class=\"feed-header\">\n <div class=\"mr-3\" mat-card-avatar>\n <ngx-skeleton-loader animation=\"progress\" appearance=\"circle\" [theme]=\"{height:'40px'}\">\n </ngx-skeleton-loader>\n </div>\n <mat-card-title>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'25px','transform': 'initial', marginBottom: '0'}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'15px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </mat-card-title>\n\n </mat-card-header>\n\n <ng-container>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'400px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </ng-container>\n\n </mat-card>\n </div>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"feeds\">\n <ng-container *ngFor=\"let item of feeds\">\n <div [class.focus-on-me]=\"item.focus\" [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\">\n <app-feed-item [owner]=\"this\" [settings]=\"settings\" [item]=\"item\" (isVisible)=\"sendVisible($event)\"></app-feed-item>\n </div>\n </ng-container>\n</ng-container>\n\n<div *ngIf=\"loading\">\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'40px', width:'100%'}\"></ngx-skeleton-loader>\n</div>\n\n<div infiniteScroll \n [infiniteScrollDistance]=\"2\" \n [infiniteScrollThrottle]=\"2000\" \n [infiniteScrollDisabled]=\"isScrollDisabled\" \n (scrolled)=\"getMore()\">\n</div>\n\n<button \n *ngIf=\"showToTopButton\" \n (click)=\"gotoTop()\" \n style=\"position: fixed;\n bottom: 0;\n right: 0;\n color:#FFFF;\n font-size: 20px;\n margin-right: 10px;\n margin-bottom: 10px;\n height: 35px;\n width: 35px;\n border: none;\n text-align: center;\n border-radius: 50%;\n outline: none;\n transition: all 1s ease-in;\n background-color: var(--main-color);\n z-index: 99999;\"\n class=\"d-none d-sm-block\">\n <i class=\"fa fa-angle-up\"></i>\n</button>\n",
335
338
  styles: ['./asap-feed.beta.componente.scss']
336
339
  }] }
337
340
  ];
@@ -398,4 +401,4 @@ if (false) {
398
401
  /** @type {?} */
399
402
  AsapFeedBetaComponent.prototype.global;
400
403
  }
401
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYXNhcC1mZWVkLWJldGEvIiwic291cmNlcyI6WyJsaWIvYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRbkMsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7Ozs7SUF3QjlCLFlBQ1ksV0FBNEIsRUFDN0IsRUFBb0IsRUFDcEIsS0FBcUIsRUFDckIsY0FBbUMsRUFDbkMsTUFBYztRQUpiLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTNCbEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFHYixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd4QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRWQsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUliLHlCQUFvQixHQUFHLEdBQUcsQ0FB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RCxPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUNyRTtZQUNMLENBQUMsRUFBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7O0lBRUQsTUFBTSxDQUFDLFVBQWU7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7OztZQXRRSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsZzVGQUE4Qzt5QkFDckMsa0NBQWtDO2FBQzlDOzs7O1lBWFEsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLE1BQU07OztpQkFhVixLQUFLOzRCQUNMLEtBQUs7dUJBQ0wsS0FBSzswQkE0SEwsWUFBWSxTQUFDLGVBQWU7Ozs7SUFqSTdCLHdDQUFzQjs7SUFDdEIsd0NBQXNCOztJQUV0QixtQ0FBWTs7SUFDWiw4Q0FBK0I7O0lBQy9CLHlDQUFrQjs7SUFFbEIsc0NBQXFCOztJQUVyQix3Q0FBc0I7O0lBQ3RCLHlDQUF3Qjs7SUFDeEIsNENBQTBCOztJQUMxQixzQ0FBb0I7O0lBQ3BCLHVDQUFjOztJQUNkLHNDQUFhOztJQUNiLHlDQUFnQjs7SUFDaEIscURBQWtDOztJQUNsQyxnREFBK0I7O0lBQy9CLDZDQUE0Qjs7SUFFNUIsMkNBQTBCOzs7OztJQUd0Qiw0Q0FBb0M7O0lBQ3BDLG1DQUEyQjs7SUFDM0Isc0NBQTRCOztJQUM1QiwrQ0FBMEM7O0lBQzFDLHVDQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdExpc3RlbmVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzYXBGZWVkU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXNhcC1mZWVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFzYXBGZWVkQmV0YVNlcnZpY2UgfSBmcm9tICcuL2FzYXAtZmVlZC1iZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2xvYmFsIH0gZnJvbSAnYXNhcC1jcnVkJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhc2FwLWZlZWQtYmV0YScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FzYXAtZmVlZC1iZXRhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFsnLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBc2FwRmVlZEJldGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBwdWJsaWMgaGFzRmVlZCA9IHRydWU7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgaWdub3JlQ29udHJvbCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzO1xuXG4gICAgcHVibGljIGhhc0lEID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc3RvcmllcyA9IHRydWU7XG4gICAgcHVibGljIGFubm91bmNlID0gZmFsc2U7XG4gICAgcHVibGljIHB1YmxpY2F0aW9uID0gdHJ1ZTtcbiAgICBwdWJsaWMgcXVlcnkgPSBudWxsO1xuICAgIHB1YmxpYyBmZWVkSUQ7XG4gICAgcHVibGljIGZlZWRzO1xuICAgIHB1YmxpYyBwYWdpbmF0ZTtcbiAgICBwdWJsaWMgdG9wUG9zVG9TdGFydFNob3dpbmcgPSA0MDA7XG4gICAgcHVibGljIHNob3dUb1RvcEJ1dHRvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1NpbmdsZVBvc3QgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBmaWx0ZXJCeU1lID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmZWVkU2VydmljZTogQXNhcEZlZWRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBjb250cm9sU2VydmljZTogQXNhcEZlZWRCZXRhU2VydmljZSxcbiAgICAgICAgcHVibGljIGdsb2JhbDogR2xvYmFsLFxuICAgICkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgICAgICBcbiAgICAgICAgaWYgKCF0aGlzLmlnbm9yZUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2UgPSB0aGlzLmNvbnRyb2xTZXJ2aWNlLmFubm91bmNlO1xuICAgICAgICAgICAgdGhpcy5zdG9yaWVzID0gdGhpcy5jb250cm9sU2VydmljZS5zdG9yaWVzO1xuICAgICAgICAgICAgdGhpcy5wdWJsaWNhdGlvbiA9IHRoaXMuY29udHJvbFNlcnZpY2UucHVibGljYXRpb247XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5jb250cm9sU2VydmljZS5xdWVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCdRdWVyeSAtPicsIHRoaXMucXVlcnkpO1xuXG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUGFyYW1zIC0+JywgcGFyYW0pO1xuICAgICAgICAgICAgaWYgKHBhcmFtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtLmZlZWRfaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWVkSUQgPSBwYXJhbS5mZWVkX2lkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2luZ2xlUG9zdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEZlZWQodGhpcy5mZWVkSUQpO1xuICAgICAgICAgICAgICAgICAgICB9LCA2MDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRGZWVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jaGVja0ZlZWRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZmVlZElEKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldEZlZWQodGhpcy5mZWVkSUQpO1xuICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzSUQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sU2VydmljZS5xdWVyeSkgdGhpcy5jb250cm9sU2VydmljZS5xdWVyeSA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbFNlcnZpY2UucXVlcnkuc2VhcmNoQnkgPSAndXNlcl9pbmZvLmlkJztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xTZXJ2aWNlLnF1ZXJ5LnNlYXJjaFZhbHVlID0gdGhpcy5pZCArICcmdHlwZVZhbHVlPW51bWJlcic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmVlZChmZWVkX2lkID0gJycpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tnZXRGZWVkXSBRdWVyeScsIHRoaXMucXVlcnksIHRoaXMuZmlsdGVyQnlNZSk7XG4gICAgICAgIHRoaXMuZmVlZHMgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmZlZWRTZXJ2aWNlLmdldEZlZWQoZmVlZF9pZCwgdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLCB0aGlzLnF1ZXJ5LCB0aGlzLmZpbHRlckJ5TWUpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZWVkcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRmVlZHMnLCB0aGlzLmZlZWRzKTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGUgPSByZXNwb25zZS5wYWdpbmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmhhc0ZlZWQgPSAodGhpcy5mZWVkcy5sZW5ndGggPiAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vcmUoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbZ2V0TW9yZV0nLCB0aGlzLnBhZ2luYXRlLm5leHRfZG9jdW1lbnQpO1xuICAgICAgICBpZiAodGhpcy5wYWdpbmF0ZS5uZXh0X2RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5mZWVkU2VydmljZS5nZXRNb3JlRmVlZCg1LCB0aGlzLnBhZ2luYXRlLm5leHRfZG9jdW1lbnQsIHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSwgdGhpcy5xdWVyeSwgdGhpcy5maWx0ZXJCeU1lKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW2dldE1vcmVdIEdvdDogJywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wZXJtaXR0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmVlZHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0ZSA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0ZlZWRDaGFuZ2UoKSB7XG4gICAgICAgIC8vIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQsIHJlZiA9PiB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVmLm9yZGVyQnkoJ3VwZGF0ZWRfYXQnLCAnZGVzYycpO1xuICAgICAgICAvLyB9KTtcblxuICAgICAgICAvLyBjb2xsZWN0aW9uLnNuYXBzaG90Q2hhbmdlcygpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIltjaGVja0ZlZWRDaGFuZ2VdXCIscmVzcG9uc2UpO1xuICAgICAgICAvLyAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIC8vICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW2NoZWNrRmVlZENoYW5nZV1cIilcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5nZXRGZWVkKHRoaXMuZmVlZElEKTtcbiAgICAgICAgLy8gICAgICAgICB9LCA2MDApO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxuICAgIGNoZWNrU2Nyb2xsKCkge1xuICAgICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XG4gICAgICAgIGlmIChzY3JvbGxQb3NpdGlvbiA+PSB0aGlzLnRvcFBvc1RvU3RhcnRTaG93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb1RvcEJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb1RvcEJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ290b1RvcCgpIHtcbiAgICAgICAgd2luZG93LnNjcm9sbCh7XG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHBlcm1pdHRlZChwb3N0KSB7XG4gICAgICAgIGlmIChwb3N0LnBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIGlmIChwb3N0LnBlcm1pc3Npb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpO1xuICAgICAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3N0LnVzZXJfaW5mbyAmJiBwb3N0LnVzZXJfaW5mby5pZCA9PSB1c2VyLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHVzZXIuZXh0cmFzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYXMgPSB1c2VyLmV4dHJhc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVybSBvZiBwb3N0LnBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBlcm0uZmllbGQgPT0gJ211bHRpLWNvbnRhJykgJiYgKHBlcm0udmFsdWUgPT0gdXNlci5jbGllbnRfaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChleHRyYXNbcGVybS5maWVsZF0gPT0gcGVybS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OZXdGZWVkKGlkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbb25OZXdGZWVkXScsIGlkKTtcbiAgICAgICAgdGhpcy5mZWVkU2VydmljZS5nZXRGZWVkKGlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuZmVlZHMubGVuZ3RoO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZlZWQgb2YgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICAgIGZlZWQuZm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZlZWQgb2YgdGhpcy5mZWVkcykge1xuICAgICAgICAgICAgICAgIGZlZWQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZlZWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tvbk5ld0ZlZWRdIEZlZWQnLCB0aGlzLmZlZWRzW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmVlZHNbaV0uaXNIaWdobGlnaHRlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mZWVkcyA9IFtcbiAgICAgICAgICAgICAgICAuLi4gdGhpcy5mZWVkcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgICAgICAgLi4uIHJlc3BvbnNlLmRhdGEsXG4gICAgICAgICAgICAgICAgLi4uIHRoaXMuZmVlZHMuc2xpY2UoaW5kZXgpXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZvY3VzLW9uLW1lJylbMF07XG4gICAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kVmlzaWJsZShpdGVtKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBtYXJjYW5kbyBjb21vIHZpc3VhbGl6YWRvXCIsIGl0ZW0pO1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpO1xuXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIHBvc3RfaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IGl0ZW0udXBkYXRlZF9hdFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAgICAgcG9zdF9pZDogaXRlbS5pZCxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgICAgICAgICAgaWQ6IHVzZXIuaWQsXG4gICAgICAgICAgICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICBuYW1lOiB1c2VyLm5hbWUsXG4gICAgICAgICAgICAgICAgcGljdHVyZTogdXNlci5waWN0dXJlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRJRCA9IGBmZWVkLXZpZXcvJHtpdGVtLmlkfWA7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy5kYi5kb2MoZG9jdW1lbnRJRCk7XG4gICAgICAgIGRvY3VtZW50LnNldChwb3N0RGF0YSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SUQgPSBgZmVlZC12aWV3LyR7aXRlbS5pZH0vdmlld3MvJHt1c2VyLmlkfWA7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IHRoaXMuZGIuZG9jKGRvY3VtZW50SUQpO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0KCkuc3Vic2NyaWJlKChkb2MpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRvYy5leGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jLnJlZi5zZXQoZGF0YSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBtYXJjYWRvIGNvbW8gdmlzdWFsaXphZG9cIiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBqw6EgZm9pIG1hcmNhZG8gY29tbyB2aXN1YWxpemFkb1wiLCBkb2MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5kYi5jb2xsZWN0aW9uKGAke2RvY3VtZW50SUR9L2hpc3RvcnlgKS5hZGQoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbG9hZChmaWx0ZXJCeU1lOiBhbnkpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJCeU1lID0gZmlsdGVyQnlNZTtcbiAgICAgICAgdGhpcy5nZXRGZWVkKCk7XG4gICAgfVxuXG59XG4iXX0=
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYXNhcC1mZWVkLWJldGEvIiwic291cmNlcyI6WyJsaWIvYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsWUFBWSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFRbkMsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7Ozs7SUF3QjlCLFlBQ1ksV0FBNEIsRUFDN0IsRUFBb0IsRUFDcEIsS0FBcUIsRUFDckIsY0FBbUMsRUFDbkMsTUFBYztRQUpiLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM3QixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTNCbEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFHYixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd4QixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRWQsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUliLHlCQUFvQixHQUFHLEdBQUcsQ0FB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QUFDLFFBQVEsQ0FBQyxLQUFLO1lBQzFDLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFBO0lBQ3RFLENBQUM7OztZQW5RSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsb3lGQUE4Qzt5QkFDckMsa0NBQWtDO2FBQzlDOzs7O1lBWFEsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLE1BQU07OztpQkFhVixLQUFLOzRCQUNMLEtBQUs7dUJBQ0wsS0FBSzswQkFrSEwsWUFBWSxTQUFDLGVBQWU7Ozs7SUF2SDdCLHdDQUFzQjs7SUFDdEIsd0NBQXNCOztJQUV0QixtQ0FBWTs7SUFDWiw4Q0FBK0I7O0lBQy9CLHlDQUFrQjs7SUFFbEIsc0NBQXFCOztJQUVyQix3Q0FBc0I7O0lBQ3RCLHlDQUF3Qjs7SUFDeEIsNENBQTBCOztJQUMxQixzQ0FBb0I7O0lBQ3BCLHVDQUFjOztJQUNkLHNDQUFhOztJQUNiLHlDQUFnQjs7SUFDaEIscURBQWtDOztJQUNsQyxnREFBK0I7O0lBQy9CLDZDQUE0Qjs7SUFFNUIsMkNBQTBCOzs7OztJQUd0Qiw0Q0FBb0M7O0lBQ3BDLG1DQUEyQjs7SUFDM0Isc0NBQTRCOztJQUM1QiwrQ0FBMEM7O0lBQzFDLHVDQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdExpc3RlbmVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzYXBGZWVkU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXNhcC1mZWVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFzYXBGZWVkQmV0YVNlcnZpY2UgfSBmcm9tICcuL2FzYXAtZmVlZC1iZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2xvYmFsIH0gZnJvbSAnYXNhcC1jcnVkJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhc2FwLWZlZWQtYmV0YScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FzYXAtZmVlZC1iZXRhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFsnLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBc2FwRmVlZEJldGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBwdWJsaWMgaGFzRmVlZCA9IHRydWU7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgaWdub3JlQ29udHJvbCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzO1xuXG4gICAgcHVibGljIGhhc0lEID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc3RvcmllcyA9IHRydWU7XG4gICAgcHVibGljIGFubm91bmNlID0gZmFsc2U7XG4gICAgcHVibGljIHB1YmxpY2F0aW9uID0gdHJ1ZTtcbiAgICBwdWJsaWMgcXVlcnkgPSBudWxsO1xuICAgIHB1YmxpYyBmZWVkSUQ7XG4gICAgcHVibGljIGZlZWRzO1xuICAgIHB1YmxpYyBwYWdpbmF0ZTtcbiAgICBwdWJsaWMgdG9wUG9zVG9TdGFydFNob3dpbmcgPSA0MDA7XG4gICAgcHVibGljIHNob3dUb1RvcEJ1dHRvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1NpbmdsZVBvc3QgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBmaWx0ZXJCeU1lID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmZWVkU2VydmljZTogQXNhcEZlZWRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBjb250cm9sU2VydmljZTogQXNhcEZlZWRCZXRhU2VydmljZSxcbiAgICAgICAgcHVibGljIGdsb2JhbDogR2xvYmFsLFxuICAgICkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlnbm9yZUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2UgPSB0aGlzLmNvbnRyb2xTZXJ2aWNlLmFubm91bmNlO1xuICAgICAgICAgICAgdGhpcy5zdG9yaWVzID0gdGhpcy5jb250cm9sU2VydmljZS5zdG9yaWVzO1xuICAgICAgICAgICAgdGhpcy5wdWJsaWNhdGlvbiA9IHRoaXMuY29udHJvbFNlcnZpY2UucHVibGljYXRpb247XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5jb250cm9sU2VydmljZS5xdWVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbSA9PiB7XG4gICAgICAgICAgICBpZiAocGFyYW0pIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyYW0uZmVlZF9pZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZlZWRJRCA9IHBhcmFtLmZlZWRfaWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTaW5nbGVQb3N0ID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RmVlZCh0aGlzLmZlZWRJRCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDYwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEZlZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoZWNrRmVlZENoYW5nZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZmVlZElEKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldEZlZWQodGhpcy5mZWVkSUQpO1xuICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzSUQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sU2VydmljZS5xdWVyeSkgdGhpcy5jb250cm9sU2VydmljZS5xdWVyeSA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbFNlcnZpY2UucXVlcnkuc2VhcmNoQnkgPSAndXNlcl9pbmZvLmlkJztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xTZXJ2aWNlLnF1ZXJ5LnNlYXJjaFZhbHVlID0gdGhpcy5pZCArICcmdHlwZVZhbHVlPW51bWJlcic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmVlZChmZWVkX2lkID0gJycpIHtcbiAgICAgICAgdGhpcy5mZWVkcyA9IG51bGw7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZmVlZFNlcnZpY2UuZ2V0RmVlZChmZWVkX2lkLCB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCksIHRoaXMucXVlcnksIHRoaXMuZmlsdGVyQnlNZSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZlZWRzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGUgPSByZXNwb25zZS5wYWdpbmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmhhc0ZlZWQgPSAodGhpcy5mZWVkcy5sZW5ndGggPiAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vcmUoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRlLm5leHRfZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmZlZWRTZXJ2aWNlLmdldE1vcmVGZWVkKDUsIHRoaXMucGFnaW5hdGUubmV4dF9kb2N1bWVudCwgdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLCB0aGlzLnF1ZXJ5LCB0aGlzLmZpbHRlckJ5TWUpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wZXJtaXR0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmVlZHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0ZSA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0ZlZWRDaGFuZ2UoKSB7XG4gICAgICAgIC8vIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQsIHJlZiA9PiB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVmLm9yZGVyQnkoJ3VwZGF0ZWRfYXQnLCAnZGVzYycpO1xuICAgICAgICAvLyB9KTtcblxuICAgICAgICAvLyBjb2xsZWN0aW9uLnNuYXBzaG90Q2hhbmdlcygpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIltjaGVja0ZlZWRDaGFuZ2VdXCIscmVzcG9uc2UpO1xuICAgICAgICAvLyAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIC8vICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW2NoZWNrRmVlZENoYW5nZV1cIilcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5nZXRGZWVkKHRoaXMuZmVlZElEKTtcbiAgICAgICAgLy8gICAgICAgICB9LCA2MDApO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxuICAgIGNoZWNrU2Nyb2xsKCkge1xuICAgICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XG4gICAgICAgIGlmIChzY3JvbGxQb3NpdGlvbiA+PSB0aGlzLnRvcFBvc1RvU3RhcnRTaG93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb1RvcEJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb1RvcEJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ290b1RvcCgpIHtcbiAgICAgICAgd2luZG93LnNjcm9sbCh7XG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHBlcm1pdHRlZChwb3N0KSB7XG4gICAgICAgIGlmIChwb3N0LnBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIGlmIChwb3N0LnBlcm1pc3Npb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpO1xuICAgICAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3N0LnVzZXJfaW5mbyAmJiBwb3N0LnVzZXJfaW5mby5pZCA9PSB1c2VyLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHVzZXIuZXh0cmFzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYXMgPSB1c2VyLmV4dHJhc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVybSBvZiBwb3N0LnBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBlcm0uZmllbGQgPT0gJ211bHRpLWNvbnRhJykgJiYgKHBlcm0udmFsdWUgPT0gdXNlci5jbGllbnRfaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChleHRyYXNbcGVybS5maWVsZF0gPT0gcGVybS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OZXdGZWVkKGlkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbb25OZXdGZWVkXScsIGlkKTtcbiAgICAgICAgdGhpcy5mZWVkU2VydmljZS5nZXRGZWVkKGlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuZmVlZHMubGVuZ3RoO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZlZWQgb2YgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICAgIGZlZWQuZm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZlZWQgb2YgdGhpcy5mZWVkcykge1xuICAgICAgICAgICAgICAgIGZlZWQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZlZWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tvbk5ld0ZlZWRdIEZlZWQnLCB0aGlzLmZlZWRzW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmVlZHNbaV0uaXNIaWdobGlnaHRlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mZWVkcyA9IFtcbiAgICAgICAgICAgICAgICAuLi4gdGhpcy5mZWVkcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgICAgICAgLi4uIHJlc3BvbnNlLmRhdGEsXG4gICAgICAgICAgICAgICAgLi4uIHRoaXMuZmVlZHMuc2xpY2UoaW5kZXgpXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZvY3VzLW9uLW1lJylbMF07XG4gICAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kVmlzaWJsZShpdGVtKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBtYXJjYW5kbyBjb21vIHZpc3VhbGl6YWRvXCIsIGl0ZW0pO1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpO1xuXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIHBvc3RfaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IGl0ZW0udXBkYXRlZF9hdFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAgICAgcG9zdF9pZDogaXRlbS5pZCxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgICAgICAgICAgaWQ6IHVzZXIuaWQsXG4gICAgICAgICAgICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICBuYW1lOiB1c2VyLm5hbWUsXG4gICAgICAgICAgICAgICAgcGljdHVyZTogdXNlci5waWN0dXJlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRJRCA9IGBmZWVkLXZpZXcvJHtpdGVtLmlkfWA7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy5kYi5kb2MoZG9jdW1lbnRJRCk7XG4gICAgICAgIGRvY3VtZW50LnNldChwb3N0RGF0YSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SUQgPSBgZmVlZC12aWV3LyR7aXRlbS5pZH0vdmlld3MvJHt1c2VyLmlkfWA7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IHRoaXMuZGIuZG9jKGRvY3VtZW50SUQpO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0KCkuc3Vic2NyaWJlKChkb2MpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRvYy5leGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jLnJlZi5zZXQoZGF0YSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBtYXJjYWRvIGNvbW8gdmlzdWFsaXphZG9cIiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBqw6EgZm9pIG1hcmNhZG8gY29tbyB2aXN1YWxpemFkb1wiLCBkb2MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5kYi5jb2xsZWN0aW9uKGAke2RvY3VtZW50SUR9L2hpc3RvcnlgKS5hZGQoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbG9hZChmaWx0ZXJCeU1lOiBhbnkpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJCeU1lID0gZmlsdGVyQnlNZTtcbiAgICAgICAgdGhpcy5nZXRGZWVkKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlzU2Nyb2xsRGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmcgfHwgXG4gICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRlLmNvdW50ID49IHRoaXMucGFnaW5hdGUubGltaXQgfHwgXG4gICAgICAgICAgICAgICB0aGlzLmlzU2luZ2xlUG9zdCB8fCBcbiAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGUubGFzdF9kb2N1bWVudCA9PT0gdGhpcy5wYWdpbmF0ZS5uZXh0X2RvY3VtZW50XG4gICAgfVxuXG59XG4iXX0=
@@ -46,7 +46,6 @@ import { MatTabsModule } from '@angular/material/tabs';
46
46
  import { FeedPostsComponent } from './feed-posts/feed-posts.component';
47
47
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
48
48
  import { AutoCompleteComponent } from './components/auto-complete/auto-complete.component';
49
- // import { NgAisModule } from 'angular-instantsearch';
50
49
  export class AsapFeedBetaModule {
51
50
  /**
52
51
  * @param {?} global
@@ -139,4 +138,4 @@ if (false) {
139
138
  /** @type {?} */
140
139
  AsapFeedBetaModule.prototype.global;
141
140
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC1mZWVkLWJldGEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYXNhcC1mZWVkLWJldGEvIiwic291cmNlcyI6WyJsaWIvYXNhcC1mZWVkLWJldGEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FB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LGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsWUFBWTtvQkFDWixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsa0JBQWtCO29CQUNsQixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsU0FBUztvQkFDVCxjQUFjO29CQUNkLHVCQUF1QjtvQkFDdkIsYUFBYTtvQkFDYixZQUFZO29CQUNaLHFCQUFxQjtpQkFDeEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHFCQUFxQjtvQkFDckIsaUJBQWlCO29CQUNqQixxQkFBcUI7b0JBQ3JCLG9CQUFvQjtvQkFDcEIsd0JBQXdCO29CQUN4QiwwQkFBMEI7b0JBQzFCLGtCQUFrQjtvQkFDbEIsZ0JBQWdCO29CQUNoQixzQkFBc0I7b0JBQ3RCLG9CQUFvQjtvQkFDcEIscUJBQXFCO2lCQUN4QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLG9CQUFvQjtpQkFDdkI7Z0JBQ0QsZUFBZSxFQUFFO29CQUNiLHFCQUFxQjtvQkFDckIsMEJBQTBCO29CQUMxQixzQkFBc0I7aUJBQ3pCO2dCQUNELFNBQVMsRUFBRTtvQkFDUCxZQUFZO2lCQUNmO2FBQ0o7Ozs7WUFoRlEsTUFBTTs7OztJQW1GQyxvQ0FBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBc2FwRmVlZEJldGFDb21wb25lbnQgfSBmcm9tICcuL2FzYXAtZmVlZC1iZXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2ZlZWQtaXRlbS9mZWVkLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1vbWVudE1vZHVsZSB9IGZyb20gJ25neC1tb21lbnQnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IEFzYXBTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ2FzYXAtc2tlbGV0b24nO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICcuL3BpcGVzL3BpcGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3hIbUNhcm91c2VsTW9kdWxlIH0gZnJvbSAnbmd4LWhtLWNhcm91c2VsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmVlZENvbW1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9mZWVkLWNvbW1lbnRzL2ZlZWQtY29tbWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEZlZWRBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9mZWVkLWFjdGlvbnMvZmVlZC1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkUHVibGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2ZlZWQtcHVibGljYXRpb24vZmVlZC1wdWJsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVlZE1vZGFsSXRlbUVkaXRDb21wb25lbnQgfSBmcm9tICcuL2ZlZWQtcHVibGljYXRpb24vZmVlZC1tb2RhbC1pdGVtLWVkaXQvZmVlZC1tb2RhbC1pdGVtLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yaWVzQ29tcG9uZW50IH0gZnJvbSAnLi9zdG9yaWVzL3N0b3JpZXMuY29tcG9uZW50JztcbmltcG9ydCB7IE93bE1vZHVsZSB9IGZyb20gJ25neC1vd2wtY2Fyb3VzZWwnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxNb2R1bGUgfSBmcm9tICduZ3gtb3dsLWNhcm91c2VsLW8nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1vZGFsQW5ub3VuY2VDb21wb25lbnQgfSBmcm9tICcuL2ZlZWQtcHVibGljYXRpb24vbW9kYWwtYW5ub3VuY2UvbW9kYWwtYW5ub3VuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtc21hcnQtcG9wb3Zlcic7XG5pbXBvcnQgeyBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSB9IGZyb20gJ25neC1za2VsZXRvbi1sb2FkZXInO1xuaW1wb3J0IHsgR2xvYmFsIH0gZnJvbSAnYXNhcC1jcnVkJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBTd2lwZXJNb2R1bGUgfSBmcm9tICduZ3gtc3dpcGVyLXdyYXBwZXInO1xuaW1wb3J0ICdtb21lbnQvbG9jYWxlL3B0LWJyJztcbmltcG9ydCB7IEFzYXBUYWJGZWVkQ29tcG9uZW50IH0gZnJvbSAnLi90YWItZmVlZC9hc2FwLXRhYi1mZWVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBGZWVkUG9zdHNDb21wb25lbnQgfSBmcm9tICcuL2ZlZWQtcG9zdHMvZmVlZC1wb3N0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUuY29tcG9uZW50JztcblxuLy8gaW1wb3J0IHsgTmdBaXNNb2R1bGUgfSBmcm9tICdhbmd1bGFyLWluc3RhbnRzZWFyY2gnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBNb21lbnRNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgICAgIEFzYXBTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgUGlwZXNNb2R1bGUsXG4gICAgICAgIE5neEhtQ2Fyb3VzZWxNb2R1bGUsXG4gICAgICAgIE93bE1vZHVsZSxcbiAgICAgICAgQ2Fyb3VzZWxNb2R1bGUsXG4gICAgICAgIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlLFxuICAgICAgICBQb3BvdmVyTW9kdWxlLFxuICAgICAgICBTd2lwZXJNb2R1bGUsXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEFzYXBGZWVkQmV0YUNvbXBvbmVudCxcbiAgICAgICAgRmVlZEl0ZW1Db21wb25lbnQsXG4gICAgICAgIEZlZWRDb21tZW50c0NvbXBvbmVudCxcbiAgICAgICAgRmVlZEFjdGlvbnNDb21wb25lbnQsXG4gICAgICAgIEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRmVlZE1vZGFsSXRlbUVkaXRDb21wb25lbnQsXG4gICAgICAgIEZlZWRQb3N0c0NvbXBvbmVudCxcbiAgICAgICAgU3Rvcmllc0NvbXBvbmVudCxcbiAgICAgICAgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCxcbiAgICAgICAgQXNhcFRhYkZlZWRDb21wb25lbnQsXG4gICAgICAgIEF1dG9Db21wbGV0ZUNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBBc2FwRmVlZEJldGFDb21wb25lbnQsXG4gICAgICAgIEZlZWRJdGVtQ29tcG9uZW50LFxuICAgICAgICBBc2FwVGFiRmVlZENvbXBvbmVudCxcbiAgICBdLFxuICAgIGVudHJ5Q29tcG9uZW50czogW1xuICAgICAgICBBc2FwRmVlZEJldGFDb21wb25lbnQsXG4gICAgICAgIEZlZWRNb2RhbEl0ZW1FZGl0Q29tcG9uZW50LFxuICAgICAgICBNb2RhbEFubm91bmNlQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVXRpbHNTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBc2FwRmVlZEJldGFNb2R1bGUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGdsb2JhbDogR2xvYmFsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbQXNhcEZlZWRCZXRhTW9kdWxlXScsIG5ldyBEYXRlKCkpO1xuICAgICAgICB0aGlzLmdsb2JhbC5nZXRPckNyZWF0ZVNlc3Npb25EYXRhKCdBc2FwTXlQYWdlTW9kdWxlLnRhYnMnLFtdKS5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiAnTWV1cyBQb3N0cycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IEFzYXBGZWVkQmV0YUNvbXBvbmVudCxcbiAgICAgICAgICAgIGNvbmRpdGlvbjogKGNvbXBvbmVudCx0eXBlKSA9PiAodGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpICYmIHRoaXMuZ2xvYmFsLmhhc1Blcm1pc3Npb24oJ215LXBvc3RzJyx0eXBlKSAmJiBjb21wb25lbnQuaGFzRmVlZCksXG4gICAgICAgICAgICBsb2FkaW5nOiAoY29tcG9uZW50KSA9PiBjb21wb25lbnQubG9hZGluZ1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC1mZWVkLWJldGEubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYXNhcC1mZWVkLWJldGEvIiwic291cmNlcyI6WyJsaWIvYXNhcC1mZWVkLWJldGEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FB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Z0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsYUFBYTtvQkFDYixZQUFZO29CQUNaLGVBQWU7b0JBQ2Ysb0JBQW9CO29CQUNwQixrQkFBa0I7b0JBQ2xCLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixTQUFTO29CQUNULGNBQWM7b0JBQ2QsdUJBQXVCO29CQUN2QixhQUFhO29CQUNiLFlBQVk7b0JBQ1oscUJBQXFCO2lCQUN4QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1YscUJBQXFCO29CQUNyQixpQkFBaUI7b0JBQ2pCLHFCQUFxQjtvQkFDckIsb0JBQW9CO29CQUNwQix3QkFBd0I7b0JBQ3hCLDBCQUEwQjtvQkFDMUIsa0JBQWtCO29CQUNsQixnQkFBZ0I7b0JBQ2hCLHNCQUFzQjtvQkFDdEIsb0JBQW9CO29CQUNwQixxQkFBcUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxxQkFBcUI7b0JBQ3JCLGlCQUFpQjtvQkFDakIsb0JBQW9CO2lCQUN2QjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2IscUJBQXFCO29CQUNyQiwwQkFBMEI7b0JBQzFCLHNCQUFzQjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLFlBQVk7aUJBQ2Y7YUFDSjs7OztZQTlFUSxNQUFNOzs7O0lBaUZDLG9DQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEFzYXBGZWVkQmV0YUNvbXBvbmVudCB9IGZyb20gJy4vYXNhcC1mZWVkLWJldGEuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGZWVkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZmVlZC1pdGVtL2ZlZWQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9tZW50TW9kdWxlIH0gZnJvbSAnbmd4LW1vbWVudCc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgQXNhcFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnYXNhcC1za2VsZXRvbic7XG5pbXBvcnQgeyBQaXBlc01vZHVsZSB9IGZyb20gJy4vcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IE5neEhtQ2Fyb3VzZWxNb2R1bGUgfSBmcm9tICduZ3gtaG0tY2Fyb3VzZWwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGZWVkQ29tbWVudHNDb21wb25lbnQgfSBmcm9tICcuL2ZlZWQtY29tbWVudHMvZmVlZC1jb21tZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmVlZEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2ZlZWQtYWN0aW9ucy9mZWVkLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZmVlZC1wdWJsaWNhdGlvbi9mZWVkLXB1YmxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWVkTW9kYWxJdGVtRWRpdENvbXBvbmVudCB9IGZyb20gJy4vZmVlZC1wdWJsaWNhdGlvbi9mZWVkLW1vZGFsLWl0ZW0tZWRpdC9mZWVkLW1vZGFsLWl0ZW0tZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JpZXNDb21wb25lbnQgfSBmcm9tICcuL3N0b3JpZXMvc3Rvcmllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsTW9kdWxlIH0gZnJvbSAnbmd4LW93bC1jYXJvdXNlbCc7XG5pbXBvcnQgeyBDYXJvdXNlbE1vZHVsZSB9IGZyb20gJ25neC1vd2wtY2Fyb3VzZWwtbyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCB9IGZyb20gJy4vZmVlZC1wdWJsaWNhdGlvbi9tb2RhbC1hbm5vdW5jZS9tb2RhbC1hbm5vdW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ25neC1zbWFydC1wb3BvdmVyJztcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XG5pbXBvcnQgeyBHbG9iYWwgfSBmcm9tICdhc2FwLWNydWQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IFN3aXBlck1vZHVsZSB9IGZyb20gJ25neC1zd2lwZXItd3JhcHBlcic7XG5pbXBvcnQgJ21vbWVudC9sb2NhbGUvcHQtYnInO1xuaW1wb3J0IHsgQXNhcFRhYkZlZWRDb21wb25lbnQgfSBmcm9tICcuL3RhYi1mZWVkL2FzYXAtdGFiLWZlZWQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IEZlZWRQb3N0c0NvbXBvbmVudCB9IGZyb20gJy4vZmVlZC1wb3N0cy9mZWVkLXBvc3RzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBNYXRTdGVwcGVyTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBNb21lbnRNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgICAgIEFzYXBTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgUGlwZXNNb2R1bGUsXG4gICAgICAgIE5neEhtQ2Fyb3VzZWxNb2R1bGUsXG4gICAgICAgIE93bE1vZHVsZSxcbiAgICAgICAgQ2Fyb3VzZWxNb2R1bGUsXG4gICAgICAgIE5neFNrZWxldG9uTG9hZGVyTW9kdWxlLFxuICAgICAgICBQb3BvdmVyTW9kdWxlLFxuICAgICAgICBTd2lwZXJNb2R1bGUsXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEFzYXBGZWVkQmV0YUNvbXBvbmVudCxcbiAgICAgICAgRmVlZEl0ZW1Db21wb25lbnQsXG4gICAgICAgIEZlZWRDb21tZW50c0NvbXBvbmVudCxcbiAgICAgICAgRmVlZEFjdGlvbnNDb21wb25lbnQsXG4gICAgICAgIEZlZWRQdWJsaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgRmVlZE1vZGFsSXRlbUVkaXRDb21wb25lbnQsXG4gICAgICAgIEZlZWRQb3N0c0NvbXBvbmVudCxcbiAgICAgICAgU3Rvcmllc0NvbXBvbmVudCxcbiAgICAgICAgTW9kYWxBbm5vdW5jZUNvbXBvbmVudCxcbiAgICAgICAgQXNhcFRhYkZlZWRDb21wb25lbnQsXG4gICAgICAgIEF1dG9Db21wbGV0ZUNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBBc2FwRmVlZEJldGFDb21wb25lbnQsXG4gICAgICAgIEZlZWRJdGVtQ29tcG9uZW50LFxuICAgICAgICBBc2FwVGFiRmVlZENvbXBvbmVudCxcbiAgICBdLFxuICAgIGVudHJ5Q29tcG9uZW50czogW1xuICAgICAgICBBc2FwRmVlZEJldGFDb21wb25lbnQsXG4gICAgICAgIEZlZWRNb2RhbEl0ZW1FZGl0Q29tcG9uZW50LFxuICAgICAgICBNb2RhbEFubm91bmNlQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVXRpbHNTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBc2FwRmVlZEJldGFNb2R1bGUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGdsb2JhbDogR2xvYmFsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbQXNhcEZlZWRCZXRhTW9kdWxlXScsIG5ldyBEYXRlKCkpO1xuICAgICAgICB0aGlzLmdsb2JhbC5nZXRPckNyZWF0ZVNlc3Npb25EYXRhKCdBc2FwTXlQYWdlTW9kdWxlLnRhYnMnLFtdKS5wdXNoKHtcbiAgICAgICAgICAgIGxhYmVsOiAnTWV1cyBQb3N0cycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IEFzYXBGZWVkQmV0YUNvbXBvbmVudCxcbiAgICAgICAgICAgIGNvbmRpdGlvbjogKGNvbXBvbmVudCx0eXBlKSA9PiAodGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpICYmIHRoaXMuZ2xvYmFsLmhhc1Blcm1pc3Npb24oJ215LXBvc3RzJyx0eXBlKSAmJiBjb21wb25lbnQuaGFzRmVlZCksXG4gICAgICAgICAgICBsb2FkaW5nOiAoY29tcG9uZW50KSA9PiBjb21wb25lbnQubG9hZGluZ1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -3,7 +3,7 @@
3
3
  * Generated from: lib/tab-feed/asap-tab-feed.component.ts
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
- import { Component, Input, ViewChild } from '@angular/core';
6
+ import { Component, Input, QueryList, ViewChildren } from '@angular/core';
7
7
  import { AsapFeedBetaService } from '../asap-feed-beta.service';
8
8
  import { Global } from 'asap-crud';
9
9
  import { AsapFeedBetaComponent } from '../asap-feed-beta.component';
@@ -108,7 +108,11 @@ export class AsapTabFeedComponent {
108
108
  * @return {?}
109
109
  */
110
110
  () => {
111
- this.service.query = {};
111
+ this.service.query = {
112
+ searchBy: 'user_info.id',
113
+ searchValue: this.global.loggedUser().id,
114
+ typeValue: 'number'
115
+ };
112
116
  this.canShow = 3;
113
117
  }), 100);
114
118
  }
@@ -118,12 +122,22 @@ export class AsapTabFeedComponent {
118
122
  * @return {?}
119
123
  */
120
124
  onNewFeed(id) {
125
+ console.log('Chegou evento feedCreated com ID:', id);
126
+ if (this.feeds) {
127
+ this.feeds.forEach((/**
128
+ * @param {?} feed
129
+ * @return {?}
130
+ */
131
+ (feed) => {
132
+ feed.getFeed();
133
+ }));
134
+ }
121
135
  }
122
136
  }
123
137
  AsapTabFeedComponent.decorators = [
124
138
  { type: Component, args: [{
125
139
  selector: 'asap-tab-feed',
126
- template: "<ng-container *ngIf=\"!settings?.channelsHidden\">\n <app-stories></app-stories>\n</ng-container>\n\n<feed-publication [settings]=\"settings\" [hideFilterByMe]=\"true\" [announce]=\"false\" (feedCreated)=\"feed?.onNewFeed($event)\"></feed-publication>\n\n<div *ngIf=\"settings?.tabs\" class=\"asap-tab-feed\">\n <mat-tab-group (selectedTabChange)=\"onChangeTab($event)\" dynamicHeight>\n \n <!-- \u2705 SE o cliente tem canal -->\n <ng-container *ngIf=\"settings.tabs.channel_list?.length; else semCanal\">\n <mat-tab [label]=\"settings.tabs.channel\">\n <ng-container *ngIf=\"canShow == 0\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.allFeed\" [label]=\"settings.tabs.allFeed\">\n <ng-container *ngIf=\"canShow == 3\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed\" [label]=\"settings.tabs.feed\">\n <ng-container *ngIf=\"canShow == 1\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed_users\" [label]=\"settings.tabs.feed_users\">\n <ng-container *ngIf=\"canShow == 2\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n </ng-container>\n \n <!-- \uD83D\uDEAB SE o cliente N\u00C3O tem canal -->\n <ng-template #semCanal>\n <mat-tab *ngIf=\"settings.tabs.allFeed\" [label]=\"settings.tabs.allFeed\">\n <ng-container *ngIf=\"canShow == 3\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed\" [label]=\"settings.tabs.feed\">\n <ng-container *ngIf=\"canShow == 1\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed_users\" [label]=\"settings.tabs.feed_users\">\n <ng-container *ngIf=\"canShow == 2\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n </ng-template>\n </mat-tab-group>\n </div>\n ",
140
+ template: "<ng-container *ngIf=\"!settings?.channelsHidden\">\n <app-stories></app-stories>\n</ng-container>\n\n<feed-publication\n [settings]=\"settings\"\n [hideFilterByMe]=\"true\"\n [announce]=\"false\"\n (feedCreated)=\"onNewFeed($event)\">\n</feed-publication>\n\n<div *ngIf=\"settings?.tabs\" class=\"asap-tab-feed\">\n <mat-tab-group (selectedTabChange)=\"onChangeTab($event)\" dynamicHeight>\n \n <!-- \u2705 SE o cliente tem canal -->\n <ng-container *ngIf=\"settings.tabs.channel_list?.length; else semCanal\">\n <mat-tab [label]=\"settings.tabs.channel\">\n <ng-container *ngIf=\"canShow == 0\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.allFeed\" [label]=\"settings.tabs.allFeed\">\n <ng-container *ngIf=\"canShow == 3\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed\" [label]=\"settings.tabs.feed\">\n <ng-container *ngIf=\"canShow == 1\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed_users\" [label]=\"settings.tabs.feed_users\">\n <ng-container *ngIf=\"canShow == 2\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n </ng-container>\n \n <!-- \uD83D\uDEAB SE o cliente N\u00C3O tem canal -->\n <ng-template #semCanal>\n <mat-tab *ngIf=\"settings.tabs.allFeed\" [label]=\"settings.tabs.allFeed\">\n <ng-container *ngIf=\"canShow == 3\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed\" [label]=\"settings.tabs.feed\">\n <ng-container *ngIf=\"canShow == 1\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n \n <mat-tab *ngIf=\"settings.tabs.feed_users\" [label]=\"settings.tabs.feed_users\">\n <ng-container *ngIf=\"canShow == 2\">\n <asap-feed-beta [settings]=\"settings\"></asap-feed-beta>\n </ng-container>\n </mat-tab>\n </ng-template>\n </mat-tab-group>\n </div>\n ",
127
141
  styles: [""]
128
142
  }] }
129
143
  ];
@@ -133,12 +147,12 @@ AsapTabFeedComponent.ctorParameters = () => [
133
147
  { type: AsapFeedBetaService }
134
148
  ];
135
149
  AsapTabFeedComponent.propDecorators = {
136
- feed: [{ type: ViewChild, args: ['feed', { static: false },] }],
150
+ feeds: [{ type: ViewChildren, args: [AsapFeedBetaComponent,] }],
137
151
  settings: [{ type: Input }]
138
152
  };
139
153
  if (false) {
140
154
  /** @type {?} */
141
- AsapTabFeedComponent.prototype.feed;
155
+ AsapTabFeedComponent.prototype.feeds;
142
156
  /** @type {?} */
143
157
  AsapTabFeedComponent.prototype.settings;
144
158
  /** @type {?} */
@@ -148,4 +162,4 @@ if (false) {
148
162
  /** @type {?} */
149
163
  AsapTabFeedComponent.prototype.service;
150
164
  }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC10YWItZmVlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi90YWItZmVlZC9hc2FwLXRhYi1mZWVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU9wRSxNQUFNLE9BQU8sb0JBQW9COzs7OztJQVEvQixZQUNTLE1BQWMsRUFDZCxPQUE0QjtRQUQ1QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFKOUIsWUFBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBTWxCLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTs7a0JBQy9CLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7WUFFL0IsK0NBQStDO1lBQy9DLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDakQsSUFBSSxDQUFDLFFBQVEs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RSxLQUFLLEVBQUU7dUJBRW5DLEtBQUs7Ozs7SUFGTixvQ0FBbUU7O0lBRW5FLHdDQUF1Qjs7SUFFdkIsdUNBQW9COztJQUdsQixzQ0FBcUI7O0lBQ3JCLHVDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzYXBGZWVkQmV0YVNlcnZpY2UgfSBmcm9tICcuLi9hc2FwLWZlZWQtYmV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb2JhbCB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBBc2FwRmVlZEJldGFDb21wb25lbnQgfSBmcm9tICcuLi9hc2FwLWZlZWQtYmV0YS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2FwLXRhYi1mZWVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FzYXAtdGFiLWZlZWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hc2FwLXRhYi1mZWVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXNhcFRhYkZlZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZCgnZmVlZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBmZWVkITogQXNhcEZlZWRCZXRhQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHNldHRpbmdzOiBhbnk7XG5cbiAgcHVibGljIGNhblNob3cgPSAtMTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZ2xvYmFsOiBHbG9iYWwsXG4gICAgcHVibGljIHNlcnZpY2U6IEFzYXBGZWVkQmV0YVNlcnZpY2VcbiAgKSB7XG4gICAgY29uc29sZS5sb2coXCJbQXNhcFRhYkZlZWRDb21wb25lbnRdXCIsIHRoaXMuc2V0dGluZ3MpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLnB1YmxpY2F0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5zZXJ2aWNlLnN0b3JpZXMgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zZXR0aW5ncyAmJiB0aGlzLnNldHRpbmdzKSB7XG4gICAgICBjb25zdCB0YWJzID0gdGhpcy5zZXR0aW5ncy50YWJzO1xuICBcbiAgICAgIC8vIOKchSBTZSBvIGNsaWVudGUgdGVtIGNhbmFsLCBwcmlvcml6YSBvIGNoYW5uZWxcbiAgICAgIGlmICh0YWJzLmNoYW5uZWxfbGlzdCAmJiB0YWJzLmNoYW5uZWxfbGlzdC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5mZWVkTG9hZCh0YWJzLmNoYW5uZWwpO1xuICAgICAgfVxuICAgICAgLy8g4pyFIENhc28gbsOjbyB0ZW5oYSBjYW5hbCwgbWFudMOpbSBhIG9yZGVtIG9yaWdpbmFsXG4gICAgICBlbHNlIGlmICh0YWJzLmFsbEZlZWQpIHtcbiAgICAgICAgdGhpcy5mZWVkTG9hZCh0YWJzLmFsbEZlZWQpO1xuICAgICAgfSBlbHNlIGlmICh0YWJzLmZlZWQpIHtcbiAgICAgICAgdGhpcy5mZWVkTG9hZCh0YWJzLmZlZWQpO1xuICAgICAgfSBlbHNlIGlmICh0YWJzLmZlZWRfdXNlcnMpIHtcbiAgICAgICAgdGhpcy5mZWVkTG9hZCh0YWJzLmZlZWRfdXNlcnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcblxuICBwdWJsaWMgb25DaGFuZ2VUYWIoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmVlZExvYWQoZXZlbnQudGFiLnRleHRMYWJlbCk7XG4gIH1cblxuICBwdWJsaWMgZmVlZExvYWQodGFiTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jYW5TaG93ID0gLTE7XG4gICAgaWYgKHRhYk5hbWUgPT0gdGhpcy5zZXR0aW5ncy50YWJzLmNoYW5uZWwpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2UucXVlcnkgPSB7XG4gICAgICAgICAgc2VhcmNoQnk6ICdjaGFubmVsX2lkJyxcbiAgICAgICAgICBzZWFyY2hWYWx1ZTogdGhpcy5zZXR0aW5ncy50YWJzLmNoYW5uZWxfbGlzdC5tYXAoYyA9PiBjLmNoYW5uZWxfaWQpLmpvaW4oJywnKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FuU2hvdyA9IDA7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgICBpZiAodGFiTmFtZSA9PSB0aGlzLnNldHRpbmdzLnRhYnMuZmVlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VydmljZS5xdWVyeSA9IHtcbiAgICAgICAgICBzZWFyY2hCeTogJ3VzZXJfaW5mby5pZCcsXG4gICAgICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgICB0eXBlVmFsdWU6ICdudW1iZXInXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW5TaG93ID0gMTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICAgIGlmICh0YWJOYW1lID09IHRoaXMuc2V0dGluZ3MudGFicy5mZWVkX3VzZXJzKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnF1ZXJ5ID0ge1xuICAgICAgICAgIHNlYXJjaEJ5OiAndXNlcl9pbmZvLmlkJyxcbiAgICAgICAgICBzZWFyY2hWYWx1ZTogJ2FsbCdcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhblNob3cgPSAyO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gICAgaWYgKHRhYk5hbWUgPT0gdGhpcy5zZXR0aW5ncy50YWJzLmFsbEZlZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2UucXVlcnkgPSB7fVxuICAgICAgICB0aGlzLmNhblNob3cgPSAzO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25OZXdGZWVkKGlkOiBhbnkpIHtcblxuICB9XG5cbn1cbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC10YWItZmVlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi90YWItZmVlZC9hc2FwLXRhYi1mZWVkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQTRCLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBT3BFLE1BQU0sT0FBTyxvQkFBb0I7Ozs7O0lBUS9CLFlBQ1MsTUFBYyxFQUNkLE9BQTRCO1FBRDVCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUo5QixZQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFNbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFOztrQkFDL0IsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUUvQiwrQ0FBK0M7WUFDL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUNqRCxJQUFJ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bUNBQW1DLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPOzs7O1lBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUMsRUFBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7WUFuR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixvN0VBQTZDOzthQUU5Qzs7OztZQVBRLE1BQU07WUFETixtQkFBbUI7OztvQkFXekIsWUFBWSxTQUFDLHFCQUFxQjt1QkFFbEMsS0FBSzs7OztJQUZOLHFDQUE4RTs7SUFFOUUsd0NBQXVCOztJQUV2Qix1Q0FBb0I7O0lBR2xCLHNDQUFxQjs7SUFDckIsdUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzYXBGZWVkQmV0YVNlcnZpY2UgfSBmcm9tICcuLi9hc2FwLWZlZWQtYmV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb2JhbCB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBBc2FwRmVlZEJldGFDb21wb25lbnQgfSBmcm9tICcuLi9hc2FwLWZlZWQtYmV0YS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2FwLXRhYi1mZWVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FzYXAtdGFiLWZlZWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hc2FwLXRhYi1mZWVkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXNhcFRhYkZlZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZHJlbihBc2FwRmVlZEJldGFDb21wb25lbnQpIGZlZWRzITogUXVlcnlMaXN0PEFzYXBGZWVkQmV0YUNvbXBvbmVudD47XG5cbiAgQElucHV0KCkgc2V0dGluZ3M6IGFueTtcblxuICBwdWJsaWMgY2FuU2hvdyA9IC0xO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgc2VydmljZTogQXNhcEZlZWRCZXRhU2VydmljZVxuICApIHtcbiAgICBjb25zb2xlLmxvZyhcIltBc2FwVGFiRmVlZENvbXBvbmVudF1cIiwgdGhpcy5zZXR0aW5ncyk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2UucHVibGljYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLnNlcnZpY2Uuc3RvcmllcyA9IGZhbHNlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnNldHRpbmdzICYmIHRoaXMuc2V0dGluZ3MpIHtcbiAgICAgIGNvbnN0IHRhYnMgPSB0aGlzLnNldHRpbmdzLnRhYnM7XG4gIFxuICAgICAgLy8g4pyFIFNlIG8gY2xpZW50ZSB0ZW0gY2FuYWwsIHByaW9yaXphIG8gY2hhbm5lbFxuICAgICAgaWYgKHRhYnMuY2hhbm5lbF9saXN0ICYmIHRhYnMuY2hhbm5lbF9saXN0Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmZlZWRMb2FkKHRhYnMuY2hhbm5lbCk7XG4gICAgICB9XG4gICAgICAvLyDinIUgQ2FzbyBuw6NvIHRlbmhhIGNhbmFsLCBtYW50w6ltIGEgb3JkZW0gb3JpZ2luYWxcbiAgICAgIGVsc2UgaWYgKHRhYnMuYWxsRmVlZCkge1xuICAgICAgICB0aGlzLmZlZWRMb2FkKHRhYnMuYWxsRmVlZCk7XG4gICAgICB9IGVsc2UgaWYgKHRhYnMuZmVlZCkge1xuICAgICAgICB0aGlzLmZlZWRMb2FkKHRhYnMuZmVlZCk7XG4gICAgICB9IGVsc2UgaWYgKHRhYnMuZmVlZF91c2Vycykge1xuICAgICAgICB0aGlzLmZlZWRMb2FkKHRhYnMuZmVlZF91c2Vycyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuXG4gIHB1YmxpYyBvbkNoYW5nZVRhYihldmVudDogYW55KSB7XG4gICAgdGhpcy5mZWVkTG9hZChldmVudC50YWIudGV4dExhYmVsKTtcbiAgfVxuXG4gIHB1YmxpYyBmZWVkTG9hZCh0YWJOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhblNob3cgPSAtMTtcbiAgICBpZiAodGFiTmFtZSA9PSB0aGlzLnNldHRpbmdzLnRhYnMuY2hhbm5lbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VydmljZS5xdWVyeSA9IHtcbiAgICAgICAgICBzZWFyY2hCeTogJ2NoYW5uZWxfaWQnLFxuICAgICAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLnNldHRpbmdzLnRhYnMuY2hhbm5lbF9saXN0Lm1hcChjID0+IGMuY2hhbm5lbF9pZCkuam9pbignLCcpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW5TaG93ID0gMDtcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICAgIGlmICh0YWJOYW1lID09IHRoaXMuc2V0dGluZ3MudGFicy5mZWVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnF1ZXJ5ID0ge1xuICAgICAgICAgIHNlYXJjaEJ5OiAndXNlcl9pbmZvLmlkJyxcbiAgICAgICAgICBzZWFyY2hWYWx1ZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICAgIHR5cGVWYWx1ZTogJ251bWJlcidcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhblNob3cgPSAxO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gICAgaWYgKHRhYk5hbWUgPT0gdGhpcy5zZXR0aW5ncy50YWJzLmZlZWRfdXNlcnMpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2UucXVlcnkgPSB7XG4gICAgICAgICAgc2VhcmNoQnk6ICd1c2VyX2luZm8uaWQnLFxuICAgICAgICAgIHNlYXJjaFZhbHVlOiAnYWxsJ1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FuU2hvdyA9IDI7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgICBpZiAodGFiTmFtZSA9PSB0aGlzLnNldHRpbmdzLnRhYnMuYWxsRmVlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VydmljZS5xdWVyeSA9IHtcbiAgICAgICAgICBzZWFyY2hCeTogJ3VzZXJfaW5mby5pZCcsXG4gICAgICAgICAgc2VhcmNoVmFsdWU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgICB0eXBlVmFsdWU6ICdudW1iZXInXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW5TaG93ID0gMztcbiAgICAgIH0sIDEwMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uTmV3RmVlZChpZDogYW55KSB7XG4gICAgY29uc29sZS5sb2coJ0NoZWdvdSBldmVudG8gZmVlZENyZWF0ZWQgY29tIElEOicsIGlkKTtcbiAgXG4gICAgaWYgKHRoaXMuZmVlZHMpIHtcbiAgICAgIHRoaXMuZmVlZHMuZm9yRWFjaCgoZmVlZCkgPT4ge1xuICAgICAgICBmZWVkLmdldEZlZWQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcblxufVxuIl19
@@ -46,13 +46,11 @@ var AsapFeedBetaComponent = /** @class */ (function () {
46
46
  this.publication = this.controlService.publication;
47
47
  this.query = this.controlService.query;
48
48
  }
49
- console.log('Query ->', this.query);
50
49
  this.route.params.subscribe((/**
51
50
  * @param {?} param
52
51
  * @return {?}
53
52
  */
54
53
  function (param) {
55
- console.log('Params ->', param);
56
54
  if (param) {
57
55
  if (param.feed_id) {
58
56
  _this.feedID = param.feed_id;
@@ -110,7 +108,6 @@ var AsapFeedBetaComponent = /** @class */ (function () {
110
108
  function (feed_id) {
111
109
  var _this = this;
112
110
  if (feed_id === void 0) { feed_id = ''; }
113
- console.log('[getFeed] Query', this.query, this.filterByMe);
114
111
  this.feeds = null;
115
112
  this.loading = true;
116
113
  this.feedService.getFeed(feed_id, this.global.loggedUser(), this.query, this.filterByMe).subscribe((/**
@@ -119,7 +116,6 @@ var AsapFeedBetaComponent = /** @class */ (function () {
119
116
  */
120
117
  function (response) {
121
118
  _this.feeds = response.data;
122
- console.log('Feeds', _this.feeds);
123
119
  _this.paginate = response.pagination;
124
120
  _this.loading = false;
125
121
  _this.hasFeed = (_this.feeds.length > 0);
@@ -133,7 +129,6 @@ var AsapFeedBetaComponent = /** @class */ (function () {
133
129
  */
134
130
  function () {
135
131
  var _this = this;
136
- console.log('[getMore]', this.paginate.next_document);
137
132
  if (this.paginate.next_document) {
138
133
  this.loading = true;
139
134
  this.feedService.getMoreFeed(5, this.paginate.next_document, this.global.loggedUser(), this.query, this.filterByMe).subscribe((/**
@@ -141,7 +136,6 @@ var AsapFeedBetaComponent = /** @class */ (function () {
141
136
  * @return {?}
142
137
  */
143
138
  function (response) {
144
- console.log('[getMore] Got: ', response);
145
139
  response.data.map((/**
146
140
  * @param {?} item
147
141
  * @return {?}
@@ -395,10 +389,23 @@ var AsapFeedBetaComponent = /** @class */ (function () {
395
389
  this.filterByMe = filterByMe;
396
390
  this.getFeed();
397
391
  };
392
+ Object.defineProperty(AsapFeedBetaComponent.prototype, "isScrollDisabled", {
393
+ get: /**
394
+ * @return {?}
395
+ */
396
+ function () {
397
+ return this.loading ||
398
+ this.paginate.count >= this.paginate.limit ||
399
+ this.isSinglePost ||
400
+ this.paginate.last_document === this.paginate.next_document;
401
+ },
402
+ enumerable: true,
403
+ configurable: true
404
+ });
398
405
  AsapFeedBetaComponent.decorators = [
399
406
  { type: Component, args: [{
400
407
  selector: 'asap-feed-beta',
401
- template: "<ng-container *ngIf=\"!settings?.channelsHidden\">\n <app-stories *ngIf=\"stories && !hasID && !isSinglePost\"></app-stories>\n</ng-container>\n\n<feed-publication [settings]=\"settings\" [announce]=\"announce\" (feedCreated)=\"onNewFeed($event)\" (filter)=\"reload($event)\" *ngIf=\"publication && !hasID && !isSinglePost\"></feed-publication>\n\n<!-- Este trecho do c\u00F3digo foi removido, pois ele fazia o Feed ficar flicando na tela. -->\n<ng-container *ngIf=\"!feeds\">\n <div [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\"> \n <ng-container *ngFor=\"let item of [0,1]\">\n <div>\n <mat-card class=\"feed-card mb-4\">\n <mat-card-header class=\"feed-header\">\n <div class=\"mr-3\" mat-card-avatar>\n <ngx-skeleton-loader animation=\"progress\" appearance=\"circle\" [theme]=\"{height:'40px'}\">\n </ngx-skeleton-loader>\n </div>\n <mat-card-title>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'25px','transform': 'initial', marginBottom: '0'}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'15px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </mat-card-title>\n\n </mat-card-header>\n\n <ng-container>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'400px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </ng-container>\n\n </mat-card>\n </div>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"feeds\">\n <ng-container *ngFor=\"let item of feeds\">\n <div [class.focus-on-me]=\"item.focus\" [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\">\n <app-feed-item [owner]=\"this\" [settings]=\"settings\" [item]=\"item\" (isVisible)=\"sendVisible($event)\"></app-feed-item>\n </div>\n </ng-container>\n</ng-container>\n\n<div *ngIf=\"loading\">\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'40px', width:'100%'}\"></ngx-skeleton-loader>\n</div>\n\n<div infiniteScroll [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"2000\" [infiniteScrollDisabled]=\"\n loading || \n paginate.count >= paginate.limit || \n isSinglePost || \n paginate.last_document === paginate.next_document\" (scrolled)=\"getMore()\">\n</div>\n\n<button \n *ngIf=\"showToTopButton\" \n (click)=\"gotoTop()\" \n style=\"position: fixed;\n bottom: 0;\n right: 0;\n color:#FFFF;\n font-size: 20px;\n margin-right: 10px;\n margin-bottom: 10px;\n height: 35px;\n width: 35px;\n border: none;\n text-align: center;\n border-radius: 50%;\n outline: none;\n transition: all 1s ease-in;\n background-color: var(--main-color);\n z-index: 99999;\"\n class=\"d-none d-sm-block\">\n <i class=\"fa fa-angle-up\"></i>\n</button>\n",
408
+ template: "<ng-container *ngIf=\"!settings?.channelsHidden\">\n <app-stories *ngIf=\"stories && !hasID && !isSinglePost\"></app-stories>\n</ng-container>\n\n<feed-publication [settings]=\"settings\" [announce]=\"announce\" (feedCreated)=\"onNewFeed($event)\" (filter)=\"reload($event)\" *ngIf=\"publication && !hasID && !isSinglePost\"></feed-publication>\n\n<!-- Este trecho do c\u00F3digo foi removido, pois ele fazia o Feed ficar flicando na tela. -->\n<ng-container *ngIf=\"!feeds\">\n <div [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\"> \n <ng-container *ngFor=\"let item of [0,1]\">\n <div>\n <mat-card class=\"feed-card mb-4\">\n <mat-card-header class=\"feed-header\">\n <div class=\"mr-3\" mat-card-avatar>\n <ngx-skeleton-loader animation=\"progress\" appearance=\"circle\" [theme]=\"{height:'40px'}\">\n </ngx-skeleton-loader>\n </div>\n <mat-card-title>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'25px','transform': 'initial', marginBottom: '0'}\">\n </ngx-skeleton-loader>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'15px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </mat-card-title>\n\n </mat-card-header>\n\n <ng-container>\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'400px','transform': 'initial'}\">\n </ngx-skeleton-loader>\n </ng-container>\n\n </mat-card>\n </div>\n </ng-container>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"feeds\">\n <ng-container *ngFor=\"let item of feeds\">\n <div [class.focus-on-me]=\"item.focus\" [class.col-sm-8]=\"hasID\" [class.mx-auto]=\"hasID\">\n <app-feed-item [owner]=\"this\" [settings]=\"settings\" [item]=\"item\" (isVisible)=\"sendVisible($event)\"></app-feed-item>\n </div>\n </ng-container>\n</ng-container>\n\n<div *ngIf=\"loading\">\n <ngx-skeleton-loader animation=\"progress\" [theme]=\"{height:'40px', width:'100%'}\"></ngx-skeleton-loader>\n</div>\n\n<div infiniteScroll \n [infiniteScrollDistance]=\"2\" \n [infiniteScrollThrottle]=\"2000\" \n [infiniteScrollDisabled]=\"isScrollDisabled\" \n (scrolled)=\"getMore()\">\n</div>\n\n<button \n *ngIf=\"showToTopButton\" \n (click)=\"gotoTop()\" \n style=\"position: fixed;\n bottom: 0;\n right: 0;\n color:#FFFF;\n font-size: 20px;\n margin-right: 10px;\n margin-bottom: 10px;\n height: 35px;\n width: 35px;\n border: none;\n text-align: center;\n border-radius: 50%;\n outline: none;\n transition: all 1s ease-in;\n background-color: var(--main-color);\n z-index: 99999;\"\n class=\"d-none d-sm-block\">\n <i class=\"fa fa-angle-up\"></i>\n</button>\n",
402
409
  styles: ['./asap-feed.beta.componente.scss']
403
410
  }] }
404
411
  ];
@@ -468,4 +475,4 @@ if (false) {
468
475
  /** @type {?} */
469
476
  AsapFeedBetaComponent.prototype.global;
470
477
  }
471
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYXNhcC1mZWVkLWJldGEvIiwic291cmNlcyI6WyJsaWIvYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25DO0lBNkJJLCtCQUNZLFdBQTRCLEVBQzdCLEVBQW9CLEVBQ3BCLEtBQXFCLEVBQ3JCLGNBQW1DLEVBQ25DLE1BQWM7UUFKYixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDN0IsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQVE7UUEzQmxCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBR2Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHeEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQUssR0FBRyxJQUFJLENBQUM7UUFJYix5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0Isb0JBQWUsR0FBRyxLQUFL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K0I7O0lBQy9CLDZDQUE0Qjs7SUFFNUIsMkNBQTBCOzs7OztJQUd0Qiw0Q0FBb0M7O0lBQ3BDLG1DQUEyQjs7SUFDM0Isc0NBQTRCOztJQUM1QiwrQ0FBMEM7O0lBQzFDLHVDQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdExpc3RlbmVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzYXBGZWVkU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXNhcC1mZWVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFzYXBGZWVkQmV0YVNlcnZpY2UgfSBmcm9tICcuL2FzYXAtZmVlZC1iZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2xvYmFsIH0gZnJvbSAnYXNhcC1jcnVkJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhc2FwLWZlZWQtYmV0YScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FzYXAtZmVlZC1iZXRhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFsnLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBc2FwRmVlZEJldGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBwdWJsaWMgaGFzRmVlZCA9IHRydWU7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gICAgQElucHV0KCkgaWQ7XG4gICAgQElucHV0KCkgaWdub3JlQ29udHJvbCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzO1xuXG4gICAgcHVibGljIGhhc0lEID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc3RvcmllcyA9IHRydWU7XG4gICAgcHVibGljIGFubm91bmNlID0gZmFsc2U7XG4gICAgcHVibGljIHB1YmxpY2F0aW9uID0gdHJ1ZTtcbiAgICBwdWJsaWMgcXVlcnkgPSBudWxsO1xuICAgIHB1YmxpYyBmZWVkSUQ7XG4gICAgcHVibGljIGZlZWRzO1xuICAgIHB1YmxpYyBwYWdpbmF0ZTtcbiAgICBwdWJsaWMgdG9wUG9zVG9TdGFydFNob3dpbmcgPSA0MDA7XG4gICAgcHVibGljIHNob3dUb1RvcEJ1dHRvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1NpbmdsZVBvc3QgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBmaWx0ZXJCeU1lID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmZWVkU2VydmljZTogQXNhcEZlZWRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHB1YmxpYyBjb250cm9sU2VydmljZTogQXNhcEZlZWRCZXRhU2VydmljZSxcbiAgICAgICAgcHVibGljIGdsb2JhbDogR2xvYmFsLFxuICAgICkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgICAgICBcbiAgICAgICAgaWYgKCF0aGlzLmlnbm9yZUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuYW5ub3VuY2UgPSB0aGlzLmNvbnRyb2xTZXJ2aWNlLmFubm91bmNlO1xuICAgICAgICAgICAgdGhpcy5zdG9yaWVzID0gdGhpcy5jb250cm9sU2VydmljZS5zdG9yaWVzO1xuICAgICAgICAgICAgdGhpcy5wdWJsaWNhdGlvbiA9IHRoaXMuY29udHJvbFNlcnZpY2UucHVibGljYXRpb247XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5jb250cm9sU2VydmljZS5xdWVyeTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCdRdWVyeSAtPicsIHRoaXMucXVlcnkpO1xuXG4gICAgICAgIHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnUGFyYW1zIC0+JywgcGFyYW0pO1xuICAgICAgICAgICAgaWYgKHBhcmFtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtLmZlZWRfaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWVkSUQgPSBwYXJhbS5mZWVkX2lkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2luZ2xlUG9zdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEZlZWQodGhpcy5mZWVkSUQpO1xuICAgICAgICAgICAgICAgICAgICB9LCA2MDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRGZWVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jaGVja0ZlZWRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuZmVlZElEKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdldEZlZWQodGhpcy5mZWVkSUQpO1xuICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzSUQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sU2VydmljZS5xdWVyeSkgdGhpcy5jb250cm9sU2VydmljZS5xdWVyeSA9IHt9O1xuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbFNlcnZpY2UucXVlcnkuc2VhcmNoQnkgPSAndXNlcl9pbmZvLmlkJztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xTZXJ2aWNlLnF1ZXJ5LnNlYXJjaFZhbHVlID0gdGhpcy5pZCArICcmdHlwZVZhbHVlPW51bWJlcic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmVlZChmZWVkX2lkID0gJycpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tnZXRGZWVkXSBRdWVyeScsIHRoaXMucXVlcnksIHRoaXMuZmlsdGVyQnlNZSk7XG4gICAgICAgIHRoaXMuZmVlZHMgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmZlZWRTZXJ2aWNlLmdldEZlZWQoZmVlZF9pZCwgdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLCB0aGlzLnF1ZXJ5LCB0aGlzLmZpbHRlckJ5TWUpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZWVkcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRmVlZHMnLCB0aGlzLmZlZWRzKTtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGUgPSByZXNwb25zZS5wYWdpbmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmhhc0ZlZWQgPSAodGhpcy5mZWVkcy5sZW5ndGggPiAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE1vcmUoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbZ2V0TW9yZV0nLCB0aGlzLnBhZ2luYXRlLm5leHRfZG9jdW1lbnQpO1xuICAgICAgICBpZiAodGhpcy5wYWdpbmF0ZS5uZXh0X2RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5mZWVkU2VydmljZS5nZXRNb3JlRmVlZCg1LCB0aGlzLnBhZ2luYXRlLm5leHRfZG9jdW1lbnQsIHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSwgdGhpcy5xdWVyeSwgdGhpcy5maWx0ZXJCeU1lKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW2dldE1vcmVdIEdvdDogJywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlLmRhdGEubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wZXJtaXR0ZWQoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmVlZHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0ZSA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja0ZlZWRDaGFuZ2UoKSB7XG4gICAgICAgIC8vIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQsIHJlZiA9PiB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVmLm9yZGVyQnkoJ3VwZGF0ZWRfYXQnLCAnZGVzYycpO1xuICAgICAgICAvLyB9KTtcblxuICAgICAgICAvLyBjb2xsZWN0aW9uLnNuYXBzaG90Q2hhbmdlcygpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICAgIC8vICAgICBjb25zb2xlLmxvZyhcIltjaGVja0ZlZWRDaGFuZ2VdXCIscmVzcG9uc2UpO1xuICAgICAgICAvLyAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgIC8vICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW2NoZWNrRmVlZENoYW5nZV1cIilcbiAgICAgICAgLy8gICAgICAgICAgICAgdGhpcy5nZXRGZWVkKHRoaXMuZmVlZElEKTtcbiAgICAgICAgLy8gICAgICAgICB9LCA2MDApO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxuICAgIGNoZWNrU2Nyb2xsKCkge1xuICAgICAgICBjb25zdCBzY3JvbGxQb3NpdGlvbiA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XG4gICAgICAgIGlmIChzY3JvbGxQb3NpdGlvbiA+PSB0aGlzLnRvcFBvc1RvU3RhcnRTaG93aW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb1RvcEJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dUb1RvcEJ1dHRvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ290b1RvcCgpIHtcbiAgICAgICAgd2luZG93LnNjcm9sbCh7XG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHBlcm1pdHRlZChwb3N0KSB7XG4gICAgICAgIGlmIChwb3N0LnBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgIGlmIChwb3N0LnBlcm1pc3Npb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpO1xuICAgICAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3N0LnVzZXJfaW5mbyAmJiBwb3N0LnVzZXJfaW5mby5pZCA9PSB1c2VyLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHVzZXIuZXh0cmFzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHRyYXMgPSB1c2VyLmV4dHJhc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcGVybSBvZiBwb3N0LnBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBlcm0uZmllbGQgPT0gJ211bHRpLWNvbnRhJykgJiYgKHBlcm0udmFsdWUgPT0gdXNlci5jbGllbnRfaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChleHRyYXNbcGVybS5maWVsZF0gPT0gcGVybS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OZXdGZWVkKGlkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbb25OZXdGZWVkXScsIGlkKTtcbiAgICAgICAgdGhpcy5mZWVkU2VydmljZS5nZXRGZWVkKGlkKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuZmVlZHMubGVuZ3RoO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZlZWQgb2YgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgICAgIGZlZWQuZm9jdXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZlZWQgb2YgdGhpcy5mZWVkcykge1xuICAgICAgICAgICAgICAgIGZlZWQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZlZWRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1tvbk5ld0ZlZWRdIEZlZWQnLCB0aGlzLmZlZWRzW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmVlZHNbaV0uaXNIaWdobGlnaHRlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mZWVkcyA9IFtcbiAgICAgICAgICAgICAgICAuLi4gdGhpcy5mZWVkcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAgICAgICAgICAgLi4uIHJlc3BvbnNlLmRhdGEsXG4gICAgICAgICAgICAgICAgLi4uIHRoaXMuZmVlZHMuc2xpY2UoaW5kZXgpXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZvY3VzLW9uLW1lJylbMF07XG4gICAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZW5kVmlzaWJsZShpdGVtKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBtYXJjYW5kbyBjb21vIHZpc3VhbGl6YWRvXCIsIGl0ZW0pO1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpO1xuXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcbiAgICAgICAgICAgIHBvc3RfaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IGl0ZW0udXBkYXRlZF9hdFxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAgICAgcG9zdF9pZDogaXRlbS5pZCxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgICAgICAgICAgaWQ6IHVzZXIuaWQsXG4gICAgICAgICAgICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgICAgICBuYW1lOiB1c2VyLm5hbWUsXG4gICAgICAgICAgICAgICAgcGljdHVyZTogdXNlci5waWN0dXJlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZG9jdW1lbnRJRCA9IGBmZWVkLXZpZXcvJHtpdGVtLmlkfWA7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy5kYi5kb2MoZG9jdW1lbnRJRCk7XG4gICAgICAgIGRvY3VtZW50LnNldChwb3N0RGF0YSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50SUQgPSBgZmVlZC12aWV3LyR7aXRlbS5pZH0vdmlld3MvJHt1c2VyLmlkfWA7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IHRoaXMuZGIuZG9jKGRvY3VtZW50SUQpO1xuICAgICAgICAgICAgZG9jdW1lbnQuZ2V0KCkuc3Vic2NyaWJlKChkb2MpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWRvYy5leGlzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jLnJlZi5zZXQoZGF0YSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBtYXJjYWRvIGNvbW8gdmlzdWFsaXphZG9cIiwgcmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiW3NlbmRWaXNpYmxlXSBqw6EgZm9pIG1hcmNhZG8gY29tbyB2aXN1YWxpemFkb1wiLCBkb2MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5kYi5jb2xsZWN0aW9uKGAke2RvY3VtZW50SUR9L2hpc3RvcnlgKS5hZGQoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbG9hZChmaWx0ZXJCeU1lOiBhbnkpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJCeU1lID0gZmlsdGVyQnlNZTtcbiAgICAgICAgdGhpcy5nZXRGZWVkKCk7XG4gICAgfVxuXG59XG4iXX0=
478
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYXNhcC1mZWVkLWJldGEvIiwic291cmNlcyI6WyJsaWIvYXNhcC1mZWVkLWJldGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25DO0lBNkJJLCtCQUNZLFdBQTRCLEVBQzdCLEVBQW9CLEVBQ3BCLEtBQXFCLEVBQ3JCLGNBQW1DLEVBQ25DLE1BQWM7UUFKYixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDN0IsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQXFCO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQVE7UUEzQmxCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBR2Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHeEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFVBQUssR0FBRyxJQUFJLENBQUM7UUFJYix5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0Isb0JBQWUsR0FBRyxLQUFL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TGlzdGVuZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNhcEZlZWRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hc2FwLWZlZWQuc2VydmljZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXNhcEZlZWRCZXRhU2VydmljZSB9IGZyb20gJy4vYXNhcC1mZWVkLWJldGEuc2VydmljZSc7XG5pbXBvcnQgeyBHbG9iYWwgfSBmcm9tICdhc2FwLWNydWQnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FzYXAtZmVlZC1iZXRhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNhcC1mZWVkLWJldGEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogWycuL2FzYXAtZmVlZC5iZXRhLmNvbXBvbmVudGUuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFzYXBGZWVkQmV0YUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAgIHB1YmxpYyBoYXNGZWVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBpZDtcbiAgICBASW5wdXQoKSBpZ25vcmVDb250cm9sID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2V0dGluZ3M7XG5cbiAgICBwdWJsaWMgaGFzSUQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBzdG9yaWVzID0gdHJ1ZTtcbiAgICBwdWJsaWMgYW5ub3VuY2UgPSBmYWxzZTtcbiAgICBwdWJsaWMgcHVibGljYXRpb24gPSB0cnVlO1xuICAgIHB1YmxpYyBxdWVyeSA9IG51bGw7XG4gICAgcHVibGljIGZlZWRJRDtcbiAgICBwdWJsaWMgZmVlZHM7XG4gICAgcHVibGljIHBhZ2luYXRlO1xuICAgIHB1YmxpYyB0b3BQb3NUb1N0YXJ0U2hvd2luZyA9IDQwMDtcbiAgICBwdWJsaWMgc2hvd1RvVG9wQnV0dG9uID0gZmFsc2U7XG4gICAgcHVibGljIGlzU2luZ2xlUG9zdCA9IGZhbHNlO1xuXG4gICAgcHVibGljIGZpbHRlckJ5TWUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZlZWRTZXJ2aWNlOiBBc2FwRmVlZFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkYjogQW5ndWxhckZpcmVzdG9yZSxcbiAgICAgICAgcHVibGljIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHVibGljIGNvbnRyb2xTZXJ2aWNlOiBBc2FwRmVlZEJldGFTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZ2xvYmFsOiBHbG9iYWwsXG4gICAgKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMucXVlcnkgPSBudWxsO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuaWdub3JlQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5hbm5vdW5jZSA9IHRoaXMuY29udHJvbFNlcnZpY2UuYW5ub3VuY2U7XG4gICAgICAgICAgICB0aGlzLnN0b3JpZXMgPSB0aGlzLmNvbnRyb2xTZXJ2aWNlLnN0b3JpZXM7XG4gICAgICAgICAgICB0aGlzLnB1YmxpY2F0aW9uID0gdGhpcy5jb250cm9sU2VydmljZS5wdWJsaWNhdGlvbjtcbiAgICAgICAgICAgIHRoaXMucXVlcnkgPSB0aGlzLmNvbnRyb2xTZXJ2aWNlLnF1ZXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJhbSkge1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbS5mZWVkX2lkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmVlZElEID0gcGFyYW0uZmVlZF9pZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NpbmdsZVBvc3QgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRGZWVkKHRoaXMuZmVlZElEKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgNjAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RmVlZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hlY2tGZWVkQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5mZWVkSUQpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RmVlZCh0aGlzLmZlZWRJRCk7XG4gICAgICAgICAgICB9LCA2MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuaWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNJRCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2xTZXJ2aWNlLnF1ZXJ5KSB0aGlzLmNvbnRyb2xTZXJ2aWNlLnF1ZXJ5ID0ge307XG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sU2VydmljZS5xdWVyeS5zZWFyY2hCeSA9ICd1c2VyX2luZm8uaWQnO1xuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbFNlcnZpY2UucXVlcnkuc2VhcmNoVmFsdWUgPSB0aGlzLmlkICsgJyZ0eXBlVmFsdWU9bnVtYmVyJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGZWVkKGZlZWRfaWQgPSAnJykge1xuICAgICAgICB0aGlzLmZlZWRzID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mZWVkU2VydmljZS5nZXRGZWVkKGZlZWRfaWQsIHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSwgdGhpcy5xdWVyeSwgdGhpcy5maWx0ZXJCeU1lKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmVlZHMgPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgICAgdGhpcy5wYWdpbmF0ZSA9IHJlc3BvbnNlLnBhZ2luYXRpb247XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaGFzRmVlZCA9ICh0aGlzLmZlZWRzLmxlbmd0aCA+IDApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TW9yZSgpIHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGUubmV4dF9kb2N1bWVudCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZmVlZFNlcnZpY2UuZ2V0TW9yZUZlZWQoNSwgdGhpcy5wYWdpbmF0ZS5uZXh0X2RvY3VtZW50LCB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCksIHRoaXMucXVlcnksIHRoaXMuZmlsdGVyQnlNZSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZGF0YS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBlcm1pdHRlZChpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWVkcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRlID0gcmVzcG9uc2UucGFnaW5hdGlvbjtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrRmVlZENoYW5nZSgpIHtcbiAgICAgICAgLy8gY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZCwgcmVmID0+IHtcbiAgICAgICAgLy8gICAgIHJldHVybiByZWYub3JkZXJCeSgndXBkYXRlZF9hdCcsICdkZXNjJyk7XG4gICAgICAgIC8vIH0pO1xuXG4gICAgICAgIC8vIGNvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKFwiW2NoZWNrRmVlZENoYW5nZV1cIixyZXNwb25zZSk7XG4gICAgICAgIC8vICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgLy8gICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICAgICAgY29uc29sZS5sb2coXCJbY2hlY2tGZWVkQ2hhbmdlXVwiKVxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmdldEZlZWQodGhpcy5mZWVkSUQpO1xuICAgICAgICAvLyAgICAgICAgIH0sIDYwMCk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0pXG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gICAgY2hlY2tTY3JvbGwoKSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gd2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgMDtcbiAgICAgICAgaWYgKHNjcm9sbFBvc2l0aW9uID49IHRoaXMudG9wUG9zVG9TdGFydFNob3dpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RvVG9wQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1RvVG9wQnV0dG9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb3RvVG9wKCkge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsKHtcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcGVybWl0dGVkKHBvc3QpIHtcbiAgICAgICAgaWYgKHBvc3QucGVybWlzc2lvbikge1xuICAgICAgICAgICAgaWYgKHBvc3QucGVybWlzc2lvbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCk7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvc3QudXNlcl9pbmZvICYmIHBvc3QudXNlcl9pbmZvLmlkID09IHVzZXIuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAodXNlci5leHRyYXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4dHJhcyA9IHVzZXIuZXh0cmFzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwZXJtIG9mIHBvc3QucGVybWlzc2lvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocGVybS5maWVsZCA9PSAnbXVsdGktY29udGEnKSAmJiAocGVybS52YWx1ZSA9PSB1c2VyLmNsaWVudF9pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV4dHJhc1twZXJtLmZpZWxkXSA9PSBwZXJtLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk5ld0ZlZWQoaWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tvbk5ld0ZlZWRdJywgaWQpO1xuICAgICAgICB0aGlzLmZlZWRTZXJ2aWNlLmdldEZlZWQoaWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5mZWVkcy5sZW5ndGg7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZmVlZCBvZiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgZmVlZC5mb2N1cyA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZmVlZCBvZiB0aGlzLmZlZWRzKSB7XG4gICAgICAgICAgICAgICAgZmVlZC5mb2N1cyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmVlZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW29uTmV3RmVlZF0gRmVlZCcsIHRoaXMuZmVlZHNbaV0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5mZWVkc1tpXS5pc0hpZ2hsaWdodGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZlZWRzID0gW1xuICAgICAgICAgICAgICAgIC4uLiB0aGlzLmZlZWRzLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgICAgICAgICAgICAuLi4gcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgICAgICAuLi4gdGhpcy5mZWVkcy5zbGljZShpbmRleClcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZm9jdXMtb24tbWUnKVswXTtcbiAgICAgICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbmRWaXNpYmxlKGl0ZW0pIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbc2VuZFZpc2libGVdIG1hcmNhbmRvIGNvbW8gdmlzdWFsaXphZG9cIiwgaXRlbSk7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCk7XG5cbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xuICAgICAgICAgICAgcG9zdF9pZDogaXRlbS5pZCxcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICAgICAgY3JlYXRlZF9hdDogaXRlbS51cGRhdGVkX2F0XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgICAgICBwb3N0X2lkOiBpdGVtLmlkLFxuICAgICAgICAgICAgY3JlYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgICAgICB1c2VyX2luZm86IHtcbiAgICAgICAgICAgICAgICBpZDogdXNlci5pZCxcbiAgICAgICAgICAgICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgICAgIG5hbWU6IHVzZXIubmFtZSxcbiAgICAgICAgICAgICAgICBwaWN0dXJlOiB1c2VyLnBpY3R1cmVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb2N1bWVudElEID0gYGZlZWQtdmlldy8ke2l0ZW0uaWR9YDtcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSB0aGlzLmRiLmRvYyhkb2N1bWVudElEKTtcbiAgICAgICAgZG9jdW1lbnQuc2V0KHBvc3REYXRhKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRJRCA9IGBmZWVkLXZpZXcvJHtpdGVtLmlkfS92aWV3cy8ke3VzZXIuaWR9YDtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy5kYi5kb2MoZG9jdW1lbnRJRCk7XG4gICAgICAgICAgICBkb2N1bWVudC5nZXQoKS5zdWJzY3JpYmUoKGRvYykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZG9jLmV4aXN0cykge1xuICAgICAgICAgICAgICAgICAgICBkb2MucmVmLnNldChkYXRhKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbc2VuZFZpc2libGVdIG1hcmNhZG8gY29tbyB2aXN1YWxpemFkb1wiLCByZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJbc2VuZFZpc2libGVdIGrDoSBmb2kgbWFyY2FkbyBjb21vIHZpc3VhbGl6YWRvXCIsIGRvYyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRiLmNvbGxlY3Rpb24oYCR7ZG9jdW1lbnRJRH0vaGlzdG9yeWApLmFkZChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVsb2FkKGZpbHRlckJ5TWU6IGFueSkge1xuICAgICAgICB0aGlzLmZpbHRlckJ5TWUgPSBmaWx0ZXJCeU1lO1xuICAgICAgICB0aGlzLmdldEZlZWQoKTtcbiAgICB9XG5cbiAgICBnZXQgaXNTY3JvbGxEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZyB8fCBcbiAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGUuY291bnQgPj0gdGhpcy5wYWdpbmF0ZS5saW1pdCB8fCBcbiAgICAgICAgICAgICAgIHRoaXMuaXNTaW5nbGVQb3N0IHx8IFxuICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0ZS5sYXN0X2RvY3VtZW50ID09PSB0aGlzLnBhZ2luYXRlLm5leHRfZG9jdW1lbnRcbiAgICB9XG5cbn1cbiJdfQ==