UNPKG

xui

Version:

xUI Components for Angular

70 lines 7.25 kB
import { __decorate, __metadata } from "tslib"; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Inject, Input } from '@angular/core'; import { RADIO_GROUP_ACCESSOR } from './radio.types'; import { InputBoolean } from '../utils'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "../icon/icon.component"; export class RadioComponent { get selected() { return this.group.value === this.value; } get isDisabled() { return this.disabled || this.group.disabled; } get styles() { const ret = { 'x-radio': true, 'x-radio-disabled': this.isDisabled }; ret[`x-radio-${this.color ?? this.group.color}`] = true; return ret; } constructor(group, cdr) { this.group = group; this.cdr = cdr; this.disabled = false; this.value = null; } ngOnInit() { this.group.onChange$.subscribe(() => this.cdr.markForCheck()); } _click() { if (!this.isDisabled) { this.group.value = this.value; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RadioComponent, deps: [{ token: RADIO_GROUP_ACCESSOR }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: RadioComponent, selector: "xui-radio", inputs: { disabled: "disabled", value: "value", color: "color" }, host: { listeners: { "click": "_click()" } }, ngImport: i0, template: `<div [ngClass]="styles"> <xui-icon>{{ selected ? 'radiobox-marked' : 'radiobox-blank' }}</xui-icon> <ng-content></ng-content> </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IconComponent, selector: "xui-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } __decorate([ InputBoolean(), __metadata("design:type", Object) ], RadioComponent.prototype, "disabled", void 0); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RadioComponent, decorators: [{ type: Component, args: [{ selector: 'xui-radio', changeDetection: ChangeDetectionStrategy.OnPush, template: `<div [ngClass]="styles"> <xui-icon>{{ selected ? 'radiobox-marked' : 'radiobox-blank' }}</xui-icon> <ng-content></ng-content> </div>` }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [RADIO_GROUP_ACCESSOR] }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{ type: Input }], value: [{ type: Input }], color: [{ type: Input }], _click: [{ type: HostListener, args: ['click'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy94dWkvc3JjL3JhZGlvL3JhZGlvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQVV4QyxNQUFNLE9BQU8sY0FBYztJQU96QixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxHQUFHLEdBQWlDO1lBQ3hDLFNBQVMsRUFBRSxJQUFJO1lBQ2Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDcEMsQ0FBQztRQUVGLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4RCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFrRCxLQUF5QixFQUFVLEdBQXNCO1FBQXpELFVBQUssR0FBTCxLQUFLLENBQW9CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF0QmxGLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakMsVUFBSyxHQUFlLElBQUksQ0FBQztJQXFCNEUsQ0FBQztJQUUvRyxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR08sTUFBTTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDL0I7SUFDSCxDQUFDOzhHQXBDVSxjQUFjLGtCQXlCTCxvQkFBb0I7a0dBekI3QixjQUFjLGlLQUxmOzs7U0FHSDs7QUFLa0I7SUFBZixZQUFZLEVBQUU7O2dEQUFrQjsyRkFIL0IsY0FBYztrQkFSMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7O1NBR0g7aUJBQ1I7OzBCQTBCYyxNQUFNOzJCQUFDLG9CQUFvQjs0RUF0QmYsUUFBUTtzQkFBaEMsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQTJCRSxNQUFNO3NCQURiLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJBRElPX0dST1VQX0FDQ0VTU09SLCBSYWRpb0NvbG9yLCBSYWRpb0dyb3VwQWNjZXNzb3IsIFJhZGlvVmFsdWUgfSBmcm9tICcuL3JhZGlvLnR5cGVzJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aS1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYDxkaXYgW25nQ2xhc3NdPVwic3R5bGVzXCI+XG4gICAgPHh1aS1pY29uPnt7IHNlbGVjdGVkID8gJ3JhZGlvYm94LW1hcmtlZCcgOiAncmFkaW9ib3gtYmxhbmsnIH19PC94dWktaWNvbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PmBcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dDtcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdmFsdWU6IFJhZGlvVmFsdWUgPSBudWxsO1xuICBASW5wdXQoKSBjb2xvcj86IFJhZGlvQ29sb3I7XG5cbiAgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLnZhbHVlID09PSB0aGlzLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGlzRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5ncm91cC5kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBzdHlsZXMoKSB7XG4gICAgY29uc3QgcmV0OiB7IFtrbGFzczogc3RyaW5nXTogYm9vbGVhbiB9ID0ge1xuICAgICAgJ3gtcmFkaW8nOiB0cnVlLFxuICAgICAgJ3gtcmFkaW8tZGlzYWJsZWQnOiB0aGlzLmlzRGlzYWJsZWRcbiAgICB9O1xuXG4gICAgcmV0W2B4LXJhZGlvLSR7dGhpcy5jb2xvciA/PyB0aGlzLmdyb3VwLmNvbG9yfWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChSQURJT19HUk9VUF9BQ0NFU1NPUikgcHJpdmF0ZSBncm91cDogUmFkaW9Hcm91cEFjY2Vzc29yLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ncm91cC5vbkNoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJpdmF0ZSBfY2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZ3JvdXAudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl19