xui
Version:
xUI Components for Angular
70 lines • 7.25 kB
JavaScript
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