UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

203 lines (202 loc) 16.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { ContentChildren, Component, QueryList, Input, forwardRef, HostListener, Output, EventEmitter, HostBinding } from '@angular/core'; import { AccordionService } from './accordion.service'; import { AccordionGroupComponent } from './accordion-group/accordion-group.component'; var AccordionComponent = /** @class */ (function () { function AccordionComponent(_accordionService) { this._accordionService = _accordionService; this.expandAll = false; this.openAnimation = {}; this.accordion = false; this.onChange = new EventEmitter(); this.amAccordion = true; this._accordionService.getComponent(this); } /** * @param {?} event * @return {?} */ AccordionComponent.prototype.click = /** * @param {?} event * @return {?} */ function (event) { var _this = this; /** @type {?} */ var result = []; this.groups.toArray().forEach(function (group) { if (group.isOpened) { if (_this.accordion) { result = group.key; } else { result.push(group.key); } } }); this.onChange.emit(result); }; /** * @return {?} */ AccordionComponent.prototype.closeAll = /** * @return {?} */ function () { this.groups.toArray().forEach(function (group) { group.isOpened = false; }); }; /** * @return {?} */ AccordionComponent.prototype.init = /** * @return {?} */ function () { var _this = this; if (this.expandAll && this.groups && this.groups.length > 0) { this._oldGroups = this.groups.toArray(); this._oldGroups.forEach(function (group, index) { group.openOnInitialization(); }); this._subscription = this.groups.changes.subscribe(function (change) { /** @type {?} */ var newGroups = _this.groups.toArray().filter(function (group) { return _this._oldGroups.indexOf(group) === -1; }); newGroups.forEach(function (group) { group.openOnInitialization(); }); _this._oldGroups = _this.groups.toArray(); }); } /** @type {?} */ var currentActiveKey = []; if (this.activeKey !== undefined && this.activeKey.length > 0 && !this.accordion && this.groups && this.groups.length > 0) { currentActiveKey = this.toArray(this.activeKey); this.groups.forEach(function (group, index) { currentActiveKey.forEach(function (key) { if (index === parseInt(key, 0)) { setTimeout(function () { group.isOpened = true; }, 0); } }); }); } else if (this.defaultActiveKey !== undefined && !this.expandAll && !this.accordion && this.groups && this.groups.length > 0) { this.groups.forEach(function (group, index) { if (index === parseInt(_this.defaultActiveKey, 0)) { setTimeout(function () { group.isOpened = true; }, 0); } }); } }; /** * @param {?} activeKey * @return {?} */ AccordionComponent.prototype.toArray = /** * @param {?} activeKey * @return {?} */ function (activeKey) { /** @type {?} */ var currentActiveKey = activeKey; if (!Array.isArray(currentActiveKey)) { currentActiveKey = currentActiveKey !== undefined && currentActiveKey !== '' ? [currentActiveKey] : []; } return currentActiveKey; }; /** * @param {?} changes * @return {?} */ AccordionComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes["accordion"]) { this._accordionService.getComponent(this); } if (changes["expandAll"] || changes["accordion"]) { this.init(); } }; /** * @return {?} */ AccordionComponent.prototype.ngAfterContentInit = /** * @return {?} */ function () { this.init(); }; /** * @return {?} */ AccordionComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this._subscription) { this._subscription.unsubscribe(); } }; AccordionComponent.decorators = [ { type: Component, args: [{ selector: 'Accordion, nzm-accordion', template: "<ng-content></ng-content>", providers: [AccordionService] }] } ]; /** @nocollapse */ AccordionComponent.ctorParameters = function () { return [ { type: AccordionService } ]; }; AccordionComponent.propDecorators = { groups: [{ type: ContentChildren, args: [forwardRef(function () { return AccordionGroupComponent; }),] }], expandAll: [{ type: Input }], activeKey: [{ type: Input }], defaultActiveKey: [{ type: Input }], openAnimation: [{ type: Input }], accordion: [{ type: Input }], onChange: [{ type: Output }], amAccordion: [{ type: HostBinding, args: ['class.am-accordion',] }], click: [{ type: HostListener, args: ['click', ['$event'],] }] }; return AccordionComponent; }()); export { AccordionComponent }; if (false) { /** @type {?} */ AccordionComponent.prototype._oldGroups; /** @type {?} */ AccordionComponent.prototype._subscription; /** @type {?} */ AccordionComponent.prototype.groups; /** @type {?} */ AccordionComponent.prototype.expandAll; /** @type {?} */ AccordionComponent.prototype.activeKey; /** @type {?} */ AccordionComponent.prototype.defaultActiveKey; /** @type {?} */ AccordionComponent.prototype.openAnimation; /** @type {?} */ AccordionComponent.prototype.accordion; /** @type {?} */ AccordionComponent.prototype.onChange; /** @type {?} */ AccordionComponent.prototype.amAccordion; /** @type {?} */ AccordionComponent.prototype._accordionService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsiYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsVUFBVSxFQUdWLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUdaLFdBQVcsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7SUE4Q3BGLDRCQUFvQixpQkFBbUM7UUFBbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjt5QkE5QjNDLEtBQUs7NkJBTUQsRUFBRTt5QkFFTixLQUFLO3dCQUVELElBQUksWUFBWSxFQUFFOzJCQUdYLElBQUk7UUFrQnpCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDM0M7Ozs7O0lBaEJELGtDQUFLOzs7O0lBREwsVUFDTSxLQUFLO1FBRFgsaUJBYUM7O1FBWEMsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztZQUNqQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLElBQUksS0FBSSxDQUFDLFNBQVMsRUFBRTtvQkFDbEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ3BCO3FCQUFNO29CQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN4QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDNUI7Ozs7SUFNRCxxQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFBLEtBQUs7WUFDakMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDeEIsQ0FBQyxDQUFDO0tBQ0o7Ozs7SUFFRCxpQ0FBSTs7O0lBQUo7UUFBQSxpQkFzQ0M7UUFyQ0MsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFDLEtBQUssRUFBRSxLQUFLO2dCQUNuQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzthQUM5QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFBLE1BQU07O2dCQUN2RCxJQUFNLFNBQVMsR0FBRyxLQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFBLEtBQUs7b0JBQ2xELE9BQU8sS0FBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQzlDLENBQUMsQ0FBQztnQkFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQUEsS0FBSztvQkFDckIsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQzlCLENBQUMsQ0FBQztnQkFDSCxLQUFJLENBQUMsVUFBVSxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDekMsQ0FBQyxDQUFDO1NBQ0o7O1FBRUQsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pILGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSyxFQUFFLEtBQUs7Z0JBQy9CLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxVQUFBLEdBQUc7b0JBQzFCLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQzlCLFVBQVUsQ0FBQzs0QkFDVCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzt5QkFDdkIsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDUDtpQkFDRixDQUFDLENBQUM7YUFDSixDQUFDLENBQUM7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSyxFQUFFLEtBQUs7Z0JBQy9CLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxLQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQ2hELFVBQVUsQ0FBQzt3QkFDVCxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztxQkFDdkIsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDUDthQUNGLENBQUMsQ0FBQztTQUNKO0tBQ0Y7Ozs7O0lBRUQsb0NBQU87Ozs7SUFBUCxVQUFRLFNBQVM7O1FBQ2YsSUFBSSxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNwQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsS0FBSyxTQUFTLElBQUksZ0JBQWdCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN4RztRQUNELE9BQU8sZ0JBQWdCLENBQUM7S0FDekI7Ozs7O0lBRUQsd0NBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxlQUFZO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLE9BQU8saUJBQWMsT0FBTyxhQUFVLEVBQUU7WUFDMUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7S0FDRjs7OztJQUVELCtDQUFrQjs7O0lBQWxCO1FBQ0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ2I7Ozs7SUFFRCx3Q0FBVzs7O0lBQVg7UUFDRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNsQztLQUNGOztnQkF2SEYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLHFDQUF5QztvQkFDekMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzlCOzs7O2dCQVJRLGdCQUFnQjs7O3lCQWF0QixlQUFlLFNBQUMsVUFBVSxDQUFDLGNBQU0sT0FBQSx1QkFBdUIsRUFBdkIsQ0FBdUIsQ0FBQzs0QkFHekQsS0FBSzs0QkFFTCxLQUFLO21DQUVMLEtBQUs7Z0NBRUwsS0FBSzs0QkFFTCxLQUFLOzJCQUVMLE1BQU07OEJBR04sV0FBVyxTQUFDLG9CQUFvQjt3QkFHaEMsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7NkJBL0NuQzs7U0F3QmEsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29udGVudENoaWxkcmVuLFxuICBDb21wb25lbnQsXG4gIFF1ZXJ5TGlzdCxcbiAgSW5wdXQsXG4gIGZvcndhcmRSZWYsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIE9uRGVzdHJveSxcbiAgSG9zdExpc3RlbmVyLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBIb3N0QmluZGluZ1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjY29yZGlvblNlcnZpY2UgfSBmcm9tICcuL2FjY29yZGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjY29yZGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24tZ3JvdXAvYWNjb3JkaW9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzL1N1YnNjcmlwdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ0FjY29yZGlvbiwgbnptLWFjY29yZGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtBY2NvcmRpb25TZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgX29sZEdyb3VwczogQWNjb3JkaW9uR3JvdXBDb21wb25lbnRbXTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEFjY29yZGlvbkdyb3VwQ29tcG9uZW50KSlcbiAgZ3JvdXBzOiBRdWVyeUxpc3Q8QWNjb3JkaW9uR3JvdXBDb21wb25lbnQ+O1xuXG4gIEBJbnB1dCgpXG4gIGV4cGFuZEFsbCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBhY3RpdmVLZXk6IEFycmF5PHN0cmluZz4gfCBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGRlZmF1bHRBY3RpdmVLZXk6IHN0cmluZztcbiAgQElucHV0KClcbiAgb3BlbkFuaW1hdGlvbiA9IHt9O1xuICBASW5wdXQoKVxuICBhY2NvcmRpb24gPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlOiBhbnkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1hY2NvcmRpb24nKVxuICBhbUFjY29yZGlvbjogYm9vbGVhbiA9IHRydWU7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBjbGljayhldmVudCkge1xuICAgIGxldCByZXN1bHQ6IGFueSA9IFtdO1xuICAgIHRoaXMuZ3JvdXBzLnRvQXJyYXkoKS5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cC5pc09wZW5lZCkge1xuICAgICAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICAgICByZXN1bHQgPSBncm91cC5rZXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goZ3JvdXAua2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChyZXN1bHQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYWNjb3JkaW9uU2VydmljZTogQWNjb3JkaW9uU2VydmljZSkge1xuICAgIHRoaXMuX2FjY29yZGlvblNlcnZpY2UuZ2V0Q29tcG9uZW50KHRoaXMpO1xuICB9XG5cbiAgY2xvc2VBbGwoKSB7XG4gICAgdGhpcy5ncm91cHMudG9BcnJheSgpLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgZ3JvdXAuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGluaXQgKCkge1xuICAgIGlmICh0aGlzLmV4cGFuZEFsbCAmJiB0aGlzLmdyb3VwcyAmJiB0aGlzLmdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9vbGRHcm91cHMgPSB0aGlzLmdyb3Vwcy50b0FycmF5KCk7XG4gICAgICB0aGlzLl9vbGRHcm91cHMuZm9yRWFjaCgoZ3JvdXAsIGluZGV4KSA9PiB7XG4gICAgICAgIGdyb3VwLm9wZW5PbkluaXRpYWxpemF0aW9uKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuZ3JvdXBzLmNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0dyb3VwcyA9IHRoaXMuZ3JvdXBzLnRvQXJyYXkoKS5maWx0ZXIoZ3JvdXAgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9vbGRHcm91cHMuaW5kZXhPZihncm91cCkgPT09IC0xO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3R3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICAgIGdyb3VwLm9wZW5PbkluaXRpYWxpemF0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9vbGRHcm91cHMgPSB0aGlzLmdyb3Vwcy50b0FycmF5KCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBsZXQgY3VycmVudEFjdGl2ZUtleSA9IFtdO1xuICAgIGlmICh0aGlzLmFjdGl2ZUtleSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWN0aXZlS2V5Lmxlbmd0aCA+IDAgJiYgIXRoaXMuYWNjb3JkaW9uICYmIHRoaXMuZ3JvdXBzICYmIHRoaXMuZ3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIGN1cnJlbnRBY3RpdmVLZXkgPSB0aGlzLnRvQXJyYXkodGhpcy5hY3RpdmVLZXkpO1xuICAgICAgdGhpcy5ncm91cHMuZm9yRWFjaCgoZ3JvdXAsIGluZGV4KSA9PiB7XG4gICAgICAgIGN1cnJlbnRBY3RpdmVLZXkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGlmIChpbmRleCA9PT0gcGFyc2VJbnQoa2V5LCAwKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGdyb3VwLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVmYXVsdEFjdGl2ZUtleSAhPT0gdW5kZWZpbmVkICYmICF0aGlzLmV4cGFuZEFsbCAmJiAhdGhpcy5hY2NvcmRpb24gJiYgdGhpcy5ncm91cHMgJiYgdGhpcy5ncm91cHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5ncm91cHMuZm9yRWFjaCgoZ3JvdXAsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gcGFyc2VJbnQodGhpcy5kZWZhdWx0QWN0aXZlS2V5LCAwKSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgZ3JvdXAuaXNPcGVuZWQgPSB0cnVlO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b0FycmF5KGFjdGl2ZUtleSkge1xuICAgIGxldCBjdXJyZW50QWN0aXZlS2V5ID0gYWN0aXZlS2V5O1xuICAgIGlmICghQXJyYXkuaXNBcnJheShjdXJyZW50QWN0aXZlS2V5KSkge1xuICAgICAgY3VycmVudEFjdGl2ZUtleSA9IGN1cnJlbnRBY3RpdmVLZXkgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50QWN0aXZlS2V5ICE9PSAnJyA/IFtjdXJyZW50QWN0aXZlS2V5XSA6IFtdO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudEFjdGl2ZUtleTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hY2NvcmRpb24pIHtcbiAgICAgIHRoaXMuX2FjY29yZGlvblNlcnZpY2UuZ2V0Q29tcG9uZW50KHRoaXMpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLmV4cGFuZEFsbCB8fCBjaGFuZ2VzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX3N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=