UNPKG

@xui/components

Version:

xUI Components for Angular

65 lines 8.51 kB
import { booleanAttribute, ChangeDetectionStrategy, Component, effect, input, model, Optional, Self, signal } from '@angular/core'; import { RADIO_GROUP_ACCESSOR } from './radio.types'; import { NgControl } from '@angular/forms'; import * as i0 from "@angular/core"; import * as i1 from "@angular/forms"; import * as i2 from "./radio"; import * as i3 from "@ngx-translate/core"; export class XuiRadioGroup { constructor(control) { this.control = control; this._disabled = signal(false); this.value = model(null); this.color = input('none'); this.items = input(); this.disabled = input(undefined, { transform: booleanAttribute }); if (this.control) { this.control.valueAccessor = this; } effect(() => this.disabled() && this._disabled.set(this.disabled()), { allowSignalWrites: true }); effect(() => this.value() != undefined && this.onChange?.(this.value())); } writeValue(source) { this.value.set(source); } registerOnChange(onChange) { this.onChange = onChange; } registerOnTouched(onTouched) { this.onTouched = onTouched; } setDisabledState(isDisabled) { this._disabled.set(isDisabled); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XuiRadioGroup, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XuiRadioGroup, selector: "xui-radio-group", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { classAttribute: "x-radio-group" }, providers: [{ provide: RADIO_GROUP_ACCESSOR, useExisting: XuiRadioGroup }], ngImport: i0, template: ` <ng-content select="xui-radio" /> @for (item of items(); track item.value) { <xui-radio [value]="item.value">{{ item.label | translate }}</xui-radio> } `, isInline: true, dependencies: [{ kind: "component", type: i2.XuiRadio, selector: "xui-radio", inputs: ["value", "color", "disabled"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XuiRadioGroup, decorators: [{ type: Component, args: [{ selector: 'xui-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: RADIO_GROUP_ACCESSOR, useExisting: XuiRadioGroup }], template: ` <ng-content select="xui-radio" /> @for (item of items(); track item.value) { <xui-radio [value]="item.value">{{ item.label | translate }}</xui-radio> } `, host: { class: 'x-radio-group' } }] }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{ type: Self }, { type: Optional }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3h1aS9zcmMvcmFkaW8vcmFkaW8tZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBeUQsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFnQmpFLE1BQU0sT0FBTyxhQUFhO0lBYXhCLFlBQXVDLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFUMUQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixVQUFLLEdBQUcsS0FBSyxDQUFhLElBQUksQ0FBQyxDQUFDO1FBQ2hDLFVBQUssR0FBRyxLQUFLLENBQWEsTUFBTSxDQUFDLENBQUM7UUFDbEMsVUFBSyxHQUFHLEtBQUssRUFBZSxDQUFDO1FBQzdCLGFBQVEsR0FBRyxLQUFLLENBQXdDLFNBQVMsRUFBRTtZQUNqRSxTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCLENBQUMsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFHLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFrQjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBc0M7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQXFCO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXBDVSxhQUFhO2tHQUFiLGFBQWEsNm1CQVhiLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDLDBCQUNoRTs7Ozs7R0FLVDs7MkZBS1UsYUFBYTtrQkFkekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxlQUFlLEVBQUUsQ0FBQztvQkFDMUUsUUFBUSxFQUFFOzs7OztHQUtUO29CQUNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsZUFBZTtxQkFDdkI7aUJBQ0Y7OzBCQWNjLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJBRElPX0dST1VQX0FDQ0VTU09SLCBSYWRpb0NvbG9yLCBSYWRpb0dyb3VwQWNjZXNzb3IsIFJhZGlvSXRlbSwgUmFkaW9WYWx1ZSB9IGZyb20gJy4vcmFkaW8udHlwZXMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpLXJhZGlvLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUkFESU9fR1JPVVBfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBYdWlSYWRpb0dyb3VwIH1dLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInh1aS1yYWRpb1wiIC8+XG4gICAgQGZvciAoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtLnZhbHVlKSB7XG4gICAgICA8eHVpLXJhZGlvIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+e3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwveHVpLXJhZGlvPlxuICAgIH1cbiAgYCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAneC1yYWRpby1ncm91cCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBYdWlSYWRpb0dyb3VwIGltcGxlbWVudHMgUmFkaW9Hcm91cEFjY2Vzc29yLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgb25DaGFuZ2U/OiAoc291cmNlOiBSYWRpb1ZhbHVlKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgX2Rpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICB2YWx1ZSA9IG1vZGVsPFJhZGlvVmFsdWU+KG51bGwpO1xuICBjb2xvciA9IGlucHV0PFJhZGlvQ29sb3I+KCdub25lJyk7XG4gIGl0ZW1zID0gaW5wdXQ8UmFkaW9JdGVtW10+KCk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZCwgc3RyaW5nIHwgYm9vbGVhbj4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKEBTZWxmKCkgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRyb2w/OiBOZ0NvbnRyb2wpIHtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgZWZmZWN0KCgpID0+IHRoaXMuZGlzYWJsZWQoKSAmJiB0aGlzLl9kaXNhYmxlZC5zZXQodGhpcy5kaXNhYmxlZCgpISksIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gICAgZWZmZWN0KCgpID0+IHRoaXMudmFsdWUoKSAhPSB1bmRlZmluZWQgJiYgdGhpcy5vbkNoYW5nZT8uKHRoaXMudmFsdWUoKSEpKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoc291cmNlOiBSYWRpb1ZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZS5zZXQoc291cmNlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChzb3VyY2U6IFJhZGlvVmFsdWUpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcbiAgfVxufVxuIl19