@xui/components
Version:
xUI Components for Angular
41 lines • 6.02 kB
JavaScript
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, Inject, input } from '@angular/core';
import { RADIO_GROUP_ACCESSOR } from './radio.types';
import * as i0 from "@angular/core";
import * as i1 from "../icon/icon";
export class XuiRadio {
constructor(_group) {
this._group = _group;
this.value = input(null);
this.color = input();
this.disabled = input(false, { transform: booleanAttribute });
this._selected = computed(() => this._group.value() === this.value());
this._disabled = computed(() => this.disabled() || this._group._disabled());
}
_click() {
if (!this._disabled()) {
this._group.value.set(this.value());
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XuiRadio, deps: [{ token: RADIO_GROUP_ACCESSOR }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: XuiRadio, selector: "xui-radio", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_click()" }, properties: { "class.x-radio-disabled": "_disabled()", "class": "\"x-radio-\" + color() ?? _group.color()" }, classAttribute: "x-radio" }, ngImport: i0, template: `<xui-icon [icon]="_selected() ? 'radio_button_checked' : 'radio_button_unchecked'"></xui-icon>
<ng-content />`, isInline: true, dependencies: [{ kind: "component", type: i1.XuiIcon, selector: "xui-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "icon"], exportAs: ["xuiIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XuiRadio, decorators: [{
type: Component,
args: [{
selector: 'xui-radio',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `<xui-icon [icon]="_selected() ? 'radio_button_checked' : 'radio_button_unchecked'"></xui-icon>
<ng-content />`,
host: {
class: 'x-radio',
'[class.x-radio-disabled]': '_disabled()',
'[class]': `"x-radio-" + color() ?? _group.color()`,
'(click)': '_click()'
}
}]
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Inject,
args: [RADIO_GROUP_ACCESSOR]
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3h1aS9zcmMvcmFkaW8vcmFkaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsb0JBQW9CLEVBQThDLE1BQU0sZUFBZSxDQUFDOzs7QUFjakcsTUFBTSxPQUFPLFFBQVE7SUFRbkIsWUFBaUQsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFQM0UsVUFBSyxHQUFHLEtBQUssQ0FBYSxJQUFJLENBQUMsQ0FBQztRQUNoQyxVQUFLLEdBQUcsS0FBSyxFQUFjLENBQUM7UUFDNUIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXpELGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFFTyxDQUFDO0lBRS9FLE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDOzhHQWRVLFFBQVEsa0JBUUMsb0JBQW9CO2tHQVI3QixRQUFRLHFtQkFUVDttQkFDTzs7MkZBUU4sUUFBUTtrQkFacEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTttQkFDTztvQkFDakIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxTQUFTO3dCQUNoQiwwQkFBMEIsRUFBRSxhQUFhO3dCQUN6QyxTQUFTLEVBQUUsd0NBQXdDO3dCQUNuRCxTQUFTLEVBQUUsVUFBVTtxQkFDdEI7aUJBQ0Y7OzBCQVNjLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJBRElPX0dST1VQX0FDQ0VTU09SLCBSYWRpb0NvbG9yLCBSYWRpb0dyb3VwQWNjZXNzb3IsIFJhZGlvVmFsdWUgfSBmcm9tICcuL3JhZGlvLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpLXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgPHh1aS1pY29uIFtpY29uXT1cIl9zZWxlY3RlZCgpID8gJ3JhZGlvX2J1dHRvbl9jaGVja2VkJyA6ICdyYWRpb19idXR0b25fdW5jaGVja2VkJ1wiPjwveHVpLWljb24+XG4gICAgPG5nLWNvbnRlbnQgLz5gLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICd4LXJhZGlvJyxcbiAgICAnW2NsYXNzLngtcmFkaW8tZGlzYWJsZWRdJzogJ19kaXNhYmxlZCgpJyxcbiAgICAnW2NsYXNzXSc6IGBcIngtcmFkaW8tXCIgKyBjb2xvcigpID8/IF9ncm91cC5jb2xvcigpYCxcbiAgICAnKGNsaWNrKSc6ICdfY2xpY2soKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBYdWlSYWRpbyB7XG4gIHZhbHVlID0gaW5wdXQ8UmFkaW9WYWx1ZT4obnVsbCk7XG4gIGNvbG9yID0gaW5wdXQ8UmFkaW9Db2xvcj4oKTtcbiAgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgX3NlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZ3JvdXAudmFsdWUoKSA9PT0gdGhpcy52YWx1ZSgpKTtcbiAgX2Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMuX2dyb3VwLl9kaXNhYmxlZCgpKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFJBRElPX0dST1VQX0FDQ0VTU09SKSBwdWJsaWMgX2dyb3VwOiBSYWRpb0dyb3VwQWNjZXNzb3IpIHt9XG5cbiAgX2NsaWNrKCkge1xuICAgIGlmICghdGhpcy5fZGlzYWJsZWQoKSkge1xuICAgICAgdGhpcy5fZ3JvdXAudmFsdWUuc2V0KHRoaXMudmFsdWUoKSk7XG4gICAgfVxuICB9XG59XG4iXX0=