UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

267 lines 21.9 kB
/** * @fileoverview added by tsickle * Generated from: accordion-list.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { AccordionComponent } from './accordion.component'; import { Component, Input, ViewEncapsulation, ViewChildren, QueryList, Optional, Host, SkipSelf } from '@angular/core'; import { AccordionItemRouterlinkComponent } from './accordion-item-routerlink.component'; import { AccordionMenuComponent } from './accordion-menu.component'; export class AccordionListComponent { /** * @param {?} parentComponent * @param {?} accordion */ constructor(parentComponent, accordion) { this.parentComponent = parentComponent; this.accordion = accordion; this.deepth = 0; this.menuToggleItemFn = (/** * @param {?} item * @param {?=} event * @return {?} */ (item, event) => { this.accordion.menuToggleFn({ item: item, open: !item[this.accordion.openKey], parent: this.parent.parent, event: event }); }); this.itemClickItemFn = (/** * @param {?} item * @param {?=} event * @return {?} */ (item, event) => { this.accordion.itemClickFn({ item: item, parent: this.parent, event: event }); }); } /** * @return {?} */ ngOnInit() { if (this.parentComponent) { setTimeout((/** * @return {?} */ () => { this.parentComponent.accordionListFromView = this; })); } } /** * @return {?} */ ngOnDestroy() { if (this.parentComponent) { this.parentComponent.accordionListFromView = undefined; } } /** * @return {?} */ get loading() { return this.parent && this.parent[this.accordion.loadingKey]; } /** * @return {?} */ get noContent() { return this.data === undefined || this.data === null || this.data.length === 0; } /** * @return {?} */ get linkTypeKey() { return this.accordion.linkTypeKey; } /** * @return {?} */ get childrenKey() { return this.accordion.childrenKey; } /** * @return {?} */ get activeKey() { return this.accordion.activeKey; } /** * @return {?} */ get itemTemplate() { return this.accordion.itemTemplate; } /** * @return {?} */ get menuItemTemplate() { return this.accordion.menuItemTemplate; } /** * @return {?} */ get innerListTemplate() { return this.accordion.innerListTemplate; } /** * @return {?} */ get loadingTemplate() { return this.accordion.loadingTemplate; } /** * @return {?} */ get noContentTemplate() { return this.accordion.noContentTemplate; } /** * @return {?} */ get linkType() { return this.accordion.linkType; } /** * @return {?} */ get i18nCommonText() { return this.accordion.i18nCommonText; } /** * @return {?} */ get showNoContent() { return this.accordion.showNoContent; } /** * @return {?} */ get linkDefaultTarget() { return this.accordion.linkDefaultTarget; } /** * @private * @param {?} airlc * @return {?} */ isLinkRouterActive(airlc) { return airlc.routerLinkActived; } /** * @private * @param {?} amc * @return {?} */ isMenuRouterActive(amc) { return amc.routerLinkActived; } /** * @private * @param {?} amc * @return {?} */ isMenuDataActive(amc) { return amc.hasActiveChildren; } /** * @private * @param {?} item * @return {?} */ isItemDataActive(item) { return !!item[this.activeKey]; } /** * @private * @param {?} item * @return {?} */ isItemData(item) { return item[this.childrenKey] === undefined; } /** * @return {?} */ get routerLinkActived() { return (!!this.accordionItemRouterlinkQueryList && this.accordionItemRouterlinkQueryList.some((/** * @param {?} airlc * @return {?} */ airlc => this.isLinkRouterActive(airlc)))) || (!!this.accordionMenuQueryList && this.accordionMenuQueryList.some((/** * @param {?} amc * @return {?} */ amc => this.isMenuRouterActive(amc)))); } /** * @return {?} */ get hasActiveChildren() { return (!!this.accordionMenuQueryList && this.accordionMenuQueryList.some((/** * @param {?} amc * @return {?} */ amc => this.isMenuDataActive(amc)))) || (!!this.data && !!this.data.length && this.data.some((/** * @param {?} item * @return {?} */ item => this.isItemData(item) && this.isItemDataActive(item)))); } } AccordionListComponent.decorators = [ { type: Component, args: [{ selector: 'd-accordion-list', template: "<ul class=\"devui-accordion-list\" *ngIf=\"!innerListTemplate || deepth === 0\">\r\n <li class=\"devui-accordion-item\" *ngFor=\"let item of data\">\r\n <!--\u83DC\u5355\u7C7B\u578B-->\r\n <d-accordion-menu *ngIf=\"item[childrenKey] !== undefined\" [item]=\"item\" [deepth]=\"deepth\" [parent]=\"parent\"></d-accordion-menu>\r\n <!--\u975E\u83DC\u5355\u7C7B\u578B-->\r\n <ng-container *ngIf=\"item[childrenKey] === undefined\">\r\n <!--\u8DEF\u7531\u94FE\u63A5-->\r\n <d-accordion-item-routerlink\r\n *ngIf=\"linkType === 'routerLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-routerlink>\r\n <!--\u666E\u901A\u94FE\u63A5-->\r\n <d-accordion-item-hreflink\r\n *ngIf=\"linkType === 'hrefLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-hreflink>\r\n <!--\u52A8\u6001\u94FE\u63A5-->\r\n <ng-container *ngIf=\"linkType === 'dependOnLinkTypeKey'\">\r\n <d-accordion-item-routerlink\r\n *ngIf=\"item[linkTypeKey] === 'routerLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-routerlink>\r\n <d-accordion-item-hreflink\r\n *ngIf=\"item[linkTypeKey] === 'hrefLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item-hreflink>\r\n <d-accordion-item\r\n *ngIf=\"item[linkTypeKey] !== 'hrefLink' && item[linkTypeKey] !== 'routerLink'\"\r\n [item]=\"item\"\r\n [deepth]=\"deepth\"\r\n [parent]=\"parent\"\r\n ></d-accordion-item>\r\n </ng-container>\r\n <!--\u666E\u901A\u7C7B\u578B-->\r\n <d-accordion-item *ngIf=\"!linkType || linkType === ''\" [item]=\"item\" [deepth]=\"deepth\" [parent]=\"parent\"></d-accordion-item>\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<!--\u5217\u8868\u6A21\u677F-->\r\n<div *ngIf=\"innerListTemplate && deepth !== 0\">\r\n <ng-template\r\n [ngTemplateOutlet]=\"innerListTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: parent,\r\n deepth: deepth,\r\n itemClickFn: itemClickItemFn,\r\n menuToggleFn: menuToggleItemFn\r\n }\"\r\n ></ng-template>\r\n</div>\r\n<!--\u65E0\u6570\u636E/\u52A0\u8F7D\u4E2D\u6A21\u677F-->\r\n<ul *ngIf=\"!innerListTemplate && (loading || (noContent && showNoContent))\">\r\n <!--\u52A0\u8F7D\u4E2D-->\r\n <li *ngIf=\"loading && !loadingTemplate\" class=\"devui-accordion-item\">\r\n <div class=\"devui-accordion-item-title devui-over-flow-ellipsis\" [style.textIndent]=\"deepth * 20 + 'px'\">\r\n {{ i18nCommonText?.loading }}\r\n </div>\r\n </li>\r\n <!--\u81EA\u5B9A\u4E49\u52A0\u8F7D\u4E2D-->\r\n <ng-template\r\n *ngIf=\"loading && loadingTemplate\"\r\n [ngTemplateOutlet]=\"loadingTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: parent, deepth: deepth }\"\r\n ></ng-template>\r\n <!--\u65E0\u6570\u636E-->\r\n <li *ngIf=\"showNoContent && !loading && noContent && !noContentTemplate\" class=\"devui-accordion-item\">\r\n <div class=\"devui-accordion-item-title devui-over-flow-ellipsis disabled\" [style.textIndent]=\"deepth * 20 + 'px'\">\r\n {{ i18nCommonText?.noData }}\r\n </div>\r\n </li>\r\n <!--\u81EA\u5B9A\u4E49\u65E0\u6570\u636E-->\r\n <ng-template\r\n *ngIf=\"showNoContent && !loading && noContent && noContentTemplate\"\r\n [ngTemplateOutlet]=\"noContentTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: parent, deepth: deepth }\"\r\n ></ng-template>\r\n</ul>\r\n", encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ AccordionListComponent.ctorParameters = () => [ { type: AccordionMenuComponent, decorators: [{ type: Optional }, { type: Host }, { type: SkipSelf }] }, { type: AccordionComponent } ]; AccordionListComponent.propDecorators = { data: [{ type: Input }], deepth: [{ type: Input }], parent: [{ type: Input }], accordionMenuQueryList: [{ type: ViewChildren, args: [AccordionMenuComponent,] }], accordionItemRouterlinkQueryList: [{ type: ViewChildren, args: [AccordionItemRouterlinkComponent,] }] }; if (false) { /** @type {?} */ AccordionListComponent.prototype.data; /** @type {?} */ AccordionListComponent.prototype.deepth; /** @type {?} */ AccordionListComponent.prototype.parent; /** @type {?} */ AccordionListComponent.prototype.accordionMenuQueryList; /** @type {?} */ AccordionListComponent.prototype.accordionItemRouterlinkQueryList; /** @type {?} */ AccordionListComponent.prototype.menuToggleItemFn; /** @type {?} */ AccordionListComponent.prototype.itemClickItemFn; /** * @type {?} * @private */ AccordionListComponent.prototype.parentComponent; /** * @type {?} * @private */ AccordionListComponent.prototype.accordion; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvYWNjb3JkaW9uLyIsInNvdXJjZXMiOlsiYWNjb3JkaW9uLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUksT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPcEUsTUFBTSxPQUFPLHNCQUFzQjs7Ozs7SUFNakMsWUFBb0QsZUFBdUMsRUFDbEYsU0FBNkI7UUFEYyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDbEYsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFMN0IsV0FBTSxHQUFHLENBQUMsQ0FBQztRQTZGcEIscUJBQWdCOzs7OztRQUFHLENBQUMsSUFBUyxFQUFHLEtBQVcsRUFBRSxFQUFFO1lBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO2dCQUMxQixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQzFCLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFBO1FBQ0Qsb0JBQWU7Ozs7O1FBQUcsQ0FBQyxJQUFTLEVBQUUsS0FBVyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7Z0JB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O1lBTlEsc0JBQXNCLHVCQWFoQixRQUFRLFlBQUksSUFBSSxZQUFJLFFBQVE7WUFqQmxDLGtCQUFrQjs7O21CQVl4QixLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSztxQ0FDTCxZQUFZLFNBQUMsc0JBQXNCOytDQUNuQyxZQUFZLFNBQUMsZ0NBQWdDOzs7O0lBSjlDLHNDQUF3Qzs7SUFDeEMsd0NBQW9COztJQUNwQix3Q0FBbUM7O0lBQ25DLHdEQUFnRzs7SUFDaEcsa0VBQThIOztJQTBGOUgsa0RBT0M7O0lBQ0QsaURBTUM7Ozs7O0lBdkdXLGlEQUErRTs7Ozs7SUFDMUYsMkNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBPcHRpb25hbCwgSG9zdCwgU2tpcFNlbGYsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjY29yZGlvbk1lbnVJdGVtIH0gZnJvbSAnLi9hY2NvcmRpb24udHlwZSc7XHJcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Sb3V0ZXJsaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS1yb3V0ZXJsaW5rLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjY29yZGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1tZW51LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2QtYWNjb3JkaW9uLWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgZGF0YTogQXJyYXk8QWNjb3JkaW9uTWVudUl0ZW0+O1xyXG4gIEBJbnB1dCgpIGRlZXB0aCA9IDA7XHJcbiAgQElucHV0KCkgcGFyZW50OiBBY2NvcmRpb25NZW51SXRlbTtcclxuICBAVmlld0NoaWxkcmVuKEFjY29yZGlvbk1lbnVDb21wb25lbnQpIGFjY29yZGlvbk1lbnVRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25NZW51Q29tcG9uZW50PjtcclxuICBAVmlld0NoaWxkcmVuKEFjY29yZGlvbkl0ZW1Sb3V0ZXJsaW5rQ29tcG9uZW50KSBhY2NvcmRpb25JdGVtUm91dGVybGlua1F1ZXJ5TGlzdDogUXVlcnlMaXN0PEFjY29yZGlvbkl0ZW1Sb3V0ZXJsaW5rQ29tcG9uZW50PjtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASG9zdCgpIEBTa2lwU2VsZigpIHByaXZhdGUgcGFyZW50Q29tcG9uZW50OiBBY2NvcmRpb25NZW51Q29tcG9uZW50LFxyXG4gICBwcml2YXRlIGFjY29yZGlvbjogQWNjb3JkaW9uQ29tcG9uZW50KSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBhcmVudENvbXBvbmVudCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnBhcmVudENvbXBvbmVudC5hY2NvcmRpb25MaXN0RnJvbVZpZXcgPSB0aGlzOyB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wYXJlbnRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5wYXJlbnRDb21wb25lbnQuYWNjb3JkaW9uTGlzdEZyb21WaWV3ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGxvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnRbdGhpcy5hY2NvcmRpb24ubG9hZGluZ0tleV07XHJcbiAgfVxyXG5cclxuICBnZXQgbm9Db250ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGF0YSA9PT0gbnVsbCB8fCB0aGlzLmRhdGEubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmtUeXBlS2V5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmxpbmtUeXBlS2V5O1xyXG4gIH1cclxuICBnZXQgY2hpbGRyZW5LZXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uY2hpbGRyZW5LZXk7XHJcbiAgfVxyXG4gIGdldCBhY3RpdmVLZXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uYWN0aXZlS2V5O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGl0ZW1UZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5pdGVtVGVtcGxhdGU7XHJcbiAgfVxyXG4gIGdldCBtZW51SXRlbVRlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLm1lbnVJdGVtVGVtcGxhdGU7XHJcbiAgfVxyXG4gIGdldCBpbm5lckxpc3RUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5pbm5lckxpc3RUZW1wbGF0ZTtcclxuICB9XHJcbiAgZ2V0IGxvYWRpbmdUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5sb2FkaW5nVGVtcGxhdGU7XHJcbiAgfVxyXG4gIGdldCBub0NvbnRlbnRUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5ub0NvbnRlbnRUZW1wbGF0ZTtcclxuICB9XHJcbiAgZ2V0IGxpbmtUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmxpbmtUeXBlO1xyXG4gIH1cclxuICBnZXQgaTE4bkNvbW1vblRleHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uaTE4bkNvbW1vblRleHQ7XHJcbiAgfVxyXG4gIGdldCBzaG93Tm9Db250ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLnNob3dOb0NvbnRlbnQ7XHJcbiAgfVxyXG4gIGdldCBsaW5rRGVmYXVsdFRhcmdldCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbi5saW5rRGVmYXVsdFRhcmdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBpc0xpbmtSb3V0ZXJBY3RpdmUoYWlybGM6IEFjY29yZGlvbkl0ZW1Sb3V0ZXJsaW5rQ29tcG9uZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYWlybGMucm91dGVyTGlua0FjdGl2ZWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNNZW51Um91dGVyQWN0aXZlKGFtYzogQWNjb3JkaW9uTWVudUNvbXBvbmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFtYy5yb3V0ZXJMaW5rQWN0aXZlZDtcclxuICB9XHJcbiAgcHJpdmF0ZSBpc01lbnVEYXRhQWN0aXZlKGFtYzogQWNjb3JkaW9uTWVudUNvbXBvbmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFtYy5oYXNBY3RpdmVDaGlsZHJlbjtcclxuICB9XHJcbiAgcHJpdmF0ZSBpc0l0ZW1EYXRhQWN0aXZlKGl0ZW06IEFjY29yZGlvbk1lbnVJdGVtKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFpdGVtW3RoaXMuYWN0aXZlS2V5XTtcclxuICB9XHJcbiAgcHJpdmF0ZSBpc0l0ZW1EYXRhKGl0ZW06IEFjY29yZGlvbk1lbnVJdGVtKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaXRlbVt0aGlzLmNoaWxkcmVuS2V5XSA9PT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuICBnZXQgcm91dGVyTGlua0FjdGl2ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKCEhdGhpcy5hY2NvcmRpb25JdGVtUm91dGVybGlua1F1ZXJ5TGlzdFxyXG4gICAgICAgICYmIHRoaXMuYWNjb3JkaW9uSXRlbVJvdXRlcmxpbmtRdWVyeUxpc3Quc29tZShhaXJsYyA9PiB0aGlzLmlzTGlua1JvdXRlckFjdGl2ZShhaXJsYykpXHJcbiAgICAgICkgfHwgKFxyXG4gICAgICAgICEhdGhpcy5hY2NvcmRpb25NZW51UXVlcnlMaXN0XHJcbiAgICAgICAgJiYgdGhpcy5hY2NvcmRpb25NZW51UXVlcnlMaXN0LnNvbWUoYW1jID0+IHRoaXMuaXNNZW51Um91dGVyQWN0aXZlKGFtYykpXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIGdldCBoYXNBY3RpdmVDaGlsZHJlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoISF0aGlzLmFjY29yZGlvbk1lbnVRdWVyeUxpc3RcclxuICAgICAgICAmJiB0aGlzLmFjY29yZGlvbk1lbnVRdWVyeUxpc3Quc29tZShhbWMgPT4gdGhpcy5pc01lbnVEYXRhQWN0aXZlKGFtYykpKVxyXG4gICAgICB8fCAoISF0aGlzLmRhdGEgJiYgISF0aGlzLmRhdGEubGVuZ3RoXHJcbiAgICAgICAgJiYgdGhpcy5kYXRhLnNvbWUoaXRlbSA9PiB0aGlzLmlzSXRlbURhdGEoaXRlbSkgJiYgdGhpcy5pc0l0ZW1EYXRhQWN0aXZlKGl0ZW0pKVxyXG4gICAgKTtcclxuICB9XHJcbiAgbWVudVRvZ2dsZUl0ZW1GbiA9IChpdGVtOiBhbnkgLCBldmVudD86IGFueSkgPT4ge1xyXG4gICAgdGhpcy5hY2NvcmRpb24ubWVudVRvZ2dsZUZuKHtcclxuICAgICAgaXRlbTogaXRlbSxcclxuICAgICAgb3BlbjogIWl0ZW1bdGhpcy5hY2NvcmRpb24ub3BlbktleV0sXHJcbiAgICAgIHBhcmVudDogdGhpcy5wYXJlbnQucGFyZW50LFxyXG4gICAgICBldmVudDogZXZlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuICBpdGVtQ2xpY2tJdGVtRm4gPSAoaXRlbTogYW55LCBldmVudD86IGFueSkgPT4ge1xyXG4gICAgdGhpcy5hY2NvcmRpb24uaXRlbUNsaWNrRm4oe1xyXG4gICAgICBpdGVtOiBpdGVtLFxyXG4gICAgICBwYXJlbnQ6IHRoaXMucGFyZW50LFxyXG4gICAgICBldmVudDogZXZlbnRcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=