carbon-components-angular
Version:
Next generation components
89 lines • 8.66 kB
JavaScript
import { Component, HostBinding, Input, Output, EventEmitter, Optional } from "@angular/core";
import * as i0 from "@angular/core";
import * as i1 from "@angular/platform-browser";
import * as i2 from "@angular/router";
import * as i3 from "@angular/common";
export class BreadcrumbItemComponent {
constructor(domSanitizer, router) {
this.domSanitizer = domSanitizer;
this.router = router;
/**
* Emits the navigation status promise when the link is activated
*/
this.navigation = new EventEmitter();
this.skeleton = false;
this.ariaCurrent = "page";
this.current = false;
this.itemClass = true;
}
set href(v) {
this._href = v;
}
get href() {
return this.domSanitizer.bypassSecurityTrustUrl(this._href);
}
useTemplate() {
return this.skeleton || this._href || this.route;
}
navigate(event) {
if (this.router && this.route) {
event.preventDefault();
const status = this.router.navigate(this.route, this.routeExtras);
this.navigation.emit(status);
}
}
}
BreadcrumbItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BreadcrumbItemComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component });
BreadcrumbItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BreadcrumbItemComponent, selector: "cds-breadcrumb-item, ibm-breadcrumb-item", inputs: { href: "href", route: "route", routeExtras: "routeExtras", skeleton: "skeleton", ariaCurrent: "ariaCurrent", current: "current" }, outputs: { navigation: "navigation" }, host: { properties: { "class.cds--breadcrumb-item--current": "this.current", "class.cds--breadcrumb-item": "this.itemClass" } }, ngImport: i0, template: `
<a
class="cds--link"
[href]="(skeleton ? '/#' : href)"
(click)="navigate($event)"
[attr.aria-current]="(current ? ariaCurrent : null)"
*ngIf="useTemplate(); else content">
<ng-container *ngTemplateOutlet="content"></ng-container>
</a>
<ng-template #content>
<ng-content></ng-content>
</ng-template>`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
type: Component,
args: [{
selector: "cds-breadcrumb-item, ibm-breadcrumb-item",
template: `
<a
class="cds--link"
[href]="(skeleton ? '/#' : href)"
(click)="navigate($event)"
[attr.aria-current]="(current ? ariaCurrent : null)"
*ngIf="useTemplate(); else content">
<ng-container *ngTemplateOutlet="content"></ng-container>
</a>
<ng-template #content>
<ng-content></ng-content>
</ng-template>`
}]
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.Router, decorators: [{
type: Optional
}] }]; }, propDecorators: { href: [{
type: Input
}], route: [{
type: Input
}], routeExtras: [{
type: Input
}], navigation: [{
type: Output
}], skeleton: [{
type: Input
}], ariaCurrent: [{
type: Input
}], current: [{
type: HostBinding,
args: ["class.cds--breadcrumb-item--current"]
}, {
type: Input
}], itemClass: [{
type: HostBinding,
args: ["class.cds--breadcrumb-item"]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icmVhZGNydW1iL2JyZWFkY3J1bWItaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osUUFBUSxFQUNSLE1BQU0sZUFBZSxDQUFDOzs7OztBQW1CdkIsTUFBTSxPQUFPLHVCQUF1QjtJQW9DbkMsWUFBc0IsWUFBMEIsRUFBd0IsTUFBYztRQUFoRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUF3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZnRGOztXQUVHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBRW5ELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFFK0IsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVsQyxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBSThCLENBQUM7SUFuQzNGLElBQWEsSUFBSSxDQUFDLENBQVM7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFXLENBQUM7SUFDdkUsQ0FBQztJQStCRCxXQUFXO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7SUFDRixDQUFDOztvSEFoRFcsdUJBQXVCO3dHQUF2Qix1QkFBdUIsb1lBYnpCOzs7Ozs7Ozs7OztnQkFXSzsyRkFFSCx1QkFBdUI7a0JBZm5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDBDQUEwQztvQkFDcEQsUUFBUSxFQUFFOzs7Ozs7Ozs7OztnQkFXSztpQkFDZjs7MEJBcUNtRCxRQUFROzRDQW5DOUMsSUFBSTtzQkFBaEIsS0FBSztnQkFZRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsV0FBVztzQkFBbkIsS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFdUQsT0FBTztzQkFBbkUsV0FBVzt1QkFBQyxxQ0FBcUM7O3NCQUFHLEtBQUs7Z0JBRWYsU0FBUztzQkFBbkQsV0FBVzt1QkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdEhvc3RCaW5kaW5nLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXIsXG5cdE9wdGlvbmFsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLWJyZWFkY3J1bWItaXRlbSwgaWJtLWJyZWFkY3J1bWItaXRlbVwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8YVxuXHRcdGNsYXNzPVwiY2RzLS1saW5rXCJcblx0XHRbaHJlZl09XCIoc2tlbGV0b24gPyAnLyMnIDogaHJlZilcIlxuXHRcdChjbGljayk9XCJuYXZpZ2F0ZSgkZXZlbnQpXCJcblx0XHRbYXR0ci5hcmlhLWN1cnJlbnRdPVwiKGN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGwpXCJcblx0XHQqbmdJZj1cInVzZVRlbXBsYXRlKCk7IGVsc2UgY29udGVudFwiPlxuXHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG5cdDwvYT5cblx0PG5nLXRlbXBsYXRlICNjb250ZW50PlxuXHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0PC9uZy10ZW1wbGF0ZT5gXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IHtcblx0QElucHV0KCkgc2V0IGhyZWYodjogc3RyaW5nKSB7XG5cdFx0dGhpcy5faHJlZiA9IHY7XG5cdH1cblxuXHRnZXQgaHJlZigpIHtcblx0XHRyZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh0aGlzLl9ocmVmKSBhcyBzdHJpbmc7XG5cdH1cblxuXHQvKipcblx0ICogQXJyYXkgb2YgY29tbWFuZHMgdG8gc2VuZCB0byB0aGUgcm91dGVyIHdoZW4gdGhlIGxpbmsgaXMgYWN0aXZhdGVkXG5cdCAqIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9yb3V0ZXIvUm91dGVyI25hdmlnYXRlXG5cdCAqL1xuXHRASW5wdXQoKSByb3V0ZTogYW55W107XG5cblx0LyoqXG5cdCAqIFJvdXRlciBvcHRpb25zLiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYHJvdXRlYFxuXHQgKiBTZWU6IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvcm91dGVyL1JvdXRlciNuYXZpZ2F0ZVxuXHQgKi9cblx0QElucHV0KCkgcm91dGVFeHRyYXM6IGFueTtcblxuXHQvKipcblx0ICogRW1pdHMgdGhlIG5hdmlnYXRpb24gc3RhdHVzIHByb21pc2Ugd2hlbiB0aGUgbGluayBpcyBhY3RpdmF0ZWRcblx0ICovXG5cdEBPdXRwdXQoKSBuYXZpZ2F0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxQcm9taXNlPGJvb2xlYW4+PigpO1xuXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cblx0QElucHV0KCkgYXJpYUN1cnJlbnQgPSBcInBhZ2VcIjtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWJyZWFkY3J1bWItaXRlbS0tY3VycmVudFwiKSBASW5wdXQoKSBjdXJyZW50ID0gZmFsc2U7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1icmVhZGNydW1iLWl0ZW1cIikgaXRlbUNsYXNzID0gdHJ1ZTtcblxuXHRwcm90ZWN0ZWQgX2hyZWY6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIEBPcHRpb25hbCgpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcikgeyB9XG5cblx0dXNlVGVtcGxhdGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc2tlbGV0b24gfHwgdGhpcy5faHJlZiB8fCB0aGlzLnJvdXRlO1xuXHR9XG5cblx0bmF2aWdhdGUoZXZlbnQpIHtcblx0XHRpZiAodGhpcy5yb3V0ZXIgJiYgdGhpcy5yb3V0ZSkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGNvbnN0IHN0YXR1cyA9IHRoaXMucm91dGVyLm5hdmlnYXRlKHRoaXMucm91dGUsIHRoaXMucm91dGVFeHRyYXMpO1xuXHRcdFx0dGhpcy5uYXZpZ2F0aW9uLmVtaXQoc3RhdHVzKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==