carbon-components-angular
Version:
Next generation components
84 lines • 8.9 kB
JavaScript
import { Component, Input, Output, EventEmitter, HostBinding } from "@angular/core";
import * as i0 from "@angular/core";
import * as i1 from "carbon-components-angular/i18n";
import * as i2 from "@angular/common";
import * as i3 from "carbon-components-angular/radio";
export class TableRadio {
constructor(i18n) {
this.i18n = i18n;
this.selected = false;
this.radioColumn = true;
this.selectableColumn = true;
this.skeleton = false;
/**
* Emits if a single row is selected.
*/
this.change = new EventEmitter();
this._label = this.i18n.getOverridable("TABLE.CHECKBOX_ROW");
}
set label(value) {
this._label.override(value);
}
get label() {
return this._label.value;
}
get disabled() {
return this.row ? !!this.row.disabled : false;
}
getSelectionLabelValue(row) {
if (!this.selectionLabelColumn) {
return { value: this.i18n.get().TABLE.ROW };
}
return { value: row[this.selectionLabelColumn].data };
}
getLabel() {
return this._label.subject;
}
}
TableRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableRadio, deps: [{ token: i1.I18n }], target: i0.ɵɵFactoryTarget.Component });
TableRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TableRadio, selector: "[cdsTableRadio], [ibmTableRadio]", inputs: { row: "row", selected: "selected", label: "label", selectionLabelColumn: "selectionLabelColumn", skeleton: "skeleton" }, outputs: { change: "change" }, host: { properties: { "class.cds--table-column-radio": "this.radioColumn", "class.cds--table-column-checkbox": "this.selectableColumn" } }, ngImport: i0, template: `
<cds-radio
*ngIf="!skeleton"
[attr.aria-label]="getLabel() | i18nReplace:getSelectionLabelValue(row) | async"
[ariaLabel]="getLabel() | i18nReplace:getSelectionLabelValue(row) | async"
[checked]="selected"
[disabled]="disabled"
(change)="change.emit()">
</cds-radio>
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Radio, selector: "cds-radio, ibm-radio", inputs: ["checked", "name", "disabled", "labelPlacement", "ariaLabelledby", "ariaLabel", "required", "value", "skeleton", "id"], outputs: ["change"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.ReplacePipe, name: "i18nReplace" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableRadio, decorators: [{
type: Component,
args: [{
// tslint:disable-next-line: component-selector
selector: "[cdsTableRadio], [ibmTableRadio]",
template: `
<cds-radio
*ngIf="!skeleton"
[attr.aria-label]="getLabel() | i18nReplace:getSelectionLabelValue(row) | async"
[ariaLabel]="getLabel() | i18nReplace:getSelectionLabelValue(row) | async"
[checked]="selected"
[disabled]="disabled"
(change)="change.emit()">
</cds-radio>
`
}]
}], ctorParameters: function () { return [{ type: i1.I18n }]; }, propDecorators: { row: [{
type: Input
}], selected: [{
type: Input
}], label: [{
type: Input
}], radioColumn: [{
type: HostBinding,
args: ["class.cds--table-column-radio"]
}], selectableColumn: [{
type: HostBinding,
args: ["class.cds--table-column-checkbox"]
}], selectionLabelColumn: [{
type: Input
}], skeleton: [{
type: Input
}], change: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL2NlbGwvdGFibGUtcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDOzs7OztBQW9CdkIsTUFBTSxPQUFPLFVBQVU7SUEwQ3RCLFlBQXNCLElBQVU7UUFBVixTQUFJLEdBQUosSUFBSSxDQUFNO1FBdkN2QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBZW9CLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQWNoRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCOztXQUVHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUIsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFOUIsQ0FBQztJQXJDckMsSUFDSSxLQUFLLENBQUMsS0FBa0M7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxHQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzdELENBQUM7SUE0QkQsc0JBQXNCLENBQUMsR0FBZ0I7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVE7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7O3VHQXJEVyxVQUFVOzJGQUFWLFVBQVUscVhBWFo7Ozs7Ozs7OztFQVNUOzJGQUVXLFVBQVU7a0JBZHRCLFNBQVM7bUJBQUM7b0JBQ1YsK0NBQStDO29CQUMvQyxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxRQUFRLEVBQUU7Ozs7Ozs7OztFQVNUO2lCQUNEOzJGQUVTLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFhd0MsV0FBVztzQkFBeEQsV0FBVzt1QkFBQywrQkFBK0I7Z0JBQ0ssZ0JBQWdCO3NCQUFoRSxXQUFXO3VCQUFDLGtDQUFrQztnQkFZdEMsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RCaW5kaW5nXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgVGFibGVJdGVtIH0gZnJvbSBcIi4uL3RhYmxlLWl0ZW0uY2xhc3NcIjtcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSBcIi4uL3RhYmxlLXJvdy5jbGFzc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuXHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGNvbXBvbmVudC1zZWxlY3RvclxuXHRzZWxlY3RvcjogXCJbY2RzVGFibGVSYWRpb10sIFtpYm1UYWJsZVJhZGlvXVwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxjZHMtcmFkaW9cblx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uXCJcblx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0TGFiZWwoKSB8IGkxOG5SZXBsYWNlOmdldFNlbGVjdGlvbkxhYmVsVmFsdWUocm93KSB8IGFzeW5jXCJcblx0XHRcdFthcmlhTGFiZWxdPVwiZ2V0TGFiZWwoKSB8IGkxOG5SZXBsYWNlOmdldFNlbGVjdGlvbkxhYmVsVmFsdWUocm93KSB8IGFzeW5jXCJcblx0XHRcdFtjaGVja2VkXT1cInNlbGVjdGVkXCJcblx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHQoY2hhbmdlKT1cImNoYW5nZS5lbWl0KClcIj5cblx0XHQ8L2Nkcy1yYWRpbz5cblx0YFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVJhZGlvIHtcblx0QElucHV0KCkgcm93OiBhbnlbXTtcblxuXHRASW5wdXQoKSBzZWxlY3RlZCA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdHNldCBsYWJlbCh2YWx1ZTogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5fbGFiZWwub3ZlcnJpZGUodmFsdWUpO1xuXHR9XG5cblx0Z2V0IGxhYmVsKCkge1xuXHRcdHJldHVybiB0aGlzLl9sYWJlbC52YWx1ZTtcblx0fVxuXG5cdGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5yb3cgPyAhISh0aGlzLnJvdyBhcyBUYWJsZVJvdykuZGlzYWJsZWQgOiBmYWxzZTtcblx0fVxuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdGFibGUtY29sdW1uLXJhZGlvXCIpIHJhZGlvQ29sdW1uID0gdHJ1ZTtcblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS10YWJsZS1jb2x1bW4tY2hlY2tib3hcIikgc2VsZWN0YWJsZUNvbHVtbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFVzZWQgdG8gcG9wdWxhdGUgdGhlIHJvdyBzZWxlY3Rpb24gY2hlY2tib3ggbGFiZWwgd2l0aCBhIHVzZWZ1bCB2YWx1ZSBpZiBzZXQuXG5cdCAqXG5cdCAqIEV4YW1wbGU6XG5cdCAqIGBgYFxuXHQgKiA8Y2RzLXRhYmxlIFtzZWxlY3Rpb25MYWJlbENvbHVtbl09XCIwXCI+PC9jZHMtdGFibGU+XG5cdCAqIDwhLS0gcmVzdWx0cyBpbiBhcmlhLWxhYmVsPVwiU2VsZWN0IGZpcnN0IGNvbHVtbiB2YWx1ZVwiXG5cdCAqICh3aGVyZSBcImZpcnN0IGNvbHVtbiB2YWx1ZVwiIGlzIHRoZSB2YWx1ZSBvZiB0aGUgZmlyc3QgY29sdW1uIGluIHRoZSByb3cgLS0+XG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCkgc2VsZWN0aW9uTGFiZWxDb2x1bW46IG51bWJlcjtcblxuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBpZiBhIHNpbmdsZSByb3cgaXMgc2VsZWN0ZWQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdHByb3RlY3RlZCBfbGFiZWwgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJUQUJMRS5DSEVDS0JPWF9ST1dcIik7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGkxOG46IEkxOG4pIHsgfVxuXG5cdGdldFNlbGVjdGlvbkxhYmVsVmFsdWUocm93OiBUYWJsZUl0ZW1bXSkge1xuXHRcdGlmICghdGhpcy5zZWxlY3Rpb25MYWJlbENvbHVtbikge1xuXHRcdFx0cmV0dXJuIHsgdmFsdWU6IHRoaXMuaTE4bi5nZXQoKS5UQUJMRS5ST1cgfTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgdmFsdWU6IHJvd1t0aGlzLnNlbGVjdGlvbkxhYmVsQ29sdW1uXS5kYXRhIH07XG5cdH1cblxuXHRnZXRMYWJlbCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuXHRcdHJldHVybiB0aGlzLl9sYWJlbC5zdWJqZWN0O1xuXHR9XG59XG4iXX0=