@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
20 lines • 7.09 kB
JavaScript
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "../../directives/accessibility/focus-indicator/focus-indicator.directive";
import * as i2 from "@angular/router";
export class BreadcrumbsComponent {
clickCrumb(event, crumb) {
if (crumb.onClick) {
crumb.onClick.call(null, event);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BreadcrumbsComponent, selector: "ux-breadcrumbs", inputs: { crumbs: "crumbs" }, ngImport: i0, template: "<nav aria-label=\"Breadcrumb\">\n <ol class=\"breadcrumb\">\n @for (crumb of crumbs; track crumb) {\n <li>\n <!-- If there is a router link or an onClick function then use a tag -->\n @if (crumb.routerLink) {\n <a\n uxFocusIndicator\n tabindex=\"0\"\n [routerLink]=\"crumb.routerLink\"\n [fragment]=\"crumb.fragment\"\n [queryParams]=\"crumb.queryParams\"\n (click)=\"clickCrumb($event, crumb)\"\n >\n {{ crumb.title }}\n </a>\n }\n @if (crumb.onClick && !crumb.routerLink) {\n <a\n uxFocusIndicator\n tabindex=\"0\"\n (click)=\"clickCrumb($event, crumb)\"\n >\n {{ crumb.title }}\n </a>\n }\n <!-- If there is no router link or onClick function then display text in a span -->\n @if (!crumb.routerLink && !crumb.onClick) {\n <span>{{ crumb.title }}</span>\n }\n </li>\n }\n </ol>\n</nav>\n", dependencies: [{ kind: "directive", type: i1.FocusIndicatorDirective, selector: "[uxFocusIndicator]", inputs: ["checkChildren", "mouseFocusIndicator", "touchFocusIndicator", "keyboardFocusIndicator", "programmaticFocusIndicator"], outputs: ["indicator"], exportAs: ["ux-focus-indicator"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BreadcrumbsComponent, decorators: [{
type: Component,
args: [{ selector: 'ux-breadcrumbs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav aria-label=\"Breadcrumb\">\n <ol class=\"breadcrumb\">\n @for (crumb of crumbs; track crumb) {\n <li>\n <!-- If there is a router link or an onClick function then use a tag -->\n @if (crumb.routerLink) {\n <a\n uxFocusIndicator\n tabindex=\"0\"\n [routerLink]=\"crumb.routerLink\"\n [fragment]=\"crumb.fragment\"\n [queryParams]=\"crumb.queryParams\"\n (click)=\"clickCrumb($event, crumb)\"\n >\n {{ crumb.title }}\n </a>\n }\n @if (crumb.onClick && !crumb.routerLink) {\n <a\n uxFocusIndicator\n tabindex=\"0\"\n (click)=\"clickCrumb($event, crumb)\"\n >\n {{ crumb.title }}\n </a>\n }\n <!-- If there is no router link or onClick function then display text in a span -->\n @if (!crumb.routerLink && !crumb.onClick) {\n <span>{{ crumb.title }}</span>\n }\n </li>\n }\n </ol>\n</nav>\n" }]
}], propDecorators: { crumbs: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPMUUsTUFBTSxPQUFPLG9CQUFvQjtJQUs3QixVQUFVLENBQUMsS0FBaUIsRUFBRSxLQUFpQjtRQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7K0dBVFEsb0JBQW9CO21HQUFwQixvQkFBb0Isb0ZDUGpDLDhoQ0FrQ0E7OzRGRDNCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU07OEJBS3RDLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXgtYnJlYWRjcnVtYnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1icy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYnNDb21wb25lbnQge1xuXG4gICAgLyoqIFRoZSBsaXN0IG9mIGJyZWFkY3J1bWJzIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KCkgY3J1bWJzOiBSZWFkb25seUFycmF5PEJyZWFkY3J1bWI+O1xuXG4gICAgY2xpY2tDcnVtYihldmVudDogTW91c2VFdmVudCwgY3J1bWI6IEJyZWFkY3J1bWIpIHtcbiAgICAgICAgaWYgKGNydW1iLm9uQ2xpY2spIHtcbiAgICAgICAgICAgIGNydW1iLm9uQ2xpY2suY2FsbChudWxsLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWRjcnVtYiB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICByb3V0ZXJMaW5rPzogc3RyaW5nO1xuICAgIGZyYWdtZW50Pzogc3RyaW5nO1xuICAgIHF1ZXJ5UGFyYW1zPzogdW5rbm93bjtcbiAgICBvbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xufSIsIjxuYXYgYXJpYS1sYWJlbD1cIkJyZWFkY3J1bWJcIj5cbiAgPG9sIGNsYXNzPVwiYnJlYWRjcnVtYlwiPlxuICAgIEBmb3IgKGNydW1iIG9mIGNydW1iczsgdHJhY2sgY3J1bWIpIHtcbiAgICAgIDxsaT5cbiAgICAgICAgPCEtLSBJZiB0aGVyZSBpcyBhIHJvdXRlciBsaW5rIG9yIGFuIG9uQ2xpY2sgZnVuY3Rpb24gdGhlbiB1c2UgYSB0YWcgLS0+XG4gICAgICAgIEBpZiAoY3J1bWIucm91dGVyTGluaykge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICB1eEZvY3VzSW5kaWNhdG9yXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY3J1bWIucm91dGVyTGlua1wiXG4gICAgICAgICAgICBbZnJhZ21lbnRdPVwiY3J1bWIuZnJhZ21lbnRcIlxuICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImNydW1iLnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NydW1iKCRldmVudCwgY3J1bWIpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGNydW1iLnRpdGxlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoY3J1bWIub25DbGljayAmJiAhY3J1bWIucm91dGVyTGluaykge1xuICAgICAgICAgIDxhXG4gICAgICAgICAgICB1eEZvY3VzSW5kaWNhdG9yXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQ3J1bWIoJGV2ZW50LCBjcnVtYilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAge3sgY3J1bWIudGl0bGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBJZiB0aGVyZSBpcyBubyByb3V0ZXIgbGluayBvciBvbkNsaWNrIGZ1bmN0aW9uIHRoZW4gZGlzcGxheSB0ZXh0IGluIGEgc3BhbiAtLT5cbiAgICAgICAgQGlmICghY3J1bWIucm91dGVyTGluayAmJiAhY3J1bWIub25DbGljaykge1xuICAgICAgICAgIDxzcGFuPnt7IGNydW1iLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2xpPlxuICAgIH1cbiAgPC9vbD5cbjwvbmF2PlxuIl19