UNPKG

carbon-components-angular

Version:
73 lines 8.37 kB
import { Component, EventEmitter, HostBinding, Input, Output } from "@angular/core"; import { Subscription } from "rxjs"; import { ContextMenuSelectionService } from "./context-menu-selection.service"; import * as i0 from "@angular/core"; import * as i1 from "./context-menu-selection.service"; export class ContextMenuGroupComponent { constructor(contextMenuSelectionService) { this.contextMenuSelectionService = contextMenuSelectionService; this.role = "group"; this.label = null; this.value = []; this.type = null; this.valueChange = new EventEmitter(); this.subscription = new Subscription(); } get radioGroup() { return this.type === "radio"; } get group() { return this.type === "checkbox"; } ngOnInit() { const { selectionObservable } = this.contextMenuSelectionService; const subscription = selectionObservable.subscribe(value => { this.valueChange.emit(value); }); this.subscription.add(subscription); } ngOnChanges(changes) { if (changes.value) { if (this.type === "radio") { this.contextMenuSelectionService.selectRadio(changes.value.currentValue); } if (this.type === "checkbox") { this.contextMenuSelectionService.selectCheckboxes(changes.value.currentValue); } } } ngOnDestroy() { this.subscription.unsubscribe(); } } ContextMenuGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ContextMenuGroupComponent, deps: [{ token: i1.ContextMenuSelectionService }], target: i0.ɵɵFactoryTarget.Component }); ContextMenuGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ContextMenuGroupComponent, selector: "cds-context-menu-group, ibm-context-menu-group", inputs: { label: "label", value: "value", type: "type" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.role": "this.role", "class.cds--menu-item-radio-group": "this.radioGroup", "class.cds--menu-item-group": "this.group", "attr.aria-label": "this.label" } }, providers: [ContextMenuSelectionService], usesOnChanges: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ContextMenuGroupComponent, decorators: [{ type: Component, args: [{ selector: "cds-context-menu-group, ibm-context-menu-group", template: ` <ng-content></ng-content> `, providers: [ContextMenuSelectionService] }] }], ctorParameters: function () { return [{ type: i1.ContextMenuSelectionService }]; }, propDecorators: { role: [{ type: HostBinding, args: ["attr.role"] }], radioGroup: [{ type: HostBinding, args: ["class.cds--menu-item-radio-group"] }], group: [{ type: HostBinding, args: ["class.cds--menu-item-group"] }], label: [{ type: HostBinding, args: ["attr.aria-label"] }, { type: Input }], value: [{ type: Input }], type: [{ type: Input }], valueChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFTL0UsTUFBTSxPQUFPLHlCQUF5QjtJQVlyQyxZQUFzQiwyQkFBd0Q7UUFBeEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQVhwRCxTQUFJLEdBQUcsT0FBTyxDQUFDO1FBSUEsVUFBSyxHQUFHLElBQUksQ0FBQztRQUM3QyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFNBQUksR0FBZ0MsSUFBSSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUUxQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFd0MsQ0FBQztJQVZuRixJQUFxRCxVQUFVLEtBQU0sT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEcsSUFBK0MsS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBVzNGLFFBQVE7UUFDUCxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUM7UUFDakUsTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDMUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDOUU7U0FDRDtJQUNGLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztzSEFwQ1cseUJBQXlCOzBHQUF6Qix5QkFBeUIsb1dBRjFCLENBQUMsMkJBQTJCLENBQUMsK0NBSDlCOztFQUVUOzJGQUdXLHlCQUF5QjtrQkFQckMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3hDO2tIQUUwQixJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQzZCLFVBQVU7c0JBQTlELFdBQVc7dUJBQUMsa0NBQWtDO2dCQUNBLEtBQUs7c0JBQW5ELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUVBLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUM3QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdEJpbmRpbmcsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBDb250ZXh0TWVudVNlbGVjdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9jb250ZXh0LW1lbnUtc2VsZWN0aW9uLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1jb250ZXh0LW1lbnUtZ3JvdXAsIGlibS1jb250ZXh0LW1lbnUtZ3JvdXBcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdGAsXG5cdHByb3ZpZGVyczogW0NvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dE1lbnVHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHRASG9zdEJpbmRpbmcoXCJhdHRyLnJvbGVcIikgcm9sZSA9IFwiZ3JvdXBcIjtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1tZW51LWl0ZW0tcmFkaW8tZ3JvdXBcIikgZ2V0IHJhZGlvR3JvdXAoKSB7ICByZXR1cm4gdGhpcy50eXBlID09PSBcInJhZGlvXCI7IH1cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1tZW51LWl0ZW0tZ3JvdXBcIikgZ2V0IGdyb3VwKCkgeyByZXR1cm4gdGhpcy50eXBlID09PSBcImNoZWNrYm94XCI7IH1cblxuXHRASG9zdEJpbmRpbmcoXCJhdHRyLmFyaWEtbGFiZWxcIikgQElucHV0KCkgbGFiZWwgPSBudWxsO1xuXHRASW5wdXQoKSB2YWx1ZTogYW55W10gPSBbXTtcblx0QElucHV0KCkgdHlwZTogbnVsbCB8IFwicmFkaW9cIiB8IFwiY2hlY2tib3hcIiA9IG51bGw7XG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cblx0cHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZTogQ29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlKSB7IH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHRjb25zdCB7IHNlbGVjdGlvbk9ic2VydmFibGUgfSA9IHRoaXMuY29udGV4dE1lbnVTZWxlY3Rpb25TZXJ2aWNlO1xuXHRcdGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNlbGVjdGlvbk9ic2VydmFibGUuc3Vic2NyaWJlKHZhbHVlID0+IHtcblx0XHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cdFx0fSk7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKGNoYW5nZXMudmFsdWUpIHtcblx0XHRcdGlmICh0aGlzLnR5cGUgPT09IFwicmFkaW9cIikge1xuXHRcdFx0XHR0aGlzLmNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZS5zZWxlY3RSYWRpbyhjaGFuZ2VzLnZhbHVlLmN1cnJlbnRWYWx1ZSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIikge1xuXHRcdFx0XHR0aGlzLmNvbnRleHRNZW51U2VsZWN0aW9uU2VydmljZS5zZWxlY3RDaGVja2JveGVzKGNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHR9XG59XG4iXX0=