@ngez/core
Version:
A collection of minimalistic, easy-to-use and fully customizable Angular components, directives and services
183 lines • 15.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, ContentChildren, QueryList, ViewEncapsulation } from "@angular/core";
import { faAngleUp, faAngleDown } from '@fortawesome/free-solid-svg-icons';
import { RouterLink, RouterLinkWithHref, Router, NavigationEnd } from "@angular/router";
import { filter } from "rxjs/operators";
var NgEzNavListComponent = /** @class */ (function () {
function NgEzNavListComponent(router) {
this.router = router;
this.routerLinkActiveOptions = { exact: false };
this.faAngleUp = faAngleUp;
this.faAngleDown = faAngleDown;
this.open = false;
this.active = false;
}
/**
* @return {?}
*/
NgEzNavListComponent.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.update();
};
/**
* @return {?}
*/
NgEzNavListComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.navigationSubscription = this.router.events
.pipe(filter(function (e) { return e instanceof NavigationEnd; }))
.subscribe(function (e) { return _this.update(); });
};
/**
* @return {?}
*/
NgEzNavListComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
var _this = this;
this.linksQueryListChangesSubscription =
this.links.changes.subscribe(function (c) { return _this.update(); });
this.linksWithHrefsQueryListChangesSubscription =
this.linksWithHrefs.changes.subscribe(function (c) { return _this.update(); });
this.update();
};
/**
* @return {?}
*/
NgEzNavListComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.navigationSubscription)
this.navigationSubscription.unsubscribe();
if (this.linksQueryListChangesSubscription)
this.linksQueryListChangesSubscription.unsubscribe();
if (this.linksWithHrefsQueryListChangesSubscription)
this.linksWithHrefsQueryListChangesSubscription.unsubscribe();
};
/**
* @return {?}
*/
NgEzNavListComponent.prototype.onToggle = /**
* @return {?}
*/
function () {
this.open = !this.open;
};
/**
* @private
* @return {?}
*/
NgEzNavListComponent.prototype.update = /**
* @private
* @return {?}
*/
function () {
if (!this.links || !this.linksWithHrefs || !this.router.navigated)
return;
this.active = this.hasActiveLinks();
if (!this.open)
this.open = this.active;
};
/**
* @private
* @param {?} router
* @return {?}
*/
NgEzNavListComponent.prototype.isLinkActive = /**
* @private
* @param {?} router
* @return {?}
*/
function (router) {
var _this = this;
return function (link) {
return router.isActive(link.urlTree, _this.exact);
};
};
/**
* @private
* @return {?}
*/
NgEzNavListComponent.prototype.hasActiveLinks = /**
* @private
* @return {?}
*/
function () {
return this.links.some(this.isLinkActive(this.router)) ||
this.linksWithHrefs.some(this.isLinkActive(this.router));
};
Object.defineProperty(NgEzNavListComponent.prototype, "exact", {
get: /**
* @private
* @return {?}
*/
function () {
return this.routerLinkActiveOptions ? this.routerLinkActiveOptions.exact : false;
},
enumerable: true,
configurable: true
});
NgEzNavListComponent.decorators = [
{ type: Component, args: [{
selector: 'ngez-nav-list',
template: "<div class=\"ngez-nav-list\">\r\n <button (click)=\"onToggle()\" class=\"ngez-nav-list-header\" [class.active]=\"active\">\r\n <span>{{title}}</span>\r\n <fa-icon [icon]=\"open ? faAngleUp : faAngleDown\"></fa-icon>\r\n </button>\r\n <div *ngIf=\"open\" class=\"ngez-nav-list-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>",
encapsulation: ViewEncapsulation.None,
styles: [".ngez-nav-list{display:flex;flex-direction:column}.ngez-nav-list-header{display:flex;flex-direction:row;justify-content:space-between;border:none;background-color:transparent;margin-right:0;padding-left:6px;padding-top:8px;padding-bottom:10px;cursor:pointer;outline:0}.ngez-nav-list-header.active{color:#d70026}.ngez-nav-list-header:hover{color:#d70026;background-color:#f2f2f2}.ngez-nav-list-content{padding-left:18px}.ngez-nav-list-content a{display:flex;flex-direction:row;justify-content:space-between;border:none;background-color:transparent;padding:6px;text-decoration:none;cursor:pointer}.ngez-nav-list-content a.active{color:#d70026}.ngez-nav-list-content a:hover{background-color:#f2f2f2;color:#d70026}"]
}] }
];
/** @nocollapse */
NgEzNavListComponent.ctorParameters = function () { return [
{ type: Router }
]; };
NgEzNavListComponent.propDecorators = {
title: [{ type: Input }],
routerLinkActiveOptions: [{ type: Input }],
lists: [{ type: ContentChildren, args: [NgEzNavListComponent,] }],
links: [{ type: ContentChildren, args: [RouterLink,] }],
linksWithHrefs: [{ type: ContentChildren, args: [RouterLinkWithHref,] }]
};
return NgEzNavListComponent;
}());
export { NgEzNavListComponent };
if (false) {
/** @type {?} */
NgEzNavListComponent.prototype.title;
/** @type {?} */
NgEzNavListComponent.prototype.routerLinkActiveOptions;
/** @type {?} */
NgEzNavListComponent.prototype.lists;
/** @type {?} */
NgEzNavListComponent.prototype.links;
/** @type {?} */
NgEzNavListComponent.prototype.linksWithHrefs;
/** @type {?} */
NgEzNavListComponent.prototype.faAngleUp;
/** @type {?} */
NgEzNavListComponent.prototype.faAngleDown;
/** @type {?} */
NgEzNavListComponent.prototype.open;
/** @type {?} */
NgEzNavListComponent.prototype.active;
/** @type {?} */
NgEzNavListComponent.prototype.navigationSubscription;
/** @type {?} */
NgEzNavListComponent.prototype.linksQueryListChangesSubscription;
/** @type {?} */
NgEzNavListComponent.prototype.linksWithHrefsQueryListChangesSubscription;
/**
* @type {?}
* @private
*/
NgEzNavListComponent.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nZXovY29yZS8iLCJzb3VyY2VzIjpbIm5lc3RlZC1uYXYvbmF2LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFrRCxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEM7SUFnQ0ksOEJBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEJ6Qiw0QkFBdUIsR0FBdUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFReEUsY0FBUyxHQUFtQixTQUFTLENBQUM7UUFFdEMsZ0JBQVcsR0FBbUIsV0FBVyxDQUFDO1FBRTFDLFNBQUksR0FBWSxLQUFLLENBQUM7UUFFdEIsV0FBTSxHQUFZLEtBQUssQ0FBQztJQVFjLENBQUM7Ozs7SUFFdkMsMENBQVc7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7Ozs7SUFFRCx1Q0FBUTs7O0lBQVI7UUFBQSxpQkFJQztRQUhHLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsWUFBWSxhQUFhLEVBQTFCLENBQTBCLENBQUMsQ0FBQzthQUM3QyxTQUFTLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxLQUFJLENBQUMsTUFB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QUFzQzs7SUFFdEMsMkNBQTBDOztJQUUxQyxvQ0FBc0I7O0lBRXRCLHNDQUF3Qjs7SUFFeEIsc0RBQXFDOztJQUVyQyxpRUFBZ0Q7O0lBRWhELDBFQUF5RDs7Ozs7SUFFN0Msc0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgZmFBbmdsZVVwLCBmYUFuZ2xlRG93biwgSWNvbkRlZmluaXRpb24gfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rV2l0aEhyZWYsIFJvdXRlciwgTmF2aWdhdGlvbkVuZCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmdlei1uYXYtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nRXpOYXZMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKSByb3V0ZXJMaW5rQWN0aXZlT3B0aW9uczogeyBleGFjdDogYm9vbGVhbiB9ID0geyBleGFjdDogZmFsc2UgfTtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKE5nRXpOYXZMaXN0Q29tcG9uZW50KSBsaXN0czogUXVlcnlMaXN0PE5nRXpOYXZMaXN0Q29tcG9uZW50PjtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFJvdXRlckxpbmspIGxpbmtzOiBRdWVyeUxpc3Q8Um91dGVyTGluaz47XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihSb3V0ZXJMaW5rV2l0aEhyZWYpIGxpbmtzV2l0aEhyZWZzOiBRdWVyeUxpc3Q8Um91dGVyTGlua1dpdGhIcmVmPjtcclxuXHJcbiAgICBmYUFuZ2xlVXA6IEljb25EZWZpbml0aW9uID0gZmFBbmdsZVVwO1xyXG5cclxuICAgIGZhQW5nbGVEb3duOiBJY29uRGVmaW5pdGlvbiA9IGZhQW5nbGVEb3duO1xyXG5cclxuICAgIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBuYXZpZ2F0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbGlua3NRdWVyeUxpc3RDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbGlua3NXaXRoSHJlZnNRdWVyeUxpc3RDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgICAgICAgICAgLnBpcGUoZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGUgPT4gdGhpcy51cGRhdGUoKSlcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5saW5rc1F1ZXJ5TGlzdENoYW5nZXNTdWJzY3JpcHRpb24gPSBcclxuICAgICAgICAgICAgdGhpcy5saW5rcy5jaGFuZ2VzLnN1YnNjcmliZSgoYykgPT4gdGhpcy51cGRhdGUoKSk7XHJcbiAgICAgICAgdGhpcy5saW5rc1dpdGhIcmVmc1F1ZXJ5TGlzdENoYW5nZXNTdWJzY3JpcHRpb24gPSBcclxuICAgICAgICAgICAgdGhpcy5saW5rc1dpdGhIcmVmcy5jaGFuZ2VzLnN1YnNjcmliZSgoYykgPT4gdGhpcy51cGRhdGUoKSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZih0aGlzLm5hdmlnYXRpb25TdWJzY3JpcHRpb24pXHJcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIGlmKHRoaXMubGlua3NRdWVyeUxpc3RDaGFuZ2VzU3Vic2NyaXB0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmxpbmtzUXVlcnlMaXN0Q2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIGlmKHRoaXMubGlua3NXaXRoSHJlZnNRdWVyeUxpc3RDaGFuZ2VzU3Vic2NyaXB0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmxpbmtzV2l0aEhyZWZzUXVlcnlMaXN0Q2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG9nZ2xlKCkge1xyXG4gICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGUoKXtcclxuICAgICAgICBpZighdGhpcy5saW5rcyB8fCAhdGhpcy5saW5rc1dpdGhIcmVmcyB8fCAhdGhpcy5yb3V0ZXIubmF2aWdhdGVkKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0aGlzLmhhc0FjdGl2ZUxpbmtzKCk7XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLm9wZW4pXHJcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IHRoaXMuYWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNMaW5rQWN0aXZlKHJvdXRlcjogUm91dGVyKTogKGxpbms6IChSb3V0ZXJMaW5rIHwgUm91dGVyTGlua1dpdGhIcmVmKSkgPT4gYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChsaW5rOiBSb3V0ZXJMaW5rIHwgUm91dGVyTGlua1dpdGhIcmVmKSA9PlxyXG4gICAgICAgICAgICByb3V0ZXIuaXNBY3RpdmUobGluay51cmxUcmVlLCB0aGlzLmV4YWN0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc0FjdGl2ZUxpbmtzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpbmtzLnNvbWUodGhpcy5pc0xpbmtBY3RpdmUodGhpcy5yb3V0ZXIpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmxpbmtzV2l0aEhyZWZzLnNvbWUodGhpcy5pc0xpbmtBY3RpdmUodGhpcy5yb3V0ZXIpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBleGFjdCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucyA/IHRoaXMucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMuZXhhY3QgOiBmYWxzZTtcclxuICAgIH1cclxufSJdfQ==