theme-lib
Version:
This is a simple example Angular Library published to npm.
211 lines • 14.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, Output, EventEmitter, HostBinding, Host, } from '@angular/core';
import { Subject } from 'rxjs';
import { takeWhile } from 'rxjs/operators';
import { NbAccordionComponent } from './accordion.component';
import { convertToBoolProperty } from '../helpers';
/*
* Component intended to be used within `<nb-accordion>` component
*/
export class NbAccordionItemComponent {
/**
* @param {?} accordion
* @param {?} cd
*/
constructor(accordion, cd) {
this.accordion = accordion;
this.cd = cd;
/*
* Emits whenever the expanded state of the accordion changes.
* Primarily used to facilitate two-way binding.
*/
this.collapsedChange = new EventEmitter();
this.accordionItemInvalidate = new Subject();
this.collapsedValue = true;
this.disabledValue = false;
this.alive = true;
}
/*
* Item is collapse (`true` by default)
* @type {boolean}
*/
/**
* @return {?}
*/
get collapsed() {
return this.collapsedValue;
}
/**
* @param {?} val
* @return {?}
*/
set collapsed(val) {
this.collapsedValue = convertToBoolProperty(val);
this.collapsedChange.emit(this.collapsedValue);
this.invalidate();
}
/*
* Item is expanded (`false` by default)
* @type {boolean}
*/
/**
* @return {?}
*/
get expanded() {
return !this.collapsed;
}
/**
* @param {?} val
* @return {?}
*/
set expanded(val) {
this.collapsedValue = !convertToBoolProperty(val);
}
/*
* Item is disabled and cannot be opened.
* @type {boolean}
*/
/**
* @return {?}
*/
get disabled() {
return this.disabledValue;
}
/**
* @param {?} val
* @return {?}
*/
set disabled(val) {
this.disabledValue = convertToBoolProperty(val);
this.invalidate();
}
/*
* Open/close the item
*/
/**
* @return {?}
*/
toggle() {
if (!this.disabled) {
// we need this temporary variable as `openCloseItems.next` will change current value we need to save
/** @type {?} */
const willSet = !this.collapsed;
if (!this.accordion.multi) {
this.accordion.openCloseItems.next(true);
}
this.collapsed = willSet;
}
}
/*
* Open the item.
*/
/**
* @return {?}
*/
open() {
!this.disabled && (this.collapsed = false);
}
/*
* Collapse the item.
*/
/**
* @return {?}
*/
close() {
!this.disabled && (this.collapsed = true);
}
/**
* @return {?}
*/
ngOnInit() {
this.accordion.openCloseItems
.pipe(takeWhile(() => this.alive))
.subscribe(collapsed => {
!this.disabled && (this.collapsed = collapsed);
});
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
this.accordionItemInvalidate.next(true);
}
/**
* @return {?}
*/
ngOnDestroy() {
this.alive = false;
this.accordionItemInvalidate.complete();
}
/**
* @private
* @return {?}
*/
invalidate() {
this.accordionItemInvalidate.next(true);
this.cd.markForCheck();
}
}
NbAccordionItemComponent.decorators = [
{ type: Component, args: [{
selector: 'nb-accordion-item',
template: `
<ng-content select="nb-accordion-item-header"></ng-content>
<ng-content select="nb-accordion-item-body"></ng-content>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
styles: [":host{display:flex;flex-direction:column}"]
}] }
];
/** @nocollapse */
NbAccordionItemComponent.ctorParameters = () => [
{ type: NbAccordionComponent, decorators: [{ type: Host }] },
{ type: ChangeDetectorRef }
];
NbAccordionItemComponent.propDecorators = {
collapsed: [{ type: Input, args: ['collapsed',] }, { type: HostBinding, args: ['class.collapsed',] }],
expanded: [{ type: Input, args: ['expanded',] }, { type: HostBinding, args: ['class.expanded',] }],
disabled: [{ type: Input, args: ['disabled',] }, { type: HostBinding, args: ['class.disabled',] }],
collapsedChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
NbAccordionItemComponent.prototype.collapsedChange;
/** @type {?} */
NbAccordionItemComponent.prototype.accordionItemInvalidate;
/**
* @type {?}
* @private
*/
NbAccordionItemComponent.prototype.collapsedValue;
/**
* @type {?}
* @private
*/
NbAccordionItemComponent.prototype.disabledValue;
/**
* @type {?}
* @private
*/
NbAccordionItemComponent.prototype.alive;
/**
* @type {?}
* @private
*/
NbAccordionItemComponent.prototype.accordion;
/**
* @type {?}
* @private
*/
NbAccordionItemComponent.prototype.cd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFNQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosV0FBVyxFQUNYLElBQUksR0FJTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFjbkQsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7SUF3RG5DLFlBQTRCLFNBQStCLEVBQVUsRUFBcUI7UUFBOUQsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjs7Ozs7UUFSaEYsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXhELDRCQUF1QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFekMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFHLElBQUksQ0FBQztJQUdyQixDQUFDOzs7Ozs7OztJQW5ERCxJQUVJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFDRCxJQUFJLFNBQVMsQ0FBQyxHQUFZO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7Ozs7OztJQU1ELElBRUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7Ozs7O0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBWTtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7Ozs7SUFNRCxJQUVJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFDRCxJQUFJLFFBQVEsQ0FBQyxHQUFZO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7Ozs7SUFvQkQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFOzs7a0JBRVosT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO2dCQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7WUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztTQUMxQjtJQUNILENBQUM7Ozs7Ozs7SUFLRCxJQUFJO1FBQ0YsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDOzs7Ozs7O0lBS0QsS0FBSztRQUNILENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWM7YUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7Ozs7O0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7O1lBckhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUU3QixRQUFRLEVBQUU7OztHQUdUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7OztZQWRRLG9CQUFvQix1QkF1RWQsSUFBSTtZQXJGakIsaUJBQWlCOzs7d0JBbUNoQixLQUFLLFNBQUMsV0FBVyxjQUNqQixXQUFXLFNBQUMsaUJBQWlCO3VCQWM3QixLQUFLLFNBQUMsVUFBVSxjQUNoQixXQUFXLFNBQUMsZ0JBQWdCO3VCQVk1QixLQUFLLFNBQUMsVUFBVSxjQUNoQixXQUFXLFNBQUMsZ0JBQWdCOzhCQWE1QixNQUFNOzs7O0lBQVAsbURBQXdEOztJQUV4RCwyREFBaUQ7Ozs7O0lBRWpELGtEQUE4Qjs7Ozs7SUFDOUIsaURBQThCOzs7OztJQUM5Qix5Q0FBcUI7Ozs7O0lBRVQsNkNBQStDOzs7OztJQUFFLHNDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cclxuICovXHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdCxcclxuICBPbkluaXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBOYkFjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuLypcclxuICogQ29tcG9uZW50IGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aGluIGA8bmItYWNjb3JkaW9uPmAgY29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25iLWFjY29yZGlvbi1pdGVtJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuYi1hY2NvcmRpb24taXRlbS1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuYi1hY2NvcmRpb24taXRlbS1ib2R5XCI+PC9uZy1jb250ZW50PlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYkFjY29yZGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLypcclxuICAgKiBJdGVtIGlzIGNvbGxhcHNlIChgdHJ1ZWAgYnkgZGVmYXVsdClcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKi9cclxuICBASW5wdXQoJ2NvbGxhcHNlZCcpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2xsYXBzZWQnKVxyXG4gIGdldCBjb2xsYXBzZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRWYWx1ZTtcclxuICB9XHJcbiAgc2V0IGNvbGxhcHNlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY29sbGFwc2VkVmFsdWUgPSBjb252ZXJ0VG9Cb29sUHJvcGVydHkodmFsKTtcclxuICAgIHRoaXMuY29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5jb2xsYXBzZWRWYWx1ZSk7XHJcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogSXRlbSBpcyBleHBhbmRlZCAoYGZhbHNlYCBieSBkZWZhdWx0KVxyXG4gICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnZXhwYW5kZWQnKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXhwYW5kZWQnKVxyXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5jb2xsYXBzZWQ7XHJcbiAgfVxyXG4gIHNldCBleHBhbmRlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY29sbGFwc2VkVmFsdWUgPSAhY29udmVydFRvQm9vbFByb3BlcnR5KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEl0ZW0gaXMgZGlzYWJsZWQgYW5kIGNhbm5vdCBiZSBvcGVuZWQuXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICovXHJcbiAgQElucHV0KCdkaXNhYmxlZCcpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRWYWx1ZTtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gY29udmVydFRvQm9vbFByb3BlcnR5KHZhbCk7XHJcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBhY2NvcmRpb24gY2hhbmdlcy5cclxuICAgKiBQcmltYXJpbHkgdXNlZCB0byBmYWNpbGl0YXRlIHR3by13YXkgYmluZGluZy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgY29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBhY2NvcmRpb25JdGVtSW52YWxpZGF0ZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgY29sbGFwc2VkVmFsdWUgPSB0cnVlO1xyXG4gIHByaXZhdGUgZGlzYWJsZWRWYWx1ZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYWxpdmUgPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgYWNjb3JkaW9uOiBOYkFjY29yZGlvbkNvbXBvbmVudCwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogT3Blbi9jbG9zZSB0aGUgaXRlbVxyXG4gICAqL1xyXG4gIHRvZ2dsZSgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAvLyB3ZSBuZWVkIHRoaXMgdGVtcG9yYXJ5IHZhcmlhYmxlIGFzIGBvcGVuQ2xvc2VJdGVtcy5uZXh0YCB3aWxsIGNoYW5nZSBjdXJyZW50IHZhbHVlIHdlIG5lZWQgdG8gc2F2ZVxyXG4gICAgICBjb25zdCB3aWxsU2V0ID0gIXRoaXMuY29sbGFwc2VkO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmFjY29yZGlvbi5tdWx0aSkge1xyXG4gICAgICAgIHRoaXMuYWNjb3JkaW9uLm9wZW5DbG9zZUl0ZW1zLm5leHQodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb2xsYXBzZWQgPSB3aWxsU2V0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBPcGVuIHRoZSBpdGVtLlxyXG4gICAqL1xyXG4gIG9wZW4oKSB7XHJcbiAgICAhdGhpcy5kaXNhYmxlZCAmJiAodGhpcy5jb2xsYXBzZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIENvbGxhcHNlIHRoZSBpdGVtLlxyXG4gICAqL1xyXG4gIGNsb3NlKCkge1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMuY29sbGFwc2VkID0gdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYWNjb3JkaW9uLm9wZW5DbG9zZUl0ZW1zXHJcbiAgICAgIC5waXBlKHRha2VXaGlsZSgoKSA9PiB0aGlzLmFsaXZlKSlcclxuICAgICAgLnN1YnNjcmliZShjb2xsYXBzZWQgPT4ge1xyXG4gICAgICAgICF0aGlzLmRpc2FibGVkICYmICh0aGlzLmNvbGxhcHNlZCA9IGNvbGxhcHNlZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUludmFsaWRhdGUubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5hbGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hY2NvcmRpb25JdGVtSW52YWxpZGF0ZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnZhbGlkYXRlKCkge1xyXG4gICAgdGhpcy5hY2NvcmRpb25JdGVtSW52YWxpZGF0ZS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbn1cclxuIl19