@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
267 lines • 21.9 kB
JavaScript
/**
* @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=