UNPKG

@xui/components

Version:

xUI Components for Angular

41 lines 6.02 kB
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=