UNPKG

ad-custom-lib

Version:

This is an UI custom library based on Adminlte library with purpose for personal use, if you need a full template of Primeng please visit https://github.com/mledour/angular-admin-lte

292 lines 23 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, Input, NgZone, Output, Renderer2, ViewChild } from '@angular/core'; import { removeListeners } from '../helpers'; import { BoxContentDirective, BoxFooterDirective, BoxHeaderDirective, BoxToolsDirective } from './box.directive'; /* * */ var BoxComponent = /** @class */ (function () { /** * @method constructor * @param changeDetectorRef [description] * @param ngZone [description] * @param renderer2 [description] */ function BoxComponent(changeDetectorRef, ngZone, renderer2) { this.changeDetectorRef = changeDetectorRef; this.ngZone = ngZone; this.renderer2 = renderer2; this.remove = false; this.listeners = []; this.boxColor = 'default'; this.buttonsStyleClass = 'btn btn-box-tool'; this.contentStyleClass = 'box-content-wrapper'; this.footerStyleClass = 'box-footer'; this.headerBorder = true; this.headerStyleClass = 'box-header'; this.isCollapsable = true; this.isCollapsed = false; this.isRemovable = true; this.isSolid = false; this.loadingStyleClass = 'fa fa-refresh fa-spin'; this.styleClass = 'box'; this.onCollapseDone = new EventEmitter(); this.onCollapseStart = new EventEmitter(); } /** * @method ngAfterViewInit */ /** * \@method ngAfterViewInit * @return {?} */ BoxComponent.prototype.ngAfterViewInit = /** * \@method ngAfterViewInit * @return {?} */ function () { var _this = this; this.ngZone.runOutsideAngular((/** * @return {?} */ function () { if (_this.toggleButtonElement) { _this.listeners.push(_this.renderer2.listen(_this.toggleButtonElement.nativeElement, 'click', (/** * @return {?} */ function () { _this.isCollapsed = !_this.isCollapsed; _this.changeDetectorRef.detectChanges(); }))); } if (_this.removeButtonElement) { _this.listeners.push(_this.renderer2.listen(_this.removeButtonElement.nativeElement, 'click', (/** * @return {?} */ function () { _this.remove = true; _this.changeDetectorRef.detectChanges(); }))); } })); }; /** * @method ngOnDestroy */ /** * \@method ngOnDestroy * @return {?} */ BoxComponent.prototype.ngOnDestroy = /** * \@method ngOnDestroy * @return {?} */ function () { removeListeners(this.listeners); }; /** * [removedDone description] * @method removedDone * @param event [description] */ /** * [removedDone description] * \@method removedDone * @param {?} event [description] * @return {?} */ BoxComponent.prototype.removedDone = /** * [removedDone description] * \@method removedDone * @param {?} event [description] * @return {?} */ function (event) { if (event.toState === '1') { this.removed = true; } }; /** * [collapseStart description] * @method collapseStart * @param event [description] */ /** * [collapseStart description] * \@method collapseStart * @param {?} event [description] * @return {?} */ BoxComponent.prototype.collapseStart = /** * [collapseStart description] * \@method collapseStart * @param {?} event [description] * @return {?} */ function (event) { if (event.fromState !== 'void') { this.isCollaping = true; this.onCollapseStart.emit(event); } }; /** * [collapseDone description] * @method collapseDone * @param event [description] */ /** * [collapseDone description] * \@method collapseDone * @param {?} event [description] * @return {?} */ BoxComponent.prototype.collapseDone = /** * [collapseDone description] * \@method collapseDone * @param {?} event [description] * @return {?} */ function (event) { if (event.fromState !== 'void') { this.isCollaping = false; this.onCollapseDone.emit(event); } }; BoxComponent.decorators = [ { type: Component, args: [{ selector: 'mk-box', template: "<div *ngIf=\"!removed\" [mkColor]=\"boxColor\" mkColorProperty=\"border-color\" mkColorPrefix=\"box\" [ngClass]=\"styleClass\"\r\n [class.collapsed-box]=\"isCollapsed && !isCollaping\" [class.box-solid]=\"isSolid\" [mkCollapseAnimation]=\"remove\"\r\n (mkCollapseAnimation.done)=\"removedDone($event)\">\r\n <div *ngIf=\"header || boxHeaderDirective\" [ngClass]=\"headerStyleClass\" [mkColor]=\"boxColor\"\r\n [mkColorCondition]=\"isSolid\" mkColorProperty=\"background-color\" [class.with-border]=\"headerBorder\">\r\n <h3 class=\"box-title\" [mkFontColor]=\"headerColor\">\r\n {{header}}\r\n <ng-content select=\"mk-box-header\"></ng-content>\r\n </h3>\r\n <div class=\"box-tools pull-right\">\r\n <ng-content select=\"mk-box-tools\"></ng-content>\r\n <button *ngIf=\"isCollapsable\" type=\"button\" [ngClass]=\"buttonsStyleClass\" #toggleButtonElement>\r\n <i class=\"fa\" [ngClass]=\"{'fa-plus': isCollapsed, 'fa-minus': !isCollapsed}\"></i>\r\n </button>\r\n <button *ngIf=\"isRemovable\" type=\"button\" [ngClass]=\"buttonsStyleClass\" #removeButtonElement>\r\n <i class=\"fa fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"contentStyleClass\" [mkFontColor]=\"contentColor\" [mkCollapseAnimation]=\"isCollapsed\"\r\n (mkCollapseAnimation.start)=\"collapseStart($event)\" (mkCollapseAnimation.done)=\"collapseDone($event)\">\r\n <div class=\"box-body\">\r\n <ng-container\r\n *ngIf=\"boxHeaderDirective || boxContentDirective || boxFooterDirective || boxToolsDirective; else noDirective\">\r\n <ng-content select=\"mk-box-content\"></ng-content>\r\n </ng-container>\r\n <ng-template #noDirective>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"footer || boxFooterDirective\" [ngClass]=\"footerStyleClass\" [mkFontColor]=\"footerColor\">\r\n {{footer}}\r\n <ng-content select=\"mk-box-footer\"></ng-content>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isLoading\" class=\"overlay\">\r\n <i [ngClass]=\"loadingStyleClass\" [mkFontColor]=\"loadingColor\"></i>\r\n </div>\r\n</div>", changeDetection: ChangeDetectionStrategy.OnPush, styles: [".box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:inherit}.box-solid{border:1px solid}.box-body{background-color:#fff}.box.box-solid.bg-color>.box-header{color:#fff}"] }] } ]; /** @nocollapse */ BoxComponent.ctorParameters = function () { return [ { type: ChangeDetectorRef }, { type: NgZone }, { type: Renderer2 } ]; }; BoxComponent.propDecorators = { boxColor: [{ type: Input }], buttonsStyleClass: [{ type: Input }], contentStyleClass: [{ type: Input }], contentColor: [{ type: Input }], footer: [{ type: Input }], footerColor: [{ type: Input }], footerStyleClass: [{ type: Input }], header: [{ type: Input }], headerBorder: [{ type: Input }], headerColor: [{ type: Input }], headerStyleClass: [{ type: Input }], isCollapsable: [{ type: Input }], isCollapsed: [{ type: Input }], isLoading: [{ type: Input }], isRemovable: [{ type: Input }], isSolid: [{ type: Input }], loadingColor: [{ type: Input }], loadingStyleClass: [{ type: Input }], styleClass: [{ type: Input }], onCollapseDone: [{ type: Output }], onCollapseStart: [{ type: Output }], boxHeaderDirective: [{ type: ContentChild, args: [BoxHeaderDirective, { static: true },] }], boxFooterDirective: [{ type: ContentChild, args: [BoxFooterDirective, { static: true },] }], boxContentDirective: [{ type: ContentChild, args: [BoxContentDirective, { static: true },] }], boxToolsDirective: [{ type: ContentChild, args: [BoxToolsDirective, { static: true },] }], toggleButtonElement: [{ type: ViewChild, args: ['toggleButtonElement', { static: true },] }], removeButtonElement: [{ type: ViewChild, args: ['removeButtonElement', { static: true },] }] }; return BoxComponent; }()); export { BoxComponent }; if (false) { /** @type {?} */ BoxComponent.prototype.isCollaping; /** @type {?} */ BoxComponent.prototype.remove; /** @type {?} */ BoxComponent.prototype.removed; /** * @type {?} * @private */ BoxComponent.prototype.listeners; /** @type {?} */ BoxComponent.prototype.boxColor; /** @type {?} */ BoxComponent.prototype.buttonsStyleClass; /** @type {?} */ BoxComponent.prototype.contentStyleClass; /** @type {?} */ BoxComponent.prototype.contentColor; /** @type {?} */ BoxComponent.prototype.footer; /** @type {?} */ BoxComponent.prototype.footerColor; /** @type {?} */ BoxComponent.prototype.footerStyleClass; /** @type {?} */ BoxComponent.prototype.header; /** @type {?} */ BoxComponent.prototype.headerBorder; /** @type {?} */ BoxComponent.prototype.headerColor; /** @type {?} */ BoxComponent.prototype.headerStyleClass; /** @type {?} */ BoxComponent.prototype.isCollapsable; /** @type {?} */ BoxComponent.prototype.isCollapsed; /** @type {?} */ BoxComponent.prototype.isLoading; /** @type {?} */ BoxComponent.prototype.isRemovable; /** @type {?} */ BoxComponent.prototype.isSolid; /** @type {?} */ BoxComponent.prototype.loadingColor; /** @type {?} */ BoxComponent.prototype.loadingStyleClass; /** @type {?} */ BoxComponent.prototype.styleClass; /** @type {?} */ BoxComponent.prototype.onCollapseDone; /** @type {?} */ BoxComponent.prototype.onCollapseStart; /** @type {?} */ BoxComponent.prototype.boxHeaderDirective; /** @type {?} */ BoxComponent.prototype.boxFooterDirective; /** @type {?} */ BoxComponent.prototype.boxContentDirective; /** @type {?} */ BoxComponent.prototype.boxToolsDirective; /** * @type {?} * @private */ BoxComponent.prototype.toggleButtonElement; /** * @type {?} * @private */ BoxComponent.prototype.removeButtonElement; /** * @type {?} * @private */ BoxComponent.prototype.changeDetectorRef; /** * @type {?} * @private */ BoxComponent.prototype.ngZone; /** * @type {?} * @private */ BoxComponent.prototype.renderer2; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FkLWN1c3RvbS1saWIvIiwic291cmNlcyI6WyJsaWIvYm94L2JveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDWSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNsRixZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFDdkUsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQ0gsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQ2pGLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFLekI7SUEyQ0k7Ozs7O09BS0c7SUFDSCxzQkFDWSxpQkFBb0MsRUFDcEMsTUFBYyxFQUNkLFNBQW9CO1FBRnBCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1Q3pCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRVAsYUFBUSxHQUFHLFNBQVMsQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztRQUN2QyxzQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztRQUkxQyxxQkFBZ0IsR0FBRyxZQUFZLENBQUM7UUFFaEMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFcEIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsc0JBQWlCLEdBQUcsdUJBQXVCLENB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QUFJLEVBQUU7cUNBQ2pELFlBQVksU0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7c0NBQ2pELFlBQVksU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7b0NBQ2xELFlBQVksU0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7c0NBRWhELFNBQVMsU0FBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7c0NBQ2pELFNBQVMsU0FBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O0lBMkV0RCxtQkFBQztDQUFBLEFBcEhELElBb0hDO1NBOUdZLFlBQVk7OztJQUNyQixtQ0FBNEI7O0lBQzVCLDhCQUFzQjs7SUFDdEIsK0JBQXdCOzs7OztJQUN4QixpQ0FBdUI7O0lBRXZCLGdDQUFxQzs7SUFDckMseUNBQXVEOztJQUN2RCx5Q0FBMEQ7O0lBQzFELG9DQUFxQzs7SUFDckMsOEJBQStCOztJQUMvQixtQ0FBb0M7O0lBQ3BDLHdDQUFnRDs7SUFDaEQsOEJBQStCOztJQUMvQixvQ0FBb0M7O0lBQ3BDLG1DQUFvQzs7SUFDcEMsd0NBQWdEOztJQUNoRCxxQ0FBcUM7O0lBQ3JDLG1DQUFvQzs7SUFDcEMsaUNBQW1DOztJQUNuQyxtQ0FBbUM7O0lBQ25DLCtCQUFnQzs7SUFDaEMsb0NBQXFDOztJQUNyQyx5Q0FBNEQ7O0lBQzVELGtDQUFtQzs7SUFFbkMsc0NBQXFEOztJQUNyRCx1Q0FBc0Q7O0lBRXRELDBDQUFrRzs7SUFDbEcsMENBQWtHOztJQUNsRywyQ0FBcUc7O0lBQ3JHLHlDQUErRjs7Ozs7SUFFL0YsMkNBQWdGOzs7OztJQUNoRiwyQ0FBZ0Y7Ozs7O0lBUzVFLHlDQUE0Qzs7Ozs7SUFDNUMsOEJBQXNCOzs7OztJQUN0QixpQ0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCxcclxuICAgIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyByZW1vdmVMaXN0ZW5lcnMgfSBmcm9tICcuLi9oZWxwZXJzJztcclxuaW1wb3J0IHtcclxuICAgIEJveENvbnRlbnREaXJlY3RpdmUsIEJveEZvb3RlckRpcmVjdGl2ZSwgQm94SGVhZGVyRGlyZWN0aXZlLCBCb3hUb29sc0RpcmVjdGl2ZVxyXG59IGZyb20gJy4vYm94LmRpcmVjdGl2ZSc7XHJcblxyXG4vKlxyXG4gKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21rLWJveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYm94LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JveC5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm94Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyBpc0NvbGxhcGluZzogYm9vbGVhbjtcclxuICAgIHB1YmxpYyByZW1vdmUgPSBmYWxzZTtcclxuICAgIHB1YmxpYyByZW1vdmVkOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBsaXN0ZW5lcnMgPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYm94Q29sb3IgPSAnZGVmYXVsdCc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uc1N0eWxlQ2xhc3MgPSAnYnRuIGJ0bi1ib3gtdG9vbCc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY29udGVudFN0eWxlQ2xhc3MgPSAnYm94LWNvbnRlbnQtd3JhcHBlcic7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY29udGVudENvbG9yOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9vdGVyOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZm9vdGVyQ29sb3I6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJTdHlsZUNsYXNzID0gJ2JveC1mb290ZXInO1xyXG4gICAgQElucHV0KCkgcHVibGljIGhlYWRlcjogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIGhlYWRlckJvcmRlciA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVhZGVyQ29sb3I6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWFkZXJTdHlsZUNsYXNzID0gJ2JveC1oZWFkZXInO1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzQ29sbGFwc2FibGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzQ29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcHVibGljIGlzUmVtb3ZhYmxlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1NvbGlkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ0NvbG9yOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ1N0eWxlQ2xhc3MgPSAnZmEgZmEtcmVmcmVzaCBmYS1zcGluJztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzdHlsZUNsYXNzID0gJ2JveCc7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBvbkNvbGxhcHNlRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db2xsYXBzZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoQm94SGVhZGVyRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgYm94SGVhZGVyRGlyZWN0aXZlOiBCb3hIZWFkZXJEaXJlY3RpdmU7XHJcbiAgICBAQ29udGVudENoaWxkKEJveEZvb3RlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGJveEZvb3RlckRpcmVjdGl2ZTogQm94Rm9vdGVyRGlyZWN0aXZlO1xyXG4gICAgQENvbnRlbnRDaGlsZChCb3hDb250ZW50RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgYm94Q29udGVudERpcmVjdGl2ZTogQm94Q29udGVudERpcmVjdGl2ZTtcclxuICAgIEBDb250ZW50Q2hpbGQoQm94VG9vbHNEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBib3hUb29sc0RpcmVjdGl2ZTogQm94VG9vbHNEaXJlY3RpdmU7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgndG9nZ2xlQnV0dG9uRWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgdG9nZ2xlQnV0dG9uRWxlbWVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ3JlbW92ZUJ1dHRvbkVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIHJlbW92ZUJ1dHRvbkVsZW1lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAbWV0aG9kIGNvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gY2hhbmdlRGV0ZWN0b3JSZWYgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIG5nWm9uZSAgICAgICAgICAgIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSByZW5kZXJlcjIgICAgICAgICBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMlxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBtZXRob2QgbmdBZnRlclZpZXdJbml0XHJcbiAgICAgKi9cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRvZ2dsZUJ1dHRvbkVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMudG9nZ2xlQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlbW92ZUJ1dHRvbkVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMucmVtb3ZlQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAbWV0aG9kIG5nT25EZXN0cm95XHJcbiAgICAgKi9cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHJlbW92ZUxpc3RlbmVycyh0aGlzLmxpc3RlbmVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbcmVtb3ZlZERvbmUgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHJlbW92ZWREb25lXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVtb3ZlZERvbmUoZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJzEnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2NvbGxhcHNlU3RhcnQgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIGNvbGxhcHNlU3RhcnRcclxuICAgICAqIEBwYXJhbSBldmVudCBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2xsYXBzZVN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgIT09ICd2b2lkJykge1xyXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vbkNvbGxhcHNlU3RhcnQuZW1pdChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2NvbGxhcHNlRG9uZSBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2QgY29sbGFwc2VEb25lXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29sbGFwc2VEb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgIT09ICd2b2lkJykge1xyXG4gICAgICAgICAgICB0aGlzLmlzQ29sbGFwaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub25Db2xsYXBzZURvbmUuZW1pdChldmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==