UNPKG

angular-traversal

Version:
53 lines 4.58 kB
import { Directive, HostBinding, Input, HostListener } from '@angular/core'; import { Traverser } from './traverser'; import { Normalizer } from './normalizer'; export class TraverserButton { constructor(traverser) { this.traverser = traverser; } onClick(event) { event.preventDefault(); if (!!this.traverseTo) { this.traverser.traverse(this.traverseTo); } } } TraverserButton.decorators = [ { type: Directive, args: [{ selector: ':not(a)[traverseTo]', },] } ]; TraverserButton.ctorParameters = () => [ { type: Traverser } ]; TraverserButton.propDecorators = { traverseTo: [{ type: Input }], onClick: [{ type: HostListener, args: ['click', ['$event'],] }] }; export class TraverserLink extends TraverserButton { constructor(privateTraverser, normalizer) { super(privateTraverser); this.privateTraverser = privateTraverser; this.normalizer = normalizer; } ngOnInit() { if (!!this.traverseTo) { this.href = this.privateTraverser.getPrefix() + this.normalizer.normalize(this.privateTraverser.getFullPath(this.traverseTo)); } } } TraverserLink.decorators = [ { type: Directive, args: [{ selector: 'a[traverseTo]', },] } ]; TraverserLink.ctorParameters = () => [ { type: Traverser }, { type: Normalizer } ]; TraverserLink.propDecorators = { href: [{ type: HostBinding }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhdmVyc2VyLmxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90cmF2ZXJzYWwvc3JjL2xpYi90cmF2ZXJzZXIubGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsxQyxNQUFNLE9BQU8sZUFBZTtJQUd4QixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztJQUc1QyxPQUFPLENBQUMsS0FBaUI7UUFDckIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQzs7O1lBZEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7YUFDbEM7OztZQUxRLFNBQVM7Ozt5QkFPYixLQUFLO3NCQUlMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBWXJDLE1BQU0sT0FBTyxhQUFjLFNBQVEsZUFBZTtJQUc5QyxZQUFvQixnQkFBMkIsRUFBVSxVQUFzQjtRQUMzRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQURSLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBVztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFL0UsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxJQUFJO2dCQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDckY7SUFDTCxDQUFDOzs7WUFoQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxlQUFlO2FBQzVCOzs7WUF0QlEsU0FBUztZQUNULFVBQVU7OzttQkF1QmQsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhdmVyc2VyIH0gZnJvbSAnLi90cmF2ZXJzZXInO1xuaW1wb3J0IHsgTm9ybWFsaXplciB9IGZyb20gJy4vbm9ybWFsaXplcic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnOm5vdChhKVt0cmF2ZXJzZVRvXScsXG59KVxuZXhwb3J0IGNsYXNzIFRyYXZlcnNlckJ1dHRvbiB7XG4gICAgQElucHV0KCkgdHJhdmVyc2VUbz86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhdmVyc2VyOiBUcmF2ZXJzZXIpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoISF0aGlzLnRyYXZlcnNlVG8pIHtcbiAgICAgICAgICAgIHRoaXMudHJhdmVyc2VyLnRyYXZlcnNlKHRoaXMudHJhdmVyc2VUbyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnYVt0cmF2ZXJzZVRvXScsXG59KVxuZXhwb3J0IGNsYXNzIFRyYXZlcnNlckxpbmsgZXh0ZW5kcyBUcmF2ZXJzZXJCdXR0b24gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygpIGhyZWY/OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByaXZhdGVUcmF2ZXJzZXI6IFRyYXZlcnNlciwgcHJpdmF0ZSBub3JtYWxpemVyOiBOb3JtYWxpemVyKSB7XG4gICAgICAgIHN1cGVyKHByaXZhdGVUcmF2ZXJzZXIpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoISF0aGlzLnRyYXZlcnNlVG8pIHtcbiAgICAgICAgICAgIHRoaXMuaHJlZiA9XG4gICAgICAgICAgICAgICAgdGhpcy5wcml2YXRlVHJhdmVyc2VyLmdldFByZWZpeCgpICtcbiAgICAgICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZXIubm9ybWFsaXplKHRoaXMucHJpdmF0ZVRyYXZlcnNlci5nZXRGdWxsUGF0aCh0aGlzLnRyYXZlcnNlVG8pKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==