UNPKG

fundamental-ngx

Version:

SAP Fiori Fundamentals, implemented in Angular

87 lines 8.74 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, ViewChild, ElementRef } from '@angular/core'; var SideNavigationLinkComponent = /** @class */ (function () { function SideNavigationLinkComponent() { this.hasSublist = false; this.sublistIsOpen = false; } /** * @param {?} event * @return {?} */ SideNavigationLinkComponent.prototype.onKeypressHandler = /** * @param {?} event * @return {?} */ function (event) { if (this.hasSublist && (event.code === 'Enter' || event.code === 'Space')) { event.preventDefault(); this.sublistIsOpen = !this.sublistIsOpen; } }; /** * @return {?} */ SideNavigationLinkComponent.prototype.ngOnChanges = /** * @return {?} */ function () { /* this function determines what element has been placed in ng-content and applies the fd-side-nav__link class appropriately */ if (!this.hasSublist) { if (this.linkEl && this.linkEl.nativeElement) { if (this.linkEl.nativeElement.children && this.linkEl.nativeElement.children.length > 0) { /** @type {?} */ var children = this.linkEl.nativeElement.children; for (var i = 0; i < children.length; i++) { // if the item contains a child anchor element, apply 'fd-side-nav__link' class to that anchor if (children[i].tagName === 'A') { children[i].classList.add('fd-side-nav__link'); } } } else if (this.linkEl.nativeElement.children && this.linkEl.nativeElement.children.length === 0) { // if the item does not contain a child element, apply 'fd-side-nav__link' class to the fd-side-nav-link component this.linkEl.nativeElement.classList.add('fd-side-nav__link'); } } } }; /** * @return {?} */ SideNavigationLinkComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.ngOnChanges(); }; SideNavigationLinkComponent.decorators = [ { type: Component, args: [{ selector: 'fd-side-nav-link', template: "<a *ngIf=\"hasSublist\" class=\"fd-side-nav__link has-child\"\n [ngClass]=\"{'is-selected': sublistIsOpen === true}\"\n aria-haspopup=\"true\"\n role=\"button\"\n tabindex=\"0\"\n (keypress)=\"onKeypressHandler($event)\"\n (click)=\"sublistIsOpen = !sublistIsOpen\" \n [attr.aria-expanded]=\"sublistIsOpen\"\n style=\"cursor: pointer;\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n</a>\n<div *ngIf=\"!hasSublist\" #link>\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n</div>\n<div class=\"fd-side-nav__sublist\" *ngIf=\"hasSublist\" [attr.aria-hidden]=\"!sublistIsOpen\">\n <ng-content select=\"fd-side-nav-subitem\"></ng-content>\n</div>\n<ng-template #contentTpl><ng-content></ng-content></ng-template>" }] } ]; SideNavigationLinkComponent.propDecorators = { hasSublist: [{ type: Input }], href: [{ type: Input }], linkEl: [{ type: ViewChild, args: ['link',] }] }; return SideNavigationLinkComponent; }()); export { SideNavigationLinkComponent }; if (false) { /** @type {?} */ SideNavigationLinkComponent.prototype.hasSublist; /** @type {?} */ SideNavigationLinkComponent.prototype.href; /** @type {?} */ SideNavigationLinkComponent.prototype.linkEl; /** @type {?} */ SideNavigationLinkComponent.prototype.sublistIsOpen; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vZnVuZGFtZW50YWwtbmd4LyIsInNvdXJjZXMiOlsibGliL3NpZGUtbmF2aWdhdGlvbi9zaWRlLW5hdmlnYXRpb24tbGluay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBRSxVQUFVLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWxHO0lBQUE7UUFNSSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBUTVCLGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBa0NuQyxDQUFDOzs7OztJQWhDRyx1REFBaUI7Ozs7SUFBakIsVUFBa0IsS0FBSztRQUNuQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZFLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUM1QztJQUNMLENBQUM7Ozs7SUFFRCxpREFBVzs7O0lBQVg7UUFDSTs7V0FFRztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDMUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O3dCQUMvRSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUTtvQkFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3RDLDhGQUE4Rjt3QkFDOUYsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRTs0QkFDN0IsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt5QkFDbEQ7cUJBQ0o7aUJBQ0o7cUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQzlGLGtIQUFrSDtvQkFDbEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2lCQUNoRTthQUNKO1NBQ0o7SUFDTCxDQUFDOzs7O0lBRUQscURBQWU7OztJQUFmO1FBQ0ksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7O2dCQS9DSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsNndCQUFvRDtpQkFDdkQ7Ozs2QkFFSSxLQUFLO3VCQUdMLEtBQUs7eUJBR0wsU0FBUyxTQUFDLE1BQU07O0lBcUNyQixrQ0FBQztDQUFBLEFBaERELElBZ0RDO1NBNUNZLDJCQUEyQjs7O0lBQ3BDLGlEQUM0Qjs7SUFFNUIsMkNBQ2E7O0lBRWIsNkNBQ21COztJQUVuQixvREFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNpZGUtbmF2LWxpbmsnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdmlnYXRpb24tbGluay5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZU5hdmlnYXRpb25MaW5rQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGhhc1N1Ymxpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaHJlZjogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZCgnbGluaycpXG4gICAgbGlua0VsOiBFbGVtZW50UmVmO1xuXG4gICAgc3VibGlzdElzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgb25LZXlwcmVzc0hhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzU3VibGlzdCAmJiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJyB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc3VibGlzdElzT3BlbiA9ICF0aGlzLnN1Ymxpc3RJc09wZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgLypcbiAgICAgICAgIHRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGF0IGVsZW1lbnQgaGFzIGJlZW4gcGxhY2VkIGluIG5nLWNvbnRlbnQgYW5kIGFwcGxpZXMgdGhlIGZkLXNpZGUtbmF2X19saW5rIGNsYXNzIGFwcHJvcHJpYXRlbHlcbiAgICAgICAgICovXG4gICAgICAgIGlmICghdGhpcy5oYXNTdWJsaXN0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5saW5rRWwgJiYgdGhpcy5saW5rRWwubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmtFbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuICYmIHRoaXMubGlua0VsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMubGlua0VsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBpdGVtIGNvbnRhaW5zIGEgY2hpbGQgYW5jaG9yIGVsZW1lbnQsIGFwcGx5ICdmZC1zaWRlLW5hdl9fbGluaycgY2xhc3MgdG8gdGhhdCBhbmNob3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbltpXS50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXS5jbGFzc0xpc3QuYWRkKCdmZC1zaWRlLW5hdl9fbGluaycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmxpbmtFbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuICYmIHRoaXMubGlua0VsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBpdGVtIGRvZXMgbm90IGNvbnRhaW4gYSBjaGlsZCBlbGVtZW50LCBhcHBseSAnZmQtc2lkZS1uYXZfX2xpbmsnIGNsYXNzIHRvIHRoZSBmZC1zaWRlLW5hdi1saW5rIGNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmtFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZkLXNpZGUtbmF2X19saW5rJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm5nT25DaGFuZ2VzKCk7XG4gICAgfVxufVxuIl19