@fivethree/core
Version:
Fivethree Core Components
235 lines • 16.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/router-item/router-item.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { FivIcon } from './../icon/icon.component';
import { FivExpandable } from './../expandable/expandable.component';
import { Component, Input, HostBinding, HostListener, Optional, Host, ViewChild } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { filter } from 'rxjs/operators';
var FivRouterItem = /** @class */ (function () {
function FivRouterItem(router, host) {
this.router = router;
this.host = host;
this.active = false;
this.detailIcon = 'chevron-forward';
this.disabled = false;
this.matchChildUrl = false;
this.navigate = true;
/**
* The position of the active state.
* Default value is: `"left"`
*/
this.position = 'left';
/**
* The shape of the active state.
* Possible values are: `"line"`, `"dot"` and `"rounded"`.
* Default value is: `"line"`
*/
this.shape = 'line';
}
/**
* @return {?}
*/
FivRouterItem.prototype.onclick = /**
* @return {?}
*/
function () {
if (this.navigate && this.pageUrl) {
this.router.navigateByUrl(this.pageUrl);
}
};
Object.defineProperty(FivRouterItem.prototype, "classes", {
get: /**
* @return {?}
*/
function () {
return this.position + " " + this.shape;
},
enumerable: true,
configurable: true
});
Object.defineProperty(FivRouterItem.prototype, "activeClass", {
get: /**
* @return {?}
*/
function () {
return this.matchActiveUrl() || this.active;
},
enumerable: true,
configurable: true
});
Object.defineProperty(FivRouterItem.prototype, "disabledClass", {
get: /**
* @return {?}
*/
function () {
return this.disabled;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
FivRouterItem.prototype.ngOnInit = /**
* @return {?}
*/
function () { };
/**
* @return {?}
*/
FivRouterItem.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
this.router.events
.pipe(filter((/**
* @param {?} event
* @return {?}
*/
function (event) { return event instanceof NavigationEnd; })), filter((/**
* @param {?} event
* @return {?}
*/
function (event) { return event.url === _this.pageUrl; })))
.subscribe((/**
* @return {?}
*/
function () { return _this.openExpandableHost(); }));
};
/**
* @return {?}
*/
FivRouterItem.prototype.openExpandableHost = /**
* @return {?}
*/
function () {
/** @type {?} */
var isActive = this.matchActiveUrl() || this.active;
if (isActive) {
if (this.host && !this.host.isOpen) {
this.host.open();
}
}
};
/**
* @return {?}
*/
FivRouterItem.prototype.getClasses = /**
* @return {?}
*/
function () {
return [this.position, this.shape];
};
/**
* @return {?}
*/
FivRouterItem.prototype.matchActiveUrl = /**
* @return {?}
*/
function () {
return this.matchChildUrl ? this.isChildUrl() : this.isCurrentUrl();
};
/**
* @return {?}
*/
FivRouterItem.prototype.isCurrentUrl = /**
* @return {?}
*/
function () {
return this.router.url === this.pageUrl;
};
/**
* @return {?}
*/
FivRouterItem.prototype.isChildUrl = /**
* @return {?}
*/
function () {
return this.router.url.startsWith(this.pageUrl);
};
FivRouterItem.decorators = [
{ type: Component, args: [{
selector: 'fiv-router-item',
template: "<ion-menu-toggle auto-hide=\"false\">\n <ion-item class=\"ion-activatable\" [color]=\"color\" [detail]=\"detail\" [detailIcon]=\"detailIcon\" [disabled]=\"disabled\"\n [lines]=\"lines\">\n <fiv-icon #fivIcon *ngIf=\"icon\" [name]=\"icon\"></fiv-icon>\n <ion-label>{{text}}</ion-label>\n <ion-ripple-effect type=\"bounded\"></ion-ripple-effect>\n </ion-item>\n</ion-menu-toggle>\n<span [ngClass]=\"getClasses()\" class=\"indicator\"></span>",
styles: [":host{display:block;position:relative;width:100%}:host(.active){--color-active:var(--ion-color-primary)}:host(.active) ion-item{--color:var(--color-active);--background:var(--fiv-background, var(--ion-color-light))}:host(.line){--width-line:4px;--background-line:var(--ion-color-primary)}:host(.active) .line{display:block;background:var(--background-line)}:host.active.left .line{width:var(--width-line);height:100%;top:0}:host.active.right .line{width:var(--width-line);height:100%;top:0}.indicator{position:absolute}:host.active .dot{display:block}:host.active.dot.left{padding-left:24px}.dot{width:var(--fiv-dot-width,8px);height:var(--fiv-dot-heigt,8px);background-color:var(--fiv-dot-color,var(--ion-color-primary));top:50%;border-radius:100%;transform:translateY(-50%);right:8px;display:none}.dot.left{left:8px;right:unset}.dot.right{right:8px}:host(.rounded.left){--border-radius-rounded-left:0 50px 50px 0}:host(.rounded.left) ion-item{--border-radius:var(--border-radius-rounded-left);--background:var(--fiv-background)}:host(.rounded.right){--border-radius-rounded-right:50px 0 0 50px}:host(.rounded.right) ion-item{--border-radius:var(--border-radius-rounded-right);--background:var(--fiv-background)}:host(.active.rounded){--background-rounded:var(--ion-color-primary-rgb);--opacity-rounded:0.25}:host(.active.rounded) ion-item{--background:rgba(var(--background-rounded), var(--opacity-rounded))}@media (any-hover:hover){:host(:hover){cursor:pointer}:host(:hover) ion-label{--color:var(--ion-color-primary)}:host(.dot:hover) ion-item,:host(.line:hover) ion-item,:host(.rounded:hover) ion-item{--background:var(--fiv-background-hover, var(--ion-color-light))}}.left{left:0}.right{right:0}ion-item{--border-style:none}fiv-icon{--fiv-padding-end:8px}:host(.router-item-disabled){pointer-events:none}"]
}] }
];
/** @nocollapse */
FivRouterItem.ctorParameters = function () { return [
{ type: Router },
{ type: FivExpandable, decorators: [{ type: Optional }, { type: Host }] }
]; };
FivRouterItem.propDecorators = {
fivIcon: [{ type: ViewChild, args: ['fivIcon', { static: false },] }],
active: [{ type: Input }],
color: [{ type: Input }],
detail: [{ type: Input }],
detailIcon: [{ type: Input }],
disabled: [{ type: Input }],
icon: [{ type: Input }],
lines: [{ type: Input }],
matchChildUrl: [{ type: Input }],
navigate: [{ type: Input }],
pageUrl: [{ type: Input }],
position: [{ type: Input }],
shape: [{ type: Input }],
text: [{ type: Input }],
onclick: [{ type: HostListener, args: ['click',] }],
classes: [{ type: HostBinding, args: ['class',] }],
activeClass: [{ type: HostBinding, args: ['class.active',] }],
disabledClass: [{ type: HostBinding, args: ['class.router-item-disabled',] }]
};
return FivRouterItem;
}());
export { FivRouterItem };
if (false) {
/** @type {?} */
FivRouterItem.prototype.fivIcon;
/** @type {?} */
FivRouterItem.prototype.active;
/** @type {?} */
FivRouterItem.prototype.color;
/** @type {?} */
FivRouterItem.prototype.detail;
/** @type {?} */
FivRouterItem.prototype.detailIcon;
/** @type {?} */
FivRouterItem.prototype.disabled;
/** @type {?} */
FivRouterItem.prototype.icon;
/** @type {?} */
FivRouterItem.prototype.lines;
/** @type {?} */
FivRouterItem.prototype.matchChildUrl;
/** @type {?} */
FivRouterItem.prototype.navigate;
/** @type {?} */
FivRouterItem.prototype.pageUrl;
/**
* The position of the active state.
* Default value is: `"left"`
* @type {?}
*/
FivRouterItem.prototype.position;
/**
* The shape of the active state.
* Possible values are: `"line"`, `"dot"` and `"rounded"`.
* Default value is: `"line"`
* @type {?}
*/
FivRouterItem.prototype.shape;
/** @type {?} */
FivRouterItem.prototype.text;
/** @type {?} */
FivRouterItem.prototype.router;
/**
* @type {?}
* @private
*/
FivRouterItem.prototype.host;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpdmV0aHJlZS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3JvdXRlci1pdGVtL3JvdXRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsV0FBVyxFQUNYLFlBQVksRUFDWixRQUFRLEVBQ1IsSUFBSSxFQUNKLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QztJQTZERSx1QkFDUyxNQUFjLEVBQ08sSUFBbUI7UUFEeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNPLFNBQUksR0FBSixJQUFJLENBQWU7UUF2RHhDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFNZixlQUFVLEdBQUcsaUJBQWlCLENBQUM7UUFFL0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUV0QixhQUFRLEdBQUcsSUFBSSxDQUFDOzs7OztRQVFoQixhQUFRLEdBQXFCLE1BQU0sQ0FBQzs7Ozs7O1FBT3BDLFVBQUssR0FBK0IsTUFBTSxDQUFDO0lBeUJqRCxDQUFDOzs7O0lBckJtQiwrQkFBTzs7O0lBQTlCO1FBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELHNCQUEwQixrQ0FBTzs7OztRQUFqQztZQUNFLE9BQVUsSUFBSSxDQUFDLFFBQVEsU0FBSSxJQUFJLENBQUMsS0FBTyxDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBRUQsc0JBQWlDLHNDQUFXOzs7O1FBQTVDO1lBQ0UsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxDQUFDOzs7T0FBQTtJQUVELHNCQUErQyx3Q0FBYTs7OztRQUE1RDtZQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDOzs7T0FBQTs7OztJQU9ELGdDQUFROzs7SUFBUixjQUFZLENBQUM7Ozs7SUFFYix1Q0FBZTs7O0lBQWY7UUFBQSxpQkFPQztRQU5DLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUNmLElBQUksQ0FDSCxNQUFNOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLFlBQVksYUFBYSxFQUE5QixDQUE4QixFQUFDLEVBQy9DLE1BQU07Ozs7UUFBQyxVQUFDLEtBQW9CLElBQUssT0FBQSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUksQ0FBQyxPQUFPLEVBQTFCLENBQTBCLEVBQUMsQ0FDN0Q7YUFDQSxTQUFTOzs7UUFBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGtCQUFrQixFQUFFLEVBQXpCLENBQXlCLEVBQUMsQ0FBQztJQUNoRCxDQUFDOzs7O0lBRUQsMENBQWtCOzs7SUFBbEI7O1lBQ1EsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTTtRQUNyRCxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDOzs7O0lBRUQsa0NBQVU7OztJQUFWO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Ozs7SUFFRCxzQ0FBYzs7O0lBQWQ7UUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RFLENBQUM7Ozs7SUFFRCxvQ0FBWTs7O0lBQVo7UUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDMUMsQ0FBQzs7OztJQUVELGtDQUFVOzs7SUFBVjtRQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDOztnQkFwR0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLHFlQUEyQzs7aUJBRTVDOzs7O2dCQVJRLE1BQU07Z0JBWk4sYUFBYSx1QkErRWpCLFFBQVEsWUFBSSxJQUFJOzs7MEJBekRsQixTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTt5QkFFdEMsS0FBSzt3QkFFTCxLQUFLO3lCQUVMLEtBQUs7NkJBRUwsS0FBSzsyQkFFTCxLQUFLO3VCQUVMLEtBQUs7d0JBRUwsS0FBSztnQ0FFTCxLQUFLOzJCQUVMLEtBQUs7MEJBRUwsS0FBSzsyQkFNTCxLQUFLO3dCQU9MLEtBQUs7dUJBRUwsS0FBSzswQkFFTCxZQUFZLFNBQUMsT0FBTzswQkFNcEIsV0FBVyxTQUFDLE9BQU87OEJBSW5CLFdBQVcsU0FBQyxjQUFjO2dDQUkxQixXQUFXLFNBQUMsNEJBQTRCOztJQTRDM0Msb0JBQUM7Q0FBQSxBQXJHRCxJQXFHQztTQWhHWSxhQUFhOzs7SUFDeEIsZ0NBQTBEOztJQUUxRCwrQkFBd0I7O0lBRXhCLDhCQUF1Qjs7SUFFdkIsK0JBQTBCOztJQUUxQixtQ0FBd0M7O0lBRXhDLGlDQUEwQjs7SUFFMUIsNkJBQXVCOztJQUV2Qiw4QkFBMkM7O0lBRTNDLHNDQUErQjs7SUFFL0IsaUNBQXlCOztJQUV6QixnQ0FBeUI7Ozs7OztJQU16QixpQ0FBNkM7Ozs7Ozs7SUFPN0MsOEJBQW9EOztJQUVwRCw2QkFBc0I7O0lBcUJwQiwrQkFBcUI7Ozs7O0lBQ3JCLDZCQUErQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpdkljb24gfSBmcm9tICcuLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml2RXhwYW5kYWJsZSB9IGZyb20gJy4vLi4vZXhwYW5kYWJsZS9leHBhbmRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIE9wdGlvbmFsLFxuICBIb3N0LFxuICBWaWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zpdi1yb3V0ZXItaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3V0ZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JvdXRlci1pdGVtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRml2Um91dGVySXRlbSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2Zpdkljb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgZml2SWNvbjogRml2SWNvbjtcblxuICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBjb2xvcj86IENvbG9yO1xuXG4gIEBJbnB1dCgpIGRldGFpbD86IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZGV0YWlsSWNvbiA9ICdjaGV2cm9uLWZvcndhcmQnO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgaWNvbj86IHN0cmluZztcblxuICBASW5wdXQoKSBsaW5lcz86ICdmdWxsJyB8ICdpbnNldCcgfCAnbm9uZSc7XG5cbiAgQElucHV0KCkgbWF0Y2hDaGlsZFVybCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG5hdmlnYXRlID0gdHJ1ZTtcblxuICBASW5wdXQoKSBwYWdlVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgYWN0aXZlIHN0YXRlLlxuICAgKiBEZWZhdWx0IHZhbHVlIGlzOiBgXCJsZWZ0XCJgXG4gICAqL1xuICBASW5wdXQoKSBwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICAvKipcbiAgICogVGhlIHNoYXBlIG9mIHRoZSBhY3RpdmUgc3RhdGUuXG4gICAqIFBvc3NpYmxlIHZhbHVlcyBhcmU6IGBcImxpbmVcImAsIGBcImRvdFwiYCBhbmQgYFwicm91bmRlZFwiYC5cbiAgICogRGVmYXVsdCB2YWx1ZSBpczogYFwibGluZVwiYFxuICAgKi9cbiAgQElucHV0KCkgc2hhcGU6ICdsaW5lJyB8ICdkb3QnIHwgJ3JvdW5kZWQnID0gJ2xpbmUnO1xuXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIG9uY2xpY2soKSB7XG4gICAgaWYgKHRoaXMubmF2aWdhdGUgJiYgdGhpcy5wYWdlVXJsKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucGFnZVVybCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBjbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMucG9zaXRpb259ICR7dGhpcy5zaGFwZX1gO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY3RpdmUnKSBnZXQgYWN0aXZlQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF0Y2hBY3RpdmVVcmwoKSB8fCB0aGlzLmFjdGl2ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mucm91dGVyLWl0ZW0tZGlzYWJsZWQnKSBnZXQgZGlzYWJsZWRDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgaG9zdDogRml2RXhwYW5kYWJsZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgZmlsdGVyKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4gZXZlbnQudXJsID09PSB0aGlzLnBhZ2VVcmwpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub3BlbkV4cGFuZGFibGVIb3N0KCkpO1xuICB9XG5cbiAgb3BlbkV4cGFuZGFibGVIb3N0KCkge1xuICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5tYXRjaEFjdGl2ZVVybCgpIHx8IHRoaXMuYWN0aXZlO1xuICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgaWYgKHRoaXMuaG9zdCAmJiAhdGhpcy5ob3N0LmlzT3Blbikge1xuICAgICAgICB0aGlzLmhvc3Qub3BlbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbdGhpcy5wb3NpdGlvbiwgdGhpcy5zaGFwZV07XG4gIH1cblxuICBtYXRjaEFjdGl2ZVVybCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXRjaENoaWxkVXJsID8gdGhpcy5pc0NoaWxkVXJsKCkgOiB0aGlzLmlzQ3VycmVudFVybCgpO1xuICB9XG5cbiAgaXNDdXJyZW50VXJsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwgPT09IHRoaXMucGFnZVVybDtcbiAgfVxuXG4gIGlzQ2hpbGRVcmwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKHRoaXMucGFnZVVybCk7XG4gIH1cbn1cbiJdfQ==