@gipisistemas/ng-core 1.1.3 → 1.1.4
Sign up to get free protection for your applications and to get access to all the features.
- package/assets/styles/colors.scss +5 -1
- package/bundles/gipisistemas-ng-core.umd.js +8379 -7856
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
- package/bundles/gipisistemas-ng-core.umd.min.js +10 -9
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
- package/core/gipi-components/models/sort.model.d.ts +3 -3
- package/core/utils/array.util.d.ts +2 -2
- package/core/utils/object.util.d.ts +3 -5
- package/esm2015/core/gipi-components/models/sort.model.js +1 -1
- package/esm2015/core/gipi-components/services/abstract-crud.service.js +18 -24
- package/esm2015/core/utils/array.util.js +4 -2
- package/esm2015/core/utils/object.util.js +5 -9
- package/esm2015/gipi-components.js +10 -1
- package/esm2015/shared/components/input/input.component.js +46 -23
- package/esm2015/shared/components/table/table.component.js +1 -1
- package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
- package/esm2015/shared/gipi-components/button/button.component.js +2 -2
- package/esm2015/shared/gipi-components/card/card.component.js +113 -0
- package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
- package/esm2015/shared/gipi-components/empty-state/empty-state.component.js +30 -0
- package/esm2015/shared/gipi-components/layout-grid/col.directive.js +4 -4
- package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
- package/esm2015/shared/gipi-components/notification/notification.component.js +8 -3
- package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
- package/esm2015/shared/gipi-components/slide-toggle/slide-toggle.component.js +113 -0
- package/esm2015/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +18 -0
- package/esm2015/shared/gipi-components/tabs/shared/tab.model.js +8 -0
- package/esm2015/shared/gipi-components/tabs/tab/tab.component.js +66 -0
- package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +123 -0
- package/esm2015/shared/gipi-components/textarea/textarea.component.js +298 -0
- package/esm2015/shared/shared.module.js +20 -16
- package/esm2015/shared.js +1 -5
- package/esm5/core/gipi-components/models/sort.model.js +1 -1
- package/esm5/core/gipi-components/services/abstract-crud.service.js +18 -24
- package/esm5/core/utils/array.util.js +4 -3
- package/esm5/core/utils/object.util.js +5 -9
- package/esm5/gipi-components.js +10 -1
- package/esm5/shared/components/input/input.component.js +46 -23
- package/esm5/shared/components/table/table.component.js +1 -1
- package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
- package/esm5/shared/gipi-components/button/button.component.js +2 -2
- package/esm5/shared/gipi-components/card/card.component.js +135 -0
- package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
- package/esm5/shared/gipi-components/empty-state/empty-state.component.js +33 -0
- package/esm5/shared/gipi-components/layout-grid/col.directive.js +4 -4
- package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
- package/esm5/shared/gipi-components/notification/notification.component.js +8 -3
- package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
- package/esm5/shared/gipi-components/slide-toggle/slide-toggle.component.js +127 -0
- package/esm5/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +19 -0
- package/esm5/shared/gipi-components/tabs/shared/tab.model.js +10 -0
- package/esm5/shared/gipi-components/tabs/tab/tab.component.js +67 -0
- package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +131 -0
- package/esm5/shared/gipi-components/textarea/textarea.component.js +352 -0
- package/esm5/shared/shared.module.js +20 -16
- package/esm5/shared.js +1 -5
- package/fesm2015/gipisistemas-ng-core.js +1741 -1303
- package/fesm2015/gipisistemas-ng-core.js.map +1 -1
- package/fesm5/gipisistemas-ng-core.js +8369 -7851
- package/fesm5/gipisistemas-ng-core.js.map +1 -1
- package/gipi-components.d.ts +8 -0
- package/gipisistemas-ng-core.metadata.json +1 -1
- package/package.json +1 -2
- package/shared/components/input/input.component.d.ts +13 -11
- package/shared/components/table/table.component.d.ts +3 -3
- package/shared/gipi-components/card/card.component.d.ts +23 -0
- package/shared/gipi-components/empty-state/empty-state.component.d.ts +5 -0
- package/shared/gipi-components/notification/notification.component.d.ts +1 -0
- package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +7 -0
- package/shared/gipi-components/slide-toggle/slide-toggle.component.d.ts +27 -0
- package/shared/{directives → gipi-components/tabs/shared}/dynamic-tab.directive.d.ts +1 -1
- package/shared/gipi-components/tabs/shared/tab.model.d.ts +12 -0
- package/shared/{components → gipi-components/tabs}/tab/tab.component.d.ts +4 -2
- package/shared/gipi-components/tabs/tab-group/tab-group.component.d.ts +22 -0
- package/shared/gipi-components/textarea/textarea.component.d.ts +68 -0
- package/shared.d.ts +0 -4
- package/esm2015/shared/components/select-button/select-button.component.js +0 -181
- package/esm2015/shared/components/tab/tab.component.js +0 -57
- package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
- package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
- package/esm5/shared/components/select-button/select-button.component.js +0 -195
- package/esm5/shared/components/tab/tab.component.js +0 -58
- package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
- package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
- package/shared/components/select-button/select-button.component.d.ts +0 -35
- package/shared/components/tab-group/tab-group.component.d.ts +0 -22
@@ -22,8 +22,12 @@ let GIPISidenavComponent = GIPISidenavComponent_1 = class GIPISidenavComponent {
|
|
22
22
|
this._mouseEnter = false;
|
23
23
|
this.menuItems = [];
|
24
24
|
this.labelToggle = 'Retrair menu';
|
25
|
+
this.showTagNewIntegration = false;
|
26
|
+
this.showIntegration = false;
|
25
27
|
this.showConfiguration = false;
|
26
28
|
this.onClickMenuItem = new EventEmitter();
|
29
|
+
this.onClickMenuIntegration = new EventEmitter();
|
30
|
+
this.onClickMenuConfiguration = new EventEmitter();
|
27
31
|
}
|
28
32
|
ngOnInit() { }
|
29
33
|
ngAfterViewInit() {
|
@@ -187,6 +191,26 @@ __decorate([
|
|
187
191
|
Input(),
|
188
192
|
__metadata("design:type", String)
|
189
193
|
], GIPISidenavComponent.prototype, "labelToggle", void 0);
|
194
|
+
__decorate([
|
195
|
+
Input(),
|
196
|
+
__metadata("design:type", Boolean)
|
197
|
+
], GIPISidenavComponent.prototype, "showTagNewIntegration", void 0);
|
198
|
+
__decorate([
|
199
|
+
Input(),
|
200
|
+
__metadata("design:type", String)
|
201
|
+
], GIPISidenavComponent.prototype, "iconIntegration", void 0);
|
202
|
+
__decorate([
|
203
|
+
Input(),
|
204
|
+
__metadata("design:type", String)
|
205
|
+
], GIPISidenavComponent.prototype, "svgIconIntegration", void 0);
|
206
|
+
__decorate([
|
207
|
+
Input(),
|
208
|
+
__metadata("design:type", String)
|
209
|
+
], GIPISidenavComponent.prototype, "labelIntegration", void 0);
|
210
|
+
__decorate([
|
211
|
+
Input(),
|
212
|
+
__metadata("design:type", Boolean)
|
213
|
+
], GIPISidenavComponent.prototype, "showIntegration", void 0);
|
190
214
|
__decorate([
|
191
215
|
Input(),
|
192
216
|
__metadata("design:type", String)
|
@@ -207,11 +231,19 @@ __decorate([
|
|
207
231
|
Output(),
|
208
232
|
__metadata("design:type", EventEmitter)
|
209
233
|
], GIPISidenavComponent.prototype, "onClickMenuItem", void 0);
|
234
|
+
__decorate([
|
235
|
+
Output(),
|
236
|
+
__metadata("design:type", EventEmitter)
|
237
|
+
], GIPISidenavComponent.prototype, "onClickMenuIntegration", void 0);
|
238
|
+
__decorate([
|
239
|
+
Output(),
|
240
|
+
__metadata("design:type", EventEmitter)
|
241
|
+
], GIPISidenavComponent.prototype, "onClickMenuConfiguration", void 0);
|
210
242
|
GIPISidenavComponent = GIPISidenavComponent_1 = __decorate([
|
211
243
|
Component({
|
212
244
|
selector: `gipi-sidenav`,
|
213
245
|
exportAs: 'gipiSidenav',
|
214
|
-
template: "<mat-sidenav #sidenav\n [mode]=\"(isScreenLarge | async) ? 'side' : 'over'\"\n class=\"sidenav\"\n [class.large-sidenav]=\"(isOpened | async)\"\n [class.small-sidenav]=\"!(isOpened | async)\"\n [disableClose]=\"(isScreenLarge | async)\"\n opened=\"true\">\n\n <div [ngClass]=\"{'sidenav-content-menu': true,\n 'show-
|
246
|
+
template: "<mat-sidenav #sidenav\n [mode]=\"(isScreenLarge | async) ? 'side' : 'over'\"\n class=\"sidenav\"\n [class.large-sidenav]=\"(isOpened | async)\"\n [class.small-sidenav]=\"!(isOpened | async)\"\n [disableClose]=\"(isScreenLarge | async)\"\n opened=\"true\">\n\n <div [ngClass]=\"{'sidenav-content-menu': true,\n 'show-bottom': (showConfiguration || showIntegration)}\">\n\n <!-- Bot\u00E3o expandir e retrair o menu -->\n <button id=\"buttonToogleSidenav\"\n name=\"toggleSidenav\"\n class=\"toggle-sidenav\"\n (click)=\"toggleSidenav(); _mouseEnter = false;\">\n <mat-icon [@indicatorRotate]=\"(isOpened | async) ? 'opened': 'closed'\">\n chevron_right\n </mat-icon>\n\n {{ ((labelToggle) && (isOpened | async)) ? labelToggle : '' }}\n </button>\n\n <!-- Bot\u00E3o voltar do submenu -->\n <div class=\"sidenav-action-menu sidenav-menu-collapsable\">\n <a *ngIf=\"(isOpened | async) && (_levelOneMenuCollapsableSelected || _levelTwoMenuCollapsableSelected)\"\n (click)=\"onMenuCollapsableGoBack()\"\n (mouseenter)=\"!_mouseEnter && onMouseEnter()\"\n (mouseleave)=\"_mouseEnter && onMouseLeave()\">\n <mat-icon>\n arrow_back\n </mat-icon>\n <span>\n {{ (submenuBackButtonName | async) }}\n </span>\n </a>\n </div>\n\n <!-- Se o menu item for do tipo submenu -->\n <mat-nav-list class=\"sidenav-menu-list\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\">\n <div *ngFor=\"let menu of (levelMenuCollapsableSelected | async)\"\n class=\"sidenav-action-menu\">\n\n <a *ngIf=\"menu.type === 'ITEM'\"\n [routerLink]=\"menu.route\"\n [class.menu-active]=\"isMenuActive(menu)\"\n (click)=\"onMenuItemSelected(menu)\">\n <mat-icon *ngIf=\"menu.icon\">\n {{ menu.icon }}\n </mat-icon>\n <mat-icon *ngIf=\"menu.svgIcon\"\n [svgIcon]=\"menu.svgIcon\">\n </mat-icon>\n <span *ngIf=\"(isOpened | async)\">\n {{ getMenuName(menu.name) }}\n </span>\n </a>\n\n <a *ngIf=\"menu.type === 'COLLAPSABLE'\"\n [class.menu-active]=\"isMenuCollapsableActive(menu)\"\n (click)=\"onMenuCollapsableSelected(menu); onMenuItemSelected(menu, false)\">\n <mat-icon *ngIf=\"menu.icon\">\n {{ menu.icon }}\n </mat-icon>\n <mat-icon *ngIf=\"menu.svgIcon\"\n [svgIcon]=\"menu.svgIcon\">\n </mat-icon>\n <span *ngIf=\"(isOpened | async)\">\n {{ getMenuName(menu.name) }}\n </span>\n <mat-icon *ngIf=\"(isOpened | async)\">\n chevron_right\n </mat-icon>\n </a>\n\n </div>\n </mat-nav-list>\n </div>\n\n <div class=\"sidenav-action-menu sidenav-bottom-menu\">\n <a *ngIf=\"showIntegration\"\n (click)=\"onMenuItemSelected(null); onClickMenuIntegration.emit()\">\n <mat-icon *ngIf=\"iconIntegration\">\n {{ iconIntegration }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIconIntegration\"\n [svgIcon]=\"svgIconIntegration\">\n </mat-icon>\n <span *ngIf=\"(labelIntegration) && (isOpened | async)\">\n {{ labelIntegration }}\n </span>\n <div class=\"tag-new\"\n *ngIf=\"showTagNewIntegration\">\n Novo\n </div>\n </a>\n\n <a *ngIf=\"showConfiguration\"\n (click)=\"onMenuItemSelected(null); onClickMenuConfiguration.emit()\">\n <mat-icon *ngIf=\"iconConfiguration\">\n {{ iconConfiguration }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIconConfiguration\"\n [svgIcon]=\"svgIconConfiguration\">\n </mat-icon>\n <span *ngIf=\"(labelConfiguration) && (isOpened | async)\">\n {{ labelConfiguration }}\n </span>\n </a>\n </div>\n</mat-sidenav>\n",
|
215
247
|
encapsulation: ViewEncapsulation.None,
|
216
248
|
providers: [
|
217
249
|
{
|
@@ -230,11 +262,11 @@ GIPISidenavComponent = GIPISidenavComponent_1 = __decorate([
|
|
230
262
|
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4,0.0,0.2,1)')),
|
231
263
|
])
|
232
264
|
],
|
233
|
-
styles: [".sidenav{padding:.8rem 1.2rem;border-radius:5px;background-color:#fff;position:fixed!important;top:66px!important;bottom:8px!important;border:0!important}.sidenav.small-sidenav{overflow-y:auto;width:76px}.sidenav.small-sidenav .sidenav-
|
265
|
+
styles: [".sidenav{padding:.8rem 1.2rem;border-radius:5px;background-color:#fff;position:fixed!important;top:66px!important;bottom:8px!important;border:0!important}.sidenav.small-sidenav{overflow-y:auto;width:76px}.sidenav.small-sidenav .sidenav-bottom-menu,.sidenav.small-sidenav .sidenav-content-menu .sidenav-menu-list .action-sidenav,.sidenav.small-sidenav .sidenav-content-menu .toggle-sidenav{text-align:center!important}.sidenav.large-sidenav{overflow-y:auto;width:248px}.sidenav .sidenav-content-menu{width:100%;background-color:#f5f5f6;border-radius:4px;display:flex;flex-direction:column;align-items:stretch;height:100%}.sidenav .sidenav-content-menu.show-bottom{height:calc(100% - 18px - 52px)!important}.sidenav .sidenav-content-menu .toggle-sidenav{all:unset;border-radius:4px;border:none;text-align:left;cursor:pointer;background-color:#e0313e;color:#fff;display:flex;align-items:center;gap:8px;padding:10px 16px}.sidenav .sidenav-content-menu .toggle-sidenav>mat-icon{width:2rem;height:2rem;font-size:2rem}.sidenav .sidenav-content-menu .toggle-sidenav:hover{background-color:#cc2d38}.sidenav .sidenav-content-menu .sidenav-menu-list{overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.sidenav .sidenav-content-menu .sidenav-menu-list::-webkit-scrollbar{display:none}.menu-active{color:#e0313e!important;background-color:#e0e1e2!important}.menu-active>mat-icon,.menu-active>mat-icon svg,.menu-active>mat-icon svg path{color:#e0313e!important;fill:#e0313e!important}.sidenav-action-menu{cursor:pointer;display:flex}.sidenav-action-menu.sidenav-bottom-menu{flex-direction:column;gap:1rem;margin-top:1rem}.sidenav-action-menu a{flex:1;padding:16px;background-color:#f5f5f6;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:1.4rem;font-weight:600}.sidenav-action-menu a:hover{background-color:#e0e1e2}.sidenav-action-menu a>span{flex:1;line-height:2rem}.sidenav-action-menu a>mat-icon{width:2rem;height:2rem;font-size:2rem;line-height:2rem;color:#595959;fill:#595959}.sidenav-action-menu a>mat-icon svg,.sidenav-action-menu a>mat-icon svg path{color:#595959;fill:#595959}.sidenav-bottom-menu a{border-radius:4px}.sidenav-menu-collapsable a{background-color:#e0e1e2}.sidenav-menu-collapsable a:hover{background-color:#d1d2d4}.mat-list-base{padding-top:0!important}.mat-drawer-inner-container{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;overflow:hidden!important}.mat-drawer:not(.mat-drawer-side){box-shadow:none!important}.tag-new{display:flex;align-items:center;justify-content:center;background-color:#e0313e;color:#fff;padding:.2rem .6rem;font-size:1rem;line-height:1.2rem;border-radius:.4rem}"]
|
234
266
|
}),
|
235
267
|
__metadata("design:paramtypes", [NavService,
|
236
268
|
BreakpointObserverService,
|
237
269
|
Router])
|
238
270
|
], GIPISidenavComponent);
|
239
271
|
export { GIPISidenavComponent };
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NpZGViYXIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQTBCaEUsSUFBYSxvQkFBb0IsNEJBQWpDLE1BQWEsb0JBQW9CO0lBdUI3QixZQUNZLFdBQXVCLEVBQ3ZCLDBCQUFxRCxFQUNyRCxPQUFlO1FBRmYsZ0JBQVcsR0FBWCxX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QUUzQjtJQUFSLEtBQUssRUFBRTs7K0RBQW9DO0FBRWxDO0lBQVQsTUFBTSxFQUFFOzhCQUFrQixZQUFZOzZEQUFzRDtBQXJCcEYsb0JBQW9CO0lBeEJoQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsY0FBYztRQUN4QixRQUFRLEVBQUUsYUFBYTtRQUN2Qix3OUhBQXVDO1FBRXZDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1FBQ3JDLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBZ0MsRUFBRSxDQUFDLHNCQUFvQixDQUFDO2dCQUNoRixLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0o7UUFDRCxJQUFJLEVBQUU7WUFDRixPQUFPLEVBQUUsY0FBYztTQUMxQjtRQUNELFVBQVUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDdkIsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDckQsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7YUFDckYsQ0FBQztTQUNMOztLQUNKLENBQUM7cUNBeUIyQixVQUFVO1FBQ0sseUJBQXlCO1FBQzVDLE1BQU07R0ExQmxCLG9CQUFvQixDQWtNaEM7U0FsTVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNZW51RFRPIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMvZHRvL21lbnUuZHRvJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2JyZWFrcG9pbnQtb2JzZXJ2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9uYXYuc2VydmljZSc7XG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2FycmF5LnV0aWwnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvb2JqZWN0LnV0aWwnO1xuaW1wb3J0IHsgU3RyaW5nVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbHMvc3RyaW5nLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktc2lkZW5hdmAsXG4gICAgZXhwb3J0QXM6ICdnaXBpU2lkZW5hdicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpZGVuYXYuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZGVuYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSVNpZGVuYXZDb21wb25lbnQgPT4gR0lQSVNpZGVuYXZDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1zaWRlbmF2JyxcbiAgICB9LFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignaW5kaWNhdG9yUm90YXRlJywgW1xuICAgICAgICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnb3BlbmVkJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoMTgwZGVnKScgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsMC4wLDAuMiwxKScpKSxcbiAgICAgICAgXSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEdJUElTaWRlbmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAgIEBWaWV3Q2hpbGQoJ3NpZGVuYXYnLCB7IHN0YXRpYzogZmFsc2UgfSkgc2lkZW5hdjogTWF0U2lkZW5hdjtcblxuICAgIHB1YmxpYyBfbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZDogTWVudURUTyA9IG51bGw7XG4gICAgcHVibGljIF9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkOiBNZW51RFRPID0gbnVsbDtcblxuICAgIHB1YmxpYyBfbW91c2VFbnRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgbWVudUl0ZW1zOiBNZW51RFRPW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIGxhYmVsVG9nZ2xlOiBzdHJpbmcgPSAnUmV0cmFpciBtZW51JztcblxuICAgIEBJbnB1dCgpIGljb25Db25maWd1cmF0aW9uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBzdmdJY29uQ29uZmlndXJhdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGFiZWxDb25maWd1cmF0aW9uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBzaG93Q29uZmlndXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xpY2tNZW51SXRlbTogRXZlbnRFbWl0dGVyPE1lbnVEVE8gfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudURUTyB8IG51bGw+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfbmF2U2VydmljZTogTmF2U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyU2VydmljZTogQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25hdlNlcnZpY2Uuc2lkZW5hdiA9IHRoaXMuc2lkZW5hdjtcbiAgICAgICAgdGhpcy5fbmF2U2VydmljZS5tZW51SXRlbXMgPSB0aGlzLm1lbnVJdGVtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT3BlbmVkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5fbmF2U2VydmljZS5pc09wZW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1NjcmVlbkxhcmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludE9ic2VydmVyU2VydmljZS5zaXplJC5waXBlKFxuICAgICAgICAgICAgbWFwKHNpemUgPT4gKHNpemUgIT09ICd4cycpICYmIChzaXplICE9PSAnc20nKSAmJiAoc2l6ZSAhPT0gJ21kJykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtZW51QmFja0J1dHRvbk5hbWUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJ1ZvbHRhcicpO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubmFtZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGAke3RoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubmFtZX0gLyAke3RoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubmFtZX1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGV2ZWxNZW51Q29sbGFwc2FibGVTZWxlY3RlZCgpOiBPYnNlcnZhYmxlPE1lbnVEVE9bXT4ge1xuICAgICAgICBpZiAoT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLm1lbnVJdGVtcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubWVudUxpc3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZVNpZGVuYXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KHRoaXMubWVudUl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLnRvZ2dsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKG1lbnU6IE1lbnVEVE8pOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX25hdlNlcnZpY2UuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLm9wZW4oKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX25hdlNlcnZpY2UuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICBtZW51LmV4cGFuZGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFNlIG8gbWVudUxpc3QgZXN0w6EgY2FycmVnYWRvIGUgbyAodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9PT0gbnVsbCkgc2lnbmlmaWNhIHF1ZSBwb3NzdWkgbWFpcyBuaXZlaXMsIHBvcnRhbnRvIGVzdGUgw6kgbyBuaXZlbCAxLlxuICAgICAgICAgICAgICAgICAqIFNlIG8gbWVudUxpc3QgZXN0w6EgY2FycmVnYWRvIGUgbyAodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9PT0gbnVsbCkgc2lnbmlmaWNhIHF1ZSBlc3RlIMOpIG8gw7p0aW1vIG7DrXZlbCwgcG9ydGFudG8gZXN0ZSDDqSBvIG5pdmVsIDIuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eShtZW51Lm1lbnVMaXN0KSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gT2JqZWN0VXRpbC5jbG9uZShtZW51KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFBcnJheVV0aWwuaXNFbXB0eShtZW51Lm1lbnVMaXN0KSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gT2JqZWN0VXRpbC5jbG9uZShtZW51KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVDb2xsYXBzYWJsZVJlc2V0KG1lbnVMaXN0OiBNZW51RFRPW10pOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbWVudUxpc3RbaV0uZXhwYW5kZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmICghQXJyYXlVdGlsLmlzRW1wdHkobWVudUxpc3RbaV0ubWVudUxpc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25NZW51Q29sbGFwc2FibGVSZXNldChtZW51TGlzdFtpXS5tZW51TGlzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25NZW51Q29sbGFwc2FibGVHb0JhY2soKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KHRoaXMubWVudUl0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTWVudUFjdGl2ZShtZW51OiBNZW51RFRPKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZXIudXJsLnN0YXJ0c1dpdGgobWVudS5yb3V0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTWVudUNvbGxhcHNhYmxlQWN0aXZlKG1lbnU6IE1lbnVEVE8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eShtZW51LnJvdXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhpc3RJblJvdXRlOiBib29sZWFuID0gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcyhtZW51LnJvdXRlKTtcblxuICAgICAgICBsZXQgbWVudUxpc3Q6IE1lbnVEVE9bXSA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLm1lbnVJdGVtcyk7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIG1lbnVMaXN0ID0gQXJyYXlVdGlsLmNsb25lKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubWVudUxpc3QpO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgbWVudUxpc3QgPSBBcnJheVV0aWwuY2xvbmUodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZXZlbFplcm9BY3RpdmU6IE1lbnVEVE8gPSBtZW51TGlzdFxuICAgICAgICAgICAgLmZpbHRlcihtaSA9PiAhQXJyYXlVdGlsLmlzRW1wdHkobWkubWVudUxpc3QpKVxuICAgICAgICAgICAgLmZpbmQobWkgPT4gKChtaS5yb3V0ZSA9PT0gbWVudS5yb3V0ZSkgJiYgKG1pLmluZGV4ID09PSBtZW51LmluZGV4KSAmJiAobWkudHlwZSAmJiBtZW51LnR5cGUpKSk7XG5cbiAgICAgICAgaWYgKGV4aXN0SW5Sb3V0ZSAmJiAhT2JqZWN0VXRpbC5pc051bGwobGV2ZWxaZXJvQWN0aXZlKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkobGV2ZWxaZXJvQWN0aXZlLm1lbnVMaXN0KSkge1xuICAgICAgICAgICAgY29uc3QgbGV2ZWxPbmVBY3RpdmU6IE1lbnVEVE8gPSBsZXZlbFplcm9BY3RpdmUubWVudUxpc3QuZmluZChtaSA9PiB0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKG1pLnJvdXRlKSk7XG4gICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKGxldmVsT25lQWN0aXZlKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkobGV2ZWxPbmVBY3RpdmUubWVudUxpc3QpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGV2ZWxUd29BY3RpdmU6IE1lbnVEVE8gPSBsZXZlbE9uZUFjdGl2ZS5tZW51TGlzdC5maW5kKG1pID0+IHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMobWkucm91dGUpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIU9iamVjdFV0aWwuaXNOdWxsKGxldmVsVHdvQWN0aXZlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFPYmplY3RVdGlsLmlzTnVsbChsZXZlbE9uZUFjdGl2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUl0ZW1TZWxlY3RlZChtZW51OiBNZW51RFRPID0gbnVsbCwgY2xvc2VOYXY6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmIChjbG9zZU5hdikge1xuICAgICAgICAgICAgdGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcblxuICAgICAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KHRoaXMubWVudUl0ZW1zKTtcblxuICAgICAgICAgICAgdGhpcy5pc1NjcmVlbkxhcmdlLnN1YnNjcmliZShpc1NjcmVlbkxhcmdlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzU2NyZWVuTGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmF2U2VydmljZS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNsaWNrTWVudUl0ZW0uZW1pdChtZW51KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TWVudU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChuYW1lLmxlbmd0aCA8PSAzNSkgPyBuYW1lIDogKG5hbWUuc2xpY2UoMCwgMzUpICsgJy4uLicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQudG9Qcm9taXNlKCkudGhlbihpc09wZW5lZCA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzT3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW91c2VFbnRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVTaWRlbmF2KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQudG9Qcm9taXNlKCkudGhlbihpc09wZW5lZCA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPcGVuZWQgJiYgdGhpcy5fbW91c2VFbnRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdXNlRW50ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVuYXYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbn1cbiJdfQ==
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL3NpZGViYXIvc2lkZW5hdi9zaWRlbmF2LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQTBCaEUsSUFBYSxvQkFBb0IsNEJBQWpDLE1BQWEsb0JBQW9CO0lBNkI3QixZQUNZLFdBQXVCLEVBQ3ZCLDBCQUFxRCxFQUNyRCxPQUFlO1FBRmYsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUEyQjtRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBNUJwQixxQ0FBZ0MsR0FBWSxJQUFJLENBQUM7UUFDakQscUNBQWdDLEdBQVksSUFBSSxDQUFDO1FBRWpELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBYyxFQUFFLENBQUM7UUFFMUIsZ0JBQVcsR0FBVyxjQUFjLENBQUM7UUFFckMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBS3ZDLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBS2pDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVsQyxvQkFBZSxHQUFpQyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUNuRiwyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RSw2QkFBd0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQU05RSxDQUFDO0lBRUwsUUFBUSxLQUFXLENBQUM7SUFFcEIsZUFBZTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQ3JFLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBVyxxQkFBcUI7UUFDNUIsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7WUFDdEgsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkI7YUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFO1lBQzlILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RDthQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtZQUMvSCxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDOUc7SUFDTCxDQUFDO0lBRUQsSUFBVyw0QkFBNEI7UUFDbkMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7WUFDdEgsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdCO2FBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtZQUM5SCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDN0Q7YUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7WUFDL0gsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdEO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDaEIsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0seUJBQXlCLENBQUMsSUFBYTtRQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzNCO1lBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBRXJCOzs7bUJBR0c7Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLEVBQUU7b0JBQy9GLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNsRTtxQkFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtvQkFDdEcsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2xFO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxRQUFtQjtRQUM3QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUU3QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3JEO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSx1QkFBdUI7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFO2dCQUMzRCxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDO2FBQ2hEO2lCQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFO2dCQUNsRSxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0M7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBYTtRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLHVCQUF1QixDQUFDLElBQWE7UUFDeEMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELE1BQU0sWUFBWSxHQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEUsSUFBSSxRQUFRLEdBQWMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtZQUN2SCxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUU7YUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsRUFBRTtZQUNsRSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUU7UUFFRCxNQUFNLGVBQWUsR0FBWSxRQUFRO2FBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEcsSUFBSSxZQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckcsTUFBTSxjQUFjLEdBQVksZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDbkYsTUFBTSxjQUFjLEdBQVksY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3hHLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzdDO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzdDO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBZ0IsSUFBSSxFQUFFLFdBQW9CLElBQUk7UUFDcEUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSxDQUFDO1lBQzdDLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxJQUFJLENBQUM7WUFFN0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDNUI7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFZO1FBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN4QjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUVKLENBQUE7O1lBMUs0QixVQUFVO1lBQ0sseUJBQXlCO1lBQzVDLE1BQU07O0FBOUJjO0lBQXhDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7OEJBQVUsVUFBVTtxREFBQztBQU9wRDtJQUFSLEtBQUssRUFBRTs7dURBQTJCO0FBRTFCO0lBQVIsS0FBSyxFQUFFOzt5REFBc0M7QUFFckM7SUFBUixLQUFLLEVBQUU7O21FQUF3QztBQUV2QztJQUFSLEtBQUssRUFBRTs7NkRBQXlCO0FBQ3hCO0lBQVIsS0FBSyxFQUFFOztnRUFBNEI7QUFDM0I7SUFBUixLQUFLLEVBQUU7OzhEQUEwQjtBQUN6QjtJQUFSLEtBQUssRUFBRTs7NkRBQWtDO0FBRWpDO0lBQVIsS0FBSyxFQUFFOzsrREFBMkI7QUFDMUI7SUFBUixLQUFLLEVBQUU7O2tFQUE4QjtBQUM3QjtJQUFSLEtBQUssRUFBRTs7Z0VBQTRCO0FBQzNCO0lBQVIsS0FBSyxFQUFFOzsrREFBb0M7QUFFbEM7SUFBVCxNQUFNLEVBQUU7OEJBQWtCLFlBQVk7NkRBQXNEO0FBQ25GO0lBQVQsTUFBTSxFQUFFOzhCQUF5QixZQUFZO29FQUFrQztBQUN0RTtJQUFULE1BQU0sRUFBRTs4QkFBMkIsWUFBWTtzRUFBa0M7QUEzQnpFLG9CQUFvQjtJQXhCaEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGNBQWM7UUFDeEIsUUFBUSxFQUFFLGFBQWE7UUFDdkIsc29KQUF1QztRQUV2QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUNyQyxTQUFTLEVBQUU7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQWdDLEVBQUUsQ0FBQyxzQkFBb0IsQ0FBQztnQkFDaEYsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsT0FBTyxFQUFFLGNBQWM7U0FDMUI7UUFDRCxVQUFVLEVBQUU7WUFDUixPQUFPLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQkFDdkQsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2FBQ3JGLENBQUM7U0FDTDs7S0FDSixDQUFDO3FDQStCMkIsVUFBVTtRQUNLLHlCQUF5QjtRQUM1QyxNQUFNO0dBaENsQixvQkFBb0IsQ0F3TWhDO1NBeE1ZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTWVudURUTyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL2R0by9tZW51LmR0byc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9icmVha3BvaW50LW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbmF2LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXJyYXlVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9hcnJheS51dGlsJztcbmltcG9ydCB7IE9iamVjdFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL29iamVjdC51dGlsJztcbmltcG9ydCB7IFN0cmluZ1V0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL3N0cmluZy51dGlsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGBnaXBpLXNpZGVuYXZgLFxuICAgIGV4cG9ydEFzOiAnZ2lwaVNpZGVuYXYnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaWRlbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zaWRlbmF2LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIEdJUElTaWRlbmF2Q29tcG9uZW50ID0+IEdJUElTaWRlbmF2Q29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktc2lkZW5hdicsXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2luZGljYXRvclJvdGF0ZScsIFtcbiAgICAgICAgICAgIHN0YXRlKCdjbG9zZWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ29wZW5lZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkIDw9PiBjb2xsYXBzZWQnLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LDAuMCwwLjIsMSknKSksXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBHSVBJU2lkZW5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAVmlld0NoaWxkKCdzaWRlbmF2JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNpZGVuYXY6IE1hdFNpZGVuYXY7XG5cbiAgICBwdWJsaWMgX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQ6IE1lbnVEVE8gPSBudWxsO1xuICAgIHB1YmxpYyBfbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZDogTWVudURUTyA9IG51bGw7XG5cbiAgICBwdWJsaWMgX21vdXNlRW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIG1lbnVJdGVtczogTWVudURUT1tdID0gW107XG5cbiAgICBASW5wdXQoKSBsYWJlbFRvZ2dsZTogc3RyaW5nID0gJ1JldHJhaXIgbWVudSc7XG5cbiAgICBASW5wdXQoKSBzaG93VGFnTmV3SW50ZWdyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGljb25JbnRlZ3JhdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN2Z0ljb25JbnRlZ3JhdGlvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsSW50ZWdyYXRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93SW50ZWdyYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGljb25Db25maWd1cmF0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ZnSWNvbkNvbmZpZ3VyYXRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBsYWJlbENvbmZpZ3VyYXRpb246IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93Q29uZmlndXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xpY2tNZW51SXRlbTogRXZlbnRFbWl0dGVyPE1lbnVEVE8gfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8TWVudURUTyB8IG51bGw+KCk7XG4gICAgQE91dHB1dCgpIG9uQ2xpY2tNZW51SW50ZWdyYXRpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb25DbGlja01lbnVDb25maWd1cmF0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfbmF2U2VydmljZTogTmF2U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyU2VydmljZTogQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25hdlNlcnZpY2Uuc2lkZW5hdiA9IHRoaXMuc2lkZW5hdjtcbiAgICAgICAgdGhpcy5fbmF2U2VydmljZS5tZW51SXRlbXMgPSB0aGlzLm1lbnVJdGVtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzT3BlbmVkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5fbmF2U2VydmljZS5pc09wZW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1NjcmVlbkxhcmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludE9ic2VydmVyU2VydmljZS5zaXplJC5waXBlKFxuICAgICAgICAgICAgbWFwKHNpemUgPT4gKHNpemUgIT09ICd4cycpICYmIChzaXplICE9PSAnc20nKSAmJiAoc2l6ZSAhPT0gJ21kJykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtZW51QmFja0J1dHRvbk5hbWUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoJ1ZvbHRhcicpO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubmFtZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGAke3RoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubmFtZX0gLyAke3RoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubmFtZX1gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGV2ZWxNZW51Q29sbGFwc2FibGVTZWxlY3RlZCgpOiBPYnNlcnZhYmxlPE1lbnVEVE9bXT4ge1xuICAgICAgICBpZiAoT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLm1lbnVJdGVtcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQpICYmICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubWVudUxpc3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZVNpZGVuYXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KHRoaXMubWVudUl0ZW1zKTtcblxuICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLnRvZ2dsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKG1lbnU6IE1lbnVEVE8pOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX25hdlNlcnZpY2UuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uYXZTZXJ2aWNlLm9wZW4oKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX25hdlNlcnZpY2UuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICBtZW51LmV4cGFuZGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFNlIG8gbWVudUxpc3QgZXN0w6EgY2FycmVnYWRvIGUgbyAodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9PT0gbnVsbCkgc2lnbmlmaWNhIHF1ZSBwb3NzdWkgbWFpcyBuaXZlaXMsIHBvcnRhbnRvIGVzdGUgw6kgbyBuaXZlbCAxLlxuICAgICAgICAgICAgICAgICAqIFNlIG8gbWVudUxpc3QgZXN0w6EgY2FycmVnYWRvIGUgbyAodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9PT0gbnVsbCkgc2lnbmlmaWNhIHF1ZSBlc3RlIMOpIG8gw7p0aW1vIG7DrXZlbCwgcG9ydGFudG8gZXN0ZSDDqSBvIG5pdmVsIDIuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheVV0aWwuaXNFbXB0eShtZW51Lm1lbnVMaXN0KSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gT2JqZWN0VXRpbC5jbG9uZShtZW51KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFBcnJheVV0aWwuaXNFbXB0eShtZW51Lm1lbnVMaXN0KSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gT2JqZWN0VXRpbC5jbG9uZShtZW51KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVDb2xsYXBzYWJsZVJlc2V0KG1lbnVMaXN0OiBNZW51RFRPW10pOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbWVudUxpc3RbaV0uZXhwYW5kZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmICghQXJyYXlVdGlsLmlzRW1wdHkobWVudUxpc3RbaV0ubWVudUxpc3QpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25NZW51Q29sbGFwc2FibGVSZXNldChtZW51TGlzdFtpXS5tZW51TGlzdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25NZW51Q29sbGFwc2FibGVHb0JhY2soKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xldmVsVHdvTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQgPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sZXZlbE9uZU1lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KHRoaXMubWVudUl0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTWVudUFjdGl2ZShtZW51OiBNZW51RFRPKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZXIudXJsLnN0YXJ0c1dpdGgobWVudS5yb3V0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTWVudUNvbGxhcHNhYmxlQWN0aXZlKG1lbnU6IE1lbnVEVE8pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFN0cmluZ1V0aWwuaXNFbXB0eShtZW51LnJvdXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhpc3RJblJvdXRlOiBib29sZWFuID0gdGhpcy5fcm91dGVyLnVybC5pbmNsdWRlcyhtZW51LnJvdXRlKTtcblxuICAgICAgICBsZXQgbWVudUxpc3Q6IE1lbnVEVE9bXSA9IEFycmF5VXRpbC5jbG9uZSh0aGlzLm1lbnVJdGVtcyk7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCkgJiYgT2JqZWN0VXRpbC5pc051bGwodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIG1lbnVMaXN0ID0gQXJyYXlVdGlsLmNsb25lKHRoaXMuX2xldmVsT25lTWVudUNvbGxhcHNhYmxlU2VsZWN0ZWQubWVudUxpc3QpO1xuICAgICAgICB9IGVsc2UgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkKSkge1xuICAgICAgICAgICAgbWVudUxpc3QgPSBBcnJheVV0aWwuY2xvbmUodGhpcy5fbGV2ZWxUd29NZW51Q29sbGFwc2FibGVTZWxlY3RlZC5tZW51TGlzdCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZXZlbFplcm9BY3RpdmU6IE1lbnVEVE8gPSBtZW51TGlzdFxuICAgICAgICAgICAgLmZpbHRlcihtaSA9PiAhQXJyYXlVdGlsLmlzRW1wdHkobWkubWVudUxpc3QpKVxuICAgICAgICAgICAgLmZpbmQobWkgPT4gKChtaS5yb3V0ZSA9PT0gbWVudS5yb3V0ZSkgJiYgKG1pLmluZGV4ID09PSBtZW51LmluZGV4KSAmJiAobWkudHlwZSAmJiBtZW51LnR5cGUpKSk7XG5cbiAgICAgICAgaWYgKGV4aXN0SW5Sb3V0ZSAmJiAhT2JqZWN0VXRpbC5pc051bGwobGV2ZWxaZXJvQWN0aXZlKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkobGV2ZWxaZXJvQWN0aXZlLm1lbnVMaXN0KSkge1xuICAgICAgICAgICAgY29uc3QgbGV2ZWxPbmVBY3RpdmU6IE1lbnVEVE8gPSBsZXZlbFplcm9BY3RpdmUubWVudUxpc3QuZmluZChtaSA9PiB0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKG1pLnJvdXRlKSk7XG4gICAgICAgICAgICBpZiAoIU9iamVjdFV0aWwuaXNOdWxsKGxldmVsT25lQWN0aXZlKSAmJiAhQXJyYXlVdGlsLmlzRW1wdHkobGV2ZWxPbmVBY3RpdmUubWVudUxpc3QpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGV2ZWxUd29BY3RpdmU6IE1lbnVEVE8gPSBsZXZlbE9uZUFjdGl2ZS5tZW51TGlzdC5maW5kKG1pID0+IHRoaXMuX3JvdXRlci51cmwuaW5jbHVkZXMobWkucm91dGUpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gIU9iamVjdFV0aWwuaXNOdWxsKGxldmVsVHdvQWN0aXZlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFPYmplY3RVdGlsLmlzTnVsbChsZXZlbE9uZUFjdGl2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTWVudUl0ZW1TZWxlY3RlZChtZW51OiBNZW51RFRPID0gbnVsbCwgY2xvc2VOYXY6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmIChjbG9zZU5hdikge1xuICAgICAgICAgICAgdGhpcy5fbGV2ZWxPbmVNZW51Q29sbGFwc2FibGVTZWxlY3RlZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9sZXZlbFR3b01lbnVDb2xsYXBzYWJsZVNlbGVjdGVkID0gbnVsbDtcblxuICAgICAgICAgICAgdGhpcy5vbk1lbnVDb2xsYXBzYWJsZVJlc2V0KHRoaXMubWVudUl0ZW1zKTtcblxuICAgICAgICAgICAgdGhpcy5pc1NjcmVlbkxhcmdlLnN1YnNjcmliZShpc1NjcmVlbkxhcmdlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzU2NyZWVuTGFyZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmF2U2VydmljZS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkNsaWNrTWVudUl0ZW0uZW1pdChtZW51KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TWVudU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChuYW1lLmxlbmd0aCA8PSAzNSkgPyBuYW1lIDogKG5hbWUuc2xpY2UoMCwgMzUpICsgJy4uLicpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQudG9Qcm9taXNlKCkudGhlbihpc09wZW5lZCA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzT3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW91c2VFbnRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVTaWRlbmF2KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQudG9Qcm9taXNlKCkudGhlbihpc09wZW5lZCA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPcGVuZWQgJiYgdGhpcy5fbW91c2VFbnRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdXNlRW50ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZVNpZGVuYXYoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbn1cbiJdfQ==
|
@@ -0,0 +1,113 @@
|
|
1
|
+
var GIPISlideToggleComponent_1;
|
2
|
+
import { __decorate, __metadata } from "tslib";
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
4
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnInit } from '@angular/core';
|
5
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
6
|
+
let nextUniqueId = 0;
|
7
|
+
let GIPISlideToggleComponent = GIPISlideToggleComponent_1 = class GIPISlideToggleComponent {
|
8
|
+
constructor(_changeDetectorRef) {
|
9
|
+
this._changeDetectorRef = _changeDetectorRef;
|
10
|
+
this._name = `gipi-slide-toggle-${nextUniqueId++}`;
|
11
|
+
this._slideToggleValue = false;
|
12
|
+
this.id = this._name;
|
13
|
+
this.name = this._name;
|
14
|
+
this.label = '';
|
15
|
+
this.help = '';
|
16
|
+
this._required = false;
|
17
|
+
this._disabled = false;
|
18
|
+
this.onChange = () => { };
|
19
|
+
this.onTouched = () => { };
|
20
|
+
}
|
21
|
+
get slideToggleValue() {
|
22
|
+
return this._slideToggleValue;
|
23
|
+
}
|
24
|
+
set slideToggleValue(value) {
|
25
|
+
this._slideToggleValue = value;
|
26
|
+
this.onChange(value);
|
27
|
+
this.onTouched();
|
28
|
+
}
|
29
|
+
get required() {
|
30
|
+
return this._required;
|
31
|
+
}
|
32
|
+
set required(value) {
|
33
|
+
if (this.required !== value) {
|
34
|
+
this._required = coerceBooleanProperty(value);
|
35
|
+
this._changeDetectorRef.markForCheck();
|
36
|
+
}
|
37
|
+
}
|
38
|
+
get disabled() {
|
39
|
+
return this._disabled;
|
40
|
+
}
|
41
|
+
set disabled(value) {
|
42
|
+
if (this.disabled !== value) {
|
43
|
+
this._disabled = coerceBooleanProperty(value);
|
44
|
+
this._changeDetectorRef.markForCheck();
|
45
|
+
}
|
46
|
+
}
|
47
|
+
ngOnInit() { }
|
48
|
+
writeValue(value) {
|
49
|
+
this.slideToggleValue = value;
|
50
|
+
this._changeDetectorRef.markForCheck();
|
51
|
+
}
|
52
|
+
registerOnChange(fn) {
|
53
|
+
this.onChange = fn;
|
54
|
+
}
|
55
|
+
registerOnTouched(fn) {
|
56
|
+
this.onTouched = fn;
|
57
|
+
}
|
58
|
+
setDisabledState(isDisabled) {
|
59
|
+
this.disabled = isDisabled;
|
60
|
+
this._changeDetectorRef.markForCheck();
|
61
|
+
}
|
62
|
+
};
|
63
|
+
GIPISlideToggleComponent.ctorParameters = () => [
|
64
|
+
{ type: ChangeDetectorRef }
|
65
|
+
];
|
66
|
+
__decorate([
|
67
|
+
Input(),
|
68
|
+
__metadata("design:type", String)
|
69
|
+
], GIPISlideToggleComponent.prototype, "id", void 0);
|
70
|
+
__decorate([
|
71
|
+
Input(),
|
72
|
+
__metadata("design:type", String)
|
73
|
+
], GIPISlideToggleComponent.prototype, "name", void 0);
|
74
|
+
__decorate([
|
75
|
+
Input(),
|
76
|
+
__metadata("design:type", String)
|
77
|
+
], GIPISlideToggleComponent.prototype, "label", void 0);
|
78
|
+
__decorate([
|
79
|
+
Input(),
|
80
|
+
__metadata("design:type", String)
|
81
|
+
], GIPISlideToggleComponent.prototype, "help", void 0);
|
82
|
+
__decorate([
|
83
|
+
Input(),
|
84
|
+
__metadata("design:type", Boolean),
|
85
|
+
__metadata("design:paramtypes", [Boolean])
|
86
|
+
], GIPISlideToggleComponent.prototype, "required", null);
|
87
|
+
__decorate([
|
88
|
+
Input(),
|
89
|
+
__metadata("design:type", Boolean),
|
90
|
+
__metadata("design:paramtypes", [Boolean])
|
91
|
+
], GIPISlideToggleComponent.prototype, "disabled", null);
|
92
|
+
GIPISlideToggleComponent = GIPISlideToggleComponent_1 = __decorate([
|
93
|
+
Component({
|
94
|
+
selector: 'gipi-slide-toggle',
|
95
|
+
exportAs: 'gipiSlideToggle',
|
96
|
+
template: "<input class=\"toggle toggle-light\"\n type=\"checkbox\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [(ngModel)]=\"slideToggleValue\" />\n<label class=\"toggle-btn\"\n [attr.for]=\"id\">\n</label>\n<label class=\"toggle-label\"\n *ngIf=\"label\"\n [attr.for]=\"id\">\n {{ label }}\n</label>",
|
97
|
+
providers: [
|
98
|
+
{
|
99
|
+
provide: NG_VALUE_ACCESSOR,
|
100
|
+
useExisting: forwardRef(() => GIPISlideToggleComponent_1),
|
101
|
+
multi: true,
|
102
|
+
},
|
103
|
+
],
|
104
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
105
|
+
host: {
|
106
|
+
'class': 'gipi-slide-toggle',
|
107
|
+
},
|
108
|
+
styles: [":host{display:flex;align-items:center;cursor:pointer}.toggle-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-left:1rem;cursor:pointer}.toggle{display:none}.toggle ::-moz-selection,.toggle :after::-moz-selection,.toggle :before::-moz-selection,.toggle+.toggle-btn::-moz-selection,.toggle::-moz-selection,.toggle:after::-moz-selection,.toggle:before::-moz-selection{background:0 0}.toggle ::selection,.toggle :after::selection,.toggle :before::selection,.toggle+.toggle-btn::selection,.toggle::selection,.toggle:after::selection,.toggle:before::selection{background:0 0}.toggle+.toggle-btn{display:block;width:40px;height:24px;outline:0;background:#e0e1e2;border-radius:22px;padding:4px;transition:.4s;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.toggle+.toggle-btn:after,.toggle+.toggle-btn:before{content:\"\";display:block;width:16px;height:16px;position:relative}.toggle+.toggle-btn:after{left:0;background:#8c8f93;border-radius:50%;transition:.2s}.toggle+.toggle-btn:before{display:none}.toggle:checked+.toggle-btn:after{left:50%;background:#414244}"]
|
109
|
+
}),
|
110
|
+
__metadata("design:paramtypes", [ChangeDetectorRef])
|
111
|
+
], GIPISlideToggleComponent);
|
112
|
+
export { GIPISlideToggleComponent };
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvc2xpZGUtdG9nZ2xlL3NsaWRlLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFtQnJCLElBQWEsd0JBQXdCLGdDQUFyQyxNQUFhLHdCQUF3QjtJQStDakMsWUFBb0Isa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUE3Q2pELFVBQUssR0FBVyxxQkFBcUIsWUFBWSxFQUFFLEVBQUUsQ0FBQztRQUV0RCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFVbEMsT0FBRSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFeEIsU0FBSSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFMUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRW5CLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFXM0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQVduQyxhQUFRLEdBQWEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBYSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNkIsQ0FBQztJQTFDOUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBYztRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFXUSxJQUFJLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBR1EsSUFBSSxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQU9ELFFBQVEsS0FBVyxDQUFDO0lBRXBCLFVBQVUsQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUVKLENBQUE7O1lBdEIyQyxpQkFBaUI7O0FBakNoRDtJQUFSLEtBQUssRUFBRTs7b0RBQXlCO0FBRXhCO0lBQVIsS0FBSyxFQUFFOztzREFBMkI7QUFFMUI7SUFBUixLQUFLLEVBQUU7O3VEQUFvQjtBQUVuQjtJQUFSLEtBQUssRUFBRTs7c0RBQW1CO0FBR2xCO0lBQVIsS0FBSyxFQUFFOzs7d0RBRVA7QUFTUTtJQUFSLEtBQUssRUFBRTs7O3dEQUVQO0FBcENRLHdCQUF3QjtJQWpCcEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLG1CQUFtQjtRQUM3QixRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLDJWQUE0QztRQUU1QyxTQUFTLEVBQUU7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUF3QixDQUFDO2dCQUN2RCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0o7UUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtRQUMvQyxJQUFJLEVBQUU7WUFDRixPQUFPLEVBQUUsbUJBQW1CO1NBQy9COztLQUNKLENBQUM7cUNBZ0QwQyxpQkFBaUI7R0EvQ2hELHdCQUF3QixDQXFFcEM7U0FyRVksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktc2xpZGUtdG9nZ2xlJyxcbiAgICBleHBvcnRBczogJ2dpcGlTbGlkZVRvZ2dsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlLXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2xpZGUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR0lQSVNsaWRlVG9nZ2xlQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1zbGlkZS10b2dnbGUnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdJUElTbGlkZVRvZ2dsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nID0gYGdpcGktc2xpZGUtdG9nZ2xlLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIHByaXZhdGUgX3NsaWRlVG9nZ2xlVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBnZXQgc2xpZGVUb2dnbGVWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NsaWRlVG9nZ2xlVmFsdWU7XG4gICAgfVxuICAgIHNldCBzbGlkZVRvZ2dsZVZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NsaWRlVG9nZ2xlVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9IHRoaXMuX25hbWU7XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSB0aGlzLl9uYW1lO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgaGVscDogc3RyaW5nID0gJyc7XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgIH1cbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuICAgIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbGlkZVRvZ2dsZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxufVxuIl19
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
2
|
+
import { Directive, ViewContainerRef } from '@angular/core';
|
3
|
+
let GIPIDynamicTabDirective = class GIPIDynamicTabDirective {
|
4
|
+
constructor(viewContainer) {
|
5
|
+
this.viewContainer = viewContainer;
|
6
|
+
}
|
7
|
+
};
|
8
|
+
GIPIDynamicTabDirective.ctorParameters = () => [
|
9
|
+
{ type: ViewContainerRef }
|
10
|
+
];
|
11
|
+
GIPIDynamicTabDirective = __decorate([
|
12
|
+
Directive({
|
13
|
+
selector: '[GIPIDynamicTab]'
|
14
|
+
}),
|
15
|
+
__metadata("design:paramtypes", [ViewContainerRef])
|
16
|
+
], GIPIDynamicTabDirective);
|
17
|
+
export { GIPIDynamicTabDirective };
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJzL3NoYXJlZC9keW5hbWljLXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLNUQsSUFBYSx1QkFBdUIsR0FBcEMsTUFBYSx1QkFBdUI7SUFFaEMsWUFBbUIsYUFBK0I7UUFBL0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQUksQ0FBQztDQUUxRCxDQUFBOztZQUZxQyxnQkFBZ0I7O0FBRnpDLHVCQUF1QjtJQUhuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsa0JBQWtCO0tBQy9CLENBQUM7cUNBR29DLGdCQUFnQjtHQUZ6Qyx1QkFBdUIsQ0FJbkM7U0FKWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbR0lQSUR5bmFtaWNUYWJdJ1xufSlcbmV4cG9ydCBjbGFzcyBHSVBJRHluYW1pY1RhYkRpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG5cbn1cbiJdfQ==
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export class TabModel {
|
2
|
+
constructor() {
|
3
|
+
this.active = false;
|
4
|
+
this.closeable = false;
|
5
|
+
this.disabled = false;
|
6
|
+
}
|
7
|
+
}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJzL3NoYXJlZC90YWIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFFBQVE7SUFBckI7UUFJSSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBSWYsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixhQUFRLEdBQUcsS0FBSyxDQUFDO0lBVXJCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBUYWJNb2RlbCB7XG5cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgYWN0aXZlID0gZmFsc2U7XG5cbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNsb3NlYWJsZSA9IGZhbHNlO1xuXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGRhdGE6IGFueTtcblxuICAgIGljb246IHN0cmluZztcblxuICAgIHN2Z0ljb246IHN0cmluZztcblxuICAgIGFjdGlvbjogKG9iajogYW55KSA9PiB2b2lkO1xuXG59XG4iXX0=
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
2
|
+
import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
|
3
|
+
let GIPITabComponent = class GIPITabComponent {
|
4
|
+
constructor() {
|
5
|
+
this.active = false;
|
6
|
+
this.closeable = false;
|
7
|
+
this.disabled = false;
|
8
|
+
this.selectionChange = new EventEmitter();
|
9
|
+
}
|
10
|
+
ngOnInit() { }
|
11
|
+
};
|
12
|
+
__decorate([
|
13
|
+
Input(),
|
14
|
+
__metadata("design:type", Number)
|
15
|
+
], GIPITabComponent.prototype, "index", void 0);
|
16
|
+
__decorate([
|
17
|
+
Input(),
|
18
|
+
__metadata("design:type", String)
|
19
|
+
], GIPITabComponent.prototype, "label", void 0);
|
20
|
+
__decorate([
|
21
|
+
Input(),
|
22
|
+
__metadata("design:type", Boolean)
|
23
|
+
], GIPITabComponent.prototype, "active", void 0);
|
24
|
+
__decorate([
|
25
|
+
Input(),
|
26
|
+
__metadata("design:type", TemplateRef)
|
27
|
+
], GIPITabComponent.prototype, "template", void 0);
|
28
|
+
__decorate([
|
29
|
+
Input(),
|
30
|
+
__metadata("design:type", Boolean)
|
31
|
+
], GIPITabComponent.prototype, "closeable", void 0);
|
32
|
+
__decorate([
|
33
|
+
Input(),
|
34
|
+
__metadata("design:type", Boolean)
|
35
|
+
], GIPITabComponent.prototype, "disabled", void 0);
|
36
|
+
__decorate([
|
37
|
+
Input(),
|
38
|
+
__metadata("design:type", Object)
|
39
|
+
], GIPITabComponent.prototype, "data", void 0);
|
40
|
+
__decorate([
|
41
|
+
Input(),
|
42
|
+
__metadata("design:type", String)
|
43
|
+
], GIPITabComponent.prototype, "icon", void 0);
|
44
|
+
__decorate([
|
45
|
+
Input(),
|
46
|
+
__metadata("design:type", String)
|
47
|
+
], GIPITabComponent.prototype, "svgIcon", void 0);
|
48
|
+
__decorate([
|
49
|
+
Output(),
|
50
|
+
__metadata("design:type", EventEmitter)
|
51
|
+
], GIPITabComponent.prototype, "selectionChange", void 0);
|
52
|
+
GIPITabComponent = __decorate([
|
53
|
+
Component({
|
54
|
+
selector: 'gipi-tab',
|
55
|
+
exportAs: 'gipiTab',
|
56
|
+
template: "<ng-container *ngIf=\"active\">\n <ng-content> </ng-content>\n <ng-container *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{$implicit: data}\">\n </ng-container>\n</ng-container>",
|
57
|
+
host: {
|
58
|
+
'class': 'gipi-tab',
|
59
|
+
'[style.display]': '!active ? "none" : "block"',
|
60
|
+
},
|
61
|
+
styles: [":host{padding:1.6rem}"]
|
62
|
+
}),
|
63
|
+
__metadata("design:paramtypes", [])
|
64
|
+
], GIPITabComponent);
|
65
|
+
export { GIPITabComponent };
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFicy90YWIvdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFZNUYsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUF1QnpCO1FBakJTLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFJeEIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBU3pCLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbEQsQ0FBQztJQUVqQixRQUFRLEtBQVcsQ0FBQztDQUV2QixDQUFBO0FBekJZO0lBQVIsS0FBSyxFQUFFOzsrQ0FBZTtBQUVkO0lBQVIsS0FBSyxFQUFFOzsrQ0FBZTtBQUVkO0lBQVIsS0FBSyxFQUFFOztnREFBeUI7QUFFeEI7SUFBUixLQUFLLEVBQUU7OEJBQVcsV0FBVztrREFBTTtBQUUzQjtJQUFSLEtBQUssRUFBRTs7bURBQTRCO0FBRTNCO0lBQVIsS0FBSyxFQUFFOztrREFBMkI7QUFFMUI7SUFBUixLQUFLLEVBQUU7OzhDQUFXO0FBRVY7SUFBUixLQUFLLEVBQUU7OzhDQUFjO0FBQ2I7SUFBUixLQUFLLEVBQUU7O2lEQUFpQjtBQUlmO0lBQVQsTUFBTSxFQUFFOzhCQUFrQixZQUFZO3lEQUEyQjtBQXJCekQsZ0JBQWdCO0lBVjVCLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLDhRQUFtQztRQUVuQyxJQUFJLEVBQUU7WUFDRixPQUFPLEVBQUUsVUFBVTtZQUNuQixpQkFBaUIsRUFBRSw0QkFBNEI7U0FDbEQ7O0tBQ0osQ0FBQzs7R0FDVyxnQkFBZ0IsQ0EyQjVCO1NBM0JZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS10YWInLFxuICAgIGV4cG9ydEFzOiAnZ2lwaVRhYicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS10YWInLFxuICAgICAgICAnW3N0eWxlLmRpc3BsYXldJzogJyFhY3RpdmUgPyBcIm5vbmVcIiA6IFwiYmxvY2tcIicsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgR0lQSVRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBjbG9zZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBkYXRhOiBhbnk7XG5cbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ZnSWNvbjogc3RyaW5nO1xuXG4gICAgYWN0aW9uOiAob2JqOiBhbnkpID0+IHZvaWQ7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG59XG4iXX0=
|
@@ -0,0 +1,123 @@
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
2
|
+
import { AfterContentInit, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, ContentChildren, ElementRef, OnInit, QueryList, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
|
3
|
+
import { GIPIDynamicTabDirective } from '../shared/dynamic-tab.directive';
|
4
|
+
import { TabModel } from '../shared/tab.model';
|
5
|
+
import { GIPITabComponent } from '../tab/tab.component';
|
6
|
+
let GIPITabGroupComponent = class GIPITabGroupComponent {
|
7
|
+
constructor(elementRef, _componentFactoryResolver) {
|
8
|
+
this.elementRef = elementRef;
|
9
|
+
this._componentFactoryResolver = _componentFactoryResolver;
|
10
|
+
this.dynamicTabs = [];
|
11
|
+
}
|
12
|
+
ngOnInit() { }
|
13
|
+
ngAfterContentInit() {
|
14
|
+
const activeTabs = this.tabQueryList.filter(tab => tab.active);
|
15
|
+
if (activeTabs.length === 0 && this.tabQueryList.length > 0) {
|
16
|
+
this.selectTab(this.tabQueryList.first);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
openTab(label, template, data, closeable = false, disabled = false, action) {
|
20
|
+
const tab = new TabModel();
|
21
|
+
tab.label = label;
|
22
|
+
tab.template = template;
|
23
|
+
tab.data = data;
|
24
|
+
tab.closeable = closeable;
|
25
|
+
tab.disabled = disabled;
|
26
|
+
tab.action = action;
|
27
|
+
this._openTabs(Array(tab));
|
28
|
+
}
|
29
|
+
_openTabs(tabList) {
|
30
|
+
const tabsComponent = tabList.map(tab => this._getTabComponent(tab.label, tab.template, tab.data, tab.closeable, tab.disabled, tab.action));
|
31
|
+
this.dynamicTabs.push(...tabsComponent);
|
32
|
+
this.selectTab(this.dynamicTabs[0]);
|
33
|
+
}
|
34
|
+
_getTabComponent(label, template, data, closeable = false, disabled = false, action) {
|
35
|
+
const componentFactory = this._componentFactoryResolver.resolveComponentFactory(GIPITabComponent);
|
36
|
+
const componentRef = this.dynamicTabPlaceholder.viewContainer.createComponent(componentFactory);
|
37
|
+
const instance = componentRef.instance;
|
38
|
+
instance.label = label;
|
39
|
+
instance.template = template;
|
40
|
+
instance.data = data;
|
41
|
+
instance.closeable = closeable;
|
42
|
+
instance.disabled = disabled;
|
43
|
+
instance.action = action;
|
44
|
+
return componentRef.instance;
|
45
|
+
}
|
46
|
+
selectTab(tab) {
|
47
|
+
this.tabQueryList.toArray().forEach(t => (t.active = false));
|
48
|
+
this.dynamicTabs.forEach(t => (t.active = false));
|
49
|
+
tab.active = true;
|
50
|
+
tab.selectionChange.emit();
|
51
|
+
if (tab.action) {
|
52
|
+
tab.action(tab.data);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
closeTab(tab) {
|
56
|
+
const index = this.dynamicTabs.indexOf(tab);
|
57
|
+
this.dynamicTabs.splice(index, 1);
|
58
|
+
const viewContainerRef = this.dynamicTabPlaceholder.viewContainer;
|
59
|
+
viewContainerRef.remove(index);
|
60
|
+
if (this.tabQueryList.length > 0) {
|
61
|
+
this.selectTab(this.tabQueryList.first);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
closeActiveTab() {
|
65
|
+
const activeTabs = this.dynamicTabs.filter(tab => tab.active);
|
66
|
+
if (activeTabs.length > 0) {
|
67
|
+
this.closeTab(activeTabs[0]);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
closeAllTabs() {
|
71
|
+
const tabs = Object.assign([], this.dynamicTabs);
|
72
|
+
if (tabs.length > 0) {
|
73
|
+
tabs.forEach(tab => this.closeTab(tab));
|
74
|
+
}
|
75
|
+
}
|
76
|
+
nextTab() {
|
77
|
+
const currentTab = this.tabQueryList.toArray().find(tab => tab.active);
|
78
|
+
const nextTab = this.tabQueryList.toArray()[this.tabQueryList.toArray().indexOf(currentTab) + 1];
|
79
|
+
if (nextTab != null) {
|
80
|
+
this.tabQueryList.toArray().forEach(t => (t.active = false));
|
81
|
+
this.dynamicTabs.forEach(t => (t.active = false));
|
82
|
+
nextTab.active = true;
|
83
|
+
nextTab.selectionChange.emit();
|
84
|
+
}
|
85
|
+
}
|
86
|
+
previousTab() {
|
87
|
+
const currentTab = this.tabQueryList.toArray().find(tab => tab.active);
|
88
|
+
const previousTab = this.tabQueryList.toArray()[this.tabQueryList.toArray().indexOf(currentTab) - 1];
|
89
|
+
if (previousTab != null) {
|
90
|
+
this.tabQueryList.toArray().forEach(t => (t.active = false));
|
91
|
+
this.dynamicTabs.forEach(t => (t.active = false));
|
92
|
+
previousTab.active = true;
|
93
|
+
previousTab.selectionChange.emit();
|
94
|
+
}
|
95
|
+
}
|
96
|
+
};
|
97
|
+
GIPITabGroupComponent.ctorParameters = () => [
|
98
|
+
{ type: ElementRef },
|
99
|
+
{ type: ComponentFactoryResolver }
|
100
|
+
];
|
101
|
+
__decorate([
|
102
|
+
ContentChildren(GIPITabComponent),
|
103
|
+
__metadata("design:type", QueryList)
|
104
|
+
], GIPITabGroupComponent.prototype, "tabQueryList", void 0);
|
105
|
+
__decorate([
|
106
|
+
ViewChild(GIPIDynamicTabDirective, { static: false }),
|
107
|
+
__metadata("design:type", GIPIDynamicTabDirective)
|
108
|
+
], GIPITabGroupComponent.prototype, "dynamicTabPlaceholder", void 0);
|
109
|
+
GIPITabGroupComponent = __decorate([
|
110
|
+
Component({
|
111
|
+
selector: 'gipi-tab-group',
|
112
|
+
exportAs: 'gipiTabGroup',
|
113
|
+
template: "<nav mat-tab-nav-bar>\n <a mat-tab-link\n *ngFor=\"let tab of tabQueryList\"\n (click)=\"selectTab(tab)\"\n [class.active]=\"tab.active\"\n [disabled]=\"tab.disabled\">\n <mat-icon *ngIf=\"tab.icon || tab.svgIcon\"\n [svgIcon]=\"tab.svgIcon ? tab.svgIcon : ''\">\n {{ !tab.svgIcon && tab.icon ? tab.icon : '' }}\n </mat-icon>\n\n {{ tab.label }}\n </a>\n\n <a mat-tab-link\n *ngFor=\"let tab of dynamicTabs\"\n (click)=\"selectTab(tab)\"\n [class.active]=\"tab.active\"\n [disabled]=\"tab.disabled\">\n <mat-icon *ngIf=\"tab.icon || tab.svgIcon\"\n [svgIcon]=\"tab.svgIcon ? tab.svgIcon : ''\">\n {{ !tab.svgIcon && tab.icon ? tab.icon : '' }}\n </mat-icon>\n\n {{ tab.label }}\n </a>\n</nav>\n\n<ng-content> </ng-content>\n<ng-template dynamicTab\n #container>\n</ng-template>",
|
114
|
+
host: {
|
115
|
+
'class': 'gipi-tab-group',
|
116
|
+
},
|
117
|
+
styles: [":host{display:block;flex:1;width:100%;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-nav-bar{background:#f5f5f6;border:none;border-radius:.4rem;padding:.4rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-links{display:flex;gap:1rem}:host ::ng-deep .mat-tab-link{height:auto!important;padding:1rem!important;opacity:1!important;border:none!important;border-radius:4px!important;transition:.2s!important;color:#595959!important;gap:1rem}:host ::ng-deep .mat-tab-link>mat-icon{width:2rem!important;height:2rem!important;font-size:2rem!important;color:#595959!important}:host ::ng-deep .mat-tab-link>mat-icon svg,:host ::ng-deep .mat-tab-link>mat-icon svg g path,:host ::ng-deep .mat-tab-link>mat-icon svg path{color:#595959!important;fill:#595959!important}:host ::ng-deep .mat-tab-link:not(.active):hover{background:#e0e1e2!important}:host ::ng-deep .mat-tab-link.active{background:#e0313e!important;color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon{color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon svg,:host ::ng-deep .mat-tab-link.active>mat-icon svg g path,:host ::ng-deep .mat-tab-link.active>mat-icon svg path{color:#fff!important;fill:#fff!important}:host ::ng-deep .mat-tab-link:disabled,:host ::ng-deep .mat-tab-link:disabled>mat-icon{color:#9a9da2!important;fill:#9a9da2!important}:host ::ng-deep .mat-tab-link:disabled svg,:host ::ng-deep .mat-tab-link:disabled svg g path,:host ::ng-deep .mat-tab-link:disabled svg path,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg g path,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg path{color:#9a9da2!important;fill:#9a9da2!important}:host ::ng-deep .mat-ink-bar{display:none!important}"]
|
118
|
+
}),
|
119
|
+
__metadata("design:paramtypes", [ElementRef,
|
120
|
+
ComponentFactoryResolver])
|
121
|
+
], GIPITabGroupComponent);
|
122
|
+
export { GIPITabGroupComponent };
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFicy90YWItZ3JvdXAvdGFiLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaE4sT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBV3hELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBTzlCLFlBQ1csVUFBc0IsRUFDckIseUJBQW1EO1FBRHBELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUp4RCxnQkFBVyxHQUF1QixFQUFFLENBQUM7SUFLeEMsQ0FBQztJQUVMLFFBQVEsS0FBVyxDQUFDO0lBRXBCLGtCQUFrQjtRQUNkLE1BQU0sVUFBVSxHQUF1QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FB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QUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRCxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUMxQixXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztDQUVKLENBQUE7O1lBeEcwQixVQUFVO1lBQ00sd0JBQXdCOztBQVA1QjtJQUFsQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7OEJBQWUsU0FBUzsyREFBbUI7QUFDdEI7SUFBdEQsU0FBUyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDOzhCQUF3Qix1QkFBdUI7b0VBQUM7QUFIN0YscUJBQXFCO0lBVGpDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsUUFBUSxFQUFFLGNBQWM7UUFDeEIsKzdCQUF5QztRQUV6QyxJQUFJLEVBQUU7WUFDRixPQUFPLEVBQUUsZ0JBQWdCO1NBQzVCOztLQUNKLENBQUM7cUNBU3lCLFVBQVU7UUFDTSx3QkFBd0I7R0FUdEQscUJBQXFCLENBZ0hqQztTQWhIWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmLCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdJUElEeW5hbWljVGFiRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2hhcmVkL2R5bmFtaWMtdGFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJNb2RlbCB9IGZyb20gJy4uL3NoYXJlZC90YWIubW9kZWwnO1xuaW1wb3J0IHsgR0lQSVRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnaXBpLXRhYi1ncm91cCcsXG4gICAgZXhwb3J0QXM6ICdnaXBpVGFiR3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktdGFiLWdyb3VwJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHSVBJVGFiR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQge1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihHSVBJVGFiQ29tcG9uZW50KSB0YWJRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxHSVBJVGFiQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkKEdJUElEeW5hbWljVGFiRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSkgZHluYW1pY1RhYlBsYWNlaG9sZGVyOiBHSVBJRHluYW1pY1RhYkRpcmVjdGl2ZTtcblxuICAgIHB1YmxpYyBkeW5hbWljVGFiczogR0lQSVRhYkNvbXBvbmVudFtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRhYnM6IEdJUElUYWJDb21wb25lbnRbXSA9IHRoaXMudGFiUXVlcnlMaXN0LmZpbHRlcih0YWIgPT4gdGFiLmFjdGl2ZSk7XG4gICAgICAgIGlmIChhY3RpdmVUYWJzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnRhYlF1ZXJ5TGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFRhYih0aGlzLnRhYlF1ZXJ5TGlzdC5maXJzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblRhYihsYWJlbDogc3RyaW5nLCB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sIGRhdGE/OiBhbnksIGNsb3NlYWJsZTogYm9vbGVhbiA9IGZhbHNlLCBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlLCBhY3Rpb24/OiAob2JqOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFiOiBUYWJNb2RlbCA9IG5ldyBUYWJNb2RlbCgpO1xuICAgICAgICB0YWIubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgdGFiLnRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgICAgIHRhYi5kYXRhID0gZGF0YTtcbiAgICAgICAgdGFiLmNsb3NlYWJsZSA9IGNsb3NlYWJsZTtcbiAgICAgICAgdGFiLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgICAgIHRhYi5hY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHRoaXMuX29wZW5UYWJzKEFycmF5KHRhYikpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29wZW5UYWJzKHRhYkxpc3Q6IFRhYk1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFic0NvbXBvbmVudDogR0lQSVRhYkNvbXBvbmVudFtdID0gdGFiTGlzdC5tYXAodGFiID0+IHRoaXMuX2dldFRhYkNvbXBvbmVudCh0YWIubGFiZWwsIHRhYi50ZW1wbGF0ZSwgdGFiLmRhdGEsIHRhYi5jbG9zZWFibGUsIHRhYi5kaXNhYmxlZCwgdGFiLmFjdGlvbikpO1xuICAgICAgICB0aGlzLmR5bmFtaWNUYWJzLnB1c2goLi4udGFic0NvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMuZHluYW1pY1RhYnNbMF0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFRhYkNvbXBvbmVudChsYWJlbDogc3RyaW5nLCB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sIGRhdGE/OiBhbnksIGNsb3NlYWJsZTogYm9vbGVhbiA9IGZhbHNlLCBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlLCBhY3Rpb24/OiAob2JqOiBhbnkpID0+IHZvaWQpOiBHSVBJVGFiQ29tcG9uZW50IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxHSVBJVGFiQ29tcG9uZW50PiA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShHSVBJVGFiQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8R0lQSVRhYkNvbXBvbmVudD4gPSB0aGlzLmR5bmFtaWNUYWJQbGFjZWhvbGRlci52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcblxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgaW5zdGFuY2UubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgaW5zdGFuY2UudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgICAgaW5zdGFuY2UuZGF0YSA9IGRhdGE7XG4gICAgICAgIGluc3RhbmNlLmNsb3NlYWJsZSA9IGNsb3NlYWJsZTtcbiAgICAgICAgaW5zdGFuY2UuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgaW5zdGFuY2UuYWN0aW9uID0gYWN0aW9uO1xuXG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdFRhYih0YWI6IEdJUElUYWJDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpLmZvckVhY2godCA9PiAodC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLmR5bmFtaWNUYWJzLmZvckVhY2godCA9PiAodC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICB0YWIuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgdGFiLnNlbGVjdGlvbkNoYW5nZS5lbWl0KCk7XG5cbiAgICAgICAgaWYgKHRhYi5hY3Rpb24pIHtcbiAgICAgICAgICAgIHRhYi5hY3Rpb24odGFiLmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlVGFiKHRhYjogR0lQSVRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5keW5hbWljVGFicy5pbmRleE9mKHRhYik7XG4gICAgICAgIHRoaXMuZHluYW1pY1RhYnMuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmID0gdGhpcy5keW5hbWljVGFiUGxhY2Vob2xkZXIudmlld0NvbnRhaW5lcjtcbiAgICAgICAgdmlld0NvbnRhaW5lclJlZi5yZW1vdmUoaW5kZXgpO1xuXG4gICAgICAgIGlmICh0aGlzLnRhYlF1ZXJ5TGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFRhYih0aGlzLnRhYlF1ZXJ5TGlzdC5maXJzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VBY3RpdmVUYWIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRhYnMgPSB0aGlzLmR5bmFtaWNUYWJzLmZpbHRlcih0YWIgPT4gdGFiLmFjdGl2ZSk7XG4gICAgICAgIGlmIChhY3RpdmVUYWJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VUYWIoYWN0aXZlVGFic1swXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VBbGxUYWJzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWJzID0gT2JqZWN0LmFzc2lnbihbXSwgdGhpcy5keW5hbWljVGFicyk7XG4gICAgICAgIGlmICh0YWJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhYnMuZm9yRWFjaCh0YWIgPT4gdGhpcy5jbG9zZVRhYih0YWIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0VGFiKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50VGFiOiBHSVBJVGFiQ29tcG9uZW50ID0gdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpLmZpbmQodGFiID0+IHRhYi5hY3RpdmUpO1xuICAgICAgICBjb25zdCBuZXh0VGFiOiBHSVBJVGFiQ29tcG9uZW50ID0gdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpW3RoaXMudGFiUXVlcnlMaXN0LnRvQXJyYXkoKS5pbmRleE9mKGN1cnJlbnRUYWIpICsgMV07XG4gICAgICAgIGlmIChuZXh0VGFiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudGFiUXVlcnlMaXN0LnRvQXJyYXkoKS5mb3JFYWNoKHQgPT4gKHQuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1RhYnMuZm9yRWFjaCh0ID0+ICh0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICBuZXh0VGFiLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICBuZXh0VGFiLnNlbGVjdGlvbkNoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmlvdXNUYWIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUYWI6IEdJUElUYWJDb21wb25lbnQgPSB0aGlzLnRhYlF1ZXJ5TGlzdC50b0FycmF5KCkuZmluZCh0YWIgPT4gdGFiLmFjdGl2ZSk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVGFiOiBHSVBJVGFiQ29tcG9uZW50ID0gdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpW3RoaXMudGFiUXVlcnlMaXN0LnRvQXJyYXkoKS5pbmRleE9mKGN1cnJlbnRUYWIpIC0gMV07XG4gICAgICAgIGlmIChwcmV2aW91c1RhYiAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnRhYlF1ZXJ5TGlzdC50b0FycmF5KCkuZm9yRWFjaCh0ID0+ICh0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICB0aGlzLmR5bmFtaWNUYWJzLmZvckVhY2godCA9PiAodC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICAgICAgcHJldmlvdXNUYWIuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHByZXZpb3VzVGFiLnNlbGVjdGlvbkNoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuIl19
|