UNPKG

carbon-components-angular

Version:
84 lines 8.9 kB
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=