UNPKG

carbon-components-angular

Version:
106 lines 9.22 kB
import { Component, Input, Output, EventEmitter, Optional, HostBinding } 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"; /** * Represents an item in a switcher list. */ export class SwitcherListItem { constructor(domSanitizer, router) { this.domSanitizer = domSanitizer; this.router = router; /** * Enables the "active" state for an item. Commonly used to indicate the current page or selection. */ this.active = false; /** * Emits the navigation status promise when the link is activated */ this.navigation = new EventEmitter(); this.itemClass = true; this.itemRole = "listitem"; this._href = "#"; this._target = ""; } /** * Optional link for the underlying anchor. */ set href(value) { this._href = value; } get href() { return this.domSanitizer.bypassSecurityTrustUrl(this._href); } /** * Optional target for the underlying anchor. */ set target(value) { this._target = value; } get target() { return this._target; } navigate(event) { if (this.router && this.route) { event.preventDefault(); const status = this.router.navigate(this.route, this.routeExtras); this.navigation.emit(status); } else if (this._href === "#") { event.preventDefault(); } } } SwitcherListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SwitcherListItem, deps: [{ token: i1.DomSanitizer }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); SwitcherListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SwitcherListItem, selector: "cds-switcher-list-item, ibm-switcher-list-item", inputs: { active: "active", route: "route", routeExtras: "routeExtras", href: "href", target: "target" }, outputs: { navigation: "navigation" }, host: { properties: { "class.cds--switcher__item": "this.itemClass", "attr.role": "this.itemRole" } }, ngImport: i0, template: ` <a class="cds--switcher__item-link" [ngClass]="{ 'cds--switcher__item-link--selected': active }" [href]="href" [target]="target" (click)="navigate($event)"> <ng-content></ng-content> </a> `, isInline: true, dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SwitcherListItem, decorators: [{ type: Component, args: [{ selector: "cds-switcher-list-item, ibm-switcher-list-item", template: ` <a class="cds--switcher__item-link" [ngClass]="{ 'cds--switcher__item-link--selected': active }" [href]="href" [target]="target" (click)="navigate($event)"> <ng-content></ng-content> </a> ` }] }], ctorParameters: function () { return [{ type: i1.DomSanitizer }, { type: i2.Router, decorators: [{ type: Optional }] }]; }, propDecorators: { active: [{ type: Input }], route: [{ type: Input }], routeExtras: [{ type: Input }], href: [{ type: Input }], navigation: [{ type: Output }], target: [{ type: Input }], itemClass: [{ type: HostBinding, args: ["class.cds--switcher__item"] }], itemRole: [{ type: HostBinding, args: ["attr.role"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoZXItbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91aS1zaGVsbC9wYW5lbC9zd2l0Y2hlci1saXN0LWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osUUFBUSxFQUNSLFdBQVcsRUFDWCxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFJdkI7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLGdCQUFnQjtJQW9ENUIsWUFBc0IsWUFBMEIsRUFBd0IsTUFBYztRQUFoRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUF3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbkR0Rjs7V0FFRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFxQnhCOztXQUVHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBaUJsQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpDLGFBQVEsR0FBRyxVQUFVLENBQUM7UUFFdEMsVUFBSyxHQUFHLEdBQUcsQ0FBQztRQUNaLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFFbUUsQ0FBQztJQWxDM0Y7O09BRUc7SUFDSCxJQUFhLElBQUksQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFPRCxJQUFJLElBQUk7UUFDUCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBVyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQWEsTUFBTSxDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBV0QsUUFBUSxDQUFDLEtBQUs7UUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM5QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFO1lBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjtJQUNGLENBQUM7OzZHQTlEVyxnQkFBZ0I7aUdBQWhCLGdCQUFnQiw4VUFibEI7Ozs7Ozs7Ozs7O0VBV1Q7MkZBRVcsZ0JBQWdCO2tCQWY1QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnREFBZ0Q7b0JBQzFELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7RUFXVDtpQkFDRDs7MEJBcURtRCxRQUFROzRDQWhEbEQsTUFBTTtzQkFBZCxLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtPLElBQUk7c0JBQWhCLEtBQUs7Z0JBT0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFTTSxNQUFNO3NCQUFsQixLQUFLO2dCQVFvQyxTQUFTO3NCQUFsRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFFZCxRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlcixcblx0T3B0aW9uYWwsXG5cdEhvc3RCaW5kaW5nXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gaXRlbSBpbiBhIHN3aXRjaGVyIGxpc3QuXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtc3dpdGNoZXItbGlzdC1pdGVtLCBpYm0tc3dpdGNoZXItbGlzdC1pdGVtXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGFcblx0XHRcdGNsYXNzPVwiY2RzLS1zd2l0Y2hlcl9faXRlbS1saW5rXCJcblx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0J2Nkcy0tc3dpdGNoZXJfX2l0ZW0tbGluay0tc2VsZWN0ZWQnOiBhY3RpdmVcblx0XHRcdH1cIlxuXHRcdFx0W2hyZWZdPVwiaHJlZlwiXG5cdFx0XHRbdGFyZ2V0XT1cInRhcmdldFwiXG5cdFx0XHQoY2xpY2spPVwibmF2aWdhdGUoJGV2ZW50KVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdDwvYT5cblx0YFxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hlckxpc3RJdGVtIHtcblx0LyoqXG5cdCAqIEVuYWJsZXMgdGhlIFwiYWN0aXZlXCIgc3RhdGUgZm9yIGFuIGl0ZW0uIENvbW1vbmx5IHVzZWQgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnQgcGFnZSBvciBzZWxlY3Rpb24uXG5cdCAqL1xuXHRASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcblxuXHQvKipcblx0ICogQXJyYXkgb2YgY29tbWFuZHMgdG8gc2VuZCB0byB0aGUgcm91dGVyIHdoZW4gdGhlIGxpbmsgaXMgYWN0aXZhdGVkXG5cdCAqIFNlZTogaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9yb3V0ZXIvUm91dGVyI25hdmlnYXRlXG5cdCAqL1xuXHRASW5wdXQoKSByb3V0ZTogYW55W107XG5cblx0LyoqXG5cdCAqIFJvdXRlciBvcHRpb25zLiBVc2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYHJvdXRlYFxuXHQgKiBTZWU6IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvcm91dGVyL1JvdXRlciNuYXZpZ2F0ZVxuXHQgKi9cblx0QElucHV0KCkgcm91dGVFeHRyYXM6IGFueTtcblxuXHQvKipcblx0ICogT3B0aW9uYWwgbGluayBmb3IgdGhlIHVuZGVybHlpbmcgYW5jaG9yLlxuXHQgKi9cblx0QElucHV0KCkgc2V0IGhyZWYodmFsdWU6IHN0cmluZykge1xuXHRcdHRoaXMuX2hyZWYgPSB2YWx1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbWl0cyB0aGUgbmF2aWdhdGlvbiBzdGF0dXMgcHJvbWlzZSB3aGVuIHRoZSBsaW5rIGlzIGFjdGl2YXRlZFxuXHQgKi9cblx0QE91dHB1dCgpIG5hdmlnYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFByb21pc2U8Ym9vbGVhbj4+KCk7XG5cblx0Z2V0IGhyZWYoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodGhpcy5faHJlZikgYXMgc3RyaW5nO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9wdGlvbmFsIHRhcmdldCBmb3IgdGhlIHVuZGVybHlpbmcgYW5jaG9yLlxuXHQgKi9cblx0QElucHV0KCkgc2V0IHRhcmdldCh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fdGFyZ2V0ID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgdGFyZ2V0KCkge1xuXHRcdHJldHVybiB0aGlzLl90YXJnZXQ7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLXN3aXRjaGVyX19pdGVtXCIpIGl0ZW1DbGFzcyA9IHRydWU7XG5cblx0QEhvc3RCaW5kaW5nKFwiYXR0ci5yb2xlXCIpIGl0ZW1Sb2xlID0gXCJsaXN0aXRlbVwiO1xuXG5cdHByb3RlY3RlZCBfaHJlZiA9IFwiI1wiO1xuXHRwcm90ZWN0ZWQgX3RhcmdldCA9IFwiXCI7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLCBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIpIHsgfVxuXG5cdG5hdmlnYXRlKGV2ZW50KSB7XG5cdFx0aWYgKHRoaXMucm91dGVyICYmIHRoaXMucm91dGUpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRjb25zdCBzdGF0dXMgPSB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0aGlzLnJvdXRlLCB0aGlzLnJvdXRlRXh0cmFzKTtcblx0XHRcdHRoaXMubmF2aWdhdGlvbi5lbWl0KHN0YXR1cyk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9ocmVmID09PSBcIiNcIikge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==