carbon-components-angular
Version:
Next generation components
73 lines • 8.37 kB
JavaScript
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=